Community

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

← Go back
6장 동시성
#pragmatic
2년 전
1,111

오늘 TIL 3줄 요약

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

  • 공유 상태 없는 동시성을 위하여 액터를 사용하라.

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

TIL (Today I Learned) 날짜

2022. 05. 25

오늘 읽은 범위

6장. 동시성

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

  • 동시성(concurrency)이란 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것이다. (p.241)

  • 우리는 동시성을 확보해야 한다. 시간이나 순서에 의존하는 시간적 결합을 끊는 방법을 생각해 내야 한다. 그렇게 함으로써 유연성도 얻을 수 있고, 작업 흐름 분석과 아키텍처, 설계 배포와 같은 개발의 여러 측면에서 시간과 관련된 의존성도 함께 줄일 수 있다. (p.244

    )

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

  • '프로세스'는 본래 더 일반적인 가상 처리기로, 보통 운영 체제가 동시성을 지원하기 위하여 구현한다. (p.259)

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

  • 이번 챕터를 이해하기 위해서는 비동기 프로그래밍의 개념에 대해 알고있는 상태에서 읽어야 원만히 받아들일 수 있는 내용이었다. 비동기 프로그래밍은 하나의 요청 처리가 완료되기 전에 제어권을 다음 요청으로 넘겨 Blocking 되지 않으며 다음 요청을 처리하는 방식을 말하고, 이에 더해서 동시성 프로그래밍은 용어 그 자체의 의미로 보자면 동시에 실행되는 것처럼 보이는 프로그램을 말한다.

사진 출처 (동시성 프로그래밍/ 비동기 프로그래밍 (velog.io))

동시성 프로그래밍의 원리는 통장을 만들러 온 n개의 대기열과 한 명 이상의 은행직원으로 이루어진 프로그램으로 비유할 수 있다.

각 다른 대기열이 같은 메모리를 바라보지만 이들이 참조하는 메모리의 값이 서로 충돌하지 않고 액터와 칠판의 작업 흐름 조율을 잘 설계하여 프로그램을 설계해야 겠다고 느끼게 된 챕터였다.

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

  • 세마포어 : 두 개의 원자적 함수로 조작되는 정수 변수로서, 멀티 프로그래밍 환경에서 공유 자원에 대한 접근을 제한하는 방법으로 사용된다. 고전적인 해법이지만 모든 교착 상태를 해결하지는 못한다.

오늘 읽은 다른사람의 TIL