Project/Study Website Project

[Spring Boot Project] 게시글 생성

seung_hyeon 2025. 1. 13. 23:04

 

 

[SpringBoot Project] Study Website Project

개발환경Front-End : React Back-End : SpringBoot, MySQL  주요 기능1. 공지사항 일정2. 게시판 + 댓글(알림 기능)    - 비밀 게시판 (강의 추천 등)    - 자유 게시판 (과제 질문, 신입생 질문 게시판 등)    -

shyeeon.tistory.com

 

 

  • 테이블 생성

 

 

NN : 입력을 받지 않으면 안 됨

 


 

  • 작성 폼 생성

resources > temolates > activeBoardWrite.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>게시글 작성폼</title>
</head>

<style>

    .layout {
        width: 500px;
        margin: 0 auto;
        margin-top: 40px;
    }

    .layout input {
        width: 100%;
        box-sizing: border-box;
    }

    .layout textarea {
        width: 100%;
        margin-top: 10px;
        min-height: 300px;
    }

</style>

<body>
    <div class="layout">
        <form action="/active/board/writePro" method="post">
            <input name="title" type="text">
            <textarea name="content"></textarea>
            <button type="submit">작성</button>
        </form>
    </div>
</body>
</html>

 

 

 

ActiveBoardController

 

게시물 입력
입력 후 데이터 전송

 

  • Entity 사용하여 제목 전송

activeBoard

 

@Entity : 해당 클래스가 JPA 엔티티임을 명시

(해당 클래스가 DB에 있는 테이블을 의미)

 

@Id : primary key로  @Id가 붙은 필드는 반드시 유일한 값이며 NULL일 수 없음

 

@GenerateValue : 기본 키 값이 자동으로 생성되도록 설정하는 애너테이션

- GenerationType.AUTO (기본값): 데이터베이스에 맞춰 자동으로 기본 키 값을 생성 

- GenerationType.IDENTITY: 데이터베이스의 자동 증가 필드 방식으로 기본 키 값을 생성

- GenerationType.SEQUENCE: 시퀀스를 사용하여 기본 키를 생성

- GenerationType.TABLE: 임시 테이블을 사용하여 기본 키 값을 생성

 

Entity로 전송

 

 


  • 글 작성 처리

PostService
workbench

 

 

activeBoard → post로 변경

데이터 전송 시 자동으로 active_board가 생성되었다 

@Table로 지정해주지 않으면 이 문제가 반복되었다

스키마 이름을 hi나 post 등으로 만들면 @Table을 지정하지 않아도 테이블을 만들지 않고 해당 테이블에 잘 들어갔다

문제가 뭔지 찾기 위해 여러 방법을 써봤다

캐시가 삭제되지 않았나 싶어 캐시 삭제를 해보았지만 해결되지 않았다

yearBoard, yearPost, board, Board 등 스키마를 새로 만들었음에도 active_board를 만드는 문제가 해결되지 않았다

도대체 뭐가 문제인지 모르겠다

3일 동안 스키마만 수십 번 만들고 연결한 결과 이제 눈 감고도 만들 수 있다..ㅎ