[개인프로젝트] 작심N일

minami·2021년 3월 23일
0

프로젝트

목록 보기
1/3

💪작심N일

1. 기획배경

Q. 새해만 되면 새해 다짐을 하고 내일부터는 꼭 다이어트를 하겠다고 결심을 하는데 왜 맨날 실패할까?
A. 무작정 장대한 계획을 모호하게 세우기 때문!

나는 항상 뭔가 계획을 세우지만 나중엔 흐지부지되는 일이 많았다. 올해만 해도 제일 쓰기 간편한 다이어리를 골라서 다꾸는 바라지도 않으니 이제 내 인생을 조금씩 기록해보자고 마음 먹었건만 1월 한 달 열심히 쓰다가 2월부터 2달째 손도 대지 않고 있다. 그러니 나같은 사람들이 처음부터 그저 막연하고 거창한 계획을 세우기보다는 초단기로 목표를 설정해서 달성하는 것으로 작은 것부터 좋은 습관을 만들 수 있게 하면 어떨까?
마침 프로젝트 직전까지 Spring MVC로 MyBatis를 사용한 게시판 만들기까지는 배웠으니 배운 것도 활용해볼 수 있는 작심N일 사이트를 그렇게 만들어보기로 했다.

작심3일도 10번 하면 한 달이니까!

2. 프로젝트 소개

💻 사용기술

  • 언어
    • Java 11
  • 웹 프레임워크
    • Spring
  • 데이터베이스
    • MyBatis
    • Oracle Database
  • 프론트엔드
    • CSS3
    • jQuery

💾 데이터베이스

회원정보게시판정보

👀 페이지 구현 엿보기

사용 흐름: 회원가입 ➡ 로그인 ➡ 게시판 글쓰기

👩‍💻 구현 과정

  1. 스프링 프로젝트 생성 및 DB 설계
  2. DB 구축
  3. 스프링 MVC 패턴으로 DAO, Service, Controller 각 패키지 생성
  4. mapper 생성 및 DAO, Service, Controller 순으로 생성
  5. template.jsp, header.jsp, footer.jsp 파일 생성하여 기본 웹사이트 뼈대 생성
  6. 회원가입 페이지, 로그인 페이지, 게시판 페이지 순으로 각 jsp 파일 생성
  7. 회원정보부터 mapper, Service, DAO, Controller 작성 후 연동된 DB로 데이터 전송이 잘 되는지 확인
  8. 게시판 CRUD 구현을 위해 게시글 작성(C)부터 게시글 읽기(R), 수정(U), 삭제(D) 순서로 mapper, Service, DAO, Controller 작성 후 연동된 DB로 데이터 전송이 잘 되는지 확인
  9. 게시판 검색 기능 구현을 위해 board_list.jsp에 form과 table을 이용해서 검색바 생성
  10. 게시판 mapper, Service, DAO, Controller에 검색 기능 추가
  11. 게시판 페이징 기능 구현을 위해 mapper의 쿼리문, Service, DAO, Controller 수정
  12. 조회수 확인 기능 추가를 위해 mapper, Service, Controller 수정
  13. 각 jsp 페이지별 css파일 생성하여 프론트엔드 디자인
  14. 게시판, 로그인, 회원가입 페이지 별 js파일을 생성하여 jQuery문으로 각 버튼 클릭시 alert창 생성

3. 프로젝트 후기

🤷‍♀️ 구현하지 못해서 아쉬운 점

  1. 댓글 기능

    다른 사용자들과 목표를 공유하고 서로 격려할 수 있는 분위기를 형성하고, 스스로 세운 목표를 이루어가는 과정을 인증하는 등의 용도로 댓글 기능을 추가했어야 하는데 시간에 쫓겨서 하지 못한 아쉬움이 있다. 게시판은 댓글 기능까지 있어야 진짜 완성했다고 할 수 있을 텐데 아무래도 게시판을 온전히 내 힘으로 만드는 건 처음이다 보니 3일 내내 게시판만 만들었다. 원래 주어진 기간도 겨우 3일뿐이었는데 내가 너무 욕심 부렸나...?

    사실은 한 번 에러가 날 때면 원인을 찾지 못해서 몇 시간을 그냥 날리곤 했는데 어떤 변수 하나 오타가 나거나 링크를 잘못 걸었거나 하는 사소한 실수 때문이었던 적이 대부분이었다. 다른 사람이 보면 한 번에 찾아내던데. 이래서 페어프로그래밍 같은 게 필요한가 보다.

  2. 회원정보 기능

    자신의 회원정보를 보거나 수정하는 기능도 아예 만들지 못했다. 모든 것을 게시판에 쏟아부었더니 정말이지 다른 기능에 신경 쓸 여력이 없었다. 추후에라도 추가해 봐야겠다.

  3. SNS회원가입 및 로그인 API 기능

    카카오톡이나 네이버 로그인 API를 끌어오고 싶었는데 시간이 없었다. 그리고 이 기능은 전에 Django로는 구현해봤지만 Spring으로는 해본 적이 없다보니 어떻게 하는지 방법 자체도 몰랐다. 하지만 구글링하면서 직접 찾아보면서 하려면 할 수 있었을 텐데. 또다시 시간 부족 탓이다.

🙆‍♀️ 잘했다고 생각하는 점

  1. 게시판 CRUD 구현

    우여곡절 끝에 어쨌든 혼자서 게시판 CRUD 기능 모두를 구현해냈고, 쿼리문이 복잡해져서 더 애먹었던 페이징 기능도 구현했다. 검색 기능을 부가적으로 넣은 것까지 하면 처음 게시판 만든 것치곤 일단 기본적인 것들은 해낸 것 같아서 뿌듯하다. 댓글 기능도 결국 게시판이랑 연결하는 것만 빼면 CRUD는 똑같으니까 해낼 수 있을 것 같다는 자신감이 생겼다.

  2. 깔끔한 디자인

    CSS3으로 꾸민 게 전부이긴 하지만 내가 지향한 바는 이루어낸 것 같다. 너무 과하게 꾸미지도 않았고 색상 사용도 최대한 통일감을 주면서 괜찮게 한 것 같다. 물론 UI/UX 전공자분들이 보면 아닐 수 있겠지만 나로서는 만족한다.

4. 프로젝트 소스

github repository에 소스 보러 가자!!

profile
함께 나아가는 개발자💪

0개의 댓글