1. 아이템 선정

전반적인 웹의 기본 소양이 되는 CRUD 게시판을 만들고, 기능을 하나씩 추가해 나가는 식으로 진행한다.


2. 개요

  • 프로젝트 명칭 : 대전의 문화 게시판 사이트
  • 개발 인원 : 1명
  • 개발 기간 : 2023.4.14 ~ 2022.05.12
  • 주요 기능 :
    • 게시판 - CRUD 기능, 조회수, 페이징 및 검색 처리
    • 사용자 - Security 회원가입 및 로그인, OAuth 2.0 구글, 네이버 로그인, 회원 정보 수정, 유효성 검사 및 중복 검사
    • 댓글 - CRUD 기능 
  • 개발 언어 : Java 15
  • 개발 환경 : SpringBoot 2.7.3, Maven, jpa(Spring Data JPA), Javascript,html,css
  • 데이터베이스 : MySQL
  • 형상관리 툴 : GitHub
  • 간단 소개 : 전반적인 웹의 기본 소양이 되는 게시판,대전의 소개

3. 요구사항 분석

1. 회원 가입 페이지

  • 유효성 검사
    • 닉네임은 최소 3글자 이상이며 중복 불가,ajax를 이용한 실시간 처리
    • 이메일 형식 패턴 적용해 확인
    • 형식이 다르거나 중복,오류일 경우, 중복코드와 메세지 보여주기
    • 비밀번호는 브라우저에는 텍스트로 등록되나 DB에는 sha-256알고리즘으로 변형
  • 중복확인
    • 데이터베이스에 존재하는 아이디를 입력한 채 회원가입 버튼을 누른 경우 "이미 사용중인 아이디입니다."의 메시지를 보여주기
    • 모든 검사가 통과되었다면 로그인 페이지로 이동시키기

2. 로그인 페이지

  • 로그인을 하지 않은 경우 아래 페이지만 이용가능
    • 회원가입 페이지
    • 로그인 페이지
    • 게시글 목록 조회 페이지
    • 게시글 상세보기 페이지
    • 게시글 검색 페이지
    • 그 외 로그인을 하지 않거나 올바르지 않은 경로로 접속한 사용자가 로그인이 필요한 경로에 접속한 경우 로그인 페이지로 이동
  • 로그인 검사
    • 아이디와 비밀번호가 일치하지 않을 시 "아이디 또는 비밀번호가 일치하지 않습니다. "의 메시지를 보여주기
    • 이외의 다른 에러 메시지 또한 처리하기
    • 모든 검사가 통과되었다면 로그인 후 이전에 있던 페이지로 이동시키기

3. 회원정보 수정

  • 회원정보 수정은 아이디를 제외한 모든 정보 수어가능
  • 닉네임이 중복확인을 통해 중복일 경우 “이미 사용중인 닉네임입니다.” 메시지 보여주기
  • 닉네임은 최소 3자 이상을 입력해야 하며 ajax를 이용한 실시간 처리
  • 비밀번호 수정 또한 텍스트로 입력되지만 DB에는 sha-256알고리즘으로 인한 보안강화
  • 수정 완료 시 수정 날짜 업데이트해주기

4. 비밀번호 찾기 임시 패스워드 메일로 발송 시스템

  • 패스워드를 잊었을 때 등록해놓은 이메일로 임시 비밀번호가 발송
  • 데이터베이스에 존재하는 이메일로 임시 비밀번호가 발송된다
  • 임시 비밀번호로 로그인 한 뒤 수정으로 비밀번호를 바꿀 수 있도록 구현

5. 게시글 검사

  • 게시글 작성, 수정 시 제목과 내용은 공백 혹은 빈칸으로 작성하지 않도록 하기
  • 게시글 작성, 수정 시 카테고리 선택을 해야함
  • 게시글 상세보기시 조회수가 증가한다
  • 게시글에는 좋아요 또는 싫어요로 리액션이 가능하며 중복선택 불가
  • 내가 작성한 글만 수정, 삭제 가능하게 하기
  • 로그인을 하지 않고 글 작성 버튼을 누른 경우 로그인 페이지로 이동,로그인하면 다시 글작성 페이지로 돌아오도록 구현

6. 댓글 검사

  • 댓글은 로그인한 사용자만 작성 가능하게 하기
  • 댓글 작성 및 수정시 빈칸 혹은 공백으로 된 경우  오류코드와 메시지 보여주기
  • 댓글 수정 및 삭제는 해당 댓글 작성자만 가능하게 하기
  • 게시글 삭제 시 해당 댓글 데이터도 같이 삭제되게 하기

7. 관리자 페이지

  • 관리자는 코드번호 7,일반회원은 3으로 구분
  • 관리자는 모든 게시글,댓글의 수정,삭제 권한이 있으며 따로 페이지와 데이터가 존재

8. API 구현

  • openweather 사이트에서 공개 api를 가져와 ajax로 실시간 날씨의 정보를 보여주도록 기능 실현
  • kakao developer 사이트에서 제공하는 길찾기 api를 가져와 대전의 맛집을 키워드로 검색하도록 실현

4. DB 설계

5. 프로젝트 진행 과정

 

더보기
1. 테스트데이터 생성
2. 중복제거

3-1. localhost:8081/usr/article/doDelete?id=1
결과 -> 1번글이 삭제되었습니다 or 1번글은 존재하지 않습니다

3-2. localhost:8081/usr/article/doModify?id=1
결과 -> 1번글이 수정되었습니다 + 수정된 게시물 리턴
           or 1번글은 존재하지 않습니다

2023-04-14, 1일차

  •  

2023-04-17, 2일차

 

2023-04-18, 3일차

2023-04-19, 4일차

  •  

2023-04-20, 5일차

2023-04-21, 6일차

TODO

주제 다시 고민 
기능 고민

2023-04-24, 7일차

2023-04-25, 8일차

2023-04-26, 9일차

2023-04-27, 10일차

TODO : 좋아요 싫어요 버튼 고민

2023-04-28, 11일차

TODO : 버튼 눌렀을 때 좋아요, 싫어요 취소 처리

2023-05-02, 12일차

댓글--------------------------------------
회원가입
마이페이지
회원정보 수정

AJAX
API

메일?

관리자

TODO : 댓글이 너무 길다면?

2023-05-03, 13일차

2023-05-04, 14일차

토스트 UI 관련자료

2023-05-08 15

TODO : 회원가입시 ajax 로 아이디 중복체크

2023-05-09 16

2023-05-10 17일차

2023-05-11 18

2023-05-12 19일차

6. 마무리 하며

 

안녕하세요, 저는 최근혁이라고 합니다. 현재 백엔드 개발자 양성과정을 수료했으며 그에 바탕하여 지원서를 제출하게 되었습니다.

저는 어릴 때부터 컴퓨터와 기술에 관심이 많았습니다. 교육 중에는 프로그래밍 언어와 데이터베이스 시스템 등 다양한 IT 기술을 배웠으며, 이를 바탕으로 '대전 게시판 프로젝트'를 수행하였습니다. 

제가 가진 강점 중 하나는 문제 해결 능력입니다. 프로젝트에서는 복잡한 문제를 해결하면서도 정확성과 효율성을 유지하는 것이 중요하다는 것을 배웠습니다. 공공 api를 가져와서 내가 원하는 곳에 실행시키는 것에 어려움을 겪었지만, 포기하지 않고 새로운 방법과 새로운 지식을 공부하여 결국은 결과를 도출해냈습니다.또한, 새로운 기술과 도구를 학습하면서 항상 도전적인 태도로 임하며, 팀원들과의 협업을 통해 문제를 해결하는 것을 즐기는 편입니다.

저는  제 기술과 경험을 활용하여 회사의 성장과 발전에 기여하고 싶습니다. 또한, 회사에서 제공하는 교육 및 훈련을 통해 끊임없이 발전하고 성장하며, 좋은 동료와 함께 일하는 경험을 쌓고 싶습니다.

감사합니다.

 

프로젝트 깃허브:https://github.com/guenhyuck/project2

 

GitHub - guenhyuck/project2

Contribute to guenhyuck/project2 development by creating an account on GitHub.

github.com

공부 기록,성장과정 블로그:https://thecodelab.tistory.com/

+ Recent posts