JPA와 복합키
erDiagram NoticeDetail ||--|{ Notice : "1:N" NoticeDetail { long id PK string title string author datetime created_at } Notice { string id PK...
erDiagram NoticeDetail ||--|{ Notice : "1:N" NoticeDetail { long id PK string title string author datetime created_at } Notice { string id PK...
Java와 Spring Boot 프로젝트 개발 시 싱글톤은 자주 사용되는 패턴 중 하나이다. 인스턴스를 하나만 생성하여 메모리 효율성을 높이고 전역적으로 동일한 객체를 사용하기 위해 사용된다. 특히 데이터를 저장하기보다 로직을 처리하는 클래스에서 주로 사용된다. 이 싱글톤 클래스를 관리하는 방법은 여러가지이고, 이 글에서는 Bean 등록 방식과 ...
백준에서 단계별 문제 풀기를 통해 Deque를 써보다가 이상한 점을 감지했다. Deque가 원하는 대로 요소를 꺼내지 않았는 문제였다. private static void rotate(int count, Deque<Integer> deque) { for (int i = 0; i < count; i++) { deq...
개발하다가 간혹 비동기 함수를 직접 return할 때가 있다. 처음에는 await을 꼭 붙여줬는데 지금은 await을 붙이지 않아도 된다는 사실을 알게되었다. 왜 await을 붙이지 않아도 되는 걸까? Promise 중첩 아래 코드의 asyncFunction() 함수는 비동기 로직을 수행하고, 가져온 결과 값에 추가 로직(+ 1)을 수행하여 r...
MDN 참조 링크 코딩테스트 문제 풀이 중 계속 실패하여 엣지 케이스를 찾으려 했으나, 아무리 찾아도 엣지 케이스가 나오지 않는 문제가 발생했다. AI의 도움을 받아 array.sort() 부분이 문제라는 것을 알아냈다. 이 sort는 타입을 고려하지 않는다 자바스크립트에서 array.sort()는 배열의 요소를 문자열로 변환한 다음 UTF-16...
Socket.IO Redis adapter 공식문서 링크 지난 프로젝트를 하면서 채팅, 투표 등 실시간 데이터 반영을 위해 Socket.IO를 사용했었다. 당장은 하나의 인스턴스로 서버를 돌리고 있기 때문에 문제가 없지만, 오토 스케일링을 사용한다고 가정하고 이때 발생할 수 있는 문제를 미리 개선해보기 위해 시도하게 되었다. Socket.IO에서는...
올해 6월부터 지속된 네이버 부스트캠프 9기 정규 과정이 24. 12. 6 날짜로 막을 내리고, 최종 과정인 멤버십 과정을 수료하게 되었다. 내가 다닌 대학에서는 경험할 수 없었던 많은 경험을 해볼 수 있던 기간이었고, 그동안의 감정과 어떤 과정이 나에게 어떤 도움이 되었는지 등을 적어보겠다. 학습 스프린트 멤버십 초기에는 8주간 학습 스프린트 ...
게시글, 처음 사용해본 도커로 배포 리팩토링 해보기 지난번에 도커 자동 배포 방식을 개선했었는데, 모노레포였기 때문에 push했을 때 수정된 파일과 관계없이 클라이언트 프로젝트와 서버 프로젝트를 모두 다시 배포하는 상태였다. 하지만 커밋 변경사항에 따라 클라이언트 프로젝트와 서버 프로젝트를 독립적으로 배포할 수 있을 것 같아 개선하게 되었다. 흐름...
네이버 부스트캠프 과정에서 참여하게 된 Naver Cloud Green Developers 후기이다. 간단한 프로젝트 소개를 시작으로 해당 프로젝트에서의 Naver Cloud 적용 과정을 설명하겠다. 프로젝트 소개 - inear Github Inear Web Link 오직 음악으로만 소통할 수 있는 공간을 필요로 하는 아티스트와 팬들을 위한...
위는 리팩토링 이후 배포 상태이다. 배포 방식을 수정하는 이유 기존에는 클라우드 서버에서 git pull로 최신 커밋을 내려받고, 도커 컴포즈 파일로 빌드 후 그린/블루 배포 방식을 통해 실행하는 구조였다. 하지만, 이 방식은 도커의 장점을 살리지 못하고, 굳이 도커를 추가로 가져가는 느낌이었다. 이런 문제를 해결하고자 도커를 제거할 ...