본문으로 건너뛰기

Blog

총 98개의 글

Backend Development

JPA 비관적 락과 낙관적 락 및 재시도

콘서트 예약 프로젝트를 개발하면서 좌석 예약에서 발생하는 동시성 문제에 대해 고민하게 되었다. 여러 사용자가 동시에 같은 좌석을 예약하려고 할 때 동시성 문제가 발생할 수 있는데, 이를 해결하기 위해 JPA에서 제공하는 비관적 락(Pessimistic Lock)과 낙관적 락(Optimistic Lock)을 사용하고, AOP를 활용한 재시도 로직을 통해 동시

Concurrency Java JPA
Backend Development

필터(Filter) vs 인터셉터(Interceptor)

콘서트 프로젝트에서 대기열을 구현하는 과정에서, 대기열 검증 로직을 어디서 처리할지 고민하게 되었다. 대기열 토큰을 가지고 입장 가능 여부를 검증하는 로직을 작성했는데, 이 로직을 필터나 인터셉터 중 어디에 두는 게 적절할지 알아보면서, 필터와 인터셉터의 차이점과 용도에 대해 정리해보았다. 필터는 J2EE 스펙에서 제공하는 기능으로, 디스패처 서블릿(Dis

Spring Boot Java
Backend Development

Dispatcher Servlet (디스패처 서블릿)

필터(Filter)와 인터셉터(Interceptor)에 대해 알아보다가 디스패처 서블릿(Dispatcher Servlet)을 한 번 짚고 가면 좋을 것 같아 작성하게 되었다. 서블릿은 클라이언트의 요청을 처리하고 그 결과를 반환하는 자바 웹 프로그래밍 기술로, Servlet 클래스의 구현 규칙을 따르게 된다. 서블릿은 웹 서버에서 동작하며, 클라이언트의 요

Spring Boot Java
Career & Growth

항해 플러스 백엔드 코스 6기 4주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력해주시면 `20만원` 할인 적용됩니다. 항해 플러스 과정에 관심이 있는 분들은 아래 링크를 통해 신청해보세요! 궁금하시거나 커피챗을 하고 싶으신 분들은 링크드인이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 이번 주차를 지나며 겪었던 문제가 무엇이었나요?지난 주에 진행했던 설

Learning Bootcamp
Backend Development

Spring Global Exception Handler (전역 예외 처리)

Spring에서 예외 처리 방법은 여러 가지가 있다. 가장 흔히 사용되는 방법으로는 try-catch 문을 이용한 예외 처리, @ExceptionHandler를 이용한 예외 처리, 그리고 전역에서 예외를 처리할 수 있는 @ControllerAdvice를 이용한 방법이 있다. 이 글에서는 각 방법의 특징과 장단점을 알아본다. `try-catch` 문을 이용한

Spring Boot Java
Career & Growth

항해 플러스 백엔드 코스 6기 3주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력해주시면 `20만원` 할인 적용됩니다. 항해 플러스 과정에 관심이 있는 분들은 아래 링크를 통해 신청해보세요! 궁금하시거나 커피챗을 하고 싶으신 분들은 링크드인이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 이번 주차를 지나며 겪었던 문제가 무엇이었나요?이번 주차에서 가장 큰

Learning Bootcamp
Career & Growth

2024 당근 테크 밋업 후기

당근 테크 밋업에 다녀왔습니다. 당근에서 주최한 이번 밋업은 Frontend, Server, DATA/ML, Platform 4개의 트랙으로 진행되었습니다. 저는 Server 트랙을 참석했는데, 밋업에서 들은 내용을 정리해보려고 합니다. - 당근 테크 밋업은 당근의 모임 시스템을 활용하여 진행되었습니다. - 해당 모임에서 실시간 정보를 수신하고 이벤트 및

Conference
Backend Development

분산 환경에서의 동시성 제어

- 동시성 제어의 기본 개념 이해를 위해 멀티 스레드 환경에서 동시성 제어 방식에 대한 분석 In Java 글 참고 - 멀티 스레드 환경: 단일 인스턴스, 인스턴스 레벨 동시성 제어 가능 - 분산 환경: 다중 인스턴스, 인스턴스 레벨 제어 불가능 1. 락(Lock)을 이용한 제어 - 원리: 공유 자원에 대한 접근을 순차적으로 제어 - 장점: 구현이 상대적으

Concurrency Java
Career & Growth

항해 플러스 백엔드 코스 6기 2주차 및 챕터 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력해주시면 `20만원` 할인 적용됩니다. 항해 플러스 과정에 관심이 있는 분들은 아래 링크를 통해 신청해보세요! 궁금하시거나 커피챗을 하고 싶으신 분들은 링크드인이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 안녕하세요, 항해 플러스 백엔드 코스 6기에 참여 중인 길현준입니다.

Learning Bootcamp
Career & Growth

항해 플러스 백엔드 코스 6기 1주차 회고 WIL

지원페이지에서 추천 코드에 `3ZTeU1`를 입력해주시면 `20만원` 할인 적용됩니다. 항해 플러스 과정에 관심이 있는 분들은 아래 링크를 통해 신청해보세요! 궁금하시거나 커피챗을 하고 싶으신 분들은 링크드인이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 항해 플러스 백엔드 코스 6기 1주차 회고 WIL을 작성한다. 이번

Learning Bootcamp
Career & Growth

판교 퇴근길 밋업 - 가을 특집 with 개발바닥 후기

인프런에선 판교 퇴근 밋업을 진행하고 있다. 그중에 나는 가을 특집 with 개밟바닥 밋업에 당첨되어 참가하게 되었다. 이번 테크 밋업의 주제는 속이 뻥 뚫리는 `개비스콘` 개발바닥과 함께하는 비밀스러운 토크 콘서트의 줄임말이다. 개발바닥은 인프런의 CTO인 향로(이동욱)님과 반려생활의 CTO인 호돌맨(이주현)님의 개발 관련 유투브 채널이다. 이력서 첨삭등

Conference
Backend Development

멀티 스레드 환경에서 동시성 제어 방식에 대한 분석 In Java

이번에 항해 플러스 백엔드 코스의 1주차 과제를 진행하면서 `멀티 스레드 환경에서 동시성 제어 방식`에 대한 분석을 진행했다. 이 내용은 분산환경을 고려하지 않고 외부 의존성을 사용하지 않고 멀티 스레드 환경만 고려하였다. 동시성 제어는 다중 사용자 환경에서 데이터베이스나 공유 자원의 일관성과 무결성을 유지하기 위한 핵심 기술이다. 여러 사용자가 동시에 같

Concurrency Java
Dev Tools & Environment

GitHub Repository들 하나로 합치기 (subtree)

나 같은 경우에는 공부용으로 만든 Repository들이 많아 이걸 하나로 정리하고 싶었다. - 병합할 모든 Repository의 목록을 만든다. - 각 Repository의 구조를 검토하고 충돌 가능성을 확인한다. - 중요한 데이터는 백업해둔다. GitHub에서 새로운 빈 Repository를 생성한다. 이 Repository가 모든 프로젝트를 통합할 대

Git GitHub
Career & Growth

항해 플러스 백엔드 코스 6기 0주차 - WIL 시작하는 마음

지원페이지에서 추천 코드에 `3ZTeU1`를 입력해주시면 `20만원` 할인 적용됩니다. 항해 플러스 과정에 관심이 있는 분들은 아래 링크를 통해 신청해보세요! 궁금하시거나 커피챗을 하고 싶으신 분들은 링크드인이나 `kboxstar@gmail.com`으로 연락주세요.항해 플러스 과정 페이지 지금까지 나는 공부를 하면서 따로 회고하거나 기록하는 습관이 부족했다

Learning Bootcamp