책 리뷰4 [책] 좋은 코드, 나쁜 코드 이번에 읽은 책은 좋은 코드, 나쁜 코드입니다. 클린 코드와 비슷한 내용이 많았지만, 저는 이 책이 더 잘 읽혔습니다. 여기서도 당연히 DI(의존성 주입)이 나옵니다. DI를 이용하여 인터페이스에 의존하도록(DIP) 할 수 있고, 이를 염두에 두고 코드를 설계하라고 합니다. 저도 최근에 우아한테크 프리코스 과제를 해보고 있는데, 이를 이용하여 유연한 코드를 작성했습니다. DI를 이용하여 의존성을 느슨하게 하는 것이 매우 중요하다는 것을 다시 알 수 있었습니다. 제일 인상 깊었던 내용은 요란한 실패와 Enum은 확장성을 염두에 두고 코드를 작성하라는 점입니다. public enum GameName { LOL, MAPLE; } public String getGame(GameName gameName) { sw.. 2023. 10. 24. [책] 클린 아키텍처 유명한 책이라서 읽어봤습니다. 이 책에서 자주 등장하는 것이 의존성 역전입니다. 이미 알고 있던 내용이지만 자주 등장했었고, 의존성 역전이 매우 중요하다는 것을 다시 한 번 알 수 있었습니다. 김영한 님의 스프링 기본편에서도 자주 등장할 만큼 중요한 단어입니다. 인상 깊었던 것은 아키텍처를 먼저 설계하지 말라는 내용이였습니다. 추후에 필요하다면 아키텍처를 수정하거나 설계해야 한다고 강조합니다. 사실 처음부터 redis를 쓰고 kafka를 이용하여 뭐하고 이렇게 설계하면 이러한 기술에 의존도가 매우 높아져서 추후에 유지보수하기 어렵기 때문에 이러한 말을 한 것 같습니다. 잘 기억이 나지 않아서 다시 한 번 읽어봐야겠네요. 그리고 의존성을 보통 화살표로 많이 사용합니다. 여기서 순환이 있으면 유지보수 하기 .. 2023. 9. 2. [책] 가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰 이번에 읽은 책은 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 입니다. 평소에 대규모 트래픽 처리에 관심이 있어서 읽어봤습니다. 다양한 시스템을 설계하면서 어느 부분이 문제가 될 것이고, 이를 어떻게 해결할 것인지 점차 발전하도록 시스템을 설계합니다. 인상깊었던 점은 알림 시스템 관련 파트였습니다. 이전에 스타트업에서 인턴을 하면서 모바일 푸시 관련해서 프로젝트를 했었습니다. 그 때 kafka를 이용했었는데, 이 책에서도 메시지 큐를 이용하여 설계합니다. 그 당시에는 이 책을 읽기 전인데도 불구하고 제가 구현했었던 방법이랑 비슷한 부분이 많았습니다. 지금까지는 프로젝트를 진행하면, 대규모 시스템에 대한 고려는 잘 하지 않고 설계를 했었습니다. 하지만 대규모 시스템이 된다면 메시지 큐를 이용하여 .. 2023. 7. 25. [책] 객체지향의 오해와 진실 리뷰 현재 프로젝트를 진행하고 있는 팀원과 이 책으로 스터디를 진행했습니다. 서로 파트를 정해서 읽고 정리하고, 개인 생각을 말하면서 스터디했었습니다. 저는 이 책에 대해 매우 만족합니다. 인상 깊었던 내용 객체의 핵심과 객체를 어떻게 설계할 것인지에 대해 설명을 해줍니다. 객체 간의 협력이 중요하고, 이를 위해 메시지가 필요하며 객체에 집중하기보다는 메시지에 집중하여 설계하라고 합니다. 객체에 집중하게 되면 객체의 데이터부터 만들게 되고, 이는 객체 내부의 데이터를 안 상태에서 메시지를 설계하기 때문에 캡슐화가 깨질 수 있습니다. 이를 데이터 주도 설계라고 합니다. 그리고 이렇게 함으로써 인터페이스로 분리할 수 있고 이는 TDD까지 이어질 수도 있습니다. 이 내용이 인상 깊었는데, 그 이유는 처음 인턴 하면.. 2023. 5. 22. 이전 1 다음