티스토리 뷰

[내가 해야할 것]

1. 단위테스트에 집중을 한다. 이게 TDD 방식.

PointTable에 영향을 받는다. 그런데 단위테스트는 PointService 클래스의 메서드를 테스트하는 것에 집중해야 한다

그래서 주로 Mock Stub Spy를 사용한다.

==> 단위테스트를 하다가 빡세다? 라는 생각을 하면 결합도가 높은것이 아닐까? 라는 생각을 하게 된다.

그러다가 더 나은 구조에 대해서 고민한다. 이게 TDD의 목적

 

2. 동시성 제어할 때 현업에서 synchronize는 현업에서 사용하지 않는다

ConcurrentHashmap을 사용하는게 좋아보인다. 현업에서는 Redis를 사용해서 ConcurrentHashMap 기능을 사용한다.

Queue 방식으로 워크플로우를 만들면 동시성 문제가 해결된다

 

3. 동시성 이슈는 1개의 자원에 대해서 여러 요청에 의해서 수정될 때 발생

 

4. Controller, Service 테스트를 하는 것

각 서비스마다 단위테스트가 통과한다고 해서 전체 프로세스가 통과한다고 보장할 수 없기 때문에

각 서비스 모듈, 레디스 등을 모두 띄워서 통합테스트를 하는 것이다.

 

 

댓글