⚙️ Back-End
🎯 이번주 한일 (하면서 느낌점, 배운점)
멘토링 질문사항
- 테스트코드 작성
- 시점? 코드를 작성하고 계속 보다보면 구조를 계속 변경하게되면서 기존 테스트 코드를 폐기하게 된다. 완전히 코드가 안바뀔것같을때 하면 테스트하면 늦는지?
- 협업시에 다른 담당자의 entity에 FK가 설정되어있고 해당 데이터가 없으면 API 테스트 자체가 안되는데 이부분은 어떻게 테스트 해야하는지?
- 단순 구현이 완료된 후에 성능 테스트를 하면서 리팩토링에 들어가고 싶은데 보통 어떤 방식으로 진행하는지?
- DB데이터가 없는데 어떻게 테스트 하는지? 대용량 요청은 어떤식으로 테스트 해야하는지?
- 로컬 개발환경이 다를때 (ex : Redis 설치 유무 ) 다른 사람들도 동일하게 설치해야 하는지?
필요없는 사람은 설치를 안하고 개발하는 방법이 없는지?
- 최초 프로젝트 기획시에 msa구조에 kafka를 사용하면 어떨까 싶었는데 저희 프로젝트에 kafka를 썼을때 어떤 기대효과가 있을지?
- kafka는 주로 대용량 데이터를 다수의 consumer에게 실시간 전송할때 쓴다고 하는데 저희 프로젝트에 적용이 메리트가 있을지??
멘토링 내용요약
- 데이터 타입을 설정할때 WrapperClass 보다는 primitive data Type을 사용할 것, null이 문제가 될 수 있다
- Data Validation을 할 거면 팀 내에서 Convention을 설정해서 Controller에서 하던지, Service에서 하던지 통일할 것
- Transaction을 사용할때 그 비용에 대해서 인지하고 있을 것, 멘토의 의견은 실제 운영환경에서 필요한 케이스를 고려해보면 대부분 쓸일이 없을 것이다.
- 성능 테스트는 구체적으로 성능 대상과 범위를 좁혀서 할 것. 테스트 시행은 보통 script를 작성해서 실행하는 방식으로 진행
- Docker을 사용해서 로컬 환경 충돌문제 해결할 것.
- 테스트 시점은 사람마다 다르지만 완성된 코드의 pr과 함께 올라가야한다.
- 메세징큐는 event-driven을 위해서 주로 사용하고 본 프로젝트에서도 써보는 것 자체는 메리트가 있다. pay 부문에 적용하면 좋을듯.