2017년 9월 25일 월요일

스프링 프로젝트 개발 전에 알아 두어야 할것들

스프링 3 & 4
- EJB 의 폐쇄적이고 상속 위주의 단점을 극복하고자 만든 프레임워크, 톰캣이 가능하다..ㅋ
- 오픈소스로 만들어진 안정적인 프레임워크
- 자바로 웹 또는 실행 애플리케이션을 만들 때 사용할 수 있는 프레임워크
- 자바로 네트워크 연결, 디비 연결등 귀찮고 짜증나는 작업을 쉽고 편하게 지원하여 , 비지니스 로직 개발에만 전념할수 있도록 해줌.
- POJO 방식을 지우너하고 경량 컨테이너를 지원함으로서 프레임워크에 종속되지 않는 개발 방식이 가능
 -- POJO : 특정 라이브러리를 상속하지 않고 자바 자체의 구현 함수만으로 프로그램이 제작 가능한건.
 -- 경량 컨테이너 : 프레임워크를 전부 로드하는 게 아니라 필요한 기능한 사용가능한 경량 컨테이너 방식
- 의존성주입, 관점 지향 컨테이너, 포터블 서비스 추상화
--의존성 주입 : 헐리우드 법칙, 내가 필요해서 요청하는게 아니라 , 스프링에서 필요한 부분에 호출해 준다. 즉, 빈 컨테이너 (컨테이너 박스) 에 내가 사용할 빈을 미리 등록해 놓으면, 스프링이 해당 부분에서 알아서 빈을 꺼내서 주입해 준다. 프로그램 내에서 사용할 객체를 이것저것 new 하는게 아니라, 빈 컨테이너를 통해 사용함으로서 객체간의 의존성을 최소화함.
-- 관점지향 컨테이너 : 여러 객체에서 공통으로 적용되는 공통관심사항(트랜잭션,로깅,보안등)을 특정 메소드,필드가 실행되기 전후,예외발생등의 시점에 실행해 주는 것을 관리, 기존의 방식이라면, 매번 해당 기능을 호출하고 관리해야 되므로 문제가 생기던것을, 훅 과 같은 방식으로 처리.
-빈 객체의 생성,소멸과 같은 라이프 사이클을 관리
-데이터 베이스 접근의 일관성.

[참고].MAVEN 필요 라이브러리 관리툴
jar 를  library , plugin 등의 폴더에 다운받아서 저장 하는 귀찮은 과정을, Maven 이 대신 해줌.
단순히 다운로드 뿐만 아니라, 모듈간 의존성을 관리해줌.
스프링 뿐만 아니라 기존 프로젝트도 메이븐 프로젝트로 변경할수 있음.
최신의 이클립스에는 기본으로 탑재되어 있음.
또 하나의 기능은 빌드 기능이다. 프로젝트를 컴파일,테스트,패키징,인스톨 과 같은 빌드 라이프 싸이클을 설정하여, 한번에 컴파일->인스톨 까지 가능하도록 도와 준다. 심지어 이클립스에서 설정이 가능하다.

-----------------------------------------------------------------------------------------------

주요용어
 빈(bean)
 스프링이 IoC 방식으로 관리하는 오브젝트를 말한다. 관리 되는 오브젝트라고 부르기도 한다.
 스프링이 직접 그 생성과 제어를 담당하는 오브젝트만을 빈이라고 부른다.

 빈 팩토리(bean factory)
 스프링이 IoC를 담당하는 핵심 컨테이너를 가리키다. 빈을 등록하고. 생성하고, 조회하고 돌려주고, 그 외에 부가적인 빈을 관리하는 기능을 담당한다.
 보통은 이 빈 팩토리를 바로 사용하지 않고 이를 확장한 애플리 케이션 컨텍스트를 이용한다.

 애플리케이션 컨텍스트(application context)
 빈 팩토리를 확장한 IoC 컨테이너이다. 빈을 등록하고 관리하는 기본적인 기능은 빈 팩토리와 동일하다.
 스프링이 제공하는 각종 부가 서비스를 추가로 제공한다.
 빈 팩토리라고 부를 때는 주로 빈의 생성과 제어의 관점에서 이야기하는 것이고, 애플리케이션 컨텍스트라고 할 때는 스프링이 제공하는
애플리케이션 지원 기능을 모두 포함해서 이야기하는 것이라고 보면 된다.
 설정정보/설정 메타정보(configuration metadata)
 스프링의 설정정보란 애플리케이션 컨텍스트 또는 빈 팩토리가 IoC를 적용하기 위해 사용하는 메타정보를 말한다.
이는 구성정보 내지는 형상정보라는 의미이다.

 스프링 프레임워크
 스프링 프레임워크는 IoC 컨테이너, 애플리케이션 컨텍스트를 포함해서 스프링이 제공하는 모든 기능을 통틀어 말할 때 주로 사용한다.



web.xml 에 관한 설명은 아래에서.
출처: http://seongilman.tistory.com/16 [SEONG]


톰캣 관련
-PSI-Probe : Tomcat 모니터링 툴
https://dukeom.wordpress.com/2011/08/08/psi-probe-tomcat-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-%ED%88%B4/
-Tomcat manager GUI 사용하기
https://dukeom.wordpress.com/2011/08/08/tomcat-manager-gui-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/


스프링 강좌
스프링 MVC
http://cloudstudying.kr/courses/12

------------------------------------------------------------------------------------------------------------

-web.xml 에 대해 알아보자
http://seongilman.tistory.com/16

-스프링 파일 업로드 예제
https://dukeom.wordpress.com/2011/08/25/spring3-file-upload-%EA%B5%AC%ED%98%84/

-스프링 프로퍼티 파일을 @로 읽어오기
https://dukeom.wordpress.com/2016/06/26/%EC%8A%A4%ED%94%84%EB%A7%81%EC%97%90%EC%84%9C-%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0-%ED%8C%8C%EC%9D%BC%EC%9D%84-value%EB%A1%9C-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0/

-스프링 디비 관련
tomcat(7.x),spring,mybatis 사용시 tomcat connection pool 설정하기

https://dukeom.wordpress.com/2012/02/21/tomcat7-xspringmybatis-%EC%82%AC%EC%9A%A9%EC%8B%9C-tomcat-connection-pool-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0/

0 comments:

댓글 쓰기