전체 글
xub2의 개발 새발
-
들어가며이번에 기술면접을 볼 때마다 받았던 대표적인 질문은 JPA의 영속성 컨텍스트와 N+1 문제다.둘 다 "정의"만 외워서 답하면 얕은 인상을 주기 쉬운 주제라, 이번 기회에 프록시 객체의 동작 원리부터 차근차근 정리해본다.영속성 컨텍스트(Persistence Context)영속성 컨텍스트란 엔티티를 영구 저장하는 환경이다.EntityManager가 이 영속성 컨텍스트를 관리하며, 그 안에서 엔티티를 1차 캐시로 들고 있는다. [JPA] 영속성 컨텍스트 : Persistence Context - 1JPA는 내부적으로 엔티티 매니저 팩토리를 통해 엔티티 매니저를 각 스레드에서 새로 생성하여 사용한다고 했다.내부적으로, 이 엔티티 매니저가 DB와의 물리적 커넥션을 획득하여 DB에 쿼리를bdisappoint..
JPA 질문 단골 손님 : 영속성 컨텍스트 & N+1 문제들어가며이번에 기술면접을 볼 때마다 받았던 대표적인 질문은 JPA의 영속성 컨텍스트와 N+1 문제다.둘 다 "정의"만 외워서 답하면 얕은 인상을 주기 쉬운 주제라, 이번 기회에 프록시 객체의 동작 원리부터 차근차근 정리해본다.영속성 컨텍스트(Persistence Context)영속성 컨텍스트란 엔티티를 영구 저장하는 환경이다.EntityManager가 이 영속성 컨텍스트를 관리하며, 그 안에서 엔티티를 1차 캐시로 들고 있는다. [JPA] 영속성 컨텍스트 : Persistence Context - 1JPA는 내부적으로 엔티티 매니저 팩토리를 통해 엔티티 매니저를 각 스레드에서 새로 생성하여 사용한다고 했다.내부적으로, 이 엔티티 매니저가 DB와의 물리적 커넥션을 획득하여 DB에 쿼리를bdisappoint..
2026.08.11 -
해당 글은 MySQL / InnoDB 기준으로 작성하였습니다.들어가며기술면접 복기 시리즈를 작성하고 있는데, 이번 주제는 팬텀리드에 관한 것이다.받았던 질문은 다음과 같다 -> "트랜잭션 격리 수준에 대해 설명해주세요"각 격리 수준(READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE)과 그로 인해 발생할 수 있는 문제들(Dirty Read, Non-Repeatable Read, Phantom Read)까지는 무난하게 설명했다. MySQL 트랜잭션 격리 수준 (Isolation Level)MySQL의 트랜잭션 격리 수준격리수준이란? →여러 트랜잭션이 동시에 처리 될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 ..
Serializable 없이 Phantom Read는 어떻게 막을까 ?해당 글은 MySQL / InnoDB 기준으로 작성하였습니다.들어가며기술면접 복기 시리즈를 작성하고 있는데, 이번 주제는 팬텀리드에 관한 것이다.받았던 질문은 다음과 같다 -> "트랜잭션 격리 수준에 대해 설명해주세요"각 격리 수준(READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE)과 그로 인해 발생할 수 있는 문제들(Dirty Read, Non-Repeatable Read, Phantom Read)까지는 무난하게 설명했다. MySQL 트랜잭션 격리 수준 (Isolation Level)MySQL의 트랜잭션 격리 수준격리수준이란? →여러 트랜잭션이 동시에 처리 될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 ..
2026.08.11 -
개발자로 취업 할 수 있을까7월에는 면접까지도 꽤나 갔었는데 대부분 기술면접에서 다 탈락했다.뭐 사실 딱히 더이상 할 말은 없고 그냥 축구 보고 온거 자랑하고 싶어서 올린다. 축구 보고 왔습니다 22축구를 좋아해서 매년 이맘 때쯤 친구와 함께 축구 직관을 오곤한다. 그리고 항상 축구를 직관하러 갈 때마다 날씨가 좋았다.이번에는 맨시티 vs 알레띠 경기를 보고 왔다.나는 축구장을 참 좋아한다. 시대의 변화가 빠른만큼 축구 경기 자체의 템포가 조금 길어졌다고 느껴지며 경기에 대한 관심은 아주 조금 줄었지만, 경기장에 입장했을 때 탁 틔어진 풍경을 보면 마음이 평안해진다. 요새 취업에 대한 고민이 참 많아서 머리가 단 한순간도 비워진적이 없는데, 넓은 그라운드를 보고만 있어도 마음이 편해지는 것 같았다. 쿠플..
Aupa, 취업 (취업한거 아님, 축구 보고 왔습니다)개발자로 취업 할 수 있을까7월에는 면접까지도 꽤나 갔었는데 대부분 기술면접에서 다 탈락했다.뭐 사실 딱히 더이상 할 말은 없고 그냥 축구 보고 온거 자랑하고 싶어서 올린다. 축구 보고 왔습니다 22축구를 좋아해서 매년 이맘 때쯤 친구와 함께 축구 직관을 오곤한다. 그리고 항상 축구를 직관하러 갈 때마다 날씨가 좋았다.이번에는 맨시티 vs 알레띠 경기를 보고 왔다.나는 축구장을 참 좋아한다. 시대의 변화가 빠른만큼 축구 경기 자체의 템포가 조금 길어졌다고 느껴지며 경기에 대한 관심은 아주 조금 줄었지만, 경기장에 입장했을 때 탁 틔어진 풍경을 보면 마음이 평안해진다. 요새 취업에 대한 고민이 참 많아서 머리가 단 한순간도 비워진적이 없는데, 넓은 그라운드를 보고만 있어도 마음이 편해지는 것 같았다. 쿠플..
2026.08.10 -
들어가며이번에 기술면접에서 스프링 예외처리에 대해 질문을 받았었는데.. 대답을 잘 못했다.그래서 이번 기회에 한번 전체적인 스프링의 예외 처리 흐름을 정리하고자 글을 작성한다.들어가기 전 배경지식 정리기본구조 (서블릿 ,WAS)예외 처리를 이해하려면 먼저 요청이 어디를 거쳐 오는지부터 알아야 한다.서블릿 : HttpServletRequest, HttpServletResponse를 받아 처리하는 자바 인터페이스 -> 혼자서는 실행되지 못하고 누군가 생성하고 호출해줘야 한다.서블릿 컨테이너: 서블릿 객체를 만들고 생명주기를 관리하며, HTTP 요청이 들어오면 알맞은 서블릿을 호출한다.WAS(Web Application Server): 서블릿 컨테이너를 내장한 실행 환경. Tomcat이 대표적이다. (WAS ..
Spring 예외 처리 총 복습 (HTML / API)들어가며이번에 기술면접에서 스프링 예외처리에 대해 질문을 받았었는데.. 대답을 잘 못했다.그래서 이번 기회에 한번 전체적인 스프링의 예외 처리 흐름을 정리하고자 글을 작성한다.들어가기 전 배경지식 정리기본구조 (서블릿 ,WAS)예외 처리를 이해하려면 먼저 요청이 어디를 거쳐 오는지부터 알아야 한다.서블릿 : HttpServletRequest, HttpServletResponse를 받아 처리하는 자바 인터페이스 -> 혼자서는 실행되지 못하고 누군가 생성하고 호출해줘야 한다.서블릿 컨테이너: 서블릿 객체를 만들고 생명주기를 관리하며, HTTP 요청이 들어오면 알맞은 서블릿을 호출한다.WAS(Web Application Server): 서블릿 컨테이너를 내장한 실행 환경. Tomcat이 대표적이다. (WAS ..
2026.08.08 -
프로듀서 (Producer)메시지를 발행하는 주체다. 보통 프로듀서 역할을 하는 애플리케이션 서버에서 메시지를 카프카로 발행한다.Spring Kafka 등 대부분의 카프카 관련 라이브러리는 메시지 발행 시 비동기 방식으로 동작한다.카프카는 기본적으로 라운드로빈 알고리즘으로 토픽 안의 파티션에 분산 저장한다.키를 지정하여 메시지를 발행하면, 브로커는 해시 기반으로 특정 파티션에 라우팅하여 저장할 수 있다.컨슈머 (Consumer)컨슈머는 Kafka 브로커로부터 메시지를 구독(consume)하여 가져오는 주체다. 컨슈머 그룹컨슈머 그룹이란 같은 그룹 ID를 가진 컨슈머들이 하나의 그룹을 이루어 하나 이상의 토픽을 함께 구독하는 논리적 단위다.한 컨슈머 그룹 내의 여러 컨슈머는 토픽의 파티션을 나누어 점유한다..
Kafka : 프로듀서와 컨슈머 (+Offset)프로듀서 (Producer)메시지를 발행하는 주체다. 보통 프로듀서 역할을 하는 애플리케이션 서버에서 메시지를 카프카로 발행한다.Spring Kafka 등 대부분의 카프카 관련 라이브러리는 메시지 발행 시 비동기 방식으로 동작한다.카프카는 기본적으로 라운드로빈 알고리즘으로 토픽 안의 파티션에 분산 저장한다.키를 지정하여 메시지를 발행하면, 브로커는 해시 기반으로 특정 파티션에 라우팅하여 저장할 수 있다.컨슈머 (Consumer)컨슈머는 Kafka 브로커로부터 메시지를 구독(consume)하여 가져오는 주체다. 컨슈머 그룹컨슈머 그룹이란 같은 그룹 ID를 가진 컨슈머들이 하나의 그룹을 이루어 하나 이상의 토픽을 함께 구독하는 논리적 단위다.한 컨슈머 그룹 내의 여러 컨슈머는 토픽의 파티션을 나누어 점유한다..
2026.08.06 -
브로커브로커는 카프카의 실질적인 서버로서, 클러스터 내의 서버 인스턴스를 의미한다. 브로커는 producer와 consumer의 요청을 처리하고 메시지를 저장·관리한다.카프카는 고가용성 메시징 시스템으로서 장애를 대비한 분산·복제 구조를 갖는다. 그래서 여러 브로커(서버)가 모여 클러스터를 구성하는 구조다. 브로커 내부 구조각 브로커 내부에는 파티션 단위로 메시지가 저장·관리된다.파티션: 메시지가 실질적으로 저장되는 물리적인 단위토픽: 이 파티션들을 논리적으로 묶은 단위자세한 내부 구조는 이제부터 작성한다.토픽토픽은 카프카에 발행되는 메시지가 기록되는 논리적인 단위다. 토픽 이름은 메시지의 카테고리처럼 작동한다.프로듀서는 일반적으로 토픽 단위로 메시지를 발행한다.컨슈머는 특정 구독 중인 토픽에서 메시지를..
Kafka : 클러스터 구조브로커브로커는 카프카의 실질적인 서버로서, 클러스터 내의 서버 인스턴스를 의미한다. 브로커는 producer와 consumer의 요청을 처리하고 메시지를 저장·관리한다.카프카는 고가용성 메시징 시스템으로서 장애를 대비한 분산·복제 구조를 갖는다. 그래서 여러 브로커(서버)가 모여 클러스터를 구성하는 구조다. 브로커 내부 구조각 브로커 내부에는 파티션 단위로 메시지가 저장·관리된다.파티션: 메시지가 실질적으로 저장되는 물리적인 단위토픽: 이 파티션들을 논리적으로 묶은 단위자세한 내부 구조는 이제부터 작성한다.토픽토픽은 카프카에 발행되는 메시지가 기록되는 논리적인 단위다. 토픽 이름은 메시지의 카테고리처럼 작동한다.프로듀서는 일반적으로 토픽 단위로 메시지를 발행한다.컨슈머는 특정 구독 중인 토픽에서 메시지를..
2026.08.06 -
들어가며이번에 면접에서 내가 카프카에 대한 배경 지식이 너무 빈약했던 점을 알게 되어.. 메시징 시스템 복습 + 추후 면접 대비로 카프카 시리즈를 시작해본다.Kafka 그게 뭔데여 ?카프카는 디스크 기반의 메시징 시스템으로, 실시간 메시징 서비스를 제공한다. 주로 서버와 서버 사이에서 데이터를 주고받는 중간 다리 역할을 한다.생산자(Producer) → Kafka → 소비자(Consumer) 카프카 클러스터는 메시지가 저장되는 카프카 서버들의 집단이다. 카프카는 일반적으로 고가용성을 위해 여러 서버를 하나의 클러스터로 관리한다.프로듀서가 메시지를 카프카로 발행하면 소비자가 메시지를 수신한다. (좀 더 구체적으로는, 프로듀서가 발행한 메시지가 카프카에 저장됐다가 컨슈머가 소비해가는 흐름이다.)카프카 주요 ..
Kafka : 그게 뭔데여 ?들어가며이번에 면접에서 내가 카프카에 대한 배경 지식이 너무 빈약했던 점을 알게 되어.. 메시징 시스템 복습 + 추후 면접 대비로 카프카 시리즈를 시작해본다.Kafka 그게 뭔데여 ?카프카는 디스크 기반의 메시징 시스템으로, 실시간 메시징 서비스를 제공한다. 주로 서버와 서버 사이에서 데이터를 주고받는 중간 다리 역할을 한다.생산자(Producer) → Kafka → 소비자(Consumer) 카프카 클러스터는 메시지가 저장되는 카프카 서버들의 집단이다. 카프카는 일반적으로 고가용성을 위해 여러 서버를 하나의 클러스터로 관리한다.프로듀서가 메시지를 카프카로 발행하면 소비자가 메시지를 수신한다. (좀 더 구체적으로는, 프로듀서가 발행한 메시지가 카프카에 저장됐다가 컨슈머가 소비해가는 흐름이다.)카프카 주요 ..
2026.08.06 -
7월 일정 요약7월은 생각보다 경험했던 채용 프로세스가 많았다. (대부분 불합이지만..ㅎ) 7월에 그래도 처음으로 이력서가 여러장 통과 하기도 했고 나에게 꽤나 고무적이었던 달이라 회고록을 적어보고자 한다.5월 ~ 6월3월부터 시작하여 5월 초에 프로그래머스 데브코스가 끝나고 본격적으로 이력서를 다시 넣기 시작했다.데브코스에서 나름 배운 것도 많고 내 생각보다 프로젝트 퀄리타가 괜찮아서 기존 이력서 양식에서 데브코스에서 진행한 프로젝트만 추가하여 제출 했었다.나름대로 여러번 수정한거라 해당 이력서로 열심히 회사를 지원했는데, 결과는 계속해서 서류 0 합이었다.이때부터 살짝 포기하고 싶어지면서 이력서 구조가 문제가 좀 있겠다(소개랑 지원동기가 쓰잘데 없이 너무 길다) 싶어서 이력서를 완전히 갈아 엎게 되었..
7월 취준 회고7월 일정 요약7월은 생각보다 경험했던 채용 프로세스가 많았다. (대부분 불합이지만..ㅎ) 7월에 그래도 처음으로 이력서가 여러장 통과 하기도 했고 나에게 꽤나 고무적이었던 달이라 회고록을 적어보고자 한다.5월 ~ 6월3월부터 시작하여 5월 초에 프로그래머스 데브코스가 끝나고 본격적으로 이력서를 다시 넣기 시작했다.데브코스에서 나름 배운 것도 많고 내 생각보다 프로젝트 퀄리타가 괜찮아서 기존 이력서 양식에서 데브코스에서 진행한 프로젝트만 추가하여 제출 했었다.나름대로 여러번 수정한거라 해당 이력서로 열심히 회사를 지원했는데, 결과는 계속해서 서류 0 합이었다.이때부터 살짝 포기하고 싶어지면서 이력서 구조가 문제가 좀 있겠다(소개랑 지원동기가 쓰잘데 없이 너무 길다) 싶어서 이력서를 완전히 갈아 엎게 되었..
2026.07.30