목록프로젝트 (21)
미소를뿌리는감자의 코딩
1. 개요비동기 처리를 목적으로한 reactive programming을 구현하려고 한다. 실시간 채팅을 함에 있어서, 비동기 처리가 가능하게 하여, 서버가 DB로 부터 응답을 기다리는 동안 다른 작업을 하여 효율성 있는 서버를 구축하기 위함이다. SSE(Server Sent Event) 연결이 아닌 WebSocket을 선택한 이유는 서버에서 클라이언트로 응답을 보내는 단방향 요청이 아닌, 실시간 채팅인 양방향을 목적으로 하고 있기 때문이다. 또한 webflux를 사용함으로 reactive library 또한 사용하여 준다. [ reactor 구현체의 객체로 mono, flux 사용 ] 서버 프레임워크로 비동기 처리 및 논블록킹 I/O 모델이 가능한 Netty를 선택하여 주었다.일반적으로 Spring에 ..
프로젝트 CI/CD: github actions + Code Deploy 이용. Mongodb, MySQL -> EC2 에 직접 설치.다음 프로젝트 CI/CD: docker 이용 구축 + MySQL의 경우 RDS 이용하여, RAM 아끼기. 이번 프로젝트는 규모가 작은 프로젝트라 생각해서, MySQL을 직접 설치해 주었지만,,, t2.micro 가 버거워 하는 것이 보였기에, 추후에는 RDS를 사용하는 것이 좋을 것 같다. github actions 로 이전 프로젝트 CI/CD를 구축하였었지만, 혼자 다시 구현해보고 싶어서github actions 로 CI/CD 구축을 시작했다. 추후 Jenkins를 이용해서 구축해보고 싶다. https://rachel0115.tistory.com/entry/Github..
> Webflux + Mongodb를 이용한 채팅 구현> Websocket을 이용한 전체 채팅방 구현> S3 bucket을 이용한, 프로필 이미지 저장 [2024/6/9]> chatRoomUser entity 형성을 통한 참여 중인 채팅방만 반환하도록 구성 [2024/06/10]> 친구 연관관계를 맺고, 출력 - lazyInitializationException 발생 [2024/06/11] - @Transactional 을 통해 영속성을 보장하려고 해도 에러가 남 -> why? controller 에서 service로 user를 넘겼다면, 그것을 다시 userRepository에서 findById를 해줘야 함. 아니면, controller에서는 이미 영속성이 마감이 되었기 때문에, 에러가 나게 되는..
https://veluxer62.github.io/tutorials/spring-data-mongodb-reactive-tutorial/ Spring WebFlux - Spring Data MongoDB Reactive tutorialIntroductionveluxer62.github.io implementation 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'이 의존성을 추가해 줌으로 인해 비동기적으로 접근하는 것을 가능하게 한다. "reactive"따라서 비동기적 처리가 가능한 Webflux와 mongodb가 잘 맞는다. 비동기적 -> 작업이 완료될 때까지 기다리지 않겠다.논블로킹 방식 -> thread를 blocking하..