Web/Spring

나프 - 게시판 만들기(1)

now0204 2023. 8. 2. 21:05

 

1. 3-Tier 방식의 이해 

 

- Spring에서 DB 작업 간소화로 사용자 요구사항을 반영하고, 컨트롤러 비대해지는 것을 방지하기 위해 

-  Presentation Tier <-Business Tire -> Persistence Tire의 3개의 Tire로 나누어 요청을 처리한다.

 

Presentation: 웹/화면 계층, Controller(FrontController+POJO),JSP를 이용한 VIEW구성 담당 

Business Tire :  비지니스 계층, 고객 요구사항 반영

                         로직을 기준으로 처리 (메서드 이름은 현실적인 로직의 이름을 붙이는 것이 관례이다.)

                         등록,회원검색,수정,삭제 등 Presentation 계층을 통해 메시지를 받고 DB와 협력하여 로직을 처리 

 

Persistence Tire: 영속계층, 데이터에 대한 CRUD

                             VO클래스 생성

                             Mapper 인터페이스 + XML파일 

                             DB를 기준으로 메서드 이름을 설계 

                             비지니스계층과 협력 

 

 

2. Spring 환경설정 (DB설정)

 

- 스프링 버전 4.2.4 버전 

-  java는 1.8버전 

 

2.1 DB 관련 생성

 

> 게시판 테이블을 미리 만들어 두자 

create table tb_board(
	idx int not null auto_increment,
	title varchar(100) not null,
	contents varchar(4000) not null,
	count int,
	writer varchar(30) not null,
	indate datetime default now() not null,
	primary key(idx)

);

> 다음으로 테이블과 매칭되는 VO객체를 만들자 

public class BoardVO {
	private int idx;
	private String title;
	private String contents;
	private int count;
	private String writer;
	private String indate; //날짜와 String은 호환가능 

  // toString, getter, setter 등 추가 

}

> Mapper Interface 및 xml파일 설정 

public interface BoardMapper {
	public List<BoardVO> getList();//게시물 가져오기
	public void insert(BoardVO board); // 게시물 등록
	public BoardVO read(int bno); //게시물 상세보기
	public int delete (int bno); // 게시물 삭제
	public int update (BoardVO board);//게시물 수정
}

- xml파일은 mybatis 사이트를 참고해서 만들었다.

   namespace와 인터페이스명 - sql태그 id와 메서드명이 일치하도록 하자 

 

2.2 DB관련 스프링 환경설정 

 

- root xml파일에 mybatis,JDBC,db properties 관련 설정과 mapper 패키지를 스캔해서 스프링 컨테이너에 

  등록시켜두어야 한다. 

 <!-- Mybatis sqlsessionFacroty -->
	 <!-- @Mapper보고 xml의 namespace와 인터페이스 이름보고 연결시켜줌  -->
	 <bean id ="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
	     <property name="dataSource" ref="dataSource" />
	     <property name="configLocation"   value="/WEB-INF/mybatis/config.xml" />
	     
	 </bean>
	 
	 <!-- JDBC연결(DataSource) -->
	 <bean id="dataSource" class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
	     <property name="driverClass" value="${driver}"/>
	     <property name="url" value="${url}"/>
	     <property name="username" value="${username}"/>
	     <property name="password" value="${password}"/>

	     
	 </bean>
	 
	 <!-- db.properties 파일 연결 -->
	 	<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
	 	    <property name="locations" value="/WEB-INF/mybatis/db.properties"/>  
	 	</bean>
	 	
	
	
	<!-- @Mapper와 mapper.xml파일 스캔-->
	<mybatis-spring:scan base-package="kr.inflearn.mapper"/>
	
	
1.	</beans>

- 다음으로 config.xml파일과 DB.properties 파일을 만들자 각각의 파일에는 타입앨리어스, Datasource생성을 위한 정보를 등록 해둔다. 

- 그 후에 DB와 관련된 api를 메이븐을 통해 다운받자 

 

 

참고자료: 나프2탄(박매일) - 인프런 

https://www.inflearn.com/course/%EB%82%98%ED%94%84-mvc-2

 

[NarP Series] MVC 프레임워크는 내 손에 [나프2탄] - 인프런 | 강의

본 과정은 WEB MVC 프레임워크가 무엇이고 WEB MVC 프레임워크가 어떻게 변형이 되면서 Spring WEB MVC 프레임워크로 넘어가는지 TPC(생각하고-표현하고-코딩하고) 기법을 통해 단계적으로 학습하고 이

www.inflearn.com