Table
Search
Table
Search
< 금요일 까지 쳐내는걸 목표로! >
채팅 DB NoSQL DB로 변경 →
Redis DB 따로 띄우기 (ElasticCache) >> 포트 연결
블루/그린 배포 연결(무중단배포)
RabbitMQ >> ECS?
로그 수집 및 엘라스틱 서치에 적재 키바나에서 검색(UT) x
AWS에서 부하테스트
서비스 develop / 기술 develop
소희님의 계획!
•
페이지네이션 쳐내고 Docker Compose와 같은 Amazon Service CDv2.yml 에다가 따로 구현하기
•
RabbitMQ, Redis 따로 띄우기(Docker Compose 처럼? 잘 모르겠음)
•
이후 블루/그린 배포 적용 (+AutoScaling)
준영님의 계획!
•
단체 채팅방 생성 만들기
•
로그 수집 및 엘라스틱 서치에 적재 키바나에서 검색(UT)
해인님의 계획!
•
채팅목록 커서기반 페이지네이션 및 피드백 받은 부분 로직 수정(코드리뷰에서)
•
Redis DB 따로 띄우기 (ElasticCache)
내일은 지금까지한거 코드 정리
동기/비동기에 대해 생각하고 개선하기
로컬캐싱 / 글로벌캐싱 (레디스를 주로 이용함)
면접에서 많이나오는 문제와 관련해서 최종 프로젝트 코드 내 질문
1.
이미지 업로드 하는 코드는 동기로 작동할까요? 비동기로 작동할까요? (동기/비동기) restTemplate/webclient
public String uploadFile(MultipartFile multipartFile, FilePath filePath) {
if (multipartFile == null || multipartFile.isEmpty()) {
return null;
}
String fileName = createFileName(multipartFile.getOriginalFilename());
ObjectMetadata metadata = setObjectMetadata(multipartFile);
try {
amazonS3Client.putObject(
bucketName, filePath.getPath() + fileName, multipartFile.getInputStream(),
metadata);
} catch (Exception e) {
throw new GlobalException(SYSTEM_ERROR);
}
Plain Text
복사
2. 현재 채팅보내기를 할때마다 DB에 저장하고 있는데 사용자가 수천만명이되어서 1초에 몇천만개씩 채팅이 쌓인다면 초당 디비쿼리를 몇천만개씩 요청하게 될텐데 괜찮을까요!? 어떻게 방지할 수 있을까요? (캐싱 관련)
3. 내채팅방 목록, 내친구목록은 자주보는 정보들이여서 볼때마다 api 요청을 해서 내 채팅방목록을 가져올 필요가 없을 수도 있습니다. (왜냐면 자주 갱신되지 않는 정보일 수도 있으니) 이런 경우 어떻게 처리하면 될까요? (캐싱 관련)
캐싱 >> Redis