[Project] 살아있음을 느낀, 프로젝트

업데이트:


저는 제가 가진 기술을 사용해서 기여할 수 있는 것이 있을 때, 너!무! 행복합니다. 훌륭한 개발자가 되어 일당 백의 역할을 하는 모습을 상상할 때면, ‘퇴근 후 공부를 왜하냐’ 는 질문에 당당히 반문할 수 있습니다. 생각만으로도 행복하니까요.


Spring 프로젝트

Spring으로 웹 최종 프로젝트(2주)를 끝으로 신입사원 공통 교육이 모두 종료되었습니다. 마지막의 이 Spring 프로젝트는 행복함 그 자체였습니다. 대학교 4년 동안 배웠던 것들 하나하나가 다 뭉쳐져서 사용된 느낌이었습니다.


  • 형상관리는 git으로!

    8명이라는 인원이 협업하기 위해서는 git은 필수였습니다. 인원이 많아지면 질수록 파트가 많이 나눠지고, 최종적으로 하나의 서비스를 배포하기 위해서는 긴 말이 필요 없습니다. 작업한 소스코드는 회사 자산으로 public하게 공개할 수는 없지만, git사용과 관련된 내용은 아래에서 찾아볼 수 있습니다. 회사 이외에 개인적으로 하고 있는 토이 프로젝트에서도 git을 많이 사용하고 있어요! 어떻게 사용하는지 궁금하신 분은 참고하시면 될 것 같습니다.

    1. git으로 협업하기

    2. git project 사용하기

    [브랜치 구조]

    image


  • 서버는 분리해야지!

    하나의 서버로 작업하지 않고, 물리적으로 프론트 서버, 백엔드 서버, DB 서버를 나누어 통신하며 시스템을 구성했습니다.

    1. 프론트 서버

      AWS EC2에 NGINX를 설치하여 사용하였습니다. (Vue.js 사용)

    2. 백엔드 서버

      회사가 제공해준 프레임워크(회사서버+Jenkins)를 이용해야 했기 때문에, 해당 환경을 사용하였습니다. (Spring사용)

    3. DB 서버

      DB서버도 회사의 별도 서버를 사용하였습니다. (MySQL사용)


  • 프론트와 백엔드의 속도차이 극복

    백엔드 팀은 본 팀이 구현한 로직이 잘 작동하는지 (테스트 코드 작성하는 방법 말고,,) 웹에서 확인하고 싶어합니다.하지만, 실제 프로젝트를 하면, 프론트가 어떤 프레임워크를 사용할지도 모르고, 프론트가 먼저 구현될 수 있을지도 모릅니다. 따라서, 저희 백엔드 팀은 사용되는 기능을 바탕으로 json응답 스펙을 정하고, json을 넘겨주는 방식으로 모든 기능을 구현하였습니다. 이렇게 되면, 프론트와 백엔드의 개발 속도 차이를 전혀 맞출 필요가 없었습니다.

    그리고 정말 좋은 서비스를 알게 되었는데, 그것은 바로!

    1. postman이라는 서비스입니다.

      단순히 get요청은 그냥 브라우저에서 해도 json스펙을 확인할 수 있지만, post요청은 body에 정보를 담아서 넘겨야 하는데, 이건 어떻게 테스트하죠? 라는 생각이 들때 사용하면 됩니다.

    2. swagger라는 서비스입니다.

      어떤 url로 요청해야 원하는 응답을 받을 수 있는지, 백엔드 팀에서 기능을 만들 때마다

      @GetMapping("product/{id}/detail") => product상세 정보

      이렇게 수작업으로 정보를 넘겨줄 수는 있겠지만, 단순히 url뿐만 아니라, 프론트에서 넘겨주는 정보로 백엔드에서 처리하는 경우도 많고, url이나 json스펙이 수정되면 하나하나 업데이트하기가 곤란합니다. 이럴 때는 어떻게 하죠? 라는 생각이 들때 사용하면 됩니다.


그 외에도

  • git checkout 대신, git switch로 사용하기 (새롭게 알게 된 점)
  • 매일 아침마다 스크럼하기
  • Jenkins 배포툴 사용해보기
  • merge도중 conflict났다면, 침.착.하고 vscode열어서 수정하기 (2주간 50번은 한듯,,)
  • 등등등!!

배운 것도 정말 많았고, 배우면 배울수록 더더 성장하고 싶었습니다.


최종 결과물

블로그 포스팅이 늦어서 각 화면을 캡처하지는 못하게 되었지만, 시연 영상이 있어서 다행이었습니다.

[최종 결과물 시연 영상]


다음 이야기는 대망의 부서 배치 후 이야기,,,, ㅎㅎㅎㅎㅎㅎ 일주일 동안 무슨 교육을 받았고, 저는 어떤 업무를 맡게 될까요?




카테고리:

업데이트: