본문 바로가기

Backend/질문 시리즈

(7)
[Tidy First?] Part3 이론을 읽고 나서 [Tidy First?] Part3 이론을 읽고 나서🔖 주제                                                            Tidy First?는 켄트 벡의 소프트웨어의 설계 진행에서 생기는 고민을 어떻게 받아들였는지에 대한 노하우를 소개하는 책입니다.사내 스터디에서 챕터 별로 읽으며 의견을 나누는 방식으로 진행하고 있으며, 이번 주제는 22챕터~28챕터입니다.책의 전반적인 주제는 "리펙토링"에 대해 이야기합니다."리펙토링은 이렇게 저렇게 해야 한다."보다 리펙토링이라는 행동을 언제, 누구와 어떻게 하는 것이 좋은지 넓은 범위로 설명합니다.📓 설명                                                            구조와..
[Five Lines of Code] 코드 구조 따르기 [Five Lines of Code] 코드 구조 따르기 🔖 주제 Five Lines of Code는 TypeScript를 기반으로 코드를 어떻게 리펙토링하는지 A to Z 형식으로 소개하는 책입니다. 사내 스터디에서 총 13챕터로 나누어 소개하고 있으며, 이번 주제는 코드 구조 따르기 11챕터 입니다 📓 설명 콘웨이의 법칙 "소프트웨어 구조는 개발 조직의 커뮤니케이션 구조를 반영한다." 실용주의 프로그래머라는 서적에서 콘웨이의 법칙을 역으로 이용하는 방법으로 다음과 같은 예시를 이야기합니다. “여러 지역으로 나뉜 팀은 시스템의 모듈화 및 분산화된 소프트웨어를 만드는 경향이 있다.” 개발 결과물을 주고받는 과정에 모듈화를 발생시킬 수 있다. 자료, 동작의 책임이 지역에 묶일 때 분산화를 고려할 수 있다. ..
[Five Lines of Code] 코드 삭제의 미학을 읽고 나서 [Five Lines of Code] 코드 삭제의 미학을 읽고 나서 🔖 주제 Five Lines of Code는 TypeScript를 기반으로 코드를 어떻게 리펙토링 하는지 A to Z 형식으로 소개하는 책입니다. 사내 스터디에서 총 13챕터로 나누어 소개하고 있으며, 이번 주제는 코드 삭제의 미학 9 챕터입니다. 책에서는 리펙토링의 과정에 코드 삭제가 왜 필연적이고 지속적으로 발생해야 하는지 이야기하고 있습니다. 📓 설명 매몰 비용의 오류 매몰 비용(Sunk Cost Fallacy)은 “과거에 이미 소비되거나 투자된 비용으로 현재 및 미래의 의사결정에 관여되는 것”을 말하며 “경제학 및 의사결정 이론”에서 사용되는 개념입니다 책에서는 이를 “의사결정을 왜곡하는 오류”라고 표현합니다. 다양한 관점에서 부..
[질문-시리즈] Validate! 유효성 검사는 어디에서 해야할까? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점이 섞여있어 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 주의! 이번 [질문-시리즈]에는 정해진 답변이 없습니다. 제 주관적인 관점만 가득히 담겨있으니 좋은 답변이 있다면 댓글로 이야기를 해보면 좋을 것 같습니다. 질문: Validate! 유효성 검사는 어디서 해야할까요? Data의 유효성 검사는 어디에서 진행하는 것이 맞을까요? Controller? Service? domain? 이전 포스트에서 Data의 유효성 검..
[질문-시리즈] Data에게 TDA(Tell Don’t Ask)를 적용해야 할까? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점이 섞여있어 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 질문 Request를 검증하는 RequestValidator는 알맞은 방법인가요? 사용자의 요청문인 Request를 검증하기 위해 RequestValidator를 만들어서 검증 처리를 해결했습니다. 그런데 TDA 원칙에 따르면 자신의 정보를 남에게 전달하지 말고 직접 행동(검증)을 하는 방법을 제시하는데, 이럴 경우 구현한 내용인 RequestValidator가 ..
[질문-시리즈] 생성자? 정적 팩토리 메서드? 빌더? [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다. 답변엔 여러 사람들의 관점을 바탕으로 최대한 정리하여 작성하였습니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요. 질문 다들 뭐 사용해? 참여한 프로젝트에서 new 키워드, 정적 팩토리 메서드, 빌더 패턴 등 다양한 방법을 활용하여 인스턴스를 생성하는 것을 보았습니다. 곰곰이 지켜보다 문뜩 이런 질문이 떠올랐습니다. 왜 여러가지 방법을 사용해서 인스턴스를 생성하는 거야? 자문자답을 해보려 하니 마땅히 떠오르는 것은 어… 그냥 편해서? 였습니다. 고민을 해본 적이 없었고 스스로..
[질문-시리즈] 테스트 코드 작성에 대한 피로도가 심해요 [질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변들을 정리한 내용입니다. 해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다. 프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 여러 관점 중 하나일 뿐이라 생각합니다. :D 질문 요구사항을 왜 바꿔! 돌려줘! 프로젝트를 진행하다 보면 기존 코드를 기반으로 테스트 코드를 작성해야 하는 경우가 있고, 처음부터 테스트 코드 기반 개발을 진행할 수도 있습니다. 저 같은 경우 틀이 정해지지 않은 후자의 방법으로 프로젝트를 시작하였습니다. 처음 테스트 코드를 작성할 때는 어떤 범주의 테스트 코드를 작성할지 상의 후 개발을 진행했습니다. 어떤 값을 넘겨주는지 테스트 대상 메서드 내부에서 특정 메서드를 호출되..