<aside> 💡 이번 프로젝트에서는 프레임워크 없이 채팅 프로그램을 구현하려고한다. 따라서, 서버에서 각 클라이언트의 요청마다 독립적인 스레드로 서비스를 제공해야하기 위해 직접 코드를 작성해야한다….. (Server 소켓이 Client로부터 로그인 요청을 받으면 User를 찾아서 전역변수에 넣었다.) 개발을 끝내고 다중 클라이언트에 대하여 통합테스트를 진행하던 중 사용자에 대한 정보가 동기화가 되지 않는 버그를 발견했다.
이러한 문제가 왜 발생했는지 설명해주세요.
</aside>
→ TLS에 User 정보를 저장하여 해당 유저에 대해 동기화한 후 해당 유저와 다른 스레드로 부터 독립적인 스레드를 사용하여 통신해야 하는데 TLS가 아닌 전역변수(프로세스의 메모리)에 저장하여 맞는 정보를 가져오지 못해 동기화가 되지 않는 것이다.
<aside> 💡 검색 기능에 대해서 테스트 코드를 작성하려고한다. 내가 작성한 쿼리문이 정상적으로 검색 기능을 수행하는지 테스트 코드를 할 것이다. 외부 라이브러리, 데이터 파일로 데이터를 삽입하는 방법이 아니라 테스트 코드 내에서 직접 생성하고 검색하는 기능을 테스트하려고한다.
위 요구사항을 만족하기 위해 사용해야하는 Executor 라이브러리를 이용하여 직접 1,000,000건의 데이터를 테스트 데이터를 넣는 코드를 작성해보자.
</aside>
<aside> 💡 스프링 부트의 내장 톰캣이 병렬 실행 유형방법은 무엇일 까요 ??
</aside>