철학과 학생의 개발자 도전기

[프로젝트] 게시판 프로젝트 - 스프린트1 본문

프로젝트

[프로젝트] 게시판 프로젝트 - 스프린트1

Younghun 2023. 9. 11. 19:40

목차

2. 게시판 프로젝트 - 스프린트2

3. 게시판 프로젝트 - 스프린트3

4. 게시판 프로젝트 - 스프린트4

5. 게시판 프로젝트 - 스프린트5

6. 게시판 프로젝트 - 스프린트6


프로젝트 시작

Java/Spring을 학습하고 인턴도 경험했지만 팀프로젝트를 진행한 적은 없었다.

학습한 내용을 내 것으로 만들기 위해서는 실제로 개발해보는 것이 최고라고 생각한다.

그리고 웹 개발에서는 협업이 중요하기 때문에 프론트엔드 팀원 한 분과 함께 게시판 프로젝트를 진행하기로 했다.

일기를 공유할 수 있는 게시판 서비스를 만드는 것이 최종목적이다.

 

https://github.com/happyhun/diary-board/tree/develop

 

GitHub - happyhun/diary-board

Contribute to happyhun/diary-board development by creating an account on GitHub.

github.com


프로젝트 플래닝

구글미트로 회의를 하며 프로젝트 일정과 개발전략 등을 세웠다.

  • 전체 프로젝트 기간은 4주로 잡는다.
  • 1주마다 스프린트를 진행하여 총 4번의 스프린트로 결과물을 낸다.
  • 스프린트 회고 및 플래닝은 매주 월요일 오후 3시에 진행한다.
  • 슬랙, 지라, 노션을 활용해 소통하고 결정사항을 정리한다.
  • 데일리 스크럼을 진행하여 개발 진행과정을 투명하게 공유한다.
  • Github에 각자 Repository를 만들어서 BE와 FE를 분리한다.

짧은 기간동안 집중해서 개발하는 것이 완성된 결과물을 내기에 더 적합할 것으로 기대된다.
그리고 데일리 스크럼을 진행하며 서로 동기부여를 해줄 수 있도록 시스템을 만들었다.

 

열정과 의지는 사라져도 시스템은 남는다고 생각한다.


스프린트1 진행사항

BE 파트로서 크게 다음 3가지 작업을 진행했다.

  1. ERD 설계
  2. 스프링 엔터티 및 리포지토리 생성
  3. 사용자 인증방식 리서치

1. ERD 설계

erd cloud라는 웹서비스를 활용해 erd를 설계했다.

https://www.erdcloud.com/d/zKX4PPkzJYFKNP5nJ

 

Board

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

2. 스프링 엔터티 및 리포지토리 생성

ERD를 기반으로 엔터티를 생성하고 스프링 데이터 JPA를 활용해 리포지토리를 만들었다.

(9월 4일 ~ 9월 10일)

https://github.com/happyhun/diary-board/commits/develop

 

GitHub - happyhun/diary-board

Contribute to happyhun/diary-board development by creating an account on GitHub.

github.com

3. 사용자 인증방식 리서치

세션 방식과 JWT 방식 중에서 고민을 했다.

의식의 흐름을 설명하면 다음과 같다.

  1. 스프링 시큐리티 없이 세션 로그인을 구현해보자.
  2. 현업에서는 대부분 스프링 시큐리티를 쓴다고 하니 미리 연습하기 위해 스프링 시큐리티를 이용한 세션 로그인을 구현해보자.
  3. 추후에 소셜 로그인을 구현하게 되면 토근 방식의 인증을 고려해야 된다.
  4. 현업에서는 웹과 앱이 모두 사용하는 API 서버를 만들 확률이 크기 때문에 앱에서도 사용이 편리한 토큰 방식이 좋다.

이러한 흐름으로 결국 JWT를 이용한 토큰 인증 방식으로 결정했다.


스프린트1 회고

강의를 듣고 책을 보는 것보다 직접 코딩을 할 때 훨씬 더 많은 것을 체득하는 것 같다.

하지만 금방 의욕이 떨어지고 일정이 늘어지기 쉬운데 팀프로젝트로 진행을 하니 긴장하면서 성실하게 개발을 할 수 있었다.

특히 협업을 위해 명확하게 의사소통하고 의견을 조율하면서 개발자에게 중요한 소프트 스킬도 기를 수 있어서 좋다.