개발 환경 별로 서로 다른 application.properties 파일이 필요한 이유application.properties는 스프링 부트 애플리케이션의 설정 파일 역할을 하며, 이곳에는 로그 레벨이나 DB 접속 정보 등 다양한 설정을 작성할 수 있다. 이 정보들은 개발 환경 별로 다르게 설정되어야 한다. 개발 환경은 대표적으로 다음 세가지가 있다.DevQaRelease(혹은 Prod)Dev 환경에서는 개발을 편하게 만들기 위한 환경이 설정돼야 하기 때문에 로그 레벨이 DEBUG나 TRACE 정도가 되어야 하고, 개발만을 위한 DB가 따로 설정돼야 한다. 또한 Release 환경은 사용자가 직접적으로 접하는 환경이기 때문에 로그 레벨이 ERROR 정도로 설정되어야 하고 DB가 별도로 설정돼야 한다. 즉..
release
세마포어(Semaphore)란? 세마포어란 멀티 스레드 환경 혹은 멀티 프로세스 환경에서 공유 자원에 대한 접근을 일부 스레드 혹은 프로세스로 제한하기 위해 사용되는 방법이다. 코루틴 라이브러리 또한 이러한 세마포어를 구현한 Semaphore 객체를 가지고 있는데, 이 Semaphore 객체는 허락을 받은 일부 코루틴만 임계 영역(Critical Area)에 접근할 수 있도록 한다. Semaphore 객체를 쉽게 설명하기 위해, 일반적으로 Semaphore 객체가 가진 '허락(permit)'을 키에 비유해보자. Semaphore 객체는 여러 개의 키를 가지고 있고, 이 키의 개수는 개발자에 의해 설정된다. 이 키들은 바로 임계 영역에 접근할 수 있는 키이며, 이 키를 빌린 코루틴만 임계 영역에 접근할 수..