개발 하는데 아이디어를 구체화 할 노트가 필요 했습니다. 때 마침 스타벅스 다이어리 쿠폰북을 완성해서 스타벅스 다이어리에 적기로 결정 했습니다. 다이어리 이름도 노트키퍼라고 하더라구요.
처음이자 새 프로젝트는 새 노트에 담아야 제 맛이죠!
운영 관리를 위한 페이지를 만들기 위해서 아이디어를 구체화 했습니다.
현재 구인중인 사업체의 정보
현재 구인중인 사업체의 공고 URL
무엇이 필요한지 확인 했습니다. 그리고 어떻게 만들면 좋을지 고민 했습니다.
어떤 데이터구조를 먼저 생각하기 보다 내가 원하는 결과를 얻기 위해 어떤 행동들이 필요한지 먼저 생각했습니다. 그리고 행동에 따라 필요한 객체를 정하고 필드들을 정리 하였습니다.
저는 코드를 작성 하기 전 구조를 정하고 시작 하기로 했습니다. 왜냐하면 42Seoul에서 팀플로 웹 서비스를 만들면서 굉장히 힘들었습니다. 그 때 규칙도 구조도 없이 만들었는데, 자신이 맡은 파트외엔 알아 보기 어려웠습니다.
흔히 Controller에 모른 로직이 담겨 있어서 작은 것 하나 바꾸기가 쉽지 않았습니다. 처음엔 몰랐지만 프레임워크에 종속적인 코드를 작성 했었습니다. 그러던 중 SQLite -> MySQL로 변경하려고 했는데 문법이 조금 다른 점이 있어서 변경 하려면 모든 것을 변경 해야해서 포기한 기억이 있습니다.
이번에는 전에 겪었던 시행착오를 겪지 않기 위해 어떻게 할 수 있는지 검색 하게 되었습니다.
마침내 저는 "낮은 결합, 높은 응집력"의 이점을 갖고 있는 Clean Architecture를 찾게 되었습니다.
밥 아저씨의 클린 아키텍처 링크를 읽어보고 도입 하기로 했습니다.
01일차엔 어떠한 구조를 사용하면 좋을지 선택하고 어떤 원리인지 이해 하기 위해 시간을 소모했습니다.
02일차엔 Company에 관련한 것을 클린 아키텍처 구조를 통해 구현 해보도록 하겠습니다.