[JSP] 08. 모델1 방식의 회원제 게시판 만들기

Min's Study Note·2023년 11월 13일
0

JSP

목록 보기
10/16

▣ 회원제 게시판의 프로세스

  • 게시판은 목록부터출발
  • 제목을 클릭하여상세보기
  • 내용 확인 후 수정및삭제
  • 위 기능을 회원제로제작
  • 비회원(로그아웃) 상태
    - 목록 보기
    - 상세 보기
  • 회원(로그인) 상태
    - 글쓰기
    - 수정하기
    - 삭제하기

▣ 테이블 및 시퀀스 생성

  • 5장에서 생성했던 2개의 테이블을 사용
  • 회원관리 : member 테이블
  • 아이디 컬럼은 기본키(Primary key)로 지정
  • 게시판에 글을 쓰거나 수정, 삭제를 위한 회원인증에 사용
  • 게시물 관리 : board 테이블
  • 사용자가 입력한 게시물을 저장
  • 일련번호 컬럼을 기본키(Primary key)로 지정
  • 회원제이므로 member 테이블의 id 컬럼과 board 테이블의 id 컬럼은 외래키(foreign key)로 지정

▣ MVC 패턴

  • MVC는 모델(Model), 뷰(View), 컨트롤러(Controller)의 약자로, 소프트웨어를 개발하는 방법론의일종
    - Model : 비즈니스 로직 혹은 데이터베이스 관련 작업 담당
    - View : 사용자에게 보여주기 위한 작업 담당
    - Controller : 사용자의 요청을 받아 분석 및 처리를 담당. 이 과정에서 Model과 View를 호출

▣ 모델1

  • JSP로 개발하는 방식
  • 사용자의 요청을 JSP가 받아서 처리한 후 응답
  • 따라서 JSP에 Controller 와 View가 혼재되어 있음
  • 장점 : 개발속도가 빠르고, 학습하기 쉬움
  • 단점 : 뷰와 컨트롤러를 JSP에서 구현해야 하므로 코드가 복잡해지고 유지보수가 어려움

▣ 모델2

  • Servlet으로 개발하는 방식
  • 사용자의 요청을 Controller인 Servlet이 직접 받음
  • 요청을 분석한 후 Model을 호출하여 데이터를 받음
  • 데이터를 최종적으로 View로 전달하여 응답
  • 장점 : MVC가 각 역할을 수행하므로 업무 분담이 명확하고 코드가 간결해짐
  • 단점 : 구조가 복잡하여 학습하기 어렵고, 개발기간이 길어질 수 있음

▣ 핵심요약

  • 목록 보기와 상세 보기는 로그인 없이 접근할 수 있음
  • 글쓰기는 로그인 후 할 수 있음
  • 수정과 삭제는 로그인 후 본인이 작성한 게시물에 한해서만 가능
  • 로그인 시 session 내장 객체와 session 영역을 사용
  • DB연결을 위한 설정값은 web.xml에 주로 저장
  • 사용자가 입력한 내용을 쿼리에 반영하기 위해 동적 쿼리를 뜻하는 PreparedStatement 인터페이스를주로 사용
  • 경고창(alert), 페이지 이동(location.href)과 같이 자주 사용하는 자바스크립트는 별도의 유틸리티클래스로 만들어두면 재사용성이

💡 DTO와 DAO의 차이

  • DTO (Data Transfer Object)
    : DTO는 데이터를 전송하거나 저장하기 위한 객체입니다.
    주로 비즈니스 로직이나 데이터베이스와의 통신에서 사용됩니다. 일반적으로 데이터베이스로부터 결과를 검색하거나, 웹 애플리케이션 간에 데이터를 전달하는 데 사용됩니다.
    DTO는 주로 데이터의 구조를 나타내고, getter 및 setter 메서드를 통해 데이터에 접근합니다.
  • DAO (Data Access Object)
    : DAO는 데이터베이스와의 상호 작용을 담당하는 객체입니다.
    데이터베이스와의 연결, 조회, 갱신, 삭제 등의 작업을 처리합니다. 비즈니스 로직에서 데이터베이스와의 통신을 캡슐화하여, 데이터베이스 접근 로직을 분리합니다.
    DAO는 보통 DTO를 사용하여 데이터를 주고받습니다. 즉, DTO는 데이터 전송을 위한 구조를 제공하고, DAO는 이 구조를 활용하여 데이터베이스와의 통신을 수행합니다.

👉 간단히 말하면, DTO는 데이터 전송을 위한 객체이고, DAO는 데이터베이스와의 통신을 담당하는 객체입니다. 이들은 각자의 역할과 책임이 있으며, MVC (Model-View-Controller) 패턴 등에서 조합하여 사용될 수 있습니다.

0개의 댓글

관련 채용 정보