Queue 서비스를 이용한 동시성 해결 문제

- 메세지 큐 서비스를 이용할 경우 이러한 방식으로 동시성을 해결하는게 맞는지?
- Listener를 싱글 스레드에서 돌아가게 하면 문제 해결은 쉽지만 처리량이 상당히 낮아질꺼같은데, Listener의 처리 속도도 중요할 경우 해결책은 무엇이 있을지? 이벤트 처리 서버는 Single thread-비동기 non blocking 프레임워크 사용?
- 이런 비동기 이벤트에서 트랜잭션이 어떤식으로 관리되는지?
- 이벤트를 사용하는 로직은 테스트를 어떤식으로 작성하는지?
현업에서의 TroubleShooting 방식
- 정말 해결이 안 되는 문제가 발생할 경우,
- 관리자에게 일정 조정을 전달해두는 방법도 있지만, 전문적인 해결법으로 보지는 않음
- 업무 일정을 기본 설정할때 부터 버퍼를 일정 정도 두는 것이 안정성을 줌
- 단 도메인에 따라 문제를 방치할 수 없을 수 있음
- 가령, 현행법률의 영향을 일정 기간 안에 바로 반영해야 하는 분야(ex. 금융)
Index
- MySQL 워크벤치의 실행 계획(execution plan)을 살펴보고 처리
- 현업에서는 쿼리 검수를 꼭 받자
애플리케이션 전체에 대한 테스트
- 컨트롤러 테스트에서 Service를 Mocking한다면, 서비스 + 컨트롤러 포함한 전체에 대한 테스트는 어떻게 수행하는가?
- 한다면 Postman
- 화면이 있다면 QA팀으로 넘김
- 통합테스트로도 모든 것이 검증되지 않는 경우가 많음
- 현재 코드를 보더라도,
.andExpectAll( status().isCreated(), header().string("Location", Matchers.matchesRegex(host + "api/v0/hwpost/\\d+$"))
스프링 시큐리티 필터 테스트
- JWTProvider도 검증이 필요하다고 생각
- 필터의 등록 여부는 프레임워크 자체에 대한 검증이 되기 때문에 테스트 불필요