실전프로젝트 후기

JOO·2022년 1월 30일
0

실전프로젝트

목록 보기
11/12

실전프로젝트 후기

1월 28일 마지막 발표를 마지막으로 실전프로젝트가 종료되었다. 솔직히 끝나면 속 시원할 줄 알았는데, 막상 끝나니 시원섭섭한 기분이다.

이번 프로젝트를 진행하면서 많은 것들을 보고 배웠다. 단순 기능 구현에 대한 숙달부터 백앤드 개발자가 가져야 하는 개발 자세와 프론트앤드, 디자이너 분들과의 협업하는 태도에 대한 것들도 많이 배웠다.

백앤드 기능 구현

솔직히 실전프로젝트 시작전에는 내가 하나의 서비스를 시작부터 끝까지 잘할수 있을까에 대한 걱정이 많았다. 이전에 했던 프로젝트는 일주일의 짧은 기간동안 진행되는 프로젝트여서 기초적인 기능 구현의 반복 숙달이라는 느낌이었다. 하지만 실전프로젝트를 기획하면서 기술적 챌린지가 필요할 것 같다는 생각이 들었고, 다시 처음부터 배워서 적용해야 한다는 생각에 걱정이 많았다.
일단 배웠던 기능, 기초적인 기능들부터 구현을 시작하였고, 이후 챌린지가 필요한 부분들은 백앤드 각자 맡은 부분들을 공부하고 리뷰한 후 의견을 모아 기능 구현을 시작하였다.

  • jenkins를 통한 자동배포 구현
  • socket-io를 통한 채팅기능 구현
  • nGrinder를 통한 부하테스트 진행
  • 보안을 위한 아키텍쳐 관련 작업들 (아래 사진)

프론트앤드와의 협업

프론트앤드와의 협업에서도 초반엔 약간의 어려움이 있었다. 서로 최대한 배려하고 조심했기 때문에 감정이 상하는 일은 전혀 없었지만, 어떤 기능을 구현할 때 프론트앤드와 백앤드 중에 어느쪽에서 구현하는 것이 맞는가에 대한 궁금증때문에 많은 어려움이 있었다.
물론 최대한 구글링 후 어느쪽에서 구현하는 것이 맞는지 회의 후 결정하였다.

  • 유효성 검사는 프론트앤드, 백앤드 둘 중 어디서 진행해야 하는가?

IOS에서 발생하는 문제들

해당 주제에 대해서 따로 포스팅했지만, 간단히 말하자면 안드로이드와 웹 환경에서는 전혀 문제가 없던 기능들이 IOS환경에서만 발생하는 경우가 있었다. 한 가지 예를 들면 Token을 서버로 넘길 때 이상하게 IOS에서만 가끔 Token 값 뒤에 ';' 와 같은 세미콜론이 붙어서 넘어오는 경우가 있었다.
심지어 계속 반복적으로 나타나는 경우가 아니라 가끔 어떤 IOS환경에서만 발생되는 문제였다.

이에 서비스 개발기간을 맞추기 위해서 해당 문제의 원인을 찾아보는 것과 동시에 해결을 위한 즉각적인 코드 수정을 하였다.

이후 계속해서 원인을 알아내지 못해 다들 반쪽짜리 개발을 한 느낌을 받았는데, 항해99 멘토 중 한 분이 '원인을 알지 못하더라도 이러한 문제가 있었고, 이렇게 해결하였다 라는 것도 큰 경험이라고 생각한다' 라는 피드백을 해줘서 어느정도 마음을 놓을 수 있었다.

서비스 아키텍쳐

실전프로젝트를 진행하기 전까지만해도 서비스 아키텍쳐에 대한 고민을 한 번도 해본적이 없었다. 하지만 이번 실전프로젝트 초기에 데이터베이스 해킹과 같은 이슈를 겪으면서 서비스 아키텍쳐를 잘 짜는 것이 얼마나 중요한 것인지를 알게 되었다.

아래는 최종 아키텍쳐. 여기서 jenkins용 EC2 서버의 비용을 줄이기 위해서 AWS codepipeline으로 수정할 예정이다.

아무튼 이렇게 실전프로젝트가 끝났다. 아직 리팩토링의 수준이 만족스럽지 않아 조금은 더 수정을 해야겠지만, 그래도 하나의 서비스를 기획, 개발, 배포까지 완료했다는 점이 조금은 만족스럽다. 이제 면접준비 열심히해야지

profile
개발공부 기록

0개의 댓글