목차
1. BoardVo란?
2. 파일 생성하기
3. 코드 살펴보기
3-1. 패키지
3-2. 필드(Field)
3-3. 생성자(Constructor)
3-4. Getter / Setter
4. 마무리하며
1. BoardVo 란?
이전 글까지는 게시판 화면의 기본 구조와 레이아웃을 중점적으로 다루며 화면 구성의 기초를 완성했습니다.
하지만 게시판은 화면만으로는 동작하지 않습니다.
게시글 하나하나마다 담긴 데이터를 저장하고 전달하고 읽어오는 백엔드 역할이 필수적이죠.
화면과 DB 사이에서 데이터를 안전하게 관리하는 역할을 BoardVo.java 가 합니다.
쉽게 말해서, 게시글 데이터를 주스라고 한다면 BoardVo는 주스를 담은 병이라고 할 수 있습니다.
액체인 주스를 손으로 들고 옮기면 흘려서 제대로 전달할 수 없지만, BoardVo 라는 병에 담으면 흘리지 않고 안전하게 옮길 수 있습니다.
즉, BoardVo는 게시글 데이터를 담아 전달하는 안전한 그릇이라고 생각하면 이해가 쉽습니다.
2. 파일 생성하기
파일 생성하는 법은 이전 글에서 다뤘으니, 이번에는 간단하게 경로와 이름만 정리하고 넘어가겠습니다.
📌 참고의 링크 확인 바랍니다.

3. 코드 살펴보기
아래는 BoardVo.java 의 전체 코드입니다.
package com.visit.board.vo;
public class BoardVo {
private int postId; // 글 번호 (PK)
private int viewCnt; // 조회수
private String userNm; // 작성자 닉네임
private String userPw; // 글 비밀번호 (수정/삭제용)
private String regDt; // 작성일시
private String modDt; // 수정일시
private String title; // 글 제목
private String content; // 글 내용
// 기본 생성자
public BoardVo() {
}
// Getter & Setter
public int getPostId() {
return postId;
}
public void setPostId(int postId) {
this.postId = postId;
}
public int getViewCnt() {
return viewCnt;
}
public void setViewCnt(int viewCnt) {
this.viewCnt = viewCnt;
}
public String getUserNm() {
return userNm;
}
public void setUserNm(String userNm) {
this.userNm = userNm;
}
public String getUserPw() {
return userPw;
}
public void setUserPw(String userPw) {
this.userPw = userPw;
}
public String getRegDt() {
return regDt;
}
public void setRegDt(String regDt) {
this.regDt = regDt;
}
public String getModDt() {
return modDt;
}
public void setModDt(String modDt) {
this.modDt = modDt;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
3-1. 패키지
package com.visit.board.vo;
패키지는 해당 클래스가 어느 폴더(패키지) 안에 속하는지를 정의합니다.
여러 클래스가 섞이지 않도록 정리하는 정리용 폴더라고 생각하면 됩니다.
3-2. 필드 (Field)
private int postId; // 글 번호 (PK)
private int viewCnt; // 조회수
private String userNm; // 작성자 닉네임
private String userPw; // 글 비밀번호 (수정/삭제용)
private String regDt; // 작성일시
private String modDt; // 수정일시
private String title; // 글 제목
private String content; // 글 내용
필드는 데이터를 담는 공간입니다.
외부에서의 직접적인 접근을 막기 위해 private 로 선언합니다.
이렇게 하는 이유는 객체 내부의 데이터를 임의로 변경하거나 손상시키는 것을 방지하기 위해서입니다.
예를 들어, 어떤 회원의 계정 비밀번호를 외부의 누군가가 맘대로 바꿔버리면 큰 문제가 발생하겠죠.
따라서 외부에서 필드에 직접적으로 접근하지 못하고, getter / setter 메서드를 통해서만 값을 읽고 수정할 수 있도록 합니다.
🔹 public / private / protected 등은 접근 제한자인데, 이는 다음 글에서 자세히 설명하겠습니다.
3-3. 생성자 ( Constructor )
// 기본 생성자
public BoardVo() {
}
생성자는 클래스를 실제 객체로 만드는 역할을 합니다.
객체를 만들 때 자동으로 호출되며 객체가 생성될 때 초기 상태를 설정할 수 있습니다.
위의 형태는 기본 생성자입니다.
기본 생성자는 매개변수가 없는 빈 생성자이며 객체를 생성한 후, 필요할 때 Setter 를 이용해서 데이터를 하나씩 채울 수 있습니다.
기본 생성자 예시 코드를 보면 이해가 더 쉽습니다.
기본 생성자로 생성하면 초기 상태를 자유롭게 만들고, 나중에 값을 설정해서 원하는 상태의 객체를 만들 수 있습니다.
// 기본 생성자로 객체 생성
BoardVo vo = new BoardVo();
// Setter로 값 채우기
vo.setId(1);
vo.setTitle("첫 게시글");
vo.setWriter("이지");
vo.setContent("게시판 게시글 내용");
vo.setRegDate(new Date());
💡 참고 : 매개변수가 존재하는 생성자
public BoardVo(int id, String title, String writer, String content, Date regDate) { ... }
3-4. Getter / Setter
public int getPostId() {
return postId;
}
public void setPostId(int postId) {
this.postId = postId;
}
앞서 필드에서 private 선언을 통해 외부의 접근을 막았기 때문에, 객체 외부에서 해당 값들을 읽거나 변경할 수 있는 통로가 필요합니다.
그 역할을 하는 것이 바로 Getter(값을 가져오는 메서드)와 Setter(값을 설정하는 메서드) 입니다.
이 메서드들은 일일이 입력하지 않아도 아래의 방식을 통해 자동 생성이 가능합니다.
BoardVo.java 파일을 연 상태에서 Source > Generate Getters and Setters... 를 선택합니다.

만들지 않은 getter, setter 항목들이 표시되는데, Select All을 눌러 전부 체크해주고 Generate를 눌러 생성합니다.

그러면 이런 식으로 자동으로 Getter, Setter가 생성됩니다.

4. 마무리하며
지금까지 BoardVo.java 파일을 중심으로 게시글 데이터를 담는 객체의 구조와 역할을 살펴보았습니다.
다음 단계에서는 데이터를 실제로 주고받는 Mapper.xml 을 살펴보겠습니다.
여기까지 수고하셨습니다.
감사합니다.
📌 참고
파일 생성하는 법
https://silverji.tistory.com/257
[JAVA]8. 게시판 목록 화면 틀 잡기
드디어 본격적으로 게시판 만들기를 들어가겠습니다.방명록 느낌으로 간단한 CRUD 화면을 작업할 예정인데요.Spring 연동 없이 오리지널 Servlet 으로 작업할겁니다.Servlet 의 구조를 파악하면서 기
silverji.tistory.com
'개발 실습 > CRUD 게시판 만들기' 카테고리의 다른 글
| 19. 게시판 백엔드 기초 : BoardDao로 게시글 목록 조회 기능 구현하기 (7) | 2025.11.22 |
|---|---|
| 18. 게시판 백엔드 기초 : board-mapper.xml로 매핑 구조 이해하기 (7) | 2025.11.01 |
| 16. 게시판 상세보기 화면 구현 : 버튼, 삭제, 필수입력(required), 강조(strong) 활용 (8) | 2025.10.18 |
| [JAVA]15. 게시판 작성 화면 구현 : JSP 입력 폼(form) 구성 (28) | 2025.08.30 |
| [JAVA]14. 게시판 작성 화면 구현 : 영역 나누기(div) (20) | 2025.08.24 |