Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL. 6장 동시성
#pragmatic
2년 전
577

오늘 TIL 3줄 요약

동시성은 둘 이상의 코드조각이 실행될 때 동시에 실행중인 것 처럼 행동하는 것.

병렬성은 실제로 그렇게 동시에 실행되는 것.

전환실행 가능한 환경에서 가능 하다.

TIL (Today I Learned) 날짜

2022-05-25

오늘 읽은 범위

6장. 동시성

책에서 기억하고 싶은 내용을 써보세요.

Topic 33 시간적 결합 깨트리기

  • 동시성& 순서

  • A메서드는 B메서드 이전에 호출되야 한다는 시간적 결합을 만들게 된다.

  • 우리는 활동 다이어그램 같은 표기법을 사용하여 작업흐름을 기록한다.

    • 작업 흐름 분석으로 동시성을 개선한다.

    • 동시성은 소프트웨어 동작 방식이고, 병렬성은 하드웨어가 하는 것.


Topic 34. 공유 상태는 틀린 상태

  • 비-원자적 갱신 → 세마포어 및 다른 상호 배제 방법

case_semaphore.lock()
if display_case.pie_count > 0
	promise_pie_to_customer() 
	... do Something...
case_semaphore.unlock()
  • 연관있는 모든 프로세스가 세마포어를 사용해야만 정상적으로 동작한다는 한계가 존재

  • 리소스를 트랜잭션으로 고나리하라.

    • 파이 조각을 확인함과 동시에 파이조각에 대한 제어를 동시에 제공

  • 트랜잭션이 없는 갱신

    • 어떤 리소스에 동시에 접근할 수 있다면 잠재적인 문제를 안고있다.

    • 불규칙한 실패는 동시성 문제인 경우가 많ㄴ다.

  • 세마포어,뮤텍스 등등 상호배제 기법


Topic 35. 액터와 프로세스(*복습해볼만한 중요한 토픽)

  • 액터는 자신만의 비공개 지역상태(*state)를 가진 독립적인 가상 처리 장치이다.

  • 각 액터는 우편함을 하나씩 보유하고 있으며 메세지가 도착하면 액터가 메세지를 처리한다.

  • 우편함이 비어있으면 잠든다.

  • 액터가 수신하는 메세지에 따라 알아서 실행되기 때문에 동시성이 드러나지 않는다.


Topic 36. 칠판

  • ‘자유방임주의’적 동시성

  • 법적 요구사항을 캡슐화하는 규칙 엔진과 함께 사용하면 어려움을 해결할 수 있다.

    • 데이터의 도착 순서는 상관없다.

    • 결과의 대한 피드백도 쉽게 다룰 수 있다.

    • 칠판으로 작업 흐름을 조율하라.

  • 메세지시스템 → 카프카 이벤트 로그 형태로 영속성을 제공하고 패턴 매칭 형태로 메세지를 가져오는 것도 지원한다.

  • 하지만 그렇게 간단하지 않다.

    • 추적 아이디를 만들어서 붙이는 기법


연습문제 24 → 네트워크 감시 도구 (칠판 기법에 용이)

일관성이 중요하지 않게 됨

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • 공유를 다루는 여러 기법에 대해 공부하였는데, 대학생 때 배웠던 어려운 개념들을 다시 한번 짚고 넘어갈 수 있어서 좋았다.

  • 35토픽 액터와 프로세스는 패턴과 관련하여 좋은 공부가 된 것 같다. 다시한번 복습하면서 패턴과 연관지어 생각해 보자.

  • 메세징 분산 처리 프로젝트인 카프카가 다양한 곳에서 쓰이고 있다고 들었다. 이것도 해보고 직접 공부해봐야겠다.

  • 책을 읽으면서 공부할수록 더 많이 공부해야할 부분들이 보인다. 좋은 자극과 동기부여가 된다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

오늘 읽은 다른사람의 TIL