본문 바로가기

전체 글

(229)
사내 코드에서 악취(code smell)가 난다. 2023년 1월 5일 목요일 오후 3:45 사내 코드에서 악취(code smell)가 난다. 입사하면서부터 늘 궁금한게 있었다. 이건왜이렇게 했지? 물론 보다보면 생각보다 잘 짜여진, well-made practice도 존재한다. 늘 보다보면 왜 이렇게 했지? 싶은데 사실은 왜냐는 질문은 성립하지 않는다. 그것은 그때는 최선의 코드였기 때문이다. 그때에는 어쩔 수 없이 작성했지만 지금까지도 스멜이 나는 건 어쩔 수 없는 일이다. 일단 첫번째로, 컴파일타임에 모든것들이 결정된다는 것이다. 고객이 개인고객인지, 법인고객인지도 모르는데, 개인고객이라면 인증방법으로 무엇을 선택할지 아직 결정도 안했는데, 납부방법도 마찬가지다. 코드는 이미 모든것을 알고 있으며, 거의 모든 데이터들을 준비해놓고 if문으로 분기처..
PDD(페이지 주도 개발)는 나쁘다 JSP처럼 페이지단위로 개발이 진행될 경우 거의 모든 데이터는 페이지 상의 어딘가에 표현이되거 나 표현을 위한 조건으로 사용된다 페이지는 독재자다. 데이터는 페이지의 필요에 따라 선택당하며, 강하게 종속된다. 이는 변경에 매우 취약한 구조이다. 물론 이게 꼭 나쁜건만은 아니다. 관리자페이지와 같은 간단한 게시판형태의 화면이라면 더할 나 위없이 좋은 선택이라 생각한다(물론 게시판이 다같은 게시판은 아니지만). 다시 본론으로 돌아와서, 특히 백엔드 아키텍처를 페이지단위로 구성한다면 다음과 같다. PageAController - PageAService ... PageBController - PageBService 데이터는 도메인(모델)의 구조를 가지지 못하며, 그저 데이터쪼가리일 뿐이다. 나는 그런 페이지와 ..
2022년 한해를 돌아보며.. 1 2022년 한해를 돌아보며.. 2 3 오늘로 벌써 입사 2년 5개월 4 하루면 올해도 끝이다. 6 올해는 상당히 뜻깊은 해였다. 7 1. 어렴풋하게나마 이해했던 객체지향을 절차지향적인 회사코드를 리팩터링해보며 DIP에 대해 한층 더 와닿는 느낌을 받을 있었다. 8 객체지향의 핵심키워드로 늘 언급되던 의존성 역전 원칙은 객체지향 설계를 시작할 때 떠올리기엔 다소 난감한 주제이다. 9 객체지향의 핵심은 개별 객체의 역할과 책임이며 올바르게 타 객체와 상호작용을 했을 때 비로소 DIP에 대해 더 잘 생각이 날 수 있었다. 10 11 2. 진로에 대해 확실하게 정할 수 있었다. 12 개인적으로 프론트/백 엔드 나뉘기 이전에 레거시가 있다고 생각한다. 그리고 이 레거시는 프/백 구분이 없다. 그리고 나는 그런..