담당 사수분께 배웠던 것들
2022.01.13
동시성을 고려한 프로그래밍 코드를 짜면 동시성에 대해서 늘 고민하게 된다. 여러 WAS 가 동시에 이 코드를 실행 했을 때 이 후 API 나 배치 등등의 작업이 어떻게 될 것인가? 동시에 같은 row 를 select 한 후 상태를 검사하고 다음 코드를 실행하면 어떤 상황이 되는지 고민을 많이 하게 된다. 예를 들어서 인증을 위한 램덤 코드를 생성한다고 가정하자. code 값이 DB에서 unique 제약 조건이 걸려있고 이 때문에 값을 insert 할 때 만든 랜덤의 코드값으로 DB 를 조회하고 이 값이 없으면 insert 를 해서 코드를 생성하는 코드를 짰다. 이 코드에 동시성 처리를 해주지 않으면 어떻게 될까? 고민을 했다. 만약 랜덤의 코드 값을 생성했는데 이 코드가 중복된 코드는 아니고, 서로 다른..