일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 11053
- 11054
- java
- Spring #Java #Spring Boot
- 9020
- kakaocloudschool
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- sequelize
- 코딩테스트
- Java #코딩테스트
- 파이썬
- SpringTokenizer
- 알고리즘
- kakaocloud
- Java #백준 #코딩테스트
- boj
- Spring #Java #Spring Boot #싱글톤
- 7568
- node
- 15552
- 카카오 클라우드 스쿨
- 카카오클라우드스쿨
- 백준
- 24479
- Java #오븐시계 #백준
- 1110
- Spring
- Spring #Spring Boot #Java
- python
- 2447
- Today
- Total
목록전체 글 (144)
YoungSoo

문제 발생 팀원 중 하나가 Flutter로 개발 중인 Furry-Friend 프로젝트에서 백엔드 서버의 WebSocket Stomp와 연결하는 과정에서 오류를 겪었습니다. 문제 해결 과정 처음에는 Front-end를 Next.js로 개발한 부분에서 문제가 없어 보여 Flutter 코드를 의심했지만, 팀원이 많은 라이브러리와 방법을 시도해도 문제가 해결되지 않았습니다. 그러던 중 Flutter 및 Dart와 WebSocket 연결에 관한 문제 해결을 위한 글을 찾아보았습니다. 이 글을 통해 다른 개발자가 비슷한 문제를 겪었으며 NGINX를 프록시로 사용하고 있었다는 사실을 알게 되었습니다. 그리고 해당 글에서 NGINX 설정에 다음 코드를 추가해야 한다는 정보를 얻었습니다. proxy_http_versio..

Test Driven Developmen 프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 방법론 Red - Green - Refactor 순으로 개발 1. Red - 실패하는 테스트 작성 2. Green - 테스트를 통과하는 최소한의 코딩 3. Refactor - 구현 코드 개선과 테스트 통과 유지 이러한 사이클을 통해 TDD를 했을 땐 1. 복잡도가 늦은, 테스트 가능한 코드로 구현할 수 있음. 2. 쉽게 발견하기 어려운 엣지 케이스를 놓치지 않게 해준다. 3. 구현에 대한 빠른 피드백을 받을 수 있다. 4. 과감한 리팩토링이 가능해진다. 이러한 장점들을 확인할 수 있습니다. 반대로 선 기능 구현 후, 테스트를 작성했을 땐 1. 테스트 자체의 누락 가능성 2. 특정 ..

지난 게시물에서는 WebSocket과 Stomp를 사용해서 pub/sub 방식으로 채팅 서비스를 개발했습니다. 이번 시간에는 이전 채팅 조회와 많은 고민이 있었던 읽음 처리에 대한 글을 작성하려고 합니다. 이전 채팅 조회 이전 채팅을 조회하는 기능에서 요구되는 사항은 아래와 같았습니다. 1. 채팅방 2. 안 읽은 채팅의 개수 3. 마지막 채팅 내용 저는 SQLD 자격증을 보유하고 있어서 세 개를 조회하는 쿼리를 작성하는 것은 어렵다고 생각하진 않았습니다. 하지만 조인과 서브쿼리를 사용해 요구하는 데이터를 조회하게 되었는데, 이 과정에서 N+1 문제와 고민이 생기게 되었습니다. N+1 문제는 하위 엔티티를 조회할 때 상위 엔티티가 같이 조회되는 상황을 말합니다. 이것을 해결하는 방법으로는 지연로딩, 패치 ..

지난 게시물에서는 WebSocket과 Stomp를 사용해서 pub/sub 방식으로 간단한 채팅을 구현하는 실습을 진행했습니다. 이번 게시물에서는 웹 소켓과 Rest API를 통해서 구현한 기본적인 채팅 서비스를 구현해 보겠습니다. 사용자 입장의 채팅 서비스 채팅 서비스를 사용자 입장에서 처음 채팅을 시작할 때 게시글에 있는 채팅 보내기를 통해 채팅방을 구성하게 됩니다. 이때 채팅방과 채팅 참여자가 테이블에 등록이 됩니다. 채팅 목록을 조회하고 채팅방을 선택할 때 WebSocket 연결을 하고 Stomp를 통해 pub/sub 형식의 채팅이 이어지게 됩니다. 이때, 채팅방 고유 번호를 사용해 각 채팅방마다 발신자와 구독자에게만 메시지를 전달하게 됩니다. 필요 의존성 추가 // Chat implementati..