카테고리 없음

[Spring + Mybatis + Oracle]게시판 만들기 setting

dev-kjh 2018. 5. 21. 16:55

[Spring + Mybatis + Oracle]게시판 만들기.


               




  안녕하세요:) 블로그 관리가 많이 소홀하네요ㅎ; Java계열 공부하다보니 Web부분(Html, Jsp, Js ...)까지 하고 Oracle찍고 이제 Spring을 시작하게 되었는데 되게 진도만 쭉 뺀거같아서 포만감이라해야되나 아무튼 전반적으로 해야될 것들이 많네요. 이전 Jsp MVC2 pattern도 올려야되는데 Spring MVC부터 올리게 되네요. 일단 간략하게 설명드리자면 MVC2패턴을 알고 계실 꺼라고 믿고(다음에
MVC2[Jsp, Oracle]공략 올리겠습니다.) Spring MVC pattern은 기존의 MVC2패턴의 게시판에서 하나의 파일을 수정하게되면 연관된 다른 파일들도 수정해야되는 단점이 있지만 스프링에서는 객체간의 의존성을 낮춰서(느슨한 결합) 각각의 객체의 재사용성을 높이는 등 여러가지 장점들이 많다고합니다(저도 아직 스프링에 대한 이해도가 높은 편이 아니라서 추후에 스프링에대해 자세히 올리겠습니다ㅠ)


이제부터 길어질꺼같아서 음슴체로...


 SPRING 개발 환경으로는 크게 두가지가 있는 것으로 알고있음.

1번. 이클립스 MARKET PLACES에서 STS 검색후 이클립스 툴에 스프링 설치

2번. 구글에서 STS SPRING 검색후 사이트에서 툴 설치하기

필자는 위 1번과 2번 둘다 해봤음. 처음에는 귀찮은데 그냥 이클립스에서 다해야지하고 설치후 프로젝트 생성하고 TEST해보니 이클립스가 너무 뚱뚱해졌다. 삭제하면 큰일 날 것 같다. 기존 프로젝트들도 많고, 기존(JAVA OR DYNAMIC WEB ...)프로젝트들도 많아서 구분하기도 어렵고 아무튼 이클립스가 너무 살쪘다. 그래서 2번을 설치했다. 이클립스에서 설치할때 보였던 마크(나뭇잎 마크) 사이트(아래 글에서 자세히 설명함)에서 설치해보니 기존 이클립스는 DEFAULT가 JAVA지만 STS는 SPRING으로 되어있다. 그리고 다운시 300MB정도하였고, 스프링 프로젝트는 STS 툴에만 하면되니 약간의 분류가되어 현재는 스프링 공부 및 개발은 이 툴로만 한다. 필자는 추천하며 둘 다 괜찮은 것 같음. 너무 오랜만에 블로그하다보니 서론이 길어졌는데 앞으로 스프링, 마이바티스(는 이후에 자세히 설명하겠음)+데이터베이스(ORACLE)로 만든 게시판 만들기를 길~게 작성하려고함. 



  

  Spring Project 생성 시 다른 프로젝트들과는 다르게 엄청난 디렉토리들이 있다. 각각의 디렉토리는 툴에서 자동으로 만들어 주는 만큼 이유가 있으니 만들어 놓은 것이기에 각각의 디렉토리에대한 설명부터해서 나도 아직 학생이고 어디서 개소리일수도 Spring은 설정이 반이라는 말이 있던데 처음 환경설정 할 것도 많아 차근차근 설명하겠음.


프로젝트 각각 파트별 설명

 

 

Src/main/java

Java code(Controller, Model, Service

Src/main/resources

sqlMapConfig.xml, Mybatis's mapper (Java code에서 참조하는 리소스 파일들)

Src/test/java

Test 관련 code

Src/test/resources

Test 관련 code에서 참조하는 리소스 파일들

Src/main/webapp

Web Service root directory(외부에서 접근이 가능함!)

Src/main/webapp/resources

Js, Css, Image 등의 리소스 파일

Src/main/webapp/WEB-INF/classes

컴파일된 클래스

Src/main/webapp/WEB-INF/spring

Spring 환경설정 파일

src/main/webapp/WEB-INF/root-context.xml

Servlet 관련되지 않은 모든 리소스에 대한 설정

src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml

서블릿과 관련된 리소스에 대한 설정

src/main/WEB-INF/views

HTML, jsp 페이지

src/main/webapp/WEB-INF

외부에서 접근 불가능(보안), Controller 통한 경유로 접근 가능

pom.xml

Maven에서 참조하는 설정 파일

 

 

프로젝트 각각 파트별 세부 설명

 

Service :  기존 MVC2 pattern에서의 순서(Controller Model View)에서 Controller Service Model View 서비스 기능을 컨트롤러와 모델 사이에 추가해준다. Service 기능은 예로 들자면 게시판에 작성후 포인트를 부여(애매함ㅎ;)

 

Src/test/java : 개발완료(가정) TEST 납품 검수. 순서로 하는데  TEST에서는 프로그램(게시판) 테스팅하는데 있어서 자동화 과정을 "Junit"이라는 툴을 이용하여 작성할 것임.

 

※기존 MVC2에서의 content library 스프링에서는 사용하지 않고 Maven이라는 Build Tool 사용.

Maven : 자동 배포

 

<<<SETTING IS SPRING'S HALF>>>

 





SPRING 주요 특징

 

  1. POJO(Plain Old Java Object) : 별도의 API 필요하지 않은 일반적인 자바 코드를 이용하여 개발 가능.
  2. DI(의존성 주입) 통한 객체 간의 관계 구성
    • 객체 간의 의존성을 개발자가 설정하는 것이아니 스프링 컨테이너가 주입시켜 주는 기능
    • 객체를 쉽게 확장하고 재사용할 있음
  3. AOP(Aspect Oriented Programming) 지원 : 반복적인 코드를 줄이고 개발자가 비즈니스 로직에만 집중할 있도록 지원함.
  4. MVC pattern
  1. WAS(Web Application Server, <ex>Tomcat) 종속적이지 않은 개발 환경
  2. IoC(Inversion of Control, 제어의 역전) : 객체에 대한 제어권
    • 기본에는 개발자에게 제어권이 있었음(new 연산자)
    • 객체의 제어권을 스프링에게 넘김(
    • 인스턴스의 Life Cycle(생성~소멸)을 개발자가 아닌 Spring Frame Work 담당

 

의존

B 코드가 변경되면  A 코드도 변경되는 경우 A B 의존관계가 있다. 기존 MVC2에서 BoardDao.java MemberDao.java같은 경우 코드 내용이 변경될 경우 관련 파일도 변경되어야 된다. 경우를 강한 결합이며, 유지

보수의 경우에 손이 많이 가게됨.






Do SPRING Projects

 

  Eclipse에서 Market Places에서 스프링을 다운로드해서 사용해도되지만, 저는 STS Spring(이클립스랑 동일한데 설치할때부터 스프링 환경이 설정되어있는 툴을 사용하겠습니다(Site url : https://spring.io/tools/sts/all).

 

  스프링 프로젝트 생성시 new Spring Legacy Project Set Project Name & Spring MVC Project set Package → finish





이번 포스팅은 여기까지만 하겠습니다. 저도 아직 학생이라 막히던 부분도 많았고 앞으로도 많을 것이고 그때문에 막히던 부분은 다른사람들은 안 헤매었으면 하는 작은 바램이 있기에 친절히 작성하고싶지만 최근 개인적인 일들이 많아서 여기까지만 포스팅하고 빠른 시일 내에 CONTINUE 하겠슴.