Community

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

← Go back
TIL#10_2022-05-25
by bora
#pragmatic
2년 전
796

오늘 TIL 3줄 요약

  • 우리는 동시성을 확보해야 한다.

  • 공유 상태는 틀린 상태다.

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

TIL (Today I Learned) 날짜

2022. 05. 25

오늘 읽은 범위

6장 동시성

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

  • '동시성'은 둘 이상의 코드 조각이 실행될 때 동시에 실행 중인 것처럼 행동하는 것이다. 그리고 '병렬성'이란 실제로 동시에 실행되는 것이다.

  • 액터 모델에서는 프로세스들이 독립적으로 수행되며 서로 데이터를 공유하지 않는다. 대신 채널을 통해 잘 정의된 단순한 의미론을 사용하여 의사소통한다.

  • 시간에는 우리가 신경 써야 할 측면이 두 가지 있는데, 동시성(동시세 일어나는 일들)과 순서(시간의 흐름 속에서 일들의 상대적인 위치)다

  • 결과적으로 분석하기 더 쉽고 응답속도도 더 빠르며 더 안정적인 시스템을 만들 수 있을 것이다.

  • 우리는 동시에 일어나도되는게 뭐고, 반드시 순서대로 일어나야 하는 건 어떤 것인지 찾아내길 원한다.

  • '활동 다이어그램'같은 표기법을 사용해서 작업 흐름을 기록하는 것이 한 방법이다.

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

  • 일반적인 형태는 커다란 작업을 독립적인 부분들로 쪼개서 병렬로 각각 처리한 다음, 결과를 합치는 것이다.

  • 문제는 어느 프로세스도 자신이 보는 메모리가 일관되어 있음을 보장할 수 없다는 점이다.

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

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

  • 리소스를 공유하는 환경에서 동시성은 어렵다.

  • 액터와 프로세스를 사용하면 흥미로운 방식으로 동시성을 구현할 수 있다. 공유 메모리 접근을 동기화하느라 고생할 필요도 없다.

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

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

  • 액터는 언제나 동시성을 띤다.

  • 컴퓨터 기반의 칠판 시스템은 원래 음성 인식, 지식 기반 추론 시스템 등 해결해야 할 문제의 규모가 크고 복잡한 인공 지능 애플리케이션에서 사용되었다.

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

  • 프로그램 유지보수를 하다보면 언제나 문제가 되는건 메모리 공유에 의한 데이터가 의도치 않게 변하는 상황을 맞이할 때가 분명히 있었다. 항상 개발 마감시간에 쫓겨서 머리로는 알지만 심도있게 동시성이나 자원공유에 대해서 처리하지 못하고 지났던 프로젝트들에 대한 반성을 하게 되었다.

  • 역시나 개념적인 글보다 코드를 읽으면서 이해가 잘된다.. 개념에 대한 공부를 더 열심히 해야지 ㅠ

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

오늘 읽은 다른사람의 TIL