23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
안녕하세요, AI 서비스 개발을 위한 대규모 시스템 설계 스터디 호스트 송의석입니다.
9월 23일에는 저희 스터디의 다섯 번째 모임을 진행하였습니다.
모임 이전에 각자 『데이터 중심 애플리케이션 설계』 도서의 챕터 7, 8을 읽어오고, 모임에서는 박영훈님과 오종해님이 한 챕터씩 맡아 발표를 진행해주셨습니다.
7장은 영훈님이 발표를 맡아주셨습니다.
트랜잭션은 데이터베이스에서 여러 연산을 하나의 논리적인 단위로 묶어서, 원자성·일관성·격리성·지속성,
흔히 말하는 ACID 특성을 만족하도록 보장하는 개념이라고 하셨습니다.
책에서는 실제 시스템에서 사용하는 다양한 고립 수준과 동시성 제어 기법들을 자세히 다뤘습니다.
직렬성 수준이 가장 강력하지만 성능 손해가 크다는 점, 반대로 약한 고립 수준에서는 팬텀 리드, 더티 리드 같은 문제가 발생할 수 있다는 점을 사례와 함께 설명해주셨습니다.
특히 요즘 대규모 분산 환경에서는 전통적인 ACID 트랜잭션이 그대로 적용되기 어렵기 때문에, 실제 데이터베이스들이 스냅샷 격리나 대체 메커니즘을 활용하고 있다는 점이 인상 깊었습니다.
영훈님이 실제로 에이닷 노트 개발하실 때 겪은 동시성 이슈 사례를 예시로 말씀해주셔서 한층 현실감 있게 느껴졌습니다.
8장은 종해님이 발표를 맡아주셨습니다.
이 장에서는 "분산 시스템에서 마법은 없다"는 말처럼, 네트워크 지연, 프로세스 장애, 클록 동기화 문제 같은 피할 수 없는 어려움들을 짚어주었습니다.
특히 네트워크 신뢰성과 관련된 가정들이 실제와 얼마나 다른지 살펴보면서, "메시지는 반드시 한 번만 전달된다"라는 전제가 얼마나 취약한지를 다시 깨닫게 해주셨습니다.
결국 시스템 설계자는 메시지 손실, 중복, 지연 같은 상황을 항상 고려해야 하고, 이런 전제를 무시하면 대규모 서비스에서 예기치 못한 장애가 발생할 수 있다는 점을 강조했습니다.
또한 시계와 시간 문제도 중요한 주제였습니다.
벽시계는 서버마다 차이가 생기기 때문에 분산 환경에서는 정확한 순서를 보장하기 어렵고, 이를 해결하기 위해 논리적 시계, 램포트 타임스탬프, 벡터 클록 같은 기법들이 사용된다고 하셨습니다.
이번 모임을 통해, 우리가 흔히 당연하게 여기는 데이터 일관성이나 요청 응답 보장이 사실은 매우 까다로운 문제라는 걸 다시 깨달았습니다.
현실을 받아들이고 그 위에 안전장치를 설계하는 것이 결국 좋은 엔지니어링이라는 점이 큰 교훈이었습니다.
스터디를 마무리하고 돌아가는 길에, 스터디가 아니었으면 책을 지금까지 읽지 못했을 것 같다고 서로 얘기했는데요,
저도 요즘 책을 읽으며 들었던 생각이라 공감이 들었습니다. 마지막까지 스터디가 잘 돌아갈 수 있도록 열심히 노력하겠습니다.
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.