인텔리제이는 소스코드를 컴파일한 후에 프로젝트의 빌드선언에 따라서 의존성을 클래스패스 classpath 로 추가하여 실행시킨다. 그래서 스프링부트와 관련해서 build.gradle에서 providedRuntime('org.springframework.boot:spring-boot-starter-tomcat') 가 선언되어 있으면 스프링부트 앱을 실행시킬 때 클래스패스 상에서 내장 컨테이너를 제외한다. 그래서 실제로 인텔리제이상에서 providedRuntime 을 선언해두면

/Library/Java/JavaVirtualMachines/jdk1.8.0_91.jdk/Contents/Home/bin/java -Dspring.output.ansi.enabled=always -Didea.launcher.port=7540 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "... 의존성 라이브러리들 선언...(providedRuntime 선언과 관련된 것은 제외 )" com.intellij.rt.execution.application.AppMain {내 앱}

으로 실행되면서 실행안된다.

이클립스는 소스코드만 컴파일하고 실행에 필요한 클래스패스는 빌드경로buildpath 기준으로 잡기 때문에 무리없이 실행된다.

이 두 IDE 의 차이를 이제야 이해했다. @_@)>


프레임워크가 어떤 것인지 이해하려면 라이브러리와 프레임워크가 어떻게 다른지 알아야 한다.

라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접제어한다.

단지 동작하는 중에 필요한 기능이 이쓸 때 능동적으로 라이브러리를 사용할 뿐이다.

 

반면에 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.

보통 프레임워크가 위에 개발한 클래스를 등록해두고, 프레임워크가 흐름을 주도하는 중에 개발자가 만든 애플리케이션코드를 사용하도록 만드는 방식이다.

프레임워크에는 분명한 제어의 역전 개념이 적용되어 있어야 한다. 애플리케이션 코드는 프레임워크가 짜놓은 틀에서 수동적으로 동작해야 한다. 

 

--> 라이브러리를 사용하는 애플리케이션 : 애플리케이션이 필요할 때 라이브러리를 사용

--> 프레임워크를 사용하는 애플리케이션 : 프레임워크가 흐름을 주도하다가 필요한 애플리케이션을 사용

 

출처 : 토비의 스프링3, 1장_오브젝트와 의존관계

토비의스프링3
카테고리 컴퓨터/IT > 프로그래밍/언어 > 프로그래밍일반
지은이 이일민 (에이콘출판, 2010년)
상세보기


이 글은 스프링노트에서 작성되었습니다.

구글에서 제공하는 구글 애플리케이션(구글 솔루션)을 이용하여 보기로 했습니다.

현재 honeymon@ihoney.pe.kr 도메인을 검정받고 있는 중입니다.

● Tistory 2차 도메인 및 서브 도메인(ex : java.ihoney.pe.kr) 설정방법
http://www.giristory.net/blog/103

● 구글 애플리케이션 CNAME 설정방법
http://blog.happyhong.net/117

허니몬의 도메인은 티스토리 블로그에 연결되어 있기 때문에 HTML 방식으로는 인증을 할 수가 없습니다. 그래서 DNS 서버에서 CNAME을 추가하여 도메인을 인증받는 방법을 사용해야 했습니다. 그 방법을 찾은 곳입니다. ^^

도메인 인증 작업이 완료되면 honeymon@ihoney.pe.kr(허니몬의 달콤한 비행용) 과 javaguru@ihoney.pe.kr(허니몬의 자바guru 용)으로 사용할 수가 있기를 고대하고 있습니다. ^^

+ Recent posts