본문 바로가기

전체글118

2025년 개인 회고 0. Intro1월 1일 어머니와 올랐던 등산로의 차가운 공기가 아직도 생생한데, 벌써 성수동의 새로운 자취방에서 한 해를 마무리하고 있습니다.1년 내내 이어진 스터디와 이직 준비, 그리고 백엔드 개발자로서의 3개월까지. 쉼 없이 달려온 2025년의 마디마디를 되짚어보며, 제가 배운 것들과 느낀 감정에 대해 기록해 보려 합니다.1. 생활등산한 해의 시작이었던 1월 1일, 어머니와 새벽에 일어나 집 근처에 있는 산을 올랐다. 어두운 밤속에 뚜벅뚜벅 등산하는 어머니와 나. 정상에 도착해서 일출시간이 지났지만, 아쉽게 구름에 가려 일출을 보지 못했다.하지만, 산 정상에서 풍경을 내려다 보며 앞으로 마주할 '도전'을 이겨내자고 다짐하였다. 하산하고 어머니와 함께 어묵 하나를 먹으며 1월 1일의 시작되었다.어머.. 2026. 3. 6.
Github Actions를 활용한 이미지 빌드 자동화 파이프라인 구성 목차개요AWS EC2 인스턴스 만들기Docker 설치Github Actions 을 이용한 파이프라인Workflow 파일 작성Workflow 트리거 전략Docker 이미지 빌드 및 배포EC2 자동 배포 프로세스Secret 환경 변수 설정배포 플로우결론1. 개요AWS 프리티어 한도 안에서 서버를 구축하는 것을 목표로 한다.즉, 가장 간단한 형태로 웹 애플리케이션을 배포할 예정이고 이를 작성해보려고 한다.간단하게 ec2를 빌리고 Docker를 이용해 앱을 실행시키고 네트워크를 설정시켜서 외부에서 접속 가능하게 할 것이다.2. AWS EC2 인스턴스 만들기먼저 AWS 인스턴스를 만들어 주어야 한다.EC2 → 인스턴스 → 인스턴스 시작을 클릭하여 이름을 설정해주고 AMI 플랫폼 이미지를 선택해준다.나는 Amazo.. 2025. 12. 12.
[TroubleShooting] 브라우저 쿠키 이슈로 특정 계정 로그인 실패 해결 방안 목차마주한 문제문제 해결 과정성과결론1. 마주한 문제운영 서버의 특정 계정만 로그인 시 JWT쿠키가 생성되지 않아 로그인 실패가 발생하였다.로그인 시도 시 토큰을 갱신과정에서 JWT 토큰을 쿠키에서 읽지 못함.크롬/엣지 등 다른 브라우저에서도 동일 현상.운영 로그를 확인해보니 로그인 시도 시 NullPointerException 발생다른 OAuth 쿠키(access_token, refresh_token)는 정상 생성됨즉, JWT 토큰 자체는 생성되는데 쿠키로 저장되지 않아 로그인 흐름이 끊어지는 문제였다.2. 문제 해결 과정1. NPE 발생 지점 확인String token = CookieUtils.getCookie(request, CookieUtils.JWT_TOKEN).getValue();getCook.. 2025. 12. 9.
같은 패키지에 있는데 왜 못읽지? JsonUtils.read() 의 비밀 목차개요삽질의 여정첫 번째 가설 : 파일 경로가 틀렸나?두 번째 가설: 코드 문제?Eclipse vs IntelliJ 빌드 방식 차이 Eclipse 의 자동 복사 기능왜 IntelliJ와 차이가 있는가?해결 방법가장 확실한 방법: resources 폴더 사용Gradle 프로젝트 설정결론1. 개요테스트 코드를 살펴보던 중 이상한 일이 발생하였다. 분명 테스트 코드에 작성된 같은 패키지에 request_1.json 파일을 두었는데, 계속 NullPointerException이 발생하는 것이다.String requestDto = JsonUtils.read( ReportCreateServiceTest.class, "request_1.json"); // NullPointerException 발생! ?.. 2025. 11. 21.
장애 전파를 방지하기 위한 Circuitbreaker로 조회수 백업시스템 만들기 목차개요조회수 설계Circuit breaker주의 할 점그렇다면 어떻게 적용하는 것이 좋을까?더 나아가기1. 개요프로젝트를 진행하면서 각각의 게시글에 대한 조회수를 어떻게 처리할까 고민을 하였다.게시글 중 인기 게시글의 경우 조회수를 Database로 올리게 된다면, DB의 부하가 심해질거를 예상하여 Redis 캐시를 도입하였다.이때 운영중인 Redis에 장애가 생긴다면 조회 요청이 실패할 뿐 아니라 지연된 응답으로 다른 서비스들에게도 영향을 미칠 수 있다.2. 조회수 설계게시글의 댓글, 좋아요 수의 경우 관계형 데이터베이스를 사용해 데이터의 일관성을 지키고 안전한 저장소에 영구적으로 저장했다. → 하지만 디스크 접근 비용과 트랜잭션 관리 비용이 크다. 반면, 조회수는 데이터 일관성이 덜 중요하고 트랜잭.. 2025. 8. 17.
비밀번호 재설정링크로 이메일 전송 기능 구현하기 목차개요비밀번호 찾기 설계토큰 설계 (Redis vs DB)구현결론1. 개요이메일이나 SNS 계정 로그인 같은 방식이 현재는 많이 대중화되어 있지만, 아직도 많은 서비스가 자체 계정 시스템을 사용하고 있으며, 사용자는 종종 비밀번호를 잊어버린다.이때 재설정 기능이 없다면 사용자는 로그인을 포기하거나 서비스를 이탈할 확률이 있다.비밀번호 재설정 기능은 다양한 사이트에서 여러가지 제안을 제시한다.그 중 제 프로젝트의 경우 이메일을 이용해 ID를 만들기 있으므로 이메일인증을 통해 재설정 하는 기능을 만들어보려고 한다.2. 비밀번호 찾기 설계사용자가 이메일 입력 후 비밀번호 재설정 요청서버가 1회용 토큰을 생성해 저장토큰이 포함된 재설정 링크를 이메일로 발송사용자가 링크 클릭 → 새 비밀번호 입력 화면으로 이동.. 2025. 5. 20.