본문 바로가기

Spring Framework 개발 일지/Spring으로 게시판 만들기

FirstSpringBoard#3-1] 비즈니스로직 구현하기(전체 글 조회)

반응형

이번 포스팅에서는 이전시간에 설정한 것들을 바탕으로 비즈니스 로직을 구현해보겠습니다.

Domain 객체를 만들고, Mapper.xml 파일을 설정하고 테스트 코드를 작성하면서 DAO 클래스를 만들어볼게요.


우선 비즈니스 로직 구현을 위해서 웹어플리케이션의 기능을 알아봐야합니다.

아래 화면을 보면 우리가 필요한 기능들을 알 수 있어요.

 -전체 글 조회

 -특정 글 조회

 -수정

 -삭제

 -글쓰기

각각 기능 수행에 필요한 쿼리문들도 떠오를 것입니다.

 -전체 글 조회(slect *from tablename)

 -특정 글 조회(select *from tablename where id = #{id})

 -수정 (update tablename set column1 = #{...}, column2 = #{....})

 -삭제 (update from tablename)

 -글쓰기 (insert into tablename (column1, column2) values(#{,,,,}, #{....}, #{....})


1. 우선 비즈니스 로직 구현에 앞서서 Domain Object(도메인 객체)를 생성해줘야합니다.

도메인 객체는 비즈니스 로직에서 대상이 되는 객체입니다.

비즈니스 로직에서 필요한 속성이 있는 객체입니다.

이 도메인 객체가 프로젝트에서 VO(Value Object) 혹은 DTO(Data Transfer Object)가 됩니다.


우리가 필요한 Board 테이블을 생성했었는데요. 테이블의 칼럼과 우리가 만들 도메인 객체의 필드는 동일합니다.

아래 테이블을 참고해서 도메인 객체를 생성해줍니다.



테이블을 참고해서 짠 코드는 아래와 같습니다. Getter와 Setter, toString 메소드도 만들어 주세요.

이클립스의 자동생성기능을 이용하면 손쉽게 만들 수 있습니다.(사용방법은 생략합니다.



프로젝트의 패키지 구성은 아래와 같습니다. 동일하게 맞춰주세요.
이전과 다르게 스프링에서는 패키지를 기준으로 각종 설정을 해주는 방법이 많이 사용됩니다.
패키지이름 앞의 두자리는 모두 동일한 이름으로 하고 각 용도에 맞게 패키지 이름을 바꿔서 구성해주세요.


이제 DAO Class를 만들겠습니다. DAO(Data Access Object)는 MVC 패턴에서 Model의 기능을 하는 클래스입니다.
그리고 비즈니스 로직을 구현하는 클래스입니다. DAO에게 처리대상이되는 객체가 아까 만든 VO입니다.
아래와 같이 DAO를 만들어주세요.


그리고 저번 포스팅에서 만들었던 것을 참고해서 JUnit test case를 만들어줍니다.


이제부터 본격적으로 DAO를 구현하기 전에 mapper.xml 파일을 만들어주겠습니다.

package explorer에서 Ctrl + N을 누르고 mybatis를 검색해주세요. 그리고 Mybatis Mapper XML을 선택합니다.



Next를 눌러주세요.

Finish를 눌러주면 src 폴더 밑에 Mapper.xml 파일이 생성됩니다. Src/main/resources아래에 com.SpringBoard.mappers 패키지 아래에 위치시켜주세요. 아래와 같이요. (applicationContext.xml은 무시해주세요.)



2. Mapper.xml을 열어주세요. 기본설정된 내용들 중에서 mapper 엘리먼트와 resultMap 엘리먼트만 남겨주세요.  아래처럼요.





	
		
		
		
	


3.그리고 Mapper.xml 파일을 수정해주세요.



          
	         

		
		
		
		
		
		
		
	

4.그리고 nameSpace의 경로에 아래와 같은 인터페이스를 만들어주세요.

5. 그리고 mybatis-config 설정의 주석처리를 아래처럼 풀어주세요.


6.이제 전체 게시물 목록을 불러오는 기능을 구현해보겠습니다. Mapper.xml에 아래 코드를 추가해주세요.


         
 
	 
		
		
		
		
		
		
		
	
        

7. 아까 만들어둔 BoardMapper 인터페이스에 들어가서 추상메소드를 하나 추가해주세요. 위에 설정했던 select 엘리먼트를 메소드로 구현했습니다.
8. BoardDAO에 전체 리스트를 불러오는 기능의 메소드를 하나 만듭니다. 9. 이제 테스트 코드를 통해서 실행해볼게요. 아까 만든 JUnit Case에 아래 메소드를 추가해주세요.
10. 실행하고자하는 메소드를 누르고 Ctrl + F11을 눌러줍니다. 그럼 아래와 같은 화면이 나올거에요.


11. 데이터를 몇개 넣어서 다시 실행하면 콘솔창에 데이터가 보일 것입니다.


아마 이 포스팅을 읽으면서 많이 혼란스러우실 거라고 생각합니다.

VO에 DAO에 Mapper 인터페이스는 또 뭐고...Mapper.xml은 뭔지...정말 헷갈리실거에요. 저도 포스팅을 올리면서 헷갈렸습니다.

하지만 계속 따라하다보면 익숙해지고 개념들이 익숙해지실거에요. 수고하셨습니다.


반응형