Topic 33 시간적 결합 깨트리기
- 서동우: 우리는 동시성을 확보해야 한다. 시간이나 순서에 의존하는 시간적 결합을 끊는 방법을 생각해 내야 한다. 그렇게 함으로써 유연성도 얻을 수 있고, 작업 흐름 분석과 아키텍처, 설계, 배포와 같은 개발의 여러 측면에서 시간과 관련된 의존성도 함께 줄일 수 있다. 결과적으로 분석하기 더 쉽고 응답속도도 더 빠르며 더 안정적인 시스템을 만들 수 있을 것이다.
- 남혜민: 우리는 동시성을 확보해야 한다. 시간이나 순서에 의존하는 시간적 결합을 끊는 방법을 생각해내야 한다.
- 장준환: 다른 부분 작업을 기다릴 필요 없이 진행할 수 있으면 좋다. 일방적인 형태는 커다란 작업을 독립적인 부분들로 쪼개서 병렬로 각각 처리한 다음, 결과를 합치는 것이다.
- 변현정: 동시성은 소프트웨어 동작 방식이고, 병렬성은 하드웨어가 하는 것이다.
- 엄나윤: 동시성은 소프트웨어 동작방식으로 작업을 프로세스에 나누어 준다면 전체 소요시간을 단축할 수 있다. 시간이나 순서에 의존하는 시간적 결합을 끊는 방법을 생각해내야한다.
- 이정근:
- 서비스를 사용해서 설계하라
- 언제나 동시성을 고려해 설계하라
Topic 34 공유 상태는 틀린 상태
- 서동우: 리소스를 공유하는 환경에서 동시성은 어렵다. 이 문제를 직접 풀려고 한다면 고난의 연속일 것이다.
- 남혜민: 리소스를 공유하는 환경에서 동시성은 어렵다.
- 장준환: 여러분 코드의 인스턴스 둘 이상이 파일, 데이터베이스, 외부 서비스 등 어떤 리소스에 동시에 접근할 수 있다면 여러분은 잠재적인 문제를 안고 있는 것이다.
- 변현정: 공유 메모리는 동시성 문제의 원인으로 많이 지목받는다. 하지만 사실 수정 가능한 리소스를 공유하는 애플리케이션 코드 어디에서나 동시성 문제가 발생할 수 있다.
- 엄나윤: 공유메모리는 동시성 문제의 원인으로 많이 지목 받는다.
- 이정근:
- atomic Type
- 수정가능한 공유는 하지말자
Topic 35 액터와 프로세스
- 서동우: 액터 모델에서는 동시성을 다루는 코드를 쓸 필요가 없다. 공유된 상태가 없기 때문이다. 엑터가 수신하는 메세지에 따라 알아서 실행되기 때문이다.
- 남혜민: 액터 모델에서는 공유된 상태가 없기 때문에 동시성을 다루는 코드를 쓸 필요가 없다. 액터가 수신하는 메시지에 따라 알아서 실행된다.
- 장준환: 모든 메시지는 일방향이다. 답장이란 개념은 없다. 공유 상태 없는 동시성을 위하여 액터를 사용하라.
- 변현정: 액터들은 아무것도 공유하지 않으면서 비동기적으로 동시에 실행된다.
찾아보세요 - 자바, 스칼라 Akka 프레임워크
- 엄나윤: 공유 메모리 접근을 동기화하려 고생할 필요도 없다.