[스프링 게시판 팀 프로젝트] - 1. 준비

MeteorLee·2023년 2월 17일
0

📁프로젝트 개요

현재 진행중인 부트캠프에서 같이 수업을 듣고 있는 수강생분들과 토이 프로젝트를 진행하게 되었습니다. 지금까지 공부한 내용을 바탕으로 CRUD 기능을 가진 게시판을 가진 개발자 커뮤니티 웹사이트를 구축한다는 가정하에 토이 프로젝트를 진행하게 되었습니다.

✅스토리 보드

A라는 개발자가 커뮤니티 사이트에 접속해서 글을 남길려고하는데 회원가입과 로그인이 된 상태이어야 글을 남길 수 있다. 결국 A회원은 회원가입 페이지(아이디/비밀번호/이름/휴대폰번호/약관)을 통해 회원가입을 해야하고, 로그인(아이디/비밀번호) 페이지에서 로그인을 성공한다면, 공지사항, 자유게시판, FAQ 등에 글을 등록할 수 있게 된다. 공지사항/자유게시판에서는 상세 페이지에서 댓글 기능도 제공이 되어서 다른 회원과 자유롭게 대화가 가능한 기능도 있다.

구성

메뉴 구성도

  • 로그인
  • 회원가입
  • 게시판
    • 공지사항
    • 자유게시판
    • FAQ

스토리 보드 추가 설명

  • DB설계 구성 (신규 제작)
  • 제공되는 문서를 읽고 이해하고, 프로그램을 제작할 때 필요한 필드/연결 관계를 먼저 구상
  • 실제 코딩과 스토리 보드가 일치하게 개발 하기

추가 사항

  1. 페이징 기능
  2. 검색 조건 기능
  3. 페이징에서 화면 이동/ 조회/ 이동할 때 페이징 번호 + 검색 조건 유지
  4. 개발 소스 공통화 구현
  5. 주석/소스 정리
  6. 파일명/패키지/변수명

세부 사항

  • Commit 방식 [이름] 작업 내용
  • 가산점 추가 설명
  • 로그인 유지 세션은 HttpSession/ Spring Security으로 작업
  • 게시글 작성자만 수정/삭제 가능
  • 게시글 댓글 작성자만 수정/삭제 가능
  • 공통 레이아웃 타임리프 활용

프로젝트 시작 전

시작 전 생각

아무래도 부트 캠프에서 하는 프로젝트다 보니 약간의 틀도 있고 배운 내용들을 기반으로 하니 미리 준비할 시간이 약간 존재했다. 아마도 로그인, 자유 게시판, 공지사항, FAQ의 4가지로 나눠서 진행하지 않을까 생각한다. FAQ는 HTML부분이 많고 로그인은 Spring Security랑 연결된 부분이 많아고 생각해서 공지사항이나 자유 게시판을 하면 좋겠다는 생각이 조금 있었다. 반대로 내가 잘 모르는 Spring Security를 공부하면서 로그인을 만들면 어떨까 라는 생각도 확실하게 있었다.

공부한 내용

프로젝트 시작 전에 결국 이것들이 스프링으로 구현하는 내용이니 가장 공통적인 스프링을 공부하기로 했다. 그래서 Spring Start Here 책의 springboot부분을 복습을 했다. 특히 Controller부분을 신경쓰면서 강사님이 가르쳐주신 부분들과 연결지어 생각했다. 그리고 Mybatis부분도 착실하게 복습했다. 물론 JPA부분도 공부를 조금 하기도 했는데 강사님이 가르쳐 주신 부분이 Mybatis이기에 이 부분들을 다시 많이 공부했다. HTML이나 javaScript 부분도 공부해야하긴 했는데 조금 막막하다고 해야하나 어떻게 공부하는 것이 좋을 지 모르기도 하고 그냥 읽을 줄만 알면 되지 않나? 라는 막연한 생각에 미뤘다.(나중에 크게 후회함)

🤔회고

프로젝트와 함께 기록하지 않은 이유

사실 저번 프로젝트 때 프로젝트가 끝난 후에 기록을 남기니까 부족한 부분도 많고 내가 겪은 문제를 해결하는 과정을 잘 표현하지 못했기에 프로젝트를 진행하면서 정리하며 글로 남기고 다시 돌아보려고 했다. 하지만 내 손목이 좋지 않아서 블로그 글을 아예 작성하지 못하는 일이 생겨서 아쉽다고 생각한다. 그래도 Commit을 꼼꼼하게 남기고 나름 내가 겪은 문제들을 정리했다. 물론 포기한 부분들도 많다.(엄청 엄청 많다) 그래도 부족하지만 그래도 기록을 남겨보려고 한다.

회고

못한 점

프로젝트 시작 전에 프로젝트 개요를 보고 내가 알고 있는 부분과 모르는 부분을 구분하고 공통되는 부분 공통되지 않은 부분 등 조금 더 세밀하게 나눈 다음에 공부를 했어야 한다고 생각한다. 이런 프로젝트가 프로젝트를 하는 것이 처음이라 준비하는 일이 상당히 미흡했다.
예를 들어보자면 공통적으로 스프링, myBatis, html, ajax, javascript 등을 다루기에 조금 더 집중적으로 준비하고 이 중에서도 내가 잘 모르는 ajax같은 비동기 부분들을 더 집중적으로 공부했어야 했다. 이 부분들을 준비하지 않았기에 큰 어려움을 겪었다.

잘한 점

그래도 프로젝트 전에 나름 생각을 하고 미리 공부할 부분들을 생각하고 공부했다는 것에 의의를 두려고 한다. 잘한 점이라기 보다는 당연히 해야하는 일이긴 하지만 그래도 아무 생각 없이 있던 것들보다는 낫다고 생각한다. 그래도 Mybatis나 스프링 부트 구조 를 공부했던 것들은 크게 도움이 되었다. 다음에도 프로젝트를 진행하게 된다면 필요한 부분들을 생각해 공부할 생각이다.

총평

돌이켜보면 이런 부분은 좀 더 신경써서 공부할걸, 이건 공부할 필요 없었는데, 이건 왜 준비하지 않았지? 사실 따져보면 끝이 없을 것이다. 이전 프로젝트에서는 따로 프로젝트를 대비한 예습을 크게 하지 않았다. 하지만 이번에는 토이 프로젝트를 위한 준비를 했다는 것에 큰 의의를 두고 싶다.

준비하면서 많은 어려움이 있을 것이라고 좀 두려워했던 마음이 컸었다. 그리고 프로젝트 자체가 다른 사람들과 같이 하는 작업이라고 생각해서 폐를 끼치면 안된다. 내가 스스로 잘해야한다. 물어보지말고 스스로 맡은 일을 해결하자!! 이런 생각이 강했었다. 지금 생각하면 나는 2가지 관점에서 프로젝트를 준비했고 정말 말도 안됬었다.

  1. 팀원들한테 폐를 안끼치지!! 물어보지 말고 알아서 잘하기!!
  2. 내가 맡은 부분은 스스로 완성하기

사실 말도 안되는 것이다. 이럴꺼면 팀 프로젝트를 왜하지? 이런 생각이 절로 드는 마인드를 가지고 프로젝트에 임했던 것이다. 그러니까 프로젝트 결과물도 개판이고 과정도 개판이라고 생각한다. 팀원들한테 너무 미안하다. 나같은 사람이 팀원이어서 다음에는 이런 일이 없도록 해야할 것 같다. 생각해보면 누가 나한테 질문한다고 저 사람이 나한테 잘못 했다는 생각 따위는 없는데 오히려 도와주고 싶다는 생각이 드는데 나는 남을 내 마음대로 잘못 생각한 것 같다.

프로젝트를 준비하면서 잘못된 생각을 가진 것이 가장 큰 문제고 프로젝트가 끝날 때까지 이런 부분들을 잘 몰랐기에 정말 부끄럽다고 생각한다.

profile
코딩 시작

0개의 댓글