Junby Log

싱글톤 클래스 관리: Bean vs Static 방식의 차이점

Java와 Spring Boot 프로젝트 개발 시 싱글톤은 자주 사용되는 패턴 중 하나이다. 인스턴스를 하나만 생성하여 메모리 효율성을 높이고 전역적으로 동일한 객체를 사용하기 위해 사용된다. 특히 데이터를 저장하기보다 로직을 처리하는 클래스에서 주로 사용된다. 이 싱글톤 클래스를 관리하는 방법은 여러가지이고, 이 글에서는 Bean 등록 방식과 ...

Preview Image

다중 인스턴스 환경을 고려해서 소켓 통신 동기화

Socket.IO Redis adapter 공식문서 링크 지난 프로젝트를 하면서 채팅, 투표 등 실시간 데이터 반영을 위해 Socket.IO를 사용했었다. 당장은 하나의 인스턴스로 서버를 돌리고 있기 때문에 문제가 없지만, 오토 스케일링을 사용한다고 가정하고 이때 발생할 수 있는 문제를 미리 개선해보기 위해 시도하게 되었다. Socket.IO에서는...

Preview Image

[네이버 부스트캠프] 웹·모바일 9기 멤버십 과정 최종 회고

올해 6월부터 지속된 네이버 부스트캠프 9기 정규 과정이 24. 12. 6 날짜로 막을 내리고, 최종 과정인 멤버십 과정을 수료하게 되었다. 내가 다닌 대학에서는 경험할 수 없었던 많은 경험을 해볼 수 있던 기간이었고, 그동안의 감정과 어떤 과정이 나에게 어떤 도움이 되었는지 등을 적어보겠다. 학습 스프린트 멤버십 초기에는 8주간 학습 스프린트 ...

모노레포 배포 파이프라인 분리하기

게시글, 처음 사용해본 도커로 배포 리팩토링 해보기 지난번에 도커 자동 배포 방식을 개선했었는데, 모노레포였기 때문에 push했을 때 수정된 파일과 관계없이 클라이언트 프로젝트와 서버 프로젝트를 모두 다시 배포하는 상태였다. 하지만 커밋 변경사항에 따라 클라이언트 프로젝트와 서버 프로젝트를 독립적으로 배포할 수 있을 것 같아 개선하게 되었다. 흐름...

[Docker] 처음 사용해본 도커로 배포 리팩토링 해보기

위는 리팩토링 이후 배포 상태이다. 배포 방식을 수정하는 이유 기존에는 클라우드 서버에서 git pull로 최신 커밋을 내려받고, 도커 컴포즈 파일로 빌드 후 그린/블루 배포 방식을 통해 실행하는 구조였다. 하지만, 이 방식은 도커의 장점을 살리지 못하고, 굳이 도커를 추가로 가져가는 느낌이었다. 이런 문제를 해결하고자 도커를 제거할 ...