[회고] [월간CS] 가상 면접 사례로 배우는 대규모 시스템 설계 기초 : 4주차

Hyelin Kim·2024년 4월 2일
0

기록

목록 보기
5/5
post-thumbnail

총평 : 너는 생각보다 두루뭉술 하구나

7,8 장까지 읽고 나서 뭔가 복-붙형 학습을 하고 있다고 느꼈다.
5주차 부터 공부 방법을 다음과 같이 변경했다.

1. 해당 설계를 혹은 해당 구현 시스템에서 실제로 사용된 설계 사례 조사
2. TODO스러운 부분들의 경우, 실제로 해당 설명대로 구현해본 코드 조사

공부 방법 전환 결심 이유 : 책으로 뒷통수 맞은 사연

책은 생각보다 더 두루뭉술한 부분이 아주 많았다.

나는 책을 읽기 전 책 제목만으로 이런 부분이 있을거라고 예상상했다.

  • 다소 제너럴한 시스템 설계 케이스 사례
  • (기간이 지났음에도) 해당 시스템 설계가 실제 서비스에 활용된 사례
  • 수치로 보이는 설계 별 성능 차이점

하지만, 책은 내 예상 보다 더 두루뭉술했고 결론적으로 책은 이런 교훈을 주었다.

  • 다소 제너럴한 시스템 설계 케이스 사례 > 네가 조사해야지
  • (기간이 지났음에도) 해당 시스템 설계가 실제 서비스에 활용된 사례 > 이것도 네가 조사해야지
  • 수치로 보이는 설계 별 성능 차이점 > 다른 SW 분야 란다.

그럼에도 읽어도 괜찮은 책인 이유 : 만들 기회가 올 때 보면 괜찮은 책

그럼에도 누군가가 나에게 이 책을 읽어보기 권한다면,
읽어보라고 아주 권하고 싶다.

이 책은 불친절한 서적이다. 세세한 책은 더더욱 아니다.
다만 동시에 어떤 기능을 구현을 할 때, 좀 더 넓고 높은 시야에서
왜 그 언어를 선택했고, 왜 그 프레임워크를 사용해야 하는지
생각해야하는 이유를 보여준 서적이였다.

4주차 요약

7장(ID 생성기) 부분은 꽤 흥미로웠다.

7,8장을 읽으면서 느낀점은
내가 생각보다 지식편식이 심한 사람이라는 점이다.
7장은 그렇게 재미있었고, 8장은 그렇게 지루했었다.

MySQL AUTO_INCREMENT 에 슬슬 지루함을 느끼던 내게 7장은 다른 관점을 제시해준 고마운 챕터였다.

초반, JPA를 학습하면서, 김영한님의 JPA 책을 읽고 나서도 @Id와 관련해서 더 다양한 케이스를 접하고 싶다는 생각이 들었다.

Id 생성의 역할은 데이터베이스만의 역할일까?

7장은 결정적으로 분산환경에서 동작하는 Id 생성 전략을 소개한다.

해당 챕터를 읽고 나서, 프로젝트 관련 질문에 이런 답변을 내놓을 수 있게 되었다.

Q: 왜 @Id AUTO_INCREMENT설정을 하셨나요?
A: 해당 프로젝트는 이용자가 적은 상황이라 
단일 서버, 단일 데이터베이스를 사용하도록 시스템 설계를 했습니다. 
그래서 AUTO_INCREMENT를 이용하여 레코드를 식별하는 개인키로 사용했습니다.

앞으로의 학습 : 사례 중심으로 조사하기

앞으로의 챕터는 주로 구현 케이스에 따른 시스템 설계 사례 위주로 나온다.
그래서 추가적으로 시스템 구현 사례에 대한 개인학습이 더 필요하다고 느꼈다.

🙋‍♀️ 5주차 자진 발표 목표

스터디는 매주 룰렛을 돌려서 발표자를 정한다.
이번주는 일단 챕터를 읽어보고 스터디 발표를 자진해서 하는게 좋다고 생각이 들었다.

profile
마시는 차를 좋아하는 개발자

0개의 댓글