ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [2차_PROJECT] Tangway_프로젝트 후기
    나만의 이야기 2021. 1. 28. 19:42
    728x90
    반응형

    뒤늦게 포스트하는 2차 프로젝트 후기!

    t'way Air 클론 프로젝트

    티웨이 클론 프로젝트 여기서 중요한것이 딱 예매 하나만 완벽하게 해내보자는 목표를 가지고 시작하였다.

    (10일 안에 예매만 완벽하게해도 성공이라는 멘토님들의 의견을 적극 수용하였다!!)

    6명 모두 남자이다 보니... 맨날 먹었던 음식말고는 사진이 한장도 없었다.

    실로 놀랍지 않은가? 1차때는 사진이 엄청 났었는데 지나고 생각해보니 너무 아쉽다.

    팀명

    Tangway

    팀원

    Frontend : 최용석(PM), 강경오, 김찬영, 임대호

    Backend : 문승희, 최선우

    개발기간

    2020년 12월 28일 ~ 2021년 01월 08일 (11일)

    기술 스택 (Frontend)

    • HTML
    • ES6
    • JavaScript
    • React(CRA)
    • Sass
    • Redux
    • styled-component

    기술 스택 (Backend)

    • Python
    • Django
    • MySQL
    • AWS (EC2, RDS) // (추가 기술스택)
    • Docker // ( 추가 기술스택)
    • Git & Github
    • Aquerytool
    • RESTfulAPI

    협업 도구

    • Slack
    • Notion
    • Trello
    • Git
    • Github
    • Zoom

    구현 기능

    • 회원가입/로그인 (암호화/ 토큰 인증, 인가)
    • 소셜로그인 (kakao)
    • 메인페이지 메인 국가별 노선정보/부가서비스/비행 노선 이미지 API 구현
    • 추가 탑승자 정보 API 구현
    • 각 함수 단위 Unit Test 구현

     

    ERD (Entity-Relationship Modelling)

    목표 달성도

    본격적인 후기에 앞서 2차 프로젝트의 목표를 얼만큼 달성하였는지 객관적으로 나를 평가해보자

    (1차 프로젝트 마무리 후 잡았던 목표들이다)

    1. 장바구니 CRUD 구현 --> 클론 프로젝트 진행간 장바구니 기능 사용 x 

    2. 소셜 로그인 API 기능 구현 --> 목표 달성! 

    90점

     

    3. Query 수를 줄여가며 효율적인 로직 구성하기 -->

    Query 수를 항상 확인하며 적절한 select 와 prefetch를 사용했다 생각한다! 다만 1차 보다는 그 빈도수가 현저히 적어졌다.

    70점

     

    4. 가능한 프론트 개발자가 구현하고 싶어하는 기능 최대한 서포트해주기 -->

    선택과 집중으로 프론트에서 원하고자하는 기능을 구현하기 위한 API를 모두 구현

    90점 (깔끔하게 API 문서를 만들어 활용했다면 더 효율적이었을 것)

     

    5. 처음 접하는 문제 해결 방법, 함수, 메서드 최대한 많이 접해보기 -->

    점점 구글링을 통해 힌트와 답을 얻어가는 과정에 익숙해지고 있다.

    90점

     

    후기

     

    전반적으로 2차 프로젝트 또한, 성공적이었다.

    2차 프로젝트에서는 Unit Test를 작성하는데 있어 Test Code 작성에 굉장히 많은 시간이 소요되었다.

    1차 프로젝트때보다 더 많은 기능을 구현하지는 못 했지만, 그래도 처음 달성하고자 했던 기능 들은 모두 구현하고 핵심이었던 Unit Test를 접하고 직접 사용해보는 좋은 경험이었다.

    최근들어 TDD {'테스트 주도 개발': 'Test-driven development'} 개발 프로세스가 많이 사용되고 있다고 하는데,

    Unit Test를 먼저 작성하고 로직을 구현하는것이 더 어려울 것 같지만 나름 잘 해결하였고 마무리하였다고 생각한다.

    실제로 TDD로 작업을 해야하는 경우도 잘 헤쳐나갈수 있을 것이다!


    아쉬웠던 점

    위에서도 언급하였듯 2차 프로젝트에서는 Unit Test가 핵심이었다.

    내가 어떠한 기능을 하는 함수를 작성할것이지 그에 따라 일어날 수 있는 모든 경우의 수를 테스트 코드를 작성해 나가며 개발자의 의도대로 작동하는지에 대한 검증으로 개발의 안정성을 높일 수 있다고 한다.

    TDD도 굉장히 많이 사용된다고 하니 이는 빠르게 개발해야하는 스타트업 환경에는 적절치 못할 수 있으나 제품에 대한 성능 및 안정성에 대해서는 확연한 차이를 보일것이다.

    다만, 이 Unit Test로 인해 2차 프로젝트에서는 1차 프로젝트에 비해 좀 더 복잡하고 다양한 정보에 접근하며 쿼리를 줄여가는 것을 눈으로 볼 수 있는 과정들이 괴장히 적었다.

    오히려 1차 프로젝트에서 더 효율적인 로직을 작성하기 위해 고군분투하였던 것 같다.

    아쉬운 점이기도 하지만 동시에 Unit Test에 대해 공부할 수 있어, 굉장히 유익했던 프로젝트였다.


    나의 첫번째 Docker

    1차 프로젝트에서는 "서버" 에 대한 문제점이 있었다.

    어떤 문제냐!!

    바로, 로컬 서버를 하루 24시간 계속해서 나의 개인 컴퓨터를 통해 쉴새없이 돌려야했다.

    브랜치를 바꾸며 작업할때도 머지의 권한이 나에게 없었기에 원하는 기능을 테스트해보고 싶을때는 브랜치를 옮겨 서버를 다시 구동해야하는 불편함이 굉장히 많았다.

    이 문제를 해결하기 위해서 Docker를 사용하여 / 이미지를 만들고 / 컨테이너를 만들고

    이를 RDS에 연동 및 베포해보았다.

    이젠, 내 노트북이 꺼져있어도 얼마든지 Http 통신이 가능하다!

    사실 베포를 해냈다기 보다는 가장~~~~ 기본이 되는 가나다를 땟다고 표현 할 수 있겠다.

    포스팅하는 시점이 기업협업(인턴) 기간으로 이 과정이 얼마나 기초, 기초, 기초적인지 깨닫고 있기 때문이다.

    우선은 위의 문제를 해결했다는 것 하나에 만족하였고

    꼭 적용해보고 싶었던 Docker를 적용한 내 자신에게 다시 한번 만족하였다.

    (TMI : 사실 Docker를 쓰지 않고도 베포가 가능하긴 하다)

    더보기

    포스트했던 TIL.80 AWS_실습2_EC2 & RDS 연동 및 배포 :: muntari Log (tistory.com)에서도

    볼 수 있듯 Docker를 사용하지 않고도 나의 EC2 서버에 RDS를 연동시키는 것만으로도 백그라운드 환경에서 24시간 돌아가게 만들 수 있다.

    그럼 여기서 한가지 의문점이 든다.

    도커가 없어도 베포/운영을 할 수 있는데 왜 도커를 써야할까

    서버를 운영할때 단 하나의 서버만 운영하는 경우는 드물다.

    A서버는 제이콥이 만들고 B 서버는 토니가 만들었다고 가정하자.

    이때 두 서버는 운영체제, 컴파일러, 설치된 패키지등이 모두 일치하기란 쉬운일이 아니다.

    따라서 제이콥/토니 모두 동일한 개발 환경을 사용하기 위해 도커를 사용하며

    정확하게는 도커를 이용해 컨테이너 가상화 기술을 사용한다.

    (Docker는 회사이름이다.)

    실제로는 이보다 더 많은 이유가 있다.

    확장성, 안정성 기타 등등 굉장히 많은 장점들이 존재한다. 이를 알고 이를 배워나가는게 내가 할 일이다!

    지금까지 느낀 바 도커는 굉장히 나이스하다는 것!

     


    조금 더 성장하였는가

    과연 2차 프로젝트 이후에 나는 얼마나 더 성장하였는가

    솔직히 말해서 1차 프로젝트의 성장률이 100이었다면 2차 프로젝트에서는 60정도로 생각한다.

    백지 상태의 도화지에 그림을 그려보자

    1차 프로젝트에서는 큰 집을 그렸다면

    2차 프로젝트에서는 큰 문을 그린것 같다.

    크기에 비하면 비교가 되지는 않지만

    문이 없으면 집에서 누릴 수 있는 당연한 것들이 당연하지 않은 것들이 된다.

    멀리서 그저 보기만 한다면 잘 지어진 집이라 생각할 수 있지만

    어느 순간 보일러가 안되고 물이 안나오고 복층 구조인데 계단이 없는 이상한 집임을 알게될 수 있다.

    설계한 대로 잘 만들어야하며 당연히 설계도도 잘 작성해야 할 것이다.

    그렇다고 1차 프로젝트를 설계도없이 대충 만든 느낌은 절대 아니다! 다만 더 디테일한 부분을 파고든 느낌이 든다.

    그만큼 나에게 와닿는 건 1차 때와는 다르긴 하지만, 다른 사람들과 소통하고 하루종일 함께 프로젝트를 해나가는 과정에서 개발자로서의 나도 성장하였고 사람으로서의 나도 성장하였다고 생각한다.

     

    동고동락한 우리 탕웨이팀!!

    정말 눈뜨고 코딩만한 팀원들에게 진심으로 고생했다는 말을 다시 한번 전한다.

    항상 앉아있고 밖에 나가지도 않아 답답하고 예민한 부분도 있었을텐데 팀원들 덕분에 그럴듯한 결과물을 만들 수 있었고 이번에도 정말 재미있게 프로젝트를 할 수 있게된 것에 대해 감사 인사를 전한다.


     

    정말 너도나도 하는 얘기지만 이렇게 좋은 사람들을 다시 만날 수 있을까 싶을 정도로 끈끈한 무언가가 형성되어 있는 것 같다.

    부디 모두모두 원하는 바를 이룰 수 있는 한해가 되기를 바랍니다.

    15기 모두가 원하는 삶을 살아 갈 수 있도록 응원하겠습니다!!

    다음주 마지막 위코드 후기로 돌아오겠습니다!

     

     

     

    728x90
    반응형
Designed by Tistory.