Java EnumSet 을 파헤차다가 다시 마주치게 된 synchronized 키워드운영체제 수업시간에도 잠깐 등장했었는데, 이렇게 다시 만나게 된 김에 제대로 공부해보려고 한다. 참고) 이 글의 내용은 자바의 synchronized 공식 문서에 대한 번역에 가까워질 것 같다. 문제 상황프로세스의 실행 흐름 중 하나인 스레드는 주로 필드와 필드가 참조하고 있는 객체 참조 (object reference) 에 대한 접근 권한을 공유하며 서로 상호작용한다.이와 같은 상호작용 방법은 매우 효율적이지만, 2가지 에러를 발생시킬 가능성이 있다. 1. Thread Interference (스레드 간섭)2. Memory Consistency Errors (메모리 일관성 문제) 그리고 Synchronization(동기..
프로젝트를 하다보면 다중 선택 구조를 구현해야 할 때가 있다.예를 들어, 일자리 중개 서비스를 만들 때 근무 가능 요일을 월화수목금토일 중에서 자유롭게 선택하는 구조가 될 수 있다.이때는 하나만 선택 가능한 것이 아니라, 여러 개를 중복으로 선택할 수 있기 때문에, 사용자의 선택값을 어떻게 데이터베이스에 저장할 지 고민이 필요했다.JPA로 테이블을 구현하면서 이 데이터를 어떻게 저장할 지 찾아보다가 EnumSet 이라는 컬렉션을 알게 되었다.말그대로 Enum 타입 데이터를 갖는 Set 으로 다른 Set에 비해 더 빠르게 읽고 쓰기를 할 수 있다고 한다. A specialized Set implementation for use with enum types. All of the elements in an e..