profile
내 기억보단 내가 작성한 기록을 보자..
post-thumbnail

[Spring] 웹소켓으로 양방향 통신 기능 구현

오픈카톡방을 많이 사용하고 있는데, 이를 가능하게 해주는 WebSocket을 공부하게 되었다. 추후 실시간 공매도 거래나 관련한 실시간 통신에 대해 업무를 맡을 수도 있으니.. 웹 환경에서 우리는 HTTP 프로토콜을 통해 요청과 응답의 구조로 서비스를 이용하고 있다.

2025년 7월 20일
·
0개의 댓글
·
post-thumbnail

[Spring] 동시성 어떻게 처리할까

서론 사이드 프로젝트에서 좋아요 기능을 구현하면서, 동시성 이슈를 마주했다. 어떤 상황에서 발생했고 어떻게 해결했는지 과정을 기록하고자 한다. 본론 > 문제상황 > 4개의 쓰레드로 동시성 테스트를 수행했다. 당연히 4번의 좋아요 API 요청이 발생했기 때문에 좋

2024년 12월 29일
·
0개의 댓글
·
post-thumbnail

[Spring] 캐시스탬피드 어떻게 대응할까

현재 일일 미션 인증 서비스는 로그인 이후 넘어가는 메인페이지로, 미션 리스트를 보여주고 있다. 즉, 사용자들이 접속할 때마다 미션 리스트에 대한 조회 쿼리를 api 서버가 수행하기 때문에, DB I/O 부하를 낮추고, 효율적으로 리소스를 사용하기 위해서 Redis로

2024년 12월 20일
·
0개의 댓글
·
post-thumbnail

[Spring] Spring Batch 오류가 났을 때 어떻게 처리할까?

사이드 프로젝트에서 03시마다 미션을 종료하고, 인증글 미제출 유저를 강제퇴장처리하는 배치를 수행하고 있다. 배치가 돌면서 오류가 발생했을 때, 이를 어떻게 대처할지를 고민하고 적용한 결과를 기록하고자 한다.서론에서 언급한 배치 수행 내용은 boolean 타입의 필드를

2024년 12월 17일
·
0개의 댓글
·
post-thumbnail

[Spring] SSE로 알림 기능 구현하기 with Kafka - (2)

사이드 프로젝트에서 SSE를 활용해 실시간 푸시 알림 기능을 구현했었다.알림 전송에서의 안정성과 신뢰성을 높히기 위해 여러 방면을 고민하다가, Kafka를 도입하게 되었다. Kafka & SSE를 통해 구현한 실시간 이벤트 스트리밍 도입 과정을 기록하고자 한다.Kafk

2024년 11월 27일
·
0개의 댓글
·
post-thumbnail

[Spring] SSE로 알림 기능 구현하기 - (1)

사이드 프로젝트에서 푸시 알림 기능을 도입하게 되었다.기술 스택 채택과 적용 과정에 대해서 기록하고자 한다.알림 기능 요구사항참여중인 미션에 다른 유저가 참여한 경우참여중인 미션에 다른 유저가 인증글을 작성한 경우필수 인증 제츨 요일에 미제출 상태인 경우3가지 기능 모

2024년 11월 25일
·
0개의 댓글
·
post-thumbnail

[디자인 패턴] 서킷브레이커 패턴

최근 서비스 규모가 발달함에 따라 대부분의 서비스들이 MSA로 전환되고 있다. MSA와 같은 분산 환경에서는 서비스가 다른 서비스를 동기 호출하는데, 이때 실패할 가능성이 항상 존재한다.한 서비스에 장애가 발생하고, 다른 서비스가 장애가 발생한 서비스를 호출하는 구조일

2024년 11월 14일
·
0개의 댓글
·
post-thumbnail

[Spring] S3 PresignedUrl 전환하기

서론 사이드 프로젝트를 수행하면서, 미션과 인증글이 생성될 때 이미지 파일을 저장하는데, 서버 리소스 절약, 서버 부하 감소를 이유로 presignedUrl을 적용하게 되었다. 본론 > 기존 이미지 파일 저장 흐름 > 기존에는 클라이언트로부터 API 요청이 들어

2024년 10월 30일
·
0개의 댓글
·
post-thumbnail

[Spring] Test Container를 통한 Repository 계층 테스트하기

최근 테스트 코드를 작성하면서, 이전에 적용했던 인메모리 DB를 기반으로 테스트 하는 방식에 의문점을 가지게 되었다.Repository 계층의 역할은 DB와 의존성을 맺어서 데이터를 주거니 받거니한다. 그러나, Mock이나 InmemoryDB를 통해 테스트를 독립적으로

2024년 10월 24일
·
0개의 댓글
·
post-thumbnail

[Spring] Junit- Multipartfile과 DTO를 전달받는 API 단위 테스트

테스트코드를 작성하면서, form-data타입으로 DTO 객체와 Multipartfile 객체를 받는 컨트롤러 계층에서 마주한 이슈와 해결과정을 기록하고자 한다. 사용자의 프로필을 수정하는 컨트롤러에서, 수정할 닉네임은 DTO 객체로, 프로필 사진은 Multipart

2024년 9월 24일
·
0개의 댓글
·
post-thumbnail

[Kafka] Kafka란?

RabbitMQ를 간단하게 다뤄보면서, 분산 메세지큐 기술에 관심을 가지게 되었다. 엄밀하게 말하자면, 오늘 포스팅할 카프카는 메시지큐 기술이 아닌, 이벤트 브로커 기술이다. 그중에서도 가장 많이 쓰이는 Apache Kafka는 왜 쓰이는지 알아보자.메시지 지향 미들웨

2024년 9월 7일
·
0개의 댓글
·
post-thumbnail

[Spring] Spring-Security Test를 위한 @WithMockUser 커스터마이징

Spring Security + OAuth 2.0 + JWT로 인증·인가를 구현한 프로젝트에서 컨트롤러 단위 테스트 코드를 작성하면서 컨트롤러에 도착하기 전 Filter가 가로채서... Mock 객체를 SecurityContextHolder에 담는 방법을 탐색하다가 해

2024년 8월 27일
·
0개의 댓글
·
post-thumbnail

[트러블 슈팅] JSON 직렬화 및 역직렬화

서론 사이드 프로젝트 수행 중, 팀의 FE 개발자 분이 디스코드로 메세지를 주셨다. JSON 직렬화 이슈로 3가지의 에러를 마주했고 해결 과정을 기록하고자 포스팅하게 되었다. > Object Mapper란? > 역직렬화 : JSON ➡️ Java 직렬화 : Java

2024년 8월 21일
·
0개의 댓글
·
post-thumbnail

[트러블 슈팅] CORS 에러

프론트앤드 개발팀원과 백엔드 서버 API 연계 작업을 하던 중, 악명높은 CORS 에러에 직면했다. CORS 이슈가 무엇이고, 해결 과정에 대해 기록하고자 한다.CORS란 ❓CORS(Cross Origin Resource Sharing)의 약자로, '교차 출처 리소스

2024년 8월 12일
·
0개의 댓글
·
post-thumbnail

[Spring] 예외 처리 전략

서론 사이드 프로젝트를 수행하면서, FE 개발자분이 BE에 API 요청을 날릴 때, 에러가 발생하는 경우 각 도메인과 상황에 맞는 예외 처리를 적용하기 위해 공통 예외 처리를 어떻게 하는지 찾아보고 적용하게 되었다. > Spring의 예외 처리 방법 > Sprin

2024년 8월 6일
·
0개의 댓글
·
post-thumbnail

[DevOps] EC2 - DNS 도메인 등록 및 SSL(ACM) 적용

서론 사이드 프로젝트를 수행 중, 클라이언트단에서 서버로 api를 요청할 때 쿠키에 JWT 토큰을 함께 담아보내는데, 이를 주고받기 위해 SSL인증을 적용하게 되었다. 다만, SSL인증시 DNS 등록이 선행되어야해서 함께 등록하게 되었다. 😭 DNS 등록 2000원

2024년 8월 5일
·
1개의 댓글
·
post-thumbnail

[DevOps] Github Action, Springboot, AWS EC2, Docker을 통한 CI/CD 구축

5월부터 수행했던 사이드 프로젝트의 백엔드 서버 초기 배포를 수행했다. 기존에는 로컬에서 수동으로 Docker Image를 빌드하고 hub에 push한 뒤, ec2에 접속해서 pull하는 방식으로 배포를 진행했었다. 자동배포를 찾아보다가 Github-Action을 활용

2024년 7월 30일
·
0개의 댓글
·
post-thumbnail

[Spring] Spring Batch와 스케줄러 적용

일일 미션을 관리하는 사이드 프로젝트를 수행하면서, 현재 수행중이지 않은 미션을 비활성화하는 로직을 개발했다. 비활성화는 03시에 스케줄러를 통해 처리하기 위해 batch를 공부하다가, Spring batch와 quertz 라이브러리를 통한 스케줄러를 알게되어 적용하게

2024년 7월 19일
·
1개의 댓글
·
post-thumbnail

[Spring] Spring-Security, Oauth2 & JWT를 통한 인증·인가 -2

이전 포스트에 이어서 필터, 핸들러, 엔티티를 구현해보겠습니다.해당 게시글은 다음 강의를 참고하여 작성했습니다.https://www.youtube.com/watch?v=xsmKOo-sJ3c&list=PLJkjrxxiBSFALedMwcqDw_BPaJ3qqbWeB

2024년 7월 5일
·
0개의 댓글
·