춤추는 개발자

[SSAFY] 1차 프로젝트 - 여행 정보 제공 서비스 본문

Developer's_til/프로젝트 요약

[SSAFY] 1차 프로젝트 - 여행 정보 제공 서비스

Heon_9u 2021. 7. 30. 19:44
728x90
반응형
📢 SSAFY 정책상 해당 프로젝트의 Github 저장소는 private입니다.

 

💻 프로젝트 페이지와 구조

서비스 페이지
프로젝트 구조

🧑 맡았던 역할

  • 백엔드: Springboot와 Mybatis로 Rest API 제작, Swagger로 API 문서화 및 테스트 진행
  • 데이터베이스: MariaDB를 기반으로 HeidiSQL 툴에서 DB 구축/관리

💪 기여한 점

  • Controller, Service, Dto, Dao에 따라 Rest API 제작
  • Mybatis로 분산된 쿼리문을 XML기반으로 한번에 관리
  • Springboot에 Swagger를 적용하여 API를 손쉽게 테스트하고, 팀원들과 문서화된 API 공유하며 효율적인 협업을 이끌어냄

✅ 아쉬웠던 점

  • 비즈니스 로직을 Service에서 구현해서 웹 계층간의 코드 분리를 못함
  • 쿼리문을 작성하는 시간이 많았고, 단순 DML 밖에 없었음
  • Getter/Setter와 스프링에 빈을 주입하는 방식이 코드의 유지보수성을 떨어트림
  • 소셜 로그인 기능의 부재
  • 테스트할 때마다 톰캣을 재부팅하며 개발 시간 지연

🛠 개선해야할 사항

  • Domain 패키지를 구축해서 비즈니스 로직 구현하기
  • JPA 활용하며 중복되는 쿼리문 없애기
  • lombok으로 Dto코드를 간결하게 만들면서, 생성자로 빈 주입하기
  • Spring Security와 OAuth2.0 도입하기
  • JUnit으로 테스트 코드 작성하며 빠르고 손쉬운 테스트 진행하기

💡 프로젝트 진행하며 발생한 이슈

  1. 특별히 기술적인 문제는 없었음
  2. Springboot 프레임워크를 처음 사용해봤기 때문에 프로젝트 초기, 크고작은 에러가 많았음
  3. Java를 모르는 팀원이 있어서 제작한 API를 공유하기 어려웠음

🔑 해결책

  1. 기술적인 문제보다 협업하는 상황에 맞춰서 적절한 기술 적용
  2. 매일 2시간씩 아카데미에 남아서 Springboot 공부, MVC패턴과 API를 구성하는 객체들, Annotation에 대해 배우게 됨, 이외에 Swagger와 Mybatis라는 기술을 습득하며 적용
  3. Springboot에 Swagger를 적용하여 API를 문서화, 팀원들과 API를 공유하기 편해졌고, Java를 모르는 팀원도 금방 이해할 수 있게 됐다. 또한, API를 빠르게 테스트하며 완성도를 높일 수 있었다.

 

🙋‍♂️ 전체적인 느낀점

 프레임워크를 처음 접했을 때, 개발 환경을 갖추는데만 오랜 시간이 걸려 당황스러웠다. 하지만, 매일 공부와 병행하며 프로젝트를 진행한 결과, 사소한 이슈들을 90%이상 줄일 수 있었다.

 웹을 주제로 한 팀 프로젝트를 처음 진행했기에 협업하는 과정들이 가장 기억에 남는다. 특히, Gitlab과 Jira를 기반으로 프로젝트 및 일정 관리를 진행했다. 저장소에서 branch를 만들고, master에 머지하면서 팀원들의 코드를 빠르게 하나로 합칠 수 있었고, 매일 아침 스크럼 회의를 하면서 프로젝트의 진행 상황을 정확히 파악하며 일정을 조율할 수 있었다.

 이외에도 팀원들과 함께 draw.io를 작성하며 데이터 모델링을 진행하였고, 이를 기반으로 DB를 구축했다.

 

 

 프로젝트를 진행하면서 생긴 고민들을 개발 도구로 해결하는 과정들도 즐거웠던 기억이 있다.

 

  • 고민1: 어떻게 하면 쿼리문을 한 곳에서 관리하지?
  • 고민2: API들을 효과적으로 관리할 수 있는 방법이 있을까?

 수상하지 못한 것이 아쉬었지만, 아카데미에서 비전공자로 분류돼 Python만 배웠던 내가 Java를 독학하고 나서 Springboot까지 활용해봤다는 것 자체만으로 뿌듯했다. 게다가 아무런 명세서와 가이드없이 프로젝트를 진행하다보니 온갖 이슈들에 대응하는 방법들을 터득할 수 있었다.

 개발 외적으로는 팀원들과 소통하며 협업했던 경험들이 향후, 실무에서 협업할 때 큰 바탕이 될 수 있다고 생각한다. 내 의견이 아닌 다른 사람의 의견도 수용할 줄 아는 자세를 갖고 협업에 임할 것이다.

 

 

728x90
반응형