개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
시간이나 순서에 의존하는 결합을 끊고 동시성을 개선한 작업
엑터와 프로세스를 사용하면 흥미로운 방식으로 동시성을 구현할 수 있다
칠판으로 작업 흐름을 조율하라.
TIL (Today I Learned) 날짜
2022.03.30
오늘 읽은 범위
6장.동시성
책에서 기억하고 싶은 내용을 써보세요.
동시성은 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것, 병렬성은 실제로 동시에 실행되는 것
시간이나 순서에 의존하는 시간적 결합을 끊는 방법을 생각해 내야 한다.
작업 흐름 분석으로 동시성을 개선하라. 활동 다이어그램 같은 표기
동시성을 고려한 설계, 병렬 작업의 기회, 기회를 찾아내서 안전하게 구현하기
공유 상태는 틀린 상태이다.
공유 메모리는 동시성 문제의 원인으로 꼽히지만 수정 가능한 리소스를 공유하는 애플리케이션 코드 어디에서나 발생한다. 불규칙한 실패는 동시성 문제인 경우가 많다.
엑터와 프로세스를 사용하면 흥미로운 방식으로 동시성을 구현할 수 있다. 공유 메모리 접근을 동기화하느라 고생할 필요도 없다.
공유 상태 없는 동시성을 위하여 엑터를 사용하라.
동시성 문제를 예방하기 위해 아키텍처에서 액터와 칠판, 마이크로서비스, 추적 아이디 활용
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
프로그램을 설계할 때 간단하게 다이어그램을 적어보는 데 동시성을 생각한 다이어그램은 생각해보지 못했다. 대체로 시간/순서에 의존한 다이어그램을 작성했었다. 이번에 만드는 작업물에서는 동시성을 생각한 작업 형태를 떠올려 봐야겠다. 마지막 연습 문제에 있는 이미지처리, 칠판 시스템을 구현해보고 싶다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
종업원을 예시로 설명했던 세마포어의 개념 부분은 이해가 되는데 리소스를 트랜젝션으로 관리하라는 부분은 코드가 잘 이해가 안 되어서 문제 해결 과정이 잘 이해가 안 된다.
동시성 문제에 관한 더 다양한 예시가 있다면 이해하는데 도움이 될 것 같다.