spring 게시판 실습

조예빈·2024년 5월 22일
0

Spring

목록 보기
17/19
post-custom-banner

개발 환경

Spring Framework 5.2.25
JDK 11
Tomcat 9.0
MySQL

MyBatis
Lombok
JUnit
HickariCP

jQuery(ajax)

댓글기능은 RestAPI 사용

필요 기능

회원

  • 가입
  • ID 중복체크
  • Login
  • Logout
  • 수정
  • 탈퇴
  • ID 찾기
  • PW 찾기
  • ID 저장
속성membertype설명
회원noint
이메일emailint
비밀번호pwdint
이름name
성별genderint
생년월일birthdayint
휴대폰번호hpint
우편번호zipcodeint
주소1addr1int
주소2addr2int
가입일자regdatetimestamp
상태stateint1:가입, 0:탈퇴

답변/댓글 게시판

  • 등록
  • 수정
  • 삭제
    • 진짜 글을 삭제할건지, 노출을 안시킬건지 -> 여기에서는 진짜로 삭제
    • 댓글도 같이 삭제
  • 목록
  • 상세
    • 댓글 목록
    • 댓글 등록(로그인)
    • 댓글 삭제(내가 쓴 댓글)
  • 답변게시판 3개의 컬럼
    • 그룹
    • 순서
    • 중첩 정도
      그룹으로 des, 순서로 asc

      같은 그룹에 부모보다 큰 애들을 1씩 더하고 들어가야 함(중첩은 부모+1)

      중첩 정도를 제목 앞에 들여쓰기를 넣어줌(들여쓰기는 중첩돼서 깊이가 깊은 컬럼은 들여쓰기가 더 많아짐)
  • 페이징 처리
    - 한 페이지당 10개씩
    - 하단 페이지 번호 10개씩
    답변게시판
속성membertype설명
답변게시판reply
번호noint
제목title
내용content
작성자writerint
작성일regdatetimestamp
조회수readcntint
그룹gnoint
순서onoint
중첩nestedint

댓글

속성membertype설명
댓글comment
번호noint
내용content
작성자writerint
작성일regdatetimestamp
부모글parent_noint

ERD

설계 순서

  1. 회원

  2. 답변/댓글 게시판

  3. 화면 설계(스토리보드)

해야 할 것

client
요구사항 정리(기능정리X) 및 검토, RFP(제안요청서), 입찰(일정 금액 이상이 되면 무조건 나라장터를 사용해야 입찰해야 함. 직접 계약을 할 수 없음)
developer
pt + 산출물 제출, 산출물을 만들기 위한 요구사항 명세서, 단위테스트계획서

개발

values에서 gno, ono, nested가 처음에는 다 0인데 0으로 쓰지 않는 이유 : 답변이랑 같이 쓰기 때문. 답변 시에는 gno,ono, nested가 들어가야 하기 때문(부모의 nested+1). 그래서 0으로 박아두면 안됨

<insert id="insert" parameterType="kr.co.project.member.ReplyVO">
			INSERT INTO reply(
			title, content, regdate, readcnt,
			gno, ono, nested, writer
		) values (
			#{title}, #{content},NOW(),0,
			#{gno}, #{ono}, #{nested}, #{writer}
		)

방금 insert한 것의 no가 10이었다면 gno를 10으로 바꾸는 로직 추가

<update id="updateGno" parameterType="int">
		UPDATE reply SET gno=#{no} WHERE no=#{no}
	</update>

총페이지수 = 총 개수 / 페이지당 개수
if(총 개수 % 페이지당 개수 > 0) 총페이지수++

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러
post-custom-banner

0개의 댓글