[BOOK] 마이크로서비스 아키텍처 구축 – 샘 뉴먼 지음 / 정성권 옮김
아키텍트의 역할은 더 큰 그림을 보고 균형을 이해하는 것이다. (p. 57)
모바일 개발을 진행하면서 늘 고민하던 것이 서버 운영이었다. 고민이 많은 시점 각 개발 리더들에게 던져진 필독서! 모바일시대 서버들은 IDC 환경에서 클라우드 환경으로 넘어가고 있고, 백엔드를 구성하는 서비스도 모듈화가 필요하다. 꼭 서버에 국한되지 않더라도 아키텍트, 기술 리더의 역할에 대한 이야기도 있다.
기술 리더의 역할은 사람들이 스스로 비전을 이해하도록 그들의 성장을 돕고, 비전을 결정하고 구현하는데 적극적으로 참여할 수 있도록 만드는 것이다. (p. 60)
- 무리한 마이크로서비스의 도입보다는 모놀리스에서 시작해서 점진적으로 분해하는 것이 좋다. (p. 7)
- 응집력, 즉 관련된 코드들을 함께 그룹화하려는 힘은 마이크로서비스의 중요한 개념이다. (p. 29)
- 서비스가 무엇을 외부에 드러내고 무엇을 내부에 두어야 하는지 고민해야 한다. (p. 30)
- 변화의 속도가 빨라지고 아키텍처가 수용할 수 있는 환경이 더 유연해지면서 아키텍트의 역할 또한 변화하고 있다. (p. 43)
- 모든 사태에 대해 미리 계획하기보다는 과욕을 부리려는 충동을 절제하고 변화를 받아들이도록 해야한다. (p. 46)
- 시스템 설계상의 결정은 모두 트레이드오프와 관련된다. (p. 49)
- 기술 부채가 누적되면 현실 세계의 부채처럼 지속적인 비용이 발생하며 우리가 지불해야 하는 어떤 것이 된다. (p. 57)
- 느슨한 결합과 강한 응집력 (p. 64)
- DB란 사실상 공유된 매우 큰 API로서 상당히 깨지기 쉽다. (p.78)
- 미들웨어를 멍청하게, 엔드포인트를 지능적으로 만들라. (p. 96)
- 많은 문제의 해답은 결국 자동화로 귀결된다. (p. 175)
- 작은 것들을 모니터링하고 전체 상황을 볼 수 있도록 취합하라. (p. 218)
- 어떤 것이든 고장날 수 있다는 가정을 명심하는 것은 문제의 해결 방법을 다르게 생각하도록 만든다. (p. 276)
- 고장나서 작동하지 않는 시스템보다 느리게 동작하는 시스템이 훨씬 다루기 힘들다. (p.281)