Community

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

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

오늘 TIL 3줄 요약

  • 동시성의 개념

  • 공유상태는 위험한 상태

  • 공유상태를 해결하기 위한 '액터','칠판' 모델

TIL (Today I Learned) 날짜

2022.03.31

오늘 읽은 범위

6장. 동시성

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

  • 동시성이 겉으로 들어날 떄도 있지만 라이브러리 안에 묻혀 있는 경우도 있다 p242

  • Topic33 시간적 결합 깨트리기

    • 시간이나 순서에 의존하는 시간적 결합을 끊는 방법을 생각해 내야한다.

    • 그렇게 함으로써 유연성도 얻을 수 있고, 작업 흐름 분석과 아키텍처, 설계, 배포와 같은 개발의 여러 측면에서 시간과 관련된 의존성도 함께 줄일 수 있다.

    • 우리는 시간이 걸리지만, 우리 코드가 아닌 곳에서 시간이 걸리는 활동을 찾고 싶다. p247

  • Topic34 공유상태는 틀린 상태

    • 모두 파이 조각을 가져오고 갱신하는 동작이 원자적이지 않기 때문이다. p251

    • 여러분 코드의 인스턴스 둘 이상이 파일, 데이터베이스, 외부 서비스 등 어떤 리소스에 동시 접근할수 있다면 여려분은 잠재적인 문제를 안고 있는 것이다. p256

  • Topic35 액터와 프로세스

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

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

    • '액터'모델에서는 동시성을 다루는 코드를 쓸 필요가 없다. 공유된 상태가 없기 때문이다. p265

  • Topic36 칠판

    • 일종의 '자유방임주의'적 동시성이다.

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

  • 다른이야기지만, 동시성 하니 최근에 엡데이트된 react18의 동시성이 떠올랐다. 브라우저는 단일 스레드로 연산을 처리하기 때문에 큰 연산의 경우 브라우저가 멈추는 문제가 있었고, react는 이러한 문제를 동시성으로 풀어냈다. (어떻게 동시성을 구현했는지 궁금하다...)

  • 공유 상태가 틀린 상태라는 것. 그리고 잠재적인 문제를 안고 있다는 부분에 대해 어럼풋이 알고 있었다. 하지만 공유 상태를 없에는 것은 오히려 더 복잡해질거 같다는 생각이들었다. 물론 책에서 말한 액터나, 칠판 모델이 있었지만, 그또한 수많은 비즈니스가 들어가게 된다면. 디버깅이 너무 어려울거 같다는 생각이 들었다. 뭐가 되었든 현재 비즈니스에 맞는 프로그래밍을 하는것이 베스트라고 생각했다.

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

오늘 읽은 다른사람의 TIL