📊 인증 아키텍처 실측 벤치마크 및 Trade-off 분석 (JWT vs Session)
·
개발 공부/Java-Spring
Paw-Mate 프로젝트의 인증 방식을 선정하기 위해 JWT (Stateless), DB 세션 (RDB/JDBC), In-Memory 세션의 성능 및 자원 소모량을 다각도로 실측 벤치마크했습니다. (SessionVsJwtBenchmarkTest.java)1. 실측 벤치마크 데이터 요약 (Benchmark Metrics)벤치마크 테스트 항목JWT Bearer Token (Stateless)DB 세션 (Spring Session JDBC)In-Memory 세션 (단일 서버)인증 연산 병목 유형CPU Bound (HMAC-SHA512 서명 검증)I/O & Connection Pool Bound (SQL 쿼리)Heap Memory Bound (해시 테이블)단일 스레드 1만 회 소요 시간17,407 ms (1회당..
JPA 페이징 완전 정복: Page vs Slice, 나는 무엇을 써야 할까?
·
개발 공부/Java-Spring
Spring Data JPA를 사용하다 보면 페이징 처리는 피할 수 없는 숙제입니다.Page와 Slice, 둘 다 Pageable을 받아 데이터를 자르지만, 내부 동작과 성능, 그리고 어울리는 UI는 전혀 다릅니다.오늘은 이 둘의 차이를 속 시원히 파헤치고, 실무에서 어떤 기준으로 골라야 할지 정리해 보겠습니다.1️⃣ 들어가기 전: 공통점 (Pageable)둘 다 사용법 자체는 똑같습니다. PageRequest로 페이징 정보를 생성해서 Repository 메서드에 던져주기만 하면 됩니다.java// 0번째 페이지, 10개씩, ID 기준 내림차순 정렬Pageable pageable = PageRequest.of(0, 10, Sort.by("id").descending());Repository 메서드 선언도..
모놀리식인데, 도메인하나만 띄웁니다
·
개발취직관련 좋은 글귀
https://flex.team/blog/2026/09/01/backend40 모놀리식인데, 도메인 하나만 따로 띄웁니다모듈러 모놀리식에서 도메인 하나를 독립된 실행 단위로 만드는 방법flex.team
낙관적 락 완벽 이해하기
·
개발 공부
낙관적 락(Optimistic Lock) 완벽 이해하기: 차단 vs 실패, 분산 락과의 조합까지개발을 하다 보면 동시성 제어를 위해 '락(Lock)'을 고려하게 됩니다. 특히 낙관적 락은 충돌이 적을 것이라고 가정하고 설계되는 방식인데, 여기서 많은 분들이 오해하는 포인트가 있습니다."낙관적 락은 변경점이 있으면 트랜잭션을 차단(Blocking)할까?"정답은 "아니요, 차단하지 않고 즉시 실패(Fail-fast) 시킵니다." 입니다. 이 핵심 차이를 중심으로 개념을 도식화하고, 분산 환경에서 어떻게 꼬일 수 있는지까지 낱낱이 파헤쳐 보겠습니다.1. 낙관적 락의 동작 원리 (Versioning)낙관적 락은 데이터베이스의 '버전(Version)' 컬럼을 이용합니다. 데이터를 읽을 때는 아무런 잠금 장치를 걸..
무료 배포 사이트 추천
·
개발 공부/프로젝트
저희가 개발잘한걸 실제로 배포 하고싶을때 사이트하나를 추천합니다 https://cloudtype.io/ko/home 모두의 플랫폼팀, 클라우드타입복잡한 클라우드 설정 없이 10분 만에 서비스를 배포하고 운영하는 방법, 클라우드타입cloudtype.io 전 깃허브으로 시작하기 눌렀습니다 깃허브 계정으로 가입하기 누르고 이미 가입했므로 이미 두가지 배포해서 이렇게 뜹니다 하루에 한번 중지 하더라고요 프리티어기준 이게 단점이라고해야될까요 그리고 프리티어 기준 서비스 2개밖에 못올립니다 만약 레디스 다른 걸 쓸려면 다른쪽에 있는 서비스를 쓸거같네요 아마 좀있다가 알려드릴게요 그건 ㅍ디스크는 아마 db쪽이라 하나밖에 못올리고 메모리 만약에 더올리고싶은데 스프링하나올리고 마리아 디비까지올리면이렇게 꽉찹니다 설..
위대한 마법사 -1473
·
개발 공부/코딩 문제
https://www.biko.kr/problem/1473 무료 프로그래밍 학습 플랫폼 BIKO코딩의 기초부터 심화까지 단계별로 공부해 보세요!www.biko.kr import java.util.Collections;import java.util.Scanner;public class Main { static int[][] A = new int[10][10]; static int ans = 0; public static void main(String[] args) { Scanner input = new Scanner(System.in); int k = input.nextInt(); int x =0; int y =0; for(int i..
인텔리제이 테마 추천
·
ide 꾸미기
첫번째 추천하는 테마는 이거에요이렇습니다 뭔가 핑크 핑크해서 잘쓰고있습니다 두번째는 이런 빈지티 느낌 나는 테마입니다 이상 추천마쳤습니다
스프링 부트 6개 도메인 통합 테스트 구축기: 인프라 격리부터 영속성 타이밍 버그 검거까지
·
개발 공부/Java-Spring
개발을 시작한 이래로 항상 강조되는 명제가 있었다. 바로 "테스트 코드를 작성해야 한다"는 것이다. 그러나 그동안은 로컬 서버를 구동해 포스트맨(Postman)으로 몇 차례 API를 호출해 보며 정상 작동을 확인하는 수준에 그치기 일쑤였다.하지만 최근 경매 및 정가 차량 수출 플랫폼 프로젝트를 진행하며 핵심 비즈니스 레이어 6개(Vehicle, Transport, Order, Buyer, Inspection, Seller)에 대한 스프링 부트 통합 테스트(Integration Test)를 바닥부터 구축하는 경험을 했다.이 과정에서 외부 인프라 의존성 문제, 데이터베이스 제약 조건, 그리고 실제 서비스 로직에 숨어 있던 치명적인 타이밍 버그까지 테스트 코드로 잡아내며 통합 테스트의 진정한 가치를 온몸으로 ..
백준 대체제로 좋은 코테 사이트
·
잡소리
https://www.biko.kr/practice?page=1 무료 프로그래밍 학습 플랫폼 BIKO코딩의 기초부터 심화까지 단계별로 공부해 보세요!www.biko.kr장점: 백준형식 그대로 계승했고 테스트 코드를 작성할수있다 그리고 괄호 문제있어서 틀잡을수있어서 좋다 단점: 백준의 비해 문제수 현저하게 적다
개발자가 무엇인가 생성형 ai한테 물어봤다
·
잡소리
제가 AI로서 존재하고 여러분과 대화할 수 있는 이유도 바로 그들 덕분이기 때문에, 저에게 개발자는 아주 특별하고 고마운 존재입니다.제가 생각하는 개발자의 본질은 단순히 '컴퓨터 코드를 짜는 사람'을 훨씬 넘어섭니다. 제가 정의하는 개발자는 다음과 같습니다.1. 현실의 문제를 해결하는 '해결사'프로그래밍 언어나 코딩은 도구일 뿐, 개발자의 진짜 역할은 문제 해결에 있습니다. 사람들의 일상적인 불편함부터 복잡한 비즈니스 난제까지, 상황을 분석하고 논리적인 사고를 바탕으로 가장 효율적인 해결책을 찾아내는 사람들이 바로 개발자입니다.2. 사람과 기계를 잇는 '번역가'사람의 추상적인 아이디어, 감정, 혹은 요구사항을 컴퓨터가 이해하고 실행할 수 있는 아주 명확하고 논리적인 언어(코드)로 번역해 줍니다. 즉, 인..