Community

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

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

오늘 TIL 3줄 요약

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

  • 시스템의 규모가 어느 정도를 넘어가면 동시성을 고려하지 않고 코드를 작성하기란 거의 불가능하다.

  • 동시에 혹은 병렬로 작동하는 코드가 신기하던 시절도 있었다. 하지만 이제는 필수다.

TIL (Today I Learned) 날짜

  • 2022.03.30


오늘 읽은 범위

  • 6장 동시성


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

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

  • '이것을 하고, 그런 다음에 저것을 하고.' 하지만 이런 식으로 생각하다 보면 시간적 결합을 만들게 된다.

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

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

  • 동시성을 고려한 설계를 할 때 찾아야 하는 것, 데이터베이스 조회, 외부 서비스 접근 등 이럴 때 CPU가 손가락만 빨면서 기다리는 대신 좀 더 생산적인 일을 할 수 있는 기회이다.

  • 세마포어는 단순히 한 번에 한 사람만이 가질 수 있는 무언가다.

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

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

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


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

  • 나는 코드를 작성하면서 한 번도 동시성, 병렬성에 대해서 생각해 본 적이 없다. 하지만 데이터 베이스를 불러올 때, 외부 API에서 정보를 불러올 때 화면에 무언가를 그린 적은 있다. 이것도 과연 동시성에 해당되는 것일까? 궁금한 점은 서비스의 크기가 얼마나 커져야 만 동시성과 병렬성이 꼭 필요한 것으로 느껴질지였다. 확실히 앞으로 동시성과 병렬성을 생각하며 코드를 작성을 해야 할 거 같지만 아직 많이 와닿지 않는 문제이기 때문에 이번 장은 빠르게 읽고 넘어갔다. 사실 레스토랑에 비유를 하여 내용 이해를 쉽게 해 주었지만 아직은 나에게 어려운 주제이다.

  • 이 책을 계속 읽으면서 내가 얼마나 부족한지 매일매일 느끼곤 한다. 역시 좋은 코더, 실용주의 프로그래머가 되기란 어려운 것 같다. 그래도 코드를 작성하고 내가 작성한 코드가 오류없이 원하는 동작을 하는 것을 볼 땐 너무 행복하다.