HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🏠
2차 팀 프로젝트: 오늘의 집
/
❓
멘토님께 궁금한점: 3주차
❓

멘토님께 궁금한점: 3주차

일시
Jul 7, 2022

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

notion image
  1. 메세지 큐 서비스를 이용할 경우 이러한 방식으로 동시성을 해결하는게 맞는지?
  1. Listener를 싱글 스레드에서 돌아가게 하면 문제 해결은 쉽지만 처리량이 상당히 낮아질꺼같은데, Listener의 처리 속도도 중요할 경우 해결책은 무엇이 있을지? 이벤트 처리 서버는 Single thread-비동기 non blocking 프레임워크 사용?
  1. 이런 비동기 이벤트에서 트랜잭션이 어떤식으로 관리되는지?
  1. 이벤트를 사용하는 로직은 테스트를 어떤식으로 작성하는지?

현업에서의 TroubleShooting 방식

  • 정말 해결이 안 되는 문제가 발생할 경우,
    • 관리자에게 일정 조정을 전달해두는 방법도 있지만, 전문적인 해결법으로 보지는 않음
    • 업무 일정을 기본 설정할때 부터 버퍼를 일정 정도 두는 것이 안정성을 줌
  • 단 도메인에 따라 문제를 방치할 수 없을 수 있음
    • 가령, 현행법률의 영향을 일정 기간 안에 바로 반영해야 하는 분야(ex. 금융)

Index

  • MySQL 워크벤치의 실행 계획(execution plan)을 살펴보고 처리
  • 현업에서는 쿼리 검수를 꼭 받자

애플리케이션 전체에 대한 테스트

  • 컨트롤러 테스트에서 Service를 Mocking한다면, 서비스 + 컨트롤러 포함한 전체에 대한 테스트는 어떻게 수행하는가?
    • 한다면 Postman
    • 화면이 있다면 QA팀으로 넘김
    • 통합테스트로도 모든 것이 검증되지 않는 경우가 많음
  • 현재 코드를 보더라도,
    • .andExpectAll( status().isCreated(), header().string("Location", Matchers.matchesRegex(host + "api/v0/hwpost/\\d+$"))
    • 서비스를 Mocking 하더라도 검증하는 부분은 비슷함
    • 서비스 통합 테스트로 내부적인 내용은 검증이 이미 되었음

스프링 시큐리티 필터 테스트

  • JWTProvider도 검증이 필요하다고 생각
  • 필터의 등록 여부는 프레임워크 자체에 대한 검증이 되기 때문에 테스트 불필요