이번 회사에서 프로젝트 리더로 진행하면서 여러선택지에서 고민 했다.
- 각 Unit 또는 Domain의 안정성을 위하여 TDD, DDD를 고려할것인가 ?
- Typescript를 이용하여 Type에 대한 체크를 하여 조금더 안정적인 코딩 규칙을 세울것인가?
- 코딩 규칙 (Convention)을 가져야 하는데 어디까지 어떻게 통일 성을 가져가야 할까? (eslint, prettier, husky와 같은 툴을 통해 코드가 통일 되지 않으면 commit을 할 수 없도록 제제 하였다).
- Redux 미들웨어를 thunk를 갈까 saga를 쓸까 혹은 쓰지 않고 갈수 있을까?
- 파일 구조는 어떻게 가져갈 것인가?
- style은 css? scss? styled-component?
- webpack 설정은 ?
- 등등등…
오랜 고민과 스터디를 통해 결정을 해왔고..? 현재는 프로젝트가 잘 완성 되었다. 다만 여기서 드는 생각은 프로젝트를 진행하기 전부터 어느정도 기술들에 대해서 이해하고 있고, 기술이 등장하게 된 의도를 알고 있다면 조금더 현명한 선택들을 하지 않았을까 싶다.
그래서!! 여유시간을 좀 내어서 개발 하기에만 급급했던 기술 스택들을 다시금 정리하고 깊게 이해하는 시간을 갖고 싶다.
현재의 개인적인 프로젝트를 진행하면서 목표는 계속 명확하다.
첫째, 새로운 기술을 써보며 안목을 넓히자.
- 새로운 기술을 무조건 추구한다라는 방향 보다는, 두가지의 기술이 존재할 때 왜 우리 회사에서는 이 기술이 필요한지를 명확하게 알고 접근 하고싶다. 혹은 개발적으로 코드의 가독성을 위함이라던지
둘째, 이제까지 해왔던 Frontend와 Node.js의 위대함을 통해 Full-stack으로 Application을 구현하자.
- 예전 Codestate라는 부트캠프를 통해 프로젝트를 backend로 참여를 하면서 node.js를 느끼게 되었고, 학교에서만 배우던 각잡힌 backend보다는 좀더 유연한 backend를 느끼게 되었다.
- 당시에는 java가 아닌 javascript, RestAPI가 아닌 Query 방식의 GraphQL, RDB 방식이 아닌 NoSQL 방식 등, 새로움을 많이 느끼게 되었다.
- 현재는 Frontend로 쭉 재직을 하면서 당장 앞에 놓여진 문제를 해결 하기에 급급했으나.. Frontend Developer가 아닌 Engineer가 되고싶다.
