본문 바로가기
일상,생각

파일럿 프로젝트 회고

by applepick 2022. 2. 24.
반응형

회사에서 2달간의 신입 파일럿 프로젝트가 곧 끝납니다. 입사 후 스프링을 처음 배우고 제대로 된 협업을 해보면서 폭풍성장 중입니다.(아마?...) 하하 자바에 익숙하지 않으니, 엄청 엄청 부족한 점을 많이 느꼈습니다. 틈틈이 클린 코드, 이팩티브 자바를 읽고 있는데 아직 이해가 되지 않는 부분이 많아 최대한 적용해보려고 합니다.

이번 파일럿 프로젝트에서 사용한 기술 스택입니다. 2달이 짧다면 짧은시간이고 길다면 긴 시간이지만, 엄청 빠르게 지나갔습니다. ㅠㅠ 저희의 목표는 TDD를 제대로 접목시켜 프로젝트를 진행하는 것이었습니다. 이 부분이 가장 어려웠던 것 같습니다. 테스트 코드를 처음으로 적용해보았는데, 팀원들도 한 번도 작성한 적이 없기에... 제가 직접 테스트 코드 관련 서적을 보면서 best practice를 찾아보고 적용시켰습니다.
http://www.yes24.com/Product/Goods/75189146

자바와 JUnit을 활용한 실용주의 단위 테스트  - YES24

『실용주의 프로그래머』의 앤디 헌트와 데이브 토마스가 알려주는실용주의 단위 테스트!클린 코드의 핵심인 단위 테스트, 어디서 어떻게 시작해야 할까? 책에서는 단위 테스트의 개념과 작성

www.yes24.com

위에 책을 전자 도서로 빌려서 출퇴근시간에 틈틈이 읽어보았습니다. 테스트의 범위를 어떻게 정해야 할지, 커버리지를 어디까지 생각해야 하고, 단위 테스트만 적용할 건지 특정 레이어만 테스트 할 건지, 끊임없이 고민했습니다. 아직도 부족한 점이 너무 많지만 그나마 TDD의 윤곽을 잡아볼 수 있었습니다. 물론 개발 시간은 다른 팀에 비해 정말 정말 오래 걸렸습니다. 그래서 최소한의 요구사항 기능만 설계하고 확실하게 구현하자라는 마인드로 개발했습니다. 실제 로직 구현하는 시간보다 테스트 코드 짜는 시간이 월등하게 높았습니다. 직접 적용해보니, 팀원들의 만족도가 좋았습니다. 코드의 변경에 유연성을 가지고 빠르게 리팩터링 할 수 있다는 장점을 느꼈습니다. (저의 의견에 공감해주고 바로 아묻따 도입해준 팀원들 너무 감사합니다.><)
신규 기능을 개발한다고 해도 다른 기능에 영향을 주는지 테스트를 돌려보면 되서 배포도 빠르게 진행될 수 있었습니다.
앞에서 말했다시피 저는 회사입사 후 스프링을 처음 접해봐서 스프링에 대한 이해가 너무나 부족했습니다. 이래서는 원리도 모르고 개발하면 엉망으로 개발할 것 같기에... 퇴근하고 인프런의 영한님의 강의를 들으면서 스프링의 기본원리 및 이해를 확장시켰습니다.


https://github.com/sungmin69355/inflearn-spring-study

GitHub - sungmin69355/inflearn-spring-study: SOLID 원칙을 Spring에 적용시키면서 강의를 듣고있습니다.

SOLID 원칙을 Spring에 적용시키면서 강의를 듣고있습니다. Contribute to sungmin69355/inflearn-spring-study development by creating an account on GitHub.

github.com

위에 링크는 강의를 들으면서 공부했던 내용입니다.

이번 프로젝트에 클라우드도 접목시켜 aws ec2. 53, docker를 적용해서 배포했습니다. 그 중에서 가장 오래 고민했던 부분이 이미지 처리였습니다. aws s3로 이미지를 외부 저장소로 사용한다면, 서버의 유연성을 확장시킬 수 있습니다. 이미지 처리는 도커 컨테이너 안에 디렉터리를 하나 생성해서 거기서 활용하고 있는데, 만약 서버가 병렬적으로 증식하게 되면, 해당 이미지를 사용 못하는 이슈가 있습니다. 나중에 서버가 증설될 여지가 있을 경우 내부 디렉터리를 걷어내고 s3를 적용해야 할 것 같습니다. 웹서버 1개, DB서버 1개로 분리해서 배포했습니다. 두 서버 다 docker container에 올려 포트를 물려 적용시켰습니다. 도메인도 직접 사서 DNS도 물려봤습니다. 하나 아쉬운건 이번 프로젝트를 해보면서 CI/CD를 적용해보지 못한 것입니다. ㅠㅠ 쿠버네티스를 사용해서 구현해보고 싶었지만 시간이 부족했다고 하면 핑계겠죠? 하하... 개인 프로젝트로 적용해 봐야 할 것 같습니다.

이제 최종 발표만 남았는데, 시연 때 예상치 못한 버그만 없었으면 좋겠습니다.... 하하... 이제는 바빠서 못 읽었던 클린 코드랑 이팩티브 자바를 천천히 읽어보려고 합니다. 되돌아보면 자발적으로 야근도하고, 늦게까지 남아서 공부도 해보고... 힘들었지만, 기억에 많이 남는 것 같습니다. 실무에 직접 가서 이제 부딪치면서 성장해야겠죠?... 하하... 긴 글을 읽어주셔서 감사합니다.





반응형

댓글