보라코딩

WW18 본문

개발자가 되었다?

WW18

new 보라 2024. 4. 30. 17:15
240429




< 알림서비스 명세 >
- 1. 진행도 알림 기능(websocket 이용) => controller, 카프카로 받아서 websocket으로 전송되게. page 기능 필요
ㄴ RDB 사용(일정 Data 저장 후 자동 삭제 필요)
  2. Mail, Slack 기능 (DB X)


- 단순 구현은 websocket, mail, slack 모두 완료 (명세에 맞춰 상세 구현 예정)


- 배운 점 : 알림 삭제는 DB에서 삭제하는 것이 아니라 localStorage(FE)에서 적용 (DB에서 지워버리면 한사람이 지운 알람이 다른 사람에게 적용됨)

- localStorage : 영구적으로 정보를 브라우저에 보존할 수 있다. 로컬 스토리지는 물리적으로 저장된다. Local Storage는 사용자가 직접 데이터를 삭제하기 전까지 영구적으로 보관된다. 만료 기간은 설정할 수 없다.






240430




- 알림서비스 DB 적용, pageable 사용해서 list로 가져오기 기능 완료
- 300개 자동삭제 기능 적용 중 (Query DSL 이용)


- OAuth : 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다


- controller와 repository에서 void를 반환하지 말자!


DELETE FROM job_status
WHERE job_id IN (
    SELECT job_id
    FROM job_status
    ORDER BY job_id ASC
    LIMIT (
        SELECT COUNT(*) - 300
        FROM job_status
    )
);

 

 

240502

 

 

 

- try catch 많이 쓰면 성능에 안좋고 목적이 있을 때만 사용하기 (catch부분에서 throw 하는 건 바보 같은 짓이니 주의하자!)
- throw로 계속 던져서 controller에서 @Controlleradvice로 잡자

 

- 다이어그램 좋은 툴 : Miro, eraser.io

- VSC 좋은 툴 : console ninja, hide files, import cost


- slack이랑 mail 명세에 맞춰 진행 중
ㄴ 문제사항 : 카프카 메세지 List로 받아오는 게 안됨

 

 

240503

 

 

- redis : key는 domainName:key:subject로 저장 (ex. "user:234:name", "order:543:status")
   ㄴ 운영전략 : Read Through + Write Around (항상 캐시에 저장한 후 DB에 쓰고, 캐시에서 읽을 때 항상 DB에서 먼저 읽어와서 데이터 정합성 이슈에 대한 완벽한 안전장치 구현!)


- 테스트 코드 작성 (controller, mapper) => service랑 나머지 해야함

- 카프카 List로 못 받아오는 문제 => 해결! 일단 jsonSerializer 문제였으며
   더 큰 문제는 Controller 또는 카프카로 받을 때 List의 타입을 받기보다 dto 안에 list를 받는 것이 좋다!!!!

- 쿼리 dsl 구조 다시 보기!

'개발자가 되었다?' 카테고리의 다른 글

WW20  (0) 2024.05.13
WW19  (0) 2024.05.07
WW17  (0) 2024.04.24
WW16  (0) 2024.04.16
WW15  (0) 2024.04.12