오늘의 회고
오늘은 리뷰어님께 리뷰를 받았다.
리뷰어님께 아래 세개의 사항을 질문 드렸다.
- Error handling을 적절하게 하고 있나요?
- 현재 controller, service의 파일을 resource 이름으로(index) 했는데 나중에 서비스가 복잡해졌을 경우에는 이런 방식으로 해도 괜찮을까요?
- log를 관리할 때 폴더를 debug, error, info로 나누어봤는데 이렇게 해도 될까요?
1. Error handling을 적절하게 하고 있나요?
위 질문을 한 이유는 'ts-custom-error' 모듈의 github에서 제공해주는 예시코드 를 그대로 복붙해서 쓰고 있었기 때문이다.
리뷰어님으로부터 "정의되지 않은 에러도 처리할 수 있어야 한다", "try / catch 로 매번 감싸기보다는, throw 를 전파시키고, 최종 에러 핸들러에서 처리할 수 있도록"이라는 답변을 얻었고, 좋은 예외 처리를 위한 블로그 도 추천해주셨다.
이 답변을 통해 내가 무지성 try catch를 사용하고 있다는 것을 알 수 있었다. 좀 고쳐야겠다.
블로그 글도 보면서 공부를 더 해야겠다.
2. 현재 controller, service의 파일을 resource 이름으로(index) 했는데 나중에 서비스가 복잡해졌을 경우에는 이런 방식으로 해도 괜찮을까요?
현재 프로젝트를 mvc 패턴으로 하기로 했는데, model, service, controller 각각 디렉토리 안에 리소스.ts
와 같이 파일로 저장했는데, 만약 프로젝트 규모가 커졌을 때는 어떻게 하는지 궁금해서 질문하였다.
"서비스가 복잡해지면, 좀 더 도메인 위주로 폴더링을 하기도 하고 모듈로 묶기도 합니다", "index.controller.ts / index.service.ts 등으로 주시면, IDE에서 파일 찾아갈때 좀 더 편할 것 같습니다!" 라는 답변을 얻을 수 있었다.
3. log를 관리할 때 폴더를 debug, error, info로 나누어봤는데 이렇게 해도 될까요?
현재 winston의 logger를 활용해 log를 따로 파일에 저장하고 있다. error는 에러가 발생했을 때, debug는 debugging 할 때 찍는 로그, info는 http request를 찍는 로그이다. 각각 폴더를 나눠서 일자 별 파일로 저장하고 있다.
"에러 앞뒤로 맥락이 필요한 경우도 있어서요. 전 하나의 스트림으로 관리하는걸 좀 더 선호하긴 합니다.
특히 최근에는 클라우드의 로그관리 서비스들을 사용하다보니, 파일을 막 분리하고 그러진 않는거같아요." 라는 답변을 얻었다.
이 답변을 통해 내가 인턴할 때 AWS CloudWatch에 남은 로그들이 어땠는지 상기시켜보았을 때 답변처럼 따로 나누지 않았던 것 같다. 하지만, 클라우드에서 로그관리를 하지 않고, 따로 한다면 폴더를 분류하는게 맞는 것 같다.
위의 질문외에 리뷰해주신 내용을 통해 내일 반영할 것과 배운점은 아래와 같다.
리뷰반영 TODO
- lint, prettier 규칙 적용하기
- log 파일 ignore
- util.ts 분리
- package.json
@types/...
는 devDependencies 로 옮기기 - http error외 일반적인 error 처리하기
- socket.end() => finally로 명시적으로 감싸기
- logger.ts -> util폴더로 옯기기
- HttpError -> 파일이름 바꾸기
- http status code 도 enum으로
- 예외가 발생한 곳에서 직접 처리, 예외처리를 null / undefined 리턴으로 처리하지 않기
- socket.write 공통 처리
- url 처리 -> switch / case로 (404 처리하기 자연스러움)
배운 점
타입추론이 되는 경우는 꼭 타입 지정을 안해도 됨
timestamp: ISO 8601 형식을 유지
예외처리를 null / undefined 리턴으로 처리하지 않는 편이 디버깅에 좀 더 유리
리뷰에 대한 질문
class 명은 보통 파스칼 case로 하지 않나요?
클라우드에서 로그관리를 하지 않고, 따로 자체적으로 한다면 폴더를 분류하는게 더 좋지 않나요?
'네이버 부스트캠프 웹・모바일 8기 > 네이버 부스트캠프 멤버십' 카테고리의 다른 글
네이버 부스트캠프 멤버십 5주차 day4 리뷰 회고 (0) | 2023.10.10 |
---|---|
네이버 부스트캠프 멤버십 6주차 회고 (0) | 2023.10.10 |
네부캠 멤버십 5주차 - Day1 회고 (0) | 2023.10.03 |
네이버 부스트캠프 멤버십 1차 학습 스프린트 2주차 회고 (0) | 2023.09.27 |
네이버 부스트캠프 멤버십 1차 학습 스프린트 1주차 회고 (0) | 2023.09.27 |