1. TDD를 사용하는 자바 플레이그라운드, 깨끗한 코드
- 블랙잭 구현
- 최상위 플레이어 컬렉션의 일반 유형을 플레이어 -> 사람으로 변경(플레이어와 상인의 인터페이스)
- UI 변경
- 뭔가 완료되었습니다. 다시 구현하기 전에 클래스와 메서드 내용 간의 종속성을 정렬하는 다이어그램을 그려 봅시다.
2. 혼자 공부하기 위한 컴퓨터 구조 + 운영체제
* 동기화 기술
| 분할 | 특성 |
| 뮤텍스 잠금 | – 단일 공유 리소스 가정 – 상호 배제 동기화 도구 – 잠금 역할을 하는 전역 변수: lock – 크리티컬 섹션 잠금을 담당하는 기능: 획득(크리티컬 섹션이 잠겨 있으면 열릴 때까지 반복 확인, 그렇다면 lock -> lock = true; – 잠금 해제 역할을 하는 함수: release(lock = false;) – 크리티컬 섹션이 잠겨 있는지 반복적으로 확인 -> 바쁜 대기 |
| 신호기 | – mutex lock과 달리 다수의 공유자원을 필요로 하는 방식 – 상호 배제 도구 + 실행 명령 제어 |
| 감시 장치 | – 사용자가 사용하기 편리함 – 프로세스는 하나의 인터페이스(공유 리소스에 액세스할 수 있는 경로)를 통해서만 액세스할 수 있습니다. – 한 번에 하나의 프로세스만 모니터에 액세스할 수 있도록 합니다. – 조건 변수를 사용하여 특정 조건에 따라 프로세스를 실행 및 중지 -> 프로세스 및 스레드의 실행 순서 제어 |
* 막 다른 골목
- The Dining Philosopher’s Problem -> 일어나지 않을 이벤트를 기다리다가 진행이 멈추는 현상
- 자원할당도에 의한 교착상태 표현

- 교착 상태(4가지 조건이 모두 충족되는 경우)
| 유형 | 특성 |
| 상호 배제 | 한 프로세스에서 사용하는 리소스를 다른 프로세스에서 사용할 수 없습니다. |
| 점유 및 대기 | 자원이 할당되어 다른 자원의 할당을 기다리는 경우 |
| 비우대 | 프로세스가 작업을 완료할 때까지 다른 프로세스에 액세스할 수 없는 경우 |
| 환형 대기 | 요구 사항과 할당된 리소스가 프로세스 사이에 원을 형성하는 경우 |
* 나중에 동기화를 위한 도구의 실제 코드 구현을 살펴보겠습니다.
3. 알고리즘
- 프로그래머 – 무인도 여행
- https://ahlight.116
프로그래머 – 무인도 여행
1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머 코드 지향 개발자 모집. 배치 기반 위치 매칭. 개발자 특정 프로그래머 프로필에 등록하고 저와 기술 호환성을 갖습니다.
alight.tistory.com
