profile
일상

트러블슈팅

초기 관리자 기능은 하나의 AdminController와 AdminService에서 처리하도록 구현하였다.관리자 기능이 추가되면서 하나의 Controller와 Service에 여러 도메인의 API와 비즈니스 로직이 집중되었다.그 결과 특정 기능을 수정하기 위해 관련 없

약 11시간 전
·
0개의 댓글
·

자료구조 : 원형큐

2026년 8월 5일
·
0개의 댓글
·

게시물 목록 조회 N+1 문제(getPosts)

24번의 쿼리가 실행.1.게시글 목록 조회 (1번): select distinct p1_0.id ... from post p1_0 ... limit ?2.전체 게시글 수 카운트 (1번): select count(distinct p1_0.id) from post p1_0

2026년 7월 24일
·
0개의 댓글
·

reids

Spring Boot 게시글 조회수 및 좋아요 동시성 문제와 성능 개선 (Redis 도입기)🚨 문제 인식 (Troubleshooting)현재 개발 중인 커뮤니티 플랫폼에서 게시글 상세 조회와 좋아요 기능을 구현했습니다. 기능적으로는 정상 작동하는 MVP(Minimum

2026년 7월 19일
·
0개의 댓글
·

Spring Security + JWT 로그인

JWT 인증이란?JWT(JSON Web Token)는 로그인 후 서버가 사용자에게 발급하는 인증 토큰이다.기존 Session 방식은 서버가 로그인 정보를 저장하지만,JWT 방식은 사용자 정보와 권한을 토큰에 담아 클라이언트가 보관한다.이후 요청마다 토큰을 보내면 서버는

2026년 7월 14일
·
0개의 댓글
·

Builder 패턴

Builder Pattern은 객체를 단계적으로 생성하는 디자인 패턴이다.Spring Boot와 JPA에서는 엔티티(Entity)나 DTO 객체를 생성할 때 가장 많이 사용하는 패턴 중 하나이다.객체의 필드가 많아질수록 생성자(Constructor)나 Setter를 사

2026년 7월 14일
·
0개의 댓글
·

JPA Entity 생명주기(Entity Lifecycle)

JPA는 엔티티(Entity)를 영속성 컨텍스트(Persistence Context) 를 통해 관리한다.엔티티는 생성부터 삭제까지 다음과 같은 4가지 상태를 가진다.비영속 상태는 영속성 컨텍스트가 관리하지 않는 새로운 객체이다.이 객체는 단순히 JVM 메모리에만 존재하

2026년 7월 14일
·
0개의 댓글
·

JPA 영속성 컨텍스트(Persistence Context) 정리

영속성 컨텍스트(Persistence Context)는 JPA가 엔티티(Entity)를 관리하는 메모리 공간이다.개발자가 엔티티를 조회하거나 저장하면 DB와 바로 통신하는 것이 아니라, 먼저 영속성 컨텍스트에서 엔티티를 관리한 후 필요할 때 DB와 동기화한다.영속성 컨

2026년 7월 14일
·
0개의 댓글
·

JPA N+1 문제와 Fetch Join

JPA에서 연관 엔티티를 언제 조회할지 결정하는 옵션이다.연관 엔티티를 실제로 사용할 때 조회한다.예를 들어 상품을 조회하면 상품만 가져오고,이 시점에는 Seller를 조회하지 않는다.하지만을 호출하는 순간 판매자를 조회하는 SQL이 실행된다.장점필요한 데이터만 조회하

2026년 7월 14일
·
0개의 댓글
·

Java -260703(ArrayList)

ArrayList는 Java에서 가장 많이 사용하는 컬렉션(Collection) 중 하나로, 크기가 자동으로 늘어나고 줄어드는 동적 배열(Dynamic Array) 이다.일반 배열(Array)은 크기를 한 번 정하면 변경할 수 없지만, ArrayList는 데이터를 추가

2026년 7월 2일
·
0개의 댓글
·

Java - 260702

문자열을 저장하는 객체문자열을 수정하면 새로운 객체가 생성됨기존 문자열이 수정되는 것이 아니라 새로운 String 객체가 만들어진다.문자열 길이 반환시간복잡도 : O(1)특정 위치 문자 반환시간복잡도 : O(1)문자열 자르기시작 포함끝 미포함문자의 위치 찾기없으면 -1

2026년 7월 2일
·
0개의 댓글
·

Spring MVC에서 Form 객체를 템플릿(Thymeleaf)으로 전달하는 방법

1. 자동 바인딩 방식 2. 수동 바인딩 방식 (Model 이용) 3. 명시적 @ModelAttribute 방식

2025년 4월 22일
·
0개의 댓글
·

유효성 검사(@Valid)

도메인 지식 같은 경우 -> Domain(Entity)에 유효성 검사를 해야한다.도메인 지식과 무관하게 데이터 그 자체가 유효한가에 대한 검사 -> DTO에서 해야한다.@Size를 추가하여 유효성 검사를 추가했다.입력 폼에 대한 @NotEmpty @NotNull을 이용

2025년 4월 2일
·
0개의 댓글
·

SpringBoot - DTO

DTO

2025년 3월 18일
·
0개의 댓글
·

식품 유통기한 리스트

일하면서 짜증나서 만든 식품 유통기한 체크리스트를 만들기로 했다.

2025년 1월 27일
·
0개의 댓글
·

스프링 컨테이너와 스프링 빈

ApplicationContext -> 스프링 컨테이너이자 인터페이스스프링 컨테이너 xml기반,Annotation을 기반으로 자바 설정 클래스로 만들 수 있다.스프링 컨테이너 생성 스프링 컨테이너에 (key : 빈이름(메소드명),value : 빈 객체(메소드 반환명 i

2024년 10월 21일
·
0개의 댓글
·

자료구조 - Sort(합병 정렬)

시간 복잡도는 O(nlogn)\-> 배열의 크기를 n이라 할때, 분할 할때 마다 배열의 크기가 n/2씩 감소. 이때 분할하는데 걸리는 시간은 O(log n)\-> 정복(합병)할때 마다 두 배열을 비교하면서 작은 요소부터 차례로 결과 배열에 추가.이 과정에서 최대 (n)

2024년 10월 13일
·
0개의 댓글
·

자료구조 - Sort (Quick Sort)

시간 복잡도최악: O(n^2)평균: O(n\*logn)java에서 Arrays.sort()로 사용한다.배열을 두 부분으로 나눈다.i) 배열 내 기준 요소보다 작으면 앞부분 배열에 위치, 크면 뒷부분 배열에 위치한다.각 분할된 부분을 재귀적으로 정렬한다.

2024년 10월 12일
·
0개의 댓글
·

자료구조 - Sort(Insertion Sort)

정렬된 부분 (A0), 정렬 되지 않은 부분 (A1 ... An-1)으로 구분하여 정렬.시간복잡도 : O(n^2)

2024년 10월 12일
·
0개의 댓글
·

자료구조 - sort (Selection Sort)

시간 복잡도 : O(n^2)

2024년 10월 12일
·
0개의 댓글
·