[패스트캠퍼스X야놀자] 백엔드 개발 부트캠프_Spring 기반 토이프로젝트 2단계 후기

Rightpair·2023년 11월 1일
0
post-thumbnail

패캠야놀자

📌 해당 글은 패스트캠퍼스X야놀자 백엔드 개발 부트캠프 🤸‍♂️ 에 참여하고 있는 수강생이 작성했습니다! ✍


🌳 develop하기 좋은 whether네요~

어느덧 부트캠프에 들어온지 50%가 지났습니다!! 😲
부트캠프에 있는 동안 많은 일이 있었고, 많은 경험을 했습니다. 어떤 경험을 했는지 한번 적어보면요~

  • 부트캠프에서 다양하고 좋은 온라인 강의와 멘토링, 그룹스터디를 진행했어요!
  • 자바 과제를 통해 JDBC에 대해서 알게 되었고, 파일 처리를 하는 방법을 알게 되었죠!
  • 저번 토이프로젝트에서 협업페어프로그래밍을 배웠고, 자바 프로그램을 MVC로 개발하는 방법을 배웠었죠!

생각보다 많은 것을 3개월밖에 안되는 기간 안에 배울 수 있었습니다! 정말 알찬 시간이 아니었나 싶어요~~ ⭐

이번 포스팅에서는 이때까지 배운 내용도 중요했지만, 백엔드 업계에서 유명한 새로 배운 프레임워크인 💻스프링 프레임워크로 토이프로젝트를 진행한 내용을 담아보겠습니다! 🤸

⬆️ 웹서버로 업그레이드해봅시다!

업그레이드

전에 개발했던 자바 프로그램은 개발 키트에서 주어지는 기본 콘솔만을 활용했었죠. 하지만 이제는 스프링 프레임워크를 사용해서 개발을 하려고 합니다!

그러면 여기서 드는 ❓️의문이 있죠! 스프링 프레임워크가 자바 프로그램으로 만드는 것보다 좋은가? 에요! 답은 물론 YES입니다. 왜냐면 자바로 웹서버를 개발하기 위해 필요한 설정이나 라이브러리들을 미리 준비한 거거든요!

그래서 이번 토이프로젝트에서는 스프링 프레임워크(이하 스프링!)으로 개발하라는 요구사항이 주어졌기도 했고, 제가 앞으로 백엔드 개발자로서 성장하기 위해 필요한 도구기도 하기 때문에! 열심히 스프링을 사용해서 개발해보려고 합니다! 🚀

🤔 뭘 개발해야하지?

이번 토이프로젝트는 저번 토이프로젝트의 주제와 사실 같습니다!

여행 여정을 기록, 관리하는 SNS 서비스 🎉

전에 개발을 해봤기 때문에 친숙한 요구사항이었습니다! 하지만 전과 다른 점이 몇가지 있었는데, 한번 살펴보죠!

  1. 여행, 여정 정보를 기록하고 수정하고 조회할 수 있어야 합니다.
  2. 여행, 여정 정보의 ERD를 설계하고 개발해야 합니다.
  3. 일시 정보를 생성할 수 있는 공통 유틸리티 클래스를 제공해야 합니다!

위 굵은 글씨들이 모두 다른 점이었고, 전과는 달리 확실히 요구사항도 업그레이드가 되었음을 알 수 있었습니다! 요구사항과 토이프로젝트 팀원분들과 개발했던 내용을 함께 살펴보시죠!

🤟 일단 "CRUD" 합시다!

첫번째 요구사항은 여행, 여정 정보를 기록, 수정, 조회를 해야합니다! 이것은 무엇을 의미하느냐를 다음에 설명해드릴 CRUD와 비교하여 설명해드리죠!

  1. Create : 생성 -> 여행, 여정 정보 기록!
  2. Read : 조회 -> 여행, 여정 정보 조회!
  3. Update : 수정 -> 여행, 여정 정보 수정!
  4. Delete : 삭제 -> ??

CRUD는 위에 적어드린 것과 같이 데이터를 다룰 때 기본적으로 다루어지는 방법들이죠. 이 방법을 기초로 해서 주어졌던 요구사항과 비교해보면 각 방법들과 🔄대응이 되는걸 볼 수 있습니다!

그런데 요구사항에 주어진 정보는 기록, 수정, 조회 세 가지밖에 없고, 삭제는 없습니다! 따라서 토이프로젝트를 진행할 때 삭제를 제외하고 개발을 진행하면 되었습니다! 개발할거 줄었다! 😃

위 내용들을 모두 종합해서! 제 토이프로젝트 팀에서 노션을 사용해서 API문서를 만들었습니다!

API문서

📚 데이터베이스에 저장하자!

저번 토이프로젝트는 문서 파일로 데이터를 저장했었죠. 이번 토이프로젝트에서는 데이터베이스에 저장을 해야합니다!

데이터베이스는 여러 종류가 있는데, 대표적으로 관계형 데이터베이스가 있죠. 잠깐 관계가 무엇인지 설명을 드리자면요~

데이터베이스의 테이블
(사진 출처: https://dataonair.or.kr/db-tech-reference/d-guide/sql/?mod=document&uid=337

데이터베이스는 위 그림처럼 엄청 많은 테이블들을 저장하고 있어요! 저 테이블 안에는 엄청 많은 데이터들이 저장되어 있구요. 그럼 여기서 궁금한 점이 있죠! 저 많은 데이터들을 어떻게 관리를 해야할까요?? 그리고 저 많은 데이터들이 서로 연관 관계가 있다면 어떻게 또 관리를 해야할까요???

그 해답이 바로 관계형 데이터베이스에 있습니다! 이러한 문제를 해결해주는 아주 좋은 시스템이죠! 😄

이런 관계형 데이터베이스의 구조를 설계하고 만드는 것은 저희 백엔드 개발자의 주요 업무 중 하나예요! 그래서 이런 멋진 요구사항을 부트캠프에서 만들어주신게 아닌가 싶습니다! 😎

저희 토이프로젝트 팀도 이 관계형 데이터베이스를 사용해서 설계도(ERD)를 만들어봤습니다!

ERD 설계도

뭔가 없어보이지만, 이 설계도를 만드는데 협업을 통해 여러 생각과 회의를 통해 결정했어요!

🕒 시간을 지배하는 자!

마지막 요구사항에는 공통 유틸리티를 만들으라는 이야기가 나오죠! 공통 유틸리티가 무엇인지 자세하게 설명이 안되어서 고민을 팀 내에서 많이 했습니다. 그 결과, 공통유틸리티는 다음과 같은 과정으로 사용하기로 했죠!

공통유틸리티

사용자는 문자열 처리만 하고, 서버에서는 시간 처리만 하도록 만들고, 그 중간에서 공통 유틸리티가 문자열과 시간의 변환 역할을 하도록 만들었습니다!

이렇게 만드니까 명확하지 않았던 요구사항이 명확해지는 느낌이 들었습니다! 역시 모호한 문제를 명확한 문제로 만드는 것이 우리 백엔드 개발자의 핵심 전략임을 알게 되는 계기가 되었습니다! 😄

🥁 토이프로젝트 결과!

위 요구사항을 지키면서 일주일 동안 열심히 만들었습니다! 💻
여러 우여곡절과 고민과 문제가 있었지만, 결국엔 멋진 웹 API 서버를 만들 수 있었습니다! 아래 포스트맨 버튼(외부 링크)을 누르시면 저희 토이프로젝트 팀이 만든 API 문서도 확인해 보실 수 있습니다! 😉

Run in Postman

이번 프로젝트도 잘 마무리가 되었습니다! 이번 프로젝트로 저번 토이프로젝트보다 훨씬 더 업그레이드 된 협업을 배울 수 있어서 정말 기분이 좋습니다! 앞으로 남은 프로젝트들도 열심히 완수해보도록 하겠습니다! 👏

🔗 토이프로젝트 깃허브 링크

profile
갈아만든 백엔드

0개의 댓글