개발

자바로 간단한 게시판 도메인 모델 구현하기

new-fp 2024. 11. 15. 16:27
728x90
반응형

안녕하세요, 여러분! 오늘은 자바를 활용한 간단한 게시판 도메인 모델을 만들어 보려고 합니다. 파라미터와 데이터 구조를 설정하여 게시물의 효율적인 관리를 가능하게 하는 프로그램을 함께 구현해 보겠습니다.

들어가며

프로그래밍 언어로 자바를 선택한 이유는 플랫폼의 독립성과 객체지향 특성을 가지고 있기 때문입니다. 오늘 작성할 코드는 게시판의 게시물 정보를 관리하는 도메인 객체를 정의할 것입니다. 이 객체는 게시물의 기본 정보를 담고 있으며, 후속 단계에서 데이터베이스와 연동하거나 웹 애플리케이션으로 확장될 수 있습니다.

코드 작성하기

다음 코드는 게시판의 게시물 정보를 담기 위한 Board 클래스를 정의한 것입니다. 아래와 같이 인스턴스 변수와 기본 생성자를 포함하고 있습니다.

package com.smhrd.domain;

import lombok.Data;
import lombok.NoArgsConstructor;

@Data // Getter/Setter/toString을 자동으로 생성
@NoArgsConstructor
public class Board {
    // 1. Class 필드명 == Table 컬럼

    // 글번호
    private int idx;
    // 제목
    private String title;
    // 작성자
    private String writer;
    // 내용
    private String content;
    // 작성일
    private String indate;
    // 조회수
    private int count;
}

코드 설명하기

  • 패키지 선언: package com.smhrd.domain;는 클래스가 속한 패키지를 정의합니다.
  • Lombok 어노테이션:
    • @Data: 이 어노테이션은 해당 클래스에서 Getter, Setter 및 toString() 메서드를 자동으로 생성합니다. 중복 코드를 줄이는 데 유용합니다.
    • @NoArgsConstructor: 기본 생성자를 자동으로 생성하여, 객체 생성을 간편하게 합니다.
  • 클래스 필드:
    • int idx: 게시물의 고유 번호를 저장합니다.
    • String title: 게시물 제목을 저장하는 변수입니다.
    • String writer: 게시물을 작성한 사람의 이름을 담고 있습니다.
    • String content: 게시물의 내용을 담는 필드입니다.
    • String indate: 게시물이 작성된 날짜를 저장합니다.
    • int count: 게시물 조회 수를 기록하는 변수입니다.

예제 실행 결과

이 클래스는 게시물 정보를 담고 있는 객체를 생성할 수 있게 해줍니다. 예를 들어, 다음과 같이 객체를 생성해 볼 수 있습니다.

Board post = new Board();
post.setIdx(1);
post.setTitle("자바 게시판");
post.setWriter("홍길동");
post.setContent("안녕하세요, 자바 게시판입니다.");
post.setIndate("2023-10-11");
post.setCount(0);

System.out.println(post.toString());

이 코드를 실행하면 다음과 같이 게시물 정보가 출력될 것입니다:

Board(idx=1, title=자바 게시판, writer=홍길동, content=안녕하세요, 자바 게시판입니다., indate=2023-10-11, count=0)

추가적으로

이 도메인 모델을 기반으로 더 유용한 기능을 추가할 수 있습니다:

  • 데이터베이스 연동을 통해 실제로 게시물을 저장하고 불러오는 기능 구현.
  • 사용자 인터페이스(UI) 생성하여 사용자가 쉽게 게시물을 작성 및 조회할 수 있도록 하기.
  • 여러 개의 게시판을 만들기 위한 확장성을 고려한 구조 마련.

마무리하며

이번 포스트에서는 자바를 사용하여 게시판의 도메인 모델을 구현해보았습니다. 객체지향 프로그래밍의 중요성을 다시 한번 느낄 수 있는 시간이었길 바랍니다. 여러분이 원하는 대로 이 모델을 확장해 보세요! 궁금한 점이 있다면 언제든지 댓글로 남겨주세요.

공유하기: 이 정보를 필요로 하는 친구들에게도 전해보세요! 그럼 다음 포스트에서 만나요!

728x90
반응형