DAY 12,13 오늘 읽은 범위: 6장. 동시성
📚 책에서 기억하고 싶은 내용?
'동시성'이란 동시에 실행 중인 것처럼 행동하는 것을 의미하고,
'병렬성'이란 실제로 동시에 실행되는 것이다.
- 동시성은 파이퍼, 스레드, 프로세스 등을 사용
- 병렬성은 멀티코어나 여러 대의 컴퓨터를 이용
작업흐름 분석을 통해 동시성을 개선하라.
- 시간적 결함 → 동시성, 순서
- 활동 다이어그램을 사용하면서 동시에 수행할 수 있는데도 아직 동시에 하고 있지 않은 활동들을 찾아내서 병렬성을 극대화할 수 있다.
- 엘릭서의 컴파일러
시작할 때 빌드 프로젝트를 여러 모듈로 쪼갠 후, 각각을 병렬로 컴파일한다. 가장 바깥쪽 모듈의 컴파일이 완료되었다는 것은 모든 코드가 컴파일되었다는 것이다. - 동시성을 고려한 설계
자바의 멀티 쓰레드 기능으로 동시성을 고려하게 된다. thread safe
더 깔끔한 인터페이스를 설계하는 방향을 고려한게 된다.
예) C의 strtok보다 Java의 StringTokienizer를 이용한 설계가 유지보수하기에도 더 깔끔하다.
공유 상태는 틀린 상태다.
- 세마포어
상호배제, 뮤텍스, 모니터
단순히 한 번에 한 사람만이 가질 수 있는 무언가
lock/unlock, claim/release - 트랜잭션 없는 갱신
공유 상태 없는 동시성을 위해 액터를 사용하라.
- '액터'는 자신만의 비공개 지역상태를 가진 독립적인 가상 처리 장치다. 우편함이 비어있을 때만 잠든다.
- '프로세스'는 운영체제의 동시성을 위해 구현하는데, 이 챕터에서 프로세스는 액터처럼 만들어 제한적으로 사용하는 경우의 프로세스를 말한다.
- 액터는 관리하는 것이 없고, 외부에서 지역상태 접근이 불가능하며, 일방향 메시지 성격을 띤다.
- 액터는 공유된 상태가 없어 동시성 관리할 필요가 없다.
- 얼랭(Erlang)과 런타임
칠판을 이용해 작업흐름을 조율하라.
- 일반적인 분산 애플리케이션을 작성할 때는 시스템 내부의 모든 분산 트랜잭션과 상호작용마다 서로 구별되는 API 호출을 만드느라 상당한 시간을 소모하기 마련이다.
🤩 오늘 읽은 소감?
이전에 작성한 내용이 개정 전 책이라서 목차가 상당히 달라진 것을 이제 알았다.
그래서 고쳐놓느라 이번에는 저절로 이전 분량도 새로 정리하는 복습시간이 되었던 것 같다.
다행이도 2일의 시간이 주어져서 감사했다.
특히나 아이스크림 스쿱이야기를 하는 부분에서는 복잡한 로직의 코드를 작성했던 경험이 있어 반성하게 됐는데, 이 부분에 대한 자세한 방안을 코드로 보여주면 더 좋았겠다는 생각이 들었다.
공유상태에 대한 개념은 더 학습이 필요할 것 같다.
❓ 궁금한 점이나 잘 이해되지 않는 내용
- 세마포어 처리를 위한 라이브러리
'CS' 카테고리의 다른 글
[IT 5분 잡학사전] Assignment #01 (0) | 2023.01.11 |
---|---|
[실용주의 프로그래머] 7장. 코딩하는 동안 (0) | 2022.03.31 |
[실용주의 프로그래머] Mission 2 - 연습문제 23번 (0) | 2022.03.27 |
2022-03-24 RSS Feed (0) | 2022.03.24 |
[실용주의 프로그래머] 5장. 구부러지거나 부러지거나 (0) | 2022.03.24 |
댓글
최근에 올라온 글
TAG
- 배포
- 노개북
- jdbc
- JIRA
- spring
- SQLD
- AWS
- LifecycleException
- 정보처리기사
- java
- EC2
- intellij
- 정보처리기사 실기
- 오늘의코딩
- 독서후기
- putty
- 실용주의프로그래머
- gradle
- git연동
- 호스팅영역
- 개발도서
- 정보처리기사 필기
- 웹페이지만들기
- ubuntu
- gradle build
- 기술블로그
- 노마드코더
- 북클럽
- filezila
- IT 5분 잡학사전
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함