개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
동시성은 둘 이상의 코드조각이 실행될 때 동시에 실행중인 것 처럼 행동하는 것.
병렬성은 실제로 그렇게 동시에 실행되는 것.
전환실행 가능한 환경에서 가능 하다.
TIL (Today I Learned) 날짜
2022-05-25
오늘 읽은 범위
6장. 동시성
책에서 기억하고 싶은 내용을 써보세요.
동시성& 순서
A메서드는 B메서드 이전에 호출되야 한다는 시간적 결합을 만들게 된다.
우리는 활동 다이어그램 같은 표기법을 사용하여 작업흐름을 기록한다.
작업 흐름 분석으로 동시성을 개선한다.
동시성은 소프트웨어 동작 방식이고, 병렬성은 하드웨어가 하는 것.
비-원자적 갱신 → 세마포어 및 다른 상호 배제 방법
case_semaphore.lock()
if display_case.pie_count > 0
promise_pie_to_customer()
... do Something...
case_semaphore.unlock()
연관있는 모든 프로세스가 세마포어를 사용해야만 정상적으로 동작한다는 한계가 존재
리소스를 트랜잭션으로 고나리하라.
파이 조각을 확인함과 동시에 파이조각에 대한 제어를 동시에 제공
트랜잭션이 없는 갱신
어떤 리소스에 동시에 접근할 수 있다면 잠재적인 문제를 안고있다.
불규칙한 실패는 동시성 문제인 경우가 많ㄴ다.
세마포어,뮤텍스 등등 상호배제 기법
액터는 자신만의 비공개 지역상태(*state)를 가진 독립적인 가상 처리 장치이다.
각 액터는 우편함을 하나씩 보유하고 있으며 메세지가 도착하면 액터가 메세지를 처리한다.
우편함이 비어있으면 잠든다.
액터가 수신하는 메세지에 따라 알아서 실행되기 때문에 동시성이 드러나지 않는다.
‘자유방임주의’적 동시성
법적 요구사항을 캡슐화하는 규칙 엔진과 함께 사용하면 어려움을 해결할 수 있다.
데이터의 도착 순서는 상관없다.
결과의 대한 피드백도 쉽게 다룰 수 있다.
칠판으로 작업 흐름을 조율하라.
메세지시스템 → 카프카 이벤트 로그 형태로 영속성을 제공하고 패턴 매칭 형태로 메세지를 가져오는 것도 지원한다.
하지만 그렇게 간단하지 않다.
추적 아이디를 만들어서 붙이는 기법
연습문제 24 → 네트워크 감시 도구 (칠판 기법에 용이)
일관성이 중요하지 않게 됨
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
공유를 다루는 여러 기법에 대해 공부하였는데, 대학생 때 배웠던 어려운 개념들을 다시 한번 짚고 넘어갈 수 있어서 좋았다.
35토픽 액터와 프로세스는 패턴과 관련하여 좋은 공부가 된 것 같다. 다시한번 복습하면서 패턴과 연관지어 생각해 보자.
메세징 분산 처리 프로젝트인 카프카가 다양한 곳에서 쓰이고 있다고 들었다. 이것도 해보고 직접 공부해봐야겠다.
책을 읽으면서 공부할수록 더 많이 공부해야할 부분들이 보인다. 좋은 자극과 동기부여가 된다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
오늘 읽은 다른사람의 TIL