Software Requirements Specification Template

Size: px
Start display at page:

Download "Software Requirements Specification Template"

Transcription

1 Maven Chapter5 Page 1 Table of Contents Table of Contents... 1 Revision History 내가꿈꾸는개발환경 메이븐설치및템플릿프로젝트생성 메이븐설정파일 메이븐라이프사이클 lifecycle 메이븐을이용한의존라이브러리관리 메이븐의의존라이브러리관리 Dependency 위키북프로젝트에의존라이브러리추가하기 속성 properties 메이븐과이클립스통합 메이븐과데이터베이스통합 메이븐프로파일, 배포 리포팅기능을활용한문서관리 메이븐모듈 module 메이븐사내저장소설치및활용 표준 POM 파일생성및리팩토링 메이븐아키타입 archetype 새로운프로젝트를시작하면서

2 Maven Chapter5 Page 2 Revision History Name Date Reason For Changes Version

3 Maven Chapter5 Page 3 1. 내가꿈꾸는개발환경 2. 메이븐설치및템플릿프로젝트생성 3. 메이븐설정파일 4. 메이븐라이프사이클 lifecycle 5. 메이븐을이용한의존라이브러리관리 프로젝트시작 4 일째 ( 소제목 ) 메이븐의빌드과정에대하여이해했으니이제부터본격적으로위키북프로젝트를진행할수있겠다. 먼저위키북프로젝트와의존관계에있는라이브러리를추가해야겠다. 위키북프로젝트는전사표준프레임워크인스트럿츠 2 struts2, 스프링 spring, 아이바티스 ibatis 프레임워크를기반으로진행해야하기때문에먼저이세개의프레임워크라이브러리를추가해야겠다. 그이후에이세개의프레임워크라이브러리와의존관계에있는라이브러리를추가하면되겠지. 이젠정말위키북프로젝트를진행하는기분이든다. 그런데메이븐에서는라이브러리는어떻게추가할까? 지금까지는의존관계에있는라이브러리를일일이다운로드한후에복사해서사용했는데좀불편한것이사실이었다. 예를들어스프링프레임워크기반으로애플리케이션을개발할때스프링프레임워크의버전을변경하고자한다면다음과같은과정을통하여변경했다.

4 Maven Chapter5 Page 4 그림 5-1 새로운버전의스프링프레임워크라이브러리를변경할때의사이클 그림 5-1 을통하여확인할수있듯이하나의라이브러리버전을변경하려면여러단계를거쳐야했다. 애플리케이션을개발하는데사용하는외부라이브러리가점점더많아지고복잡해지는상황에서현재와 같은라이브러리관리방법은한계를가질수밖에없었다. 메이븐은좀더편한방법으로라이브러리를관리하면좋겠다. 오늘은위키북프로젝트에스트럿츠 2, 스프링, 아이바티스프레임워크에대한의존관계를설정하면서메이븐이의존관계에있는라이브러리를 관리하는방법에대하여학습해봐야겠다. 5.1 메이븐의의존라이브러리관리 Dependency 메이븐은의존관계에있는라이브러리를관리하기위하여의존라이브러리관리 Dependency 기능을제공한다. 이기능은라이프사이클과더불어메이븐의중심에있는기능중의하나로반드시이해해야하는기능이다. 메이븐을처음사용할때개발자가가장좋아하지만문제가발생할가능성이가장높은기능이바로이기능이다. 이기능을제대로이해하고메이븐을사용한다면메이븐을사용하면서발생하는문제들을쉽게해결할수있을것이다. 하지만제대로이해하지못하는경우어디서문제가발생하는지해결책을찾지못해몇일을소비할수도있다. 메이븐에서중요한기능인만큼이장의내용은반드시이해해야한다 메이븐저장소

5 Maven Chapter5 Page 5 메이븐의의존라이브러리관리기능에대하여이해하려면먼저메이븐의저장소에대하여이해해야한다. 메이븐저장소는다음과같이세가지로나눌수있다. 1 중앙저장소 : 오픈소스라이브러리, 메이븐플러그인, 메이븐아키타입을관리하는저장소이다. 메이븐 2.0 의중앙저장소 URL 은 이다. 중앙저장소는원격 저장소중의하나이다. 중앙저장소는임의의개발자가라이브러리를배포할수없다. 원격저장소 : 메이븐기반으로프로젝트를진행하는경우프로젝트에필요한모든라이브러리가메이븐중앙저장소에존재하는것이아니다. 이처럼중앙저장소에존재하지않는라이브러리를관리하기위하여별도의메이븐저장소를설치해관리하는것이가능하다. 원격저장소는회사내에서만사용하기위한용도의사내원격저장소와스프링소스 SpringSource 에서제공하고메이븐저장소와같이외부에위치하는외부 ( 공개 ) 원격저장소가있다. 로컬저장소 : 로컬저장소는메이븐을빌드할때다운로드하는라이브러리, 플러그인을관리하는 저장소이다. 기본로컬저장소는 USER_HOME/.m2/repository 디렉토리이다. 각각의저장소와메이븐페이즈와의관계를도식화해보면다음그림과같다. 그림 5-2 메이븐라이브러리와저장소의관계도 1 구분방법에따라원격저장소와로컬저장소로나눌수도있으며, 사내원격저장소, 공개원격저장소, 로컬저장소로나눌수도있다. 이책에서는메이븐중앙저장소를별도의용도로설명하는경우가많아 별도로분리하여설명했다.

6 Maven Chapter5 Page 6 메이븐은빌드를하는시점에중앙저장소나외부에위치하는원격저장소에서로컬저장소로오픈소스 라이브러리, 메이븐플러그인라이브러리를다운로드한다. 로컬저장소에이미다운로드한라이브러리가 존재하면다시다운로드하지않고로컬저장소의라이브러리를사용한다. package 페이즈를실행하여메이븐기반프로젝트를 <packaging/> 엘리먼트설정에따라 jar, war, ear 의형태로압축을한다. 이와같이압축한결과물은 install 페이즈를실행하여로컬저장소에배포가된다. 로컬저장소에배포한라이브러리는개발자 PC 의다른프로젝트에서만의존관계를설정할수있다. 로컬저장소에만배포할경우다른개발자와라이브러리를공유할수없다. 다른개발자와라이브러리를공유하기위해서는 deploy 페이즈를실행해배포권한이있는원격저장소에배포해야한다. 중앙저장소와외부원격저장소는특정프로젝트의라이브러리나사내에서만사용하는라이브러리를배포할수없다. 이작업이가능하도록지원하기위해서는별도의메이븐사내원격저장소를설치하고관리해야한다. 사내메이븐원격저장소를설치하고활용하는방법에대해서는 11 장에서다룬다 메이븐저장소설정 메이븐에서저장소에대한설정은 <repositories>/<repository> 엘리먼트에서설정한다. 최상위 POM 에 설정되어있는중앙저장소의설정을보면다음과같다. <project...> <repositories> <repository> <id>central</id> <name>maven Repository </name> <url> </repository> </repositories> </project> 대부분의오픈소스라이브러리는중앙저장소에서제공하고있다. 하지만일부라이브러리는별도의메이븐원격저장소를통하여제공하는경우가있다. 이와같이중앙저장소에서제공하지않는라이브러리가있다면 <repository/> 엘리먼트에 id, name, url 값을설정하면된다. id, name 값은임의의값을사용하면되고, url 은원격저장소의 url 을설정하면된다. 메이븐은라이브러리를다운로드할때 <repositories/> 엘리먼트에설정되어있는저장소순서로라이브러리를다운로드한다. 첫번째저장소에서의존관계에있는라이브러리를찾았다면다음저장소에접근하지않고다른라이브러리를찾는방식으로동작한다.

7 Maven Chapter5 Page 메이븐의존라이브러리관리 이절에서는배포 (install, deploy 페이즈 ) 와관련된부분은제외하고의존관계에있는라이브러리를 다운로드하기위하여 pom.xml 을설정하는방법과메이븐의의존라이브러리관리기능에대한동작 방식에대하여설명하도록하겠다. 예를들어앞에서생성한위키북프로젝트의 <dependencies/> 엘리먼트를이용하여메이븐중앙 저장소에서라이브러리를관리하는방법부터살펴보겠다. 위키북프로젝트의 <dependencies/> 엘리먼트는 다음과같다. <project...> [...] <dependencies> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>3.8.1</version> <scope>test</scope> </dependencies> [...] </project> 예제 5-1 위키북프로젝트의 <dependencies/> 엘리먼트예제소스 예제 5-1 의 <dependencies/> 엘리먼트가복수를의미하듯이이엘리먼트하위에는여러개의 <dependency/> 엘리먼트를가질수있다. 예제 5-1 은위키북프로젝트가 junit 버전과의존관계에있다고설정한것이다. pom.xml 파일을위와같이설정한다음빌드를실행하면메이븐중앙저장소에서 junit 버전의 jar 파일을자동으로로컬저장소에다운받는다. 과정은다음과같다. 메이븐은중앙저장소에 junit 버전이있는지확인하고해당버전이있다면 junit 버전을다운받는다. 버전을찾는과정은메이븐중앙저장소 ( 에접근하여 groupid/artifactid/version 에존재하는 ${artifactid}-${version}.jar 파일을다운로드한다. 따라서예제 5.1 의설정은최종적으로 파일이존재하는지를파악해존재할경우다운로드한다. 메이븐로컬저장소의변경없이기본디렉토리를사용할경우 USER_HOME/.m2/repository (USER_HOME 디렉토리는윈도우 XP 는 C:\Documents and Settings\${userid}, 리눅스는 /home/\${userid} 이다.) 디렉토리에모든의존성라이브러리를다운로드한다. 로컬저장소에라이브러리를관리하는규칙또한중앙저장소와동일하다. 예제 5-1 과같이 pom.xml 파일을설정한다면 USER_HOME/.m2/repository/junit/junit/3.8.1/ 디렉토리에 junit jar 파일이다운받아진다.

8 Maven Chapter5 Page 8 groupid 는일반적으로도메인명을사용한다고했다. 위키북프로젝트의경우 groupid 가 net.javajigi, artifactid 가 wikibook 이다. 이와같이도메인명을사용했을때라이브러리가위치하는디렉토리는 USER_HOME/.m2/repository/net/javajigi/wikibook/1.0-SNAPSHOT/ 이다. 이처럼 groupid 에도메인명을사용할경우점 (.) 을기준으로디렉토리를분리해관리한다. 예제 5-1 과같이 JUnit 라이브러리에대한의존관계를설정한상태에서 JUnit 버전이업그레이드되어 버전을변경하고자한다면 pom.xml 파일에서버전번호만변경하면된다. 예를들어 JUnit 라이브러리를 4.7 버전으로변경한다면다음과같이설정하면된다. <project...> [...] <dependencies> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.7</version> <scope>test</scope> </dependencies> [...] </project> 예제 5-2 JUnit 버전을 에서 4.7 버전으로변경하는예제소스 예제 5-2 와같이 JUnit 의버전을 에서 4.7 로변경하면로컬저장소에 JUnit 4.7 버전이없으므로 빌드를하는과정에서 JUnit 4.7 버전을다운로드한다. 만약이미다운로드한 JUnit 4.7 버전이존재한다면 로컬저장소에있는 JUnit 4.7 버전을활용한다.

9 Maven Chapter5 Page 9 그림 5-3 메이븐을빌드할때 JUnit 4.7 버전을다운로드하는화면 그림 5-3 을보면 JUnit 4.7 버전이로컬저장소에존재하지않을경우중앙저장소의 jar 파일을로컬저장소에다운로드한다. 메이븐빌드를실행해로컬저장소에의존관계에있는라이브러리를한번다운로드하면두번째실행부터는다시다운로드하지않는다. 따라서의존관계를설정하고메이븐빌드를처음실행할때는관련된라이브러리를다운로드하느라많은시간이소요된다. 하지만두번째빌드부터는한번다운로드한라이브러리를다운로드하지않기때문에빌드속도가빨라진다. 앞에서다운로드한라이브러리를로컬저장소에서관리할때의디렉토리구조는다음과같다.

10 Maven Chapter5 Page 10 그림 5-4 메이븐로컬저장소의디렉토리구조 그림 5-4 에서보는바와같이같은 groupid 와 artifactid 아래에각버전에따른라이브러리를관리하는 방식으로라이브러리를관리한다. 메이븐은프로젝트를빌드할때로컬저장소에다운로드한라이브러리로 src/main/java 와 src/test/java 의소스코드를컴파일한다. 메이븐에서는의존관계에있는라이브러리를 pom.xml 파일을활용해관리하므로 CVS, SVN 과같은버전관리시스템 (Version Control System, VCS) 으로라이브러리를관리할필요없이 pom.xml 파일만공유하면된다. 지금까지버전관리시스템으로관리하는프로젝트파일크기의대부분이의존관계에있는라이브러리가차지했었다. 메이븐에서는 pom.xml 만관리하면되므로버전관리시스템으로공유할소스코드의크기가작다. < 참고사항 > 앤트를사용하던개발자들이메이븐을처음접했을때가장당황스러워하는부분이의존관계에있는라이브러리가프로젝트소스에포함되어있지않다는것이다. 앤트를사용할경우에는라이브러리를관리할수있는다른방법이없었기때문에프로젝트에포함시킬수밖에없었다. 하지만프로젝트소스와의존관계에있는라이브러리는분리해서관리하는것이바람직하다. 그이유는다음과같다. 프로젝트전체파일크기가커짐으로인해버전관리시스템을통하여소스코드를공유하는데 추가적인비용이발생한다. 라이브러리에대한히스토리관리와버전관리를제대로관리하지않을경우중복된라이브러리가 포함되어문제가발생할가능성이있다.

11 Maven Chapter5 Page 11 따라서메이븐에서지원하는것처럼의존관계라이브러리와프로젝트소스를별도로관리하고유지할수 있도록지원하는것이좋은선택이다. 최근에는앤트에서도앤트립, 아이비 ivy 2 를이용하여메이븐의의존 라이브러리관리기능을사용할수있다. 모든개발자가앤트에익숙한상태이고메이븐에대한경험을가지고있는개발자가없는상태라면먼저앤트립, 아이비를이용하여메이븐의의존라이브러리관리기능을경험해보는것도좋은전략이다. 메이븐의의존라이브러리관리기능에익숙해진상태에서메이븐으로전환한다면메이븐에대하여호감을가진상태이기때문에메이븐으로전환하는데거부감이줄어들것이다. </ 참고사항 > 메이븐은 pom.xml 파일에저장소를설정하지않을경우 를기본저장소로설정한다. 기본저장소에대한설정은앞에서살펴본바와같이최상위 POM 에서관리하고있다. 따라서프로젝트에추가하고자하는라이브러리가있다면 에서찾을수있다. 앞에서다운로드한 JUnit 라이브러리도 에서찾을수있다. 메이븐중앙저장소에서관리하는라이브러리의버전을알고싶다면먼저메이븐중앙저장소로접근한 다음, groupid/artifactid 로접근하면해당라이브러리가지원하는버전을알수있다. JUnit 의버전을알고 싶다면 에서지원하는버전정보를얻을수있다. 2 프로젝트의라이브러리관리기능을지원하기위하여등장한도구이다. 앤트와 통합하여사용하는것이가능하다.

12 Maven Chapter5 Page 12 그림 5-5 메이븐중앙저장소의 Junit 버전을확인하는화면 그림 5-5 와같이해당라이브러리에서사용가능한버전을확인한다음 pom.xml 설정파일의버전을변경하면된다. 그러나메이븐중앙저장소에서관리하는라이브러리의수는한두개가아니다. 한프로젝트에서사용하는라이브러리의수가많아서위와같은방법으로라이브러리를추가하는데는한계가있다. 이런단점을극복하기위하여 사이트에서메이븐중앙저장소에서관리하는라이브러리를검색할수있다. 예를들어메이븐저장소에서관리하는 JUnit 테스트프레임워크에대한라이브러리정보를찾고자한다면 에서 junit 으로검색한다. 그림 5-6 MvnRepository 에서 junit 으로검색한결과화면

13 Maven Chapter5 Page 13 위결과화면에서추가하고자하는 JUnit 테스트프레임워크모듈을선택한다. 그림 5-6 에서 junit >> junit 을선택한다음사용할버전을선택하면다음과같이 pom.xml 에추가할수있는 <dependency/> 엘리먼트정보를찾을수있다. 그림 5-7 mvnrepository.com 에서 JUnit 라이브러리 4.7 버전을선택한결과화면 그림 5-7 에서 POM Dependency 의 <dependency/> 엘리먼트를 pom.xml 파일에복사하면 JUnit 라이브러리를사용하기위한모든준비가완료되었다. 메이븐으로빌드하면 JUnit 4.7 버전이로컬저장소에다운로드된다. 메이븐중앙저장소를직접이용해도되지만, 라이브러리를검색하는기능을제공하고있지않기때문에 를활용하는것이더바람직한선택이다. 이사이트에서도찾기힘들다면검색사이트를활용해각라이브러리에대한의존관계설정정보를찾을수있다 의존라이브러리버전 메이븐은의존관계에있는라이브러리의버전을효율적으로관리할수있도록몇가지옵션을제공하고 있다.

14 Maven Chapter5 Page 14 가장일반적인방법은 1.0 과같이명시적으로버전정보를지정하는것이다. 하지만명시적으로버전 정보를지정하지않고범위를두어버전을관리할수있다. 버전의범위를지정할때사용할수있는형식은 다음과같이두가지를옵션을사용할수있다. (,) : 해당버전을제외 [,] : 해당버전을포함 예를들어 JUnit 라이브러리의버전을 3.8 보다크거나같고, 4.8 보다작은범위의라이브러리와의존 관계를가지도록설정하고싶다면다음과같이설정할수있다. <groupid>junit</groupid> <artifactid>junit</artifactid> <version>[3.8,4.8)</version> 위와같이설정하면저장소에존재하는 JUnit 라이브러리버전중에서 4.8 보다작으면서 3.8 보다크거나같은버전중에서가장최신버전과의존관계를가진다. JUnit 라이브러리는 4.8 보다작은버전중최신버전이 4.7 버전이기때문에 4.7 버전과의존관계를가지도록설정된다. 의존관계라이브러리를관리할때라이브러리의버전이변경될때마다매번버전을변경하는것이불편할수있다. 이와같이매번버전번호를변경하지않고가장최신버전의라이브러리와의존관계를가지도록설정할수있다. <version>latest</version> 또는 <version>release</version> 이와같이 LATEST 와 RELEASE 를사용함으로써가장최신버전과의존관계를가지는방법이있지만이 방법을사용할경우라이브러리의버전이자동으로변경됨으로써이전에정상적으로동작했던기능이 비정상적으로동작할가능성이있기때문에좋은선택은아니다. 메이븐은처음빌드할때중앙저장소에서라이브러리를다운로드한다. 한번다운로드를완료한후버전이같으면다시다운로드하지않는다. 라이브러리가최종적으로배포한상태에서는이방법이유효하다. 그러나애플리케이션을개발하는과정에서소스코드는지속적으로변경되기때문에지속적으로배포하고사용할수있어야한다. 이와같이개발중인라이브러리나프로젝트에대해서는 SNAPSHOT 을사용할수있다. 버전정보에 SNAPSHOT 을포함하면빌드할때마다가장최근에배포한라이브러리가있는지를파악해로컬저장소에존재하는버전보다최신버전의라이브러리가존재할경우다운로드한다. 따라서변경되는소스코드에대하여지속적으로배포하고참조하는것이가능하다. 프로젝트를진행하는중에는

15 Maven Chapter5 Page SNAPSHOT 과같이 SNAPSHOT 버전으로유지하고프로젝트를완료하고배포하는시점에최종 버전으로관리하는것이효율적인관리방식이다 의존라이브러리의적용스코프 scope 메이븐은사용하는라이브러리의성격에따라스코프를지정할수있다. 예를들어 JUnit 은테스트에만사용하고실제배포할때는필요없는라이브러리다. 각라이브러리에대한스코프는 <dependency/> 엘리먼트아래에 <scope/> 엘리먼트를활용해설정할수있다. JUnit 라이브러리를테스트스코프에서만의존관계를가지도록설정하면다음과같다. <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.7</version> <scope>test</scope> 이와같이라이브러리가필요한스코프에따라 6 가지로지정한다. compile: 스코프를설정할지않았을때의기본스코프이다. 컴파일시에도사용되며, 배포시에도같이배포되어야하는라이브러리이다. provided: 예를들어 servlet.jar 는서블릿컨테이너에서제공하므로컴파일시점에는필요하지만, 애플리케이션을배포할때같이배포될필요는없다. 이와같은상황에서사용하는스코프이다. runtime: runtime 스코프는말그대로컴파일시에는사용되지않지만애플리케이션을실행할때사용되는라이브러리일경우설정한다. test: 테스트하는시점에만사용하는라이브러리에대한스코프를설정할때사용한다. system: system 스코프는 provided 와비슷하다. 단지우리가직접 jar 파일을제공해야한다. 따라서이스코프의 jar 파일은저장소에서관리되지않을수도있다. import( 메이븐 이후버전부터사용가능 ): 다른 POM 설정파일에정의되어있는의존관계설정을현재프로젝트로가져온다. 이범위는 <dependencymanagement/> 엘리먼트에서만사용가능하다. 이와같이메이븐을적용스코프를두어빌드하는시점에필요한라이브러리만압축이되도록설정하는것이가능하다.

16 Maven Chapter5 Page 위키북프로젝트에의존라이브러리추가하기 스트럿츠 2, 스프링, 아이바티스라이브러리의존성추가 메이븐이의존라이브러리를관리하는방법과라이브러리를찾는방법도알았으니위키북프로젝트와의존관계에있는라이브러리에대한설정을추가하는작업을해야겠다. 먼저위키북프로젝트의핵심프레임워크인스트럿츠 2, 스프링, 아이바티스에대한의존관계설정부터추가해보자. 먼저오늘학습한데로 사이트에접속해검색을통해서라이브러리를추가해야겠다. struts2, spring, ibatis 로검색을했더니너무많은라이브러리가검색이되어어떤라이브러리를활용해야될지모르겠다. 역시공부할때참고했던문서와실전에서적용할때부딪히는문제는다르다. 는생각을다시한번느낀다. 설마이런부분까지활용하기힘들줄몰랐는데잠시배신감을느낀다. 그래도검색결과를보니내가원하는라이브러리가있는데검색조건을줄일수있는방법이없을까? 곰곰히생각하던중 대부분의라이브러리는 groupid 로도메인이름을사용하고있으니도메인이름으로검색해보자. 는결론을내리고구글에서각프레임워크에대한도메인을찾았다. 다시한번스트럿츠 2 는 org.apache.struts, 스프링은 org.springframework, 아이바티스는 org.apache.ibatis 로각각검색을했더니내가원하는검색결과가나타났다. 특히아이바티스검색결과는 내가원하는검색결과만을볼수있었다. 그림 5-8 org.apache.ibatis 검색결과화면 단, 스트럿츠 2 의경우에는스트럿츠 1 결과와같이뒤섞이기기는했지만나에게필요한라이브러리를 추가하는데특별히문제가되지는않았다. 역시모든책과문서가완벽한해결책을제시해주기는힘들고

17 Maven Chapter5 Page 17 문제가발생하는순간다른해결책을찾는능력이정말중요하다는것을느꼈다. 이과정을통해스트럿츠 2, 스프링, 아이바티스에대한의존관계설정을완료했다. <project...> [ ] <dependencies> <!-- Spring Framework --> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>3.0.1.release</version> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>3.0.1.release</version> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>3.0.1.release</version> <groupid>org.springframework</groupid> <artifactid>spring-orm</artifactid> <version>3.0.1.release</version> <!-- Struts2 Framework --> <groupid>org.apache.struts</groupid> <artifactid>struts2-core</artifactid> <version>2.1.8</version> <groupid>org.apache.struts</groupid> <artifactid>struts2-spring-plugin</artifactid> <version>2.1.8</version> <!-- IBatis Framework --> <groupid>org.apache.ibatis</groupid> <artifactid>ibatis-sqlmap</artifactid> <version>2.3.0</version> </dependencies> </project> 예제 5-3 위키북프로젝트에스트럿츠 2, 스프링, 아이바티스프레임워크에대한의존관계추가 예제 5-3 과같이의존관계를설정하고 mvn test 를실행한결과의존관계에있는라이브러리를 다운로드하고빌드가성공했다.

18 Maven Chapter5 Page 18 스트럿츠 2, 스프링, 아이바티스프레임워크에대한의존관계설정을끝내고빌드까지완료했는데내가설정한라이브러리를프로젝트하위디렉토리중어느곳에서도찾을수없다. 메이븐을사용하기전까지는모든라이브러리가프로젝트의특정디렉토리에포함되어있었기때문에눈으로확인할수있었다. 그런데메이븐에서는확인할수없으니어딘지모르게불안하다. pom.xml 에서확인하는것과실제 jar 파일을볼때의느낌은다르기때문이다. 의존관계로설정한라이브러리를프로젝트로복사할수있으면좋겠는데어디좋은플러그인없을까? 맞다. 2 장에서살펴봤던 Getting Started 문서 3 에서로컬저장소에있는라이브러리를프로젝트로복사했던기억이난다. mvn clean dependency:copy-dependencies package 로컬저장소에있는라이브러리를위키북프로젝트로복사하기위하여 mvn dependency:copydependencies 를실행한다. 이명령을실행하면프로젝트와의존관계에있는모든라이브러리가 target/dependency 디렉토리에복사된다. 그림 5-9 dependency:copy-dependencies 를실행한결과화면 3

19 Maven Chapter5 Page 19 그림 5-9 를보니위키북프로젝트와의존관계에있는모든라이브러리가복사된것을확인할수있다. 그런데한가지의문점이생긴다. 앞에서설정했던 pom.xml 에서는 JUnit 라이브러리까지포함해서모두 8 개의의존관계를설정했을뿐인데그림 5-9 를보니 23 개의라이브러리가포함되어있다. 그렇다면 15 개의라이브러리는어디에서추가된것일까? 메이븐은지금까지내가학습했던내용외에또다른기능을지원하고있는것이분명하다. 이의문에대한해답을찾기위하여의존관계에대한추가적인학습이필요하다는생각이든다 의존성전이 Transitive Dependency 자바기반으로애플리케이션을개발할때외부라이브러리와의의존도가어떻게변화하는지살펴보면 다음과같다. 그림 5-10 소프트웨어를개발할때외부라이브러리와의의존관계를보여주고있는그림 그림 5-10 과같이오픈소스프레임워크가추가될때마다해당프레임워크와의존관계에있는라이브러리를추가해야하기때문에하나의프로젝트가의존관계에있는라이브러리의수가증가한다. 이는결과적으로메이븐설정파일의복잡도를증가시킨다. 이같은한계점을극복하기위하여메이븐은 2.0 버전부터의존성전이기능을제공한다. 예를들어위키북프로젝트가스트럿츠 2 프레임워크와의존관계가있다. 스트럿츠 2 는프리마커 freemarker, Ognl 과의존관계에있다면위키북프로젝트는스트럿츠 2 프레임워크에대한의존관계만추가해도 프리마커, Ognl 과의존관계를가지는방식이의존성전이이다. 이예에서스트럿츠 2 프레임워크에대한설정은위키북프로젝트에서설정하고있다. 그렇다면스트럿츠 2 프레임워크가의존관계에있는라이브러리에대한설정정보는어디에있을까? 앞의 JUnit 라이브러리를다운로드할때는눈여겨봤으면그해답을찾을수있다 ( 그림 5-3). 메이븐은 jar 파일을다운로드하면서동시에 pom 파일을다운로드한다. 메이븐중앙저장소에서특정라이브러리에접근해보면모든

20 Maven Chapter5 Page 20 라이브러리가 pom 파일과 jar 파일을같이가지고있다. 메이븐중앙저장소에서 JUnit 4.7 버전으로 접근해보면다음과같다. 그림 5-11 중앙저장소의 JUnit 4.7 버전화면 위키북프로젝트에의존관계를설정한스트럿츠 2 프레임워크또한라이브러리를다운로드하면서 pom 파일을같이다운로드한다. 다운로드위치는같다. 스트럿츠 2 프레임워크의 struts2-core 라이브러리의 pom 파일을열어보면다음과같다. <project xmlns=" xmlns:xsi=" xsi:schemalocation=" <modelversion>4.0.0</modelversion> [...] <groupid>org.apache.struts</groupid> <artifactid>struts2-core</artifactid> <packaging>jar</packaging> <name>struts 2 Core</name> <dependencies> <groupid>com.opensymphony</groupid> <artifactid>xwork-core</artifactid> <version>2.1.6</version> <groupid>org.freemarker</groupid> <artifactid>freemarker</artifactid> <version>2.3.15</version> [...] </dependencies> </project> 예제 5-4 struts2-core 라이브러리의 pom 파일

21 Maven Chapter5 Page 21 예제 5-4 의 struts2-core 라이브러리의 pom 파일의내용을보면지금까지보아왔던 pom.xml 의내용과같다. 예제 5-4 는 struts2-core 라이브러리의 pom 파일일부만을보여주고있다. 실제 pom 파일을보면의존관계에있는라이브러리설정 (<dependency/> 엘리먼트설정 ) 이 10 개가훌쩍넘는다. 위키북프로젝트를빌드할때 struts2-core pom 파일에설정되어있는모든라이브러리에대한의존관계를가질경우위키북프로젝트가의존하는라이브러리수는급격하게증가할것이다. 메이븐은이같은문제점을해결하기위하여의존관계에있는라이브러리를제한하기위하여의존성 전이에대한설정이가능하도록지원하고있다. 의존성중개 Dependency mediation : 버전이다른두개의라이브러리가의존관계에있다면메이븐은더가까운의존관계에있는 pom 설정의버전과의존관계를가진다. 예를들어 A 프로젝트가 A -> B -> C -> D 2.0 버전, A -> E -> D 1.0 버전으로의존관계가발생한다면 A 프로젝트는 D 1.0 버전과의존관계를가진다. 만약 D 2.0 버전을사용하고싶다면 A 프로젝트의메이븐설정파일에명확하게의존관계를명시해야한다. 의존성관리 Dependency management : 이기능은메이븐설정파일의 <dependencymanagement/> 엘리먼트에의존관계에있는라이브러리와버전을명시적으로정의한다. 앞의예에서 A 프로젝트에서 D 라이브러리의 2.0 버전을사용한다고 <dependencymanagement/> 에설정할수있다. 이기능에대한더자세한내용은 12 장에서다루도록하겠다. 의존성스코프 Dependency scope : 현재빌드의상태에맞는라이브러리인경우의존관계를가진다. 예를 들어 test 스코프를가지는경우최종배포산출물을빌드하는시점에는포함되지않는다. 의존성예외 Excluded dependencies : 의존관계에있는라이브러리를 <exclusion/> 엘리먼트를활용하여 명시적으로제외시킬수있다. 선택적의존성 Optional dependencies : A -> B -> C 와같은구조로의존관계를가지는경우 B 프로젝트에 C 가 optional 로설정되어있다면 A 프로젝트를빌드할때 C 는의존관계를가지지않도록 설정하는기능이다. 이설정은 <optional/> 엘리먼트를활용하여설정하는것이가능하다. 메이븐이의존성전이기능을제공하기때문에불필요한라이브러리가추가되거나의도하지않는 라이브러리와의존관계를가지게된다. 이같은문제가발생할경우위 5 가지기능을활용하여불필요한 라이브러리가프로젝트에포함되지않도록설정해야한다. 위기능을활용하여앞에서설정한위키북프로젝트에서필요없는의존관계에대한설정을제거해보자. 가장먼저제거하면좋겠다고생각하는라이브러리는 commons-io jar 에대한의존관계이다. 이 라이브러리에대한의존관계를제거하려면먼저 commons-io jar 라이브러리가어떤라이브러리에서

22 Maven Chapter5 Page 22 의존성전이가된것인지를파악해야한다. commons-io jar 라이브러리에대한의존성전이를일으킨라이브러리는어떻게찾을수있을까? 가장쉽지만무식한방법은위키북프로젝트에서 <dependency/> 엘리먼트에설정되어있는모든라이브러리의 pom 파일을다운로드해열어보면서일일이확인하는방법이다. 의존라이브러리가 4,5 개정도라면이방법으로도가능할수있겠지만대부분의프로젝트가 10 개를훌쩍넘어가는상황에서는사용할수없는방법이다. 이같은문제를해결하기위하여메이븐의 dependency 플러그인은현재프로젝트와의존관계에있는라이브러리의구조를파악할수있도록 tree 골을제공하고있다. 앞에서생성한위키북프로젝트에서 mvn dependency:tree 를실행해보자. 그림 5-12 위키북프로젝트에서 dependency:tree 를실행한화면 그림 5-12 를보면위키북프로젝트와의존관계에있는라이브러리를트리 tree 구조로한눈에확인할수 있다. 제거하고싶은 commons-io jar 에대한의존관계는 struts2-core 라이브러리가가진다. 따라서 struts2-core 라이브러리설정에서의존성예외기능을활용하여명시적으로제외시킨다.

23 Maven Chapter5 Page 23 <groupid>org.apache.struts</groupid> <artifactid>struts2-core</artifactid> <version>${struts2.verion}</version> <exclusions> <exclusion> <groupid>commons-io</groupid> <artifactid>commons-io</artifactid> </exclusion> </exclusions> 이같은과정을반복해위키북프로젝트에서반드시필요한라이브러리만의존관계를가지도록설정할수 있다. 앞에서잠시언급했지만 struts2-core 라이브러리의 POM 설정파일은 10 개이상의라이브러리와의존관계를가진다. 그럼에도불구하고그림 5-12 에서최종적으로의존관계를가지는라이브러리는 6 개이다. 그이유는 struts2-core pom 파일에설정되어있는대부분의라이브러리는의존성스코프와선택적의존성설정때문이다. 예를들면다음과같다. <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.4</version> <scope>provided</scope> <groupid>org.springframework</groupid> <artifactid>spring</artifactid> <version>${struts2.springplatformversion}</version> <scope>compile</scope> <optional>true</optional>

24 Maven Chapter5 Page 24 이와같이의존성스코프와선택적의존성기능을활용하여의존관계를관리하도록설정하고있기때문에 위키북프로젝트에서최종적으로의존관계에있는라이브러리는최소한으로제한된다 의존성스코프와의존성전이와의관계 의존성스코프는단순히라이브러리에대한의존성스코프만을정의하는것이아니라의존성전이와 관련이있다. 의존성스코프와의존성전이관계는다음표를통하여확인할수있다. 표 5-1 의존성스코프와의존성전이와의관계 직접적인의존관계 라이브러리의 스코프 의존성전이에있는라이브러리의스코프 compile provided runtime test compile compile - runtime - provided provided provided provided - runtime runtime - runtime - test test - test - 표 5-1 의좌측행의값은프로젝트와직접적으로의존관계를가지는라이브러리의스코프이고, 위열의 값은의존성전이상태에있는라이브러리의스코프이다. 예를들어 A 프로젝트는 B 라이브러리에대하여 compile 스코프로의존관계를가지며, B 라이브러리는 C 라이브러리와 runtime 스코프로의존관계를가지는상태이다. 이때 A 프로젝트는 C 라이브러리에대하여 runtime 스코프로의존관계를가지게된다. 표 5-1 에서스코프값으로표시되지않고 - 로표시되어있는상태라면의존성전이상태에서해당라이브러리를제외된다. 예를들어프로젝트 A -> B 는 compile 스코프, B -> C 는 provided 스코프라면 A 프로젝트는 C 라이브러리와의존관계를가지지않게된다.

25 Maven Chapter5 Page 속성 properties 메이븐의의존라이브러리관리기능에대하여공부한오전만하더라도이기능이예상한것보다쉽다는생각이었다. 그런데위키북프로젝트에의존관계설정을하면서의존라이브러리관리기능에대하여알지못했던새로운기능들을많이알게되었다. 특히의존성전이기능은의존관계의효율적인관리를위하여반드시필요한기능이라고생각하는데그로인해발생하는부작용도많겠다는생각이든다. 의존성전이기능에서발생하는문제점을해결하기위한방법이복잡하지만이방법을명확히이해하고사용할경우효율적인의존관계설정이가능하리라. 위키북프로젝트의의존관계를마무리하려고설정파일을살펴보니스트럿츠 2 와스프링프레임워크버전 정보가중복되고있다. 빌드설정을하면서중복되는설정정보가많이발생할텐데이부분에대한중복을 제거해야겠다. 메이븐은설정파일에서발생하는중복설정을제거하기위하여속성 (<properties/> 엘리먼트 ) 을정의하고 설정파일전체에서사용할수있다. 예를들어앞에서설정한위키북프로젝트의스트럿츠 2, 스프링 프레임워크의의존관계에서발생하는중복을제거하려면다음과같이설정할수있다. <project> [ ] <properties> <struts2.verion>2.1.8</struts2.verion> <spring.verion>3.0.1.release</spring.verion> </properties> <dependencies> <!-- Spring Framework --> <groupid>org.springframework</groupid> <artifactid>spring-core</artifactid> <version>${spring.verion}</version> <groupid>org.springframework</groupid> <artifactid>spring-beans</artifactid> <version>${spring.verion}</version> <!-- Struts2 Framework --> <groupid>org.apache.struts</groupid> <artifactid>struts2-core</artifactid> <version>${struts2.verion}</version> [ ] </project> 예제 5-5 스트럿츠 2, 스프링프레임워크의버전정보를속성기능을활용하도록리팩토링

26 Maven Chapter5 Page 26 메이븐에서속성은예제 5-5 처럼 <properties /> 엘리먼트에서 <property.name>value</property.name> 같은형태로정의한다. <properties/> 엘리먼트에정의한속성은 pom.xml 파일내에서 ${property.name} 로접근한다. 예제 5-5 에서사용한속성은개발자가정의해서사용할수있는속성이다. 이외에도메이븐은미리예약되어있는속성이있다. 메이븐에서미리예약되어사용할수있는속성은 pom/project 속성, settings 속성, 환경변수속성, 자바시스템속성이다 pom/project 속성 pom.xml 파일의엘리먼트에서설정한정보는 project 와 pom 을접두사로사용하여참조할수있다. pom 접두사는메이븐 3.0 에서 deprecated 되는속성이기때문에가능하면 project 접두사를사용하는것이 바람직한선택이다. 몇가지예를들어보면다음과같다. ${project.build.directory} 는 "target" 디렉토리이다. 이속성은 ${pom.build.directory} 와같다. ${project.build.outputdirectory} 는 "target/classes" 디렉토리이다. ${project.name}, ${pom.name} 는프로젝트이름이다. <project>/<name> 엘리먼트설정값. ${project.version}, ${pom.version} 는프로젝트버전이다. 버전정보는접두사를사용하지않고 ${version} 으로도접근가능하다. <project>/<version> 엘리먼트설정값. ${project.build.finalname} 는 package 페이즈를실행해압축된최종파일이름이다. <project>/<build>/<finalename> 엘리먼트설정값 settings 속성 메이븐과관련한설정은 settings.xml 파일에서한다. 이 settings.xml 파일에서정의한설정값을참조할수 있는것이 settings 속성이다. settings 속성은 settings 접두사를사용한다. ${settings.localrepository} 는로컬저장소의경로를참조한다 환경변수속성 메이븐은 env 접두사를이용하여시스템환경변수의값을참조할수있다.

27 Maven Chapter5 Page 27 ${env.path} 는시스템의 PATH 설정값을참조한다. ${env.java_home} 은시스템의 JAVA_HOME 설정값을참조한다 자바시스템속성 메이븐은자바시스템속성으로설정된모든속성을참조할수있다. 자바시스템속성은 문서에서 참고할수있다. 위 4 가지에포함되지않지만자주사용하는속성중의하나는 ${basedir} 이다. ${basedir} 속성은 pom.xml 설정파일이위치하는디렉토리이다. 메이븐의속성기능을이용하여중복이발생하는부분에대한정리작업까지모두완료했다. 중복을제거한후나머지의존관계에대한설정작업을진행했다. 그런데무슨라이브러리가필요할지명확하지않았다. 따라서현시점에명확하게필요하다고생각하는 log4j, commons-dbcp, mysql jdbc driver 라이브러리에대한의존관계설정까지추가하고완료하였다. 프로젝트초반에필요한모든라이브러리에대한의존관계설정을완료하기는힘들다. 따라서내가세운전략은프로젝트초반에는현시점에결정할수있는의존관계설정까지진행하고프로젝트를진행하면서추가적으로설정하기로했다. 초반부터너무많은부분을결정하기보다는결정할수있는순간에결정하는전략을취하기로했다. 스트럿츠 2, 스프링, 아이바티스프레임워크에대한의존라이브러리설정까지마쳤으니위키북프로젝트에기능을추가하는작업을진행할수있겠다. 그런데모든개발은이클립스통합개발환경에서진행하고있는상황이라지금까지만든프로젝트를이클립스에서개발이가능한상태로만들어야겠다. 오늘은메이븐의의존라이브러리관리기능을이해하고, 위키북프로젝트에의존관계에있는모든프레임워크설정을마칠수있어즐거웠는데또한가지해결해야할숙제가남았다. 역시새로운툴을도입하는데있어한번에해결되는것은없다. 다음단계로는이클립스에서위키북프로젝트를진행할수있도록개발환경을설정하는방법에대하여살펴봐야겠다.

28 Maven Chapter5 Page 메이븐과이클립스통합 7. 메이븐과데이터베이스통합 8. 메이븐프로파일, 배포 9. 리포팅기능을활용한문서관리 10. 메이븐모듈 module 11. 메이븐사내저장소설치및활용 12. 표준 POM 파일생성및리팩토링 13. 메이븐아키타입 archetype 14. 새로운프로젝트를시작하면서..

Software Requirements Specification Template

Software Requirements Specification Template Maven Chapter3 Page 1 Table of Contents Table of Contents... 1 Revision History... 2 1. 내가꿈꾸는개발환경... 3 2. 메이븐설치및템플릿프로젝트생성... 3 3. 메이븐설정파일... 3 3.1 settings.xml 설정파일... 4 3.2 pom.xml 설정파일... 5 3.3 최상위 POM

More information

Software Requirements Specification Template

Software Requirements Specification Template Maven Chapter2 Page 1 Table of Contents Table of Contents... 1 Revision History... 2 1. 내가꿈꾸는개발환경... 3 2. 메이븐설치및템플릿프로젝트생성... 3 2.1 메이븐설치... 4 2.2 메이븐기반의템플릿프로젝트생성... 5 2.3 메이븐기본명령어... 8 2.4 위키북템플릿프로젝트생성...10

More information

문서의 제목 나눔고딕B, 54pt

문서의 제목 나눔고딕B, 54pt Maven 1. 도구개요 2. 설치및실행 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 Maven (http://maven.apache.org/) 라이선스 Apache License, Version 2.0 소개 자바기반프로젝트를빌드하고, 구성요소및라이브러리의존성을관리하는도구 특징 주요기능 프로젝트에필요한라이브러리를 POM 파일만으로쉽게구성가능 Convention

More information

Software Requirements Specification Template

Software Requirements Specification Template Maven Chapter4 Page 1 Table of Contents Table of Contents... 1 Revision History... 2 1. 내가꿈꾸는개발환경... 3 2. 메이븐설치및템플릿프로젝트생성... 3 3. 메이븐설정파일... 3 4. 메이븐라이프사이클 lifecycle... 3 4.1 메이븐의라이프사이클과페이즈... 4 4.2 메이븐페이즈와플러그인...

More information

Software Requirements Specification Template

Software Requirements Specification Template Maven Chapter6 Page 1 Table of Contents Table of Contents... 1 Revision History... 2 1. 내가꿈꾸는개발환경... 3 2. 메이븐설치및템플릿프로젝트생성... 3 3. 메이븐설정파일... 3 4. 메이븐라이프사이클 lifecycle... 3 5. 메이븐을이용한의존라이브러리관리... 3 6. 메이븐과이클립스통합...

More information

슬라이드 1

슬라이드 1 Gradle 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 소개 특징 Gradle (http://www.gradle.org) 소프트웨어빌드자동화도구 라이선스 Apache License v2.0 Gradle 을통해소프트웨어패키지나프로젝트의빌드, 테스팅, 퍼블리슁, 배포등을자동화할수있다. Ant 의유연성과기능을

More information

Social Media and Social Computing

Social Media and Social Computing Maven 2015 Web Service Computing Maven 이란? Apache 프로젝트 소스코드로부터배포가능한산출물 (artifact) 을빌드 (build) 하는 ' 빌드툴 (build tool)' 조금더편리한 ' 프로젝트관리툴 Maven 이없다면? 라이브러리를직접다운로드해서등록하고 path 를지정해줘야한다. Build 소스코드를컴파일한다. 테스트코드를컴파일한다.

More information

Apache Ivy

Apache Ivy JBoss User Group The Agile Dependency Manager 김병곤 fharenheit@gmail.com 20100911 v1.0 소개 JBoss User Group 대표 통신사에서분산컴퓨팅기반개인화시스템구축 Process Designer ETL, Input/Output, Mining Algorithm, 통계 Apache Hadoop/Pig/HBase/Cassandra

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Software Verification Junit, Eclipse 및빌드환경 Team : T3 목차 Eclipse JUnit 빌드환경 1 Eclipse e 소개 JAVA 를개발하기위한통합개발환경 주요기능 Overall 빌드환경 Code edit / Compile / Build Unit Test, Debug 특징 JAVA Code를작성하고이에대한 debugging

More information

Spring Boot

Spring Boot 스프링부트 (Spring Boot) 1. 스프링부트 (Spring Boot)... 2 1-1. Spring Boot 소개... 2 1-2. Spring Boot & Maven... 2 1-3. Spring Boot & Gradle... 3 1-4. Writing the code(spring Boot main)... 4 1-5. Writing the code(commandlinerunner)...

More information

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1 Index 1. 표준프레임워크 EGOVCI 팩키지설치... 3 1.1 개요... 3 1.2 EGOVCI 압축풀기... 3 1.3 EGOVCI 시스템구성... 3 1.4 CI 시스템구동 (START/STOP)... 4 2. NEXUS 설정정보... 6 2.1 NEXUS 서버구동

More information

슬라이드 1

슬라이드 1 - 1 - 전자정부모바일표준프레임워크실습 LAB 개발환경 실습목차 LAB 1-1 모바일프로젝트생성실습 LAB 1-2 모바일사이트템플릿프로젝트생성실습 LAB 1-3 모바일공통컴포넌트생성및조립도구실습 - 2 - LAB 1-1 모바일프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new Mobile Project 메뉴를선택한다.

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Spring

Spring Spring MVC 프로젝트생성 2015 Web Service Computing 일반적인스프링의정의 스프링의정의 자바엔터프라이즈개발을편하게해주는오픈소스경량급애플리케이션프레임워크 스프링의기원 로드존슨 (Rod Johnson) 이라는유명 J2EE 개발자가출간한 Expert One-on- One J2EE Design and Development 이라는제목의책에소개된예제샘플

More information

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인

표준프레임워크로 구성된 컨텐츠를 솔루션에 적용하는 것에 문제가 없는지 확인 표준프레임워크로구성된컨텐츠를솔루션에적용하는것에문제가없는지확인 ( S next -> generate example -> finish). 2. 표준프레임워크개발환경에솔루션프로젝트추가. ( File -> Import -> Existring Projects into

More information

슬라이드 1

슬라이드 1 전자정부개발프레임워크 1 일차실습 LAB 개발환경 - 1 - 실습목차 LAB 1-1 프로젝트생성실습 LAB 1-2 Code Generation 실습 LAB 1-3 DBIO 실습 ( 별첨 ) LAB 1-4 공통컴포넌트생성및조립도구실습 LAB 1-5 템플릿프로젝트생성실습 - 2 - LAB 1-1 프로젝트생성실습 (1/2) Step 1-1-01. 구현도구에서 egovframe>start>new

More information

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri

내장서버로사용. spring-boot-starter-data-jpa : Spring Data JPA 사용을위한설정 spring-boot-devtools : 개발자도구를제공, 이도구는응용프로그램개발모드에서유 용한데코드가변경된경우서버를자동으로다시시작하는일들을한다. spri 6-20-4. Spring Boot REST CRUD 실습 (JPA, MariaDB) GitHub : https://github.com/leejongcheol/springbootrest 스프링부트에서 REST(REpresentational State Transfer) API 를실습해보자. RESTful 웹서비스는 JSON, XML 및기타미디어유형을생성하고활용할수있다.

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

Spring Framework RESTful 지원 REST API는웹서비스를개발하는표준방법이되었고자바와관련하여사용할수있는많은프레임워크와라이브러리가있다. JAX-RS, Restlet, Jersey, RESTEasy, Apache CFX 등이있지만 Java

Spring Framework RESTful 지원 REST API는웹서비스를개발하는표준방법이되었고자바와관련하여사용할수있는많은프레임워크와라이브러리가있다. JAX-RS, Restlet, Jersey, RESTEasy, Apache CFX 등이있지만 Java 6-20-1. Spring Framework RESTful 지원 REST API는웹서비스를개발하는표준방법이되었고자바와관련하여사용할수있는많은프레임워크와라이브러리가있다. JAX-RS, Restlet, Jersey, RESTEasy, Apache CFX 등이있지만 Java 개발자는 Spring MVC를사용하여 RESTful 웹서비스를개발하는것이좋다. RESTful

More information

PowerPoint Presentation

PowerPoint Presentation Software Verification T4 고수창전소영이세라하지윤 Index 1 CI 2 IntelliJ IDEA 3 JUnit 4 Build Environment 5 Git 1 Continuous Integration What is CI? 소프트웨어개발에서 Build/Test 의프로세스를지속적으로수행하는것 개발자생산성향상 버그의빠른발견및해결 더빠른업데이트제공

More information

파워포인트

파워포인트 S O F T WA R E V E R I F I CAT I O N Junit & Eclipse 및빌드환경 TEAM 1 컴퓨터공학부 201011314 김민재 201011356 이종찬 201011376 한지승 201111329 강성길 2015.03.18 I N D E X 1 Purpose & CI 2 Eclipse 3 JUnit 4 Build Environment

More information

슬라이드 1

슬라이드 1 Continuous Integration 변경될때마다소프트웨어를빌드하기 조영호카페PJT팀 2008.09.08 youngho.cho@nhncorp.com 목차 1. 빌드자동화 2. Maven 3. 빌드유형과메커니즘 4. 빌드시간을짧게만들기 1. 빌드자동화 빌드자동화 소프트웨어의개발은복잡할지몰라도소프트웨어의전달 (Delivery) 은버튼하나만누르면되는일이되어야합니다

More information

Intellij spring(mvc) + maven 환경구축 New Project에서좌측 template 유형에서 Maven을선택합니다. 오른쪽상단에 Project SDK는 java SDK가설치된폴더를선택하면됩니다. 오른쪽에 Create from archetyhpe을체

Intellij spring(mvc) + maven 환경구축 New Project에서좌측 template 유형에서 Maven을선택합니다. 오른쪽상단에 Project SDK는 java SDK가설치된폴더를선택하면됩니다. 오른쪽에 Create from archetyhpe을체 Intellij spring(mvc) + maven 환경구축 New Project에서좌측 template 유형에서 Maven을선택합니다. 오른쪽상단에 Project SDK는 java SDK가설치된폴더를선택하면됩니다. 오른쪽에 Create from archetyhpe을체크하게되면하단에여러유형의 archetype을선택할수있습니다. Maven 기반의웹프로젝트를생성해야하므로

More information

문서의 제목 나눔고딕B, 54pt

문서의 제목 나눔고딕B, 54pt Software Verification Introduction to Software Testing & Static Analysis 2조이상혁왕홍강김태영 2016-03-18 1.1 Overview 2 / 87 Overview 1.1 Overview 3 / 87 Overview 1.2 Install JDK 4 / 87 Install JDK JDK 8 다운로드페이지

More information

슬라이드 1

슬라이드 1 SW 개발도구연계 Git - Selenium - Maven - Jenkins 목차 Intro Git Selenium Maven Jenkins Intro 연계도구 분산형형상관리시스템 가벼운브랜치를활용한개발생산성향상 GitHub 등다양한웹기반저장소서비스 웹브라우저상의테스팅자동화 Selenium IDE 를통한브라우저액션녹화 다양한언어및테스팅프레임워크지원 자바기반의빌드자동화

More information

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su

[ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Su [ 스프링부트, 그래들, HelloWorld]STS,Gradle 설치및 WEB MVC 심플예제 간단히 STS 및 Gradle Support Plugin 을설치하여간단히 Spring Boot, Gradle Web 응용프로그램을작성해보자. 0. STS 및 Gradle Support Plugin 설치 -. STS 는 https://spring.io/tools/sts/all

More information

Windows 10 General Announcement v1.0-KO

Windows 10 General Announcement v1.0-KO Windows 10 Fuji Xerox 장비와의호환성 v1.0 7 July, 2015 머리말 Microsoft 는 Windows 10 이 Windows 자동업데이트기능을통해예약되어질수있다고 6 월 1 일발표했다. 고객들은 윈도우 10 공지알림을받기 를표시하는새로운아이콘을알아차릴수있습니다. Fuji Xerox 는 Microsoft 에서가장최신운영시스템인 Windows

More information

소프트웨어 검증 및 설계

소프트웨어 검증 및 설계 1 : 2018-03-21 Junit & IntelliJ 및빌드환경 Software Verification T1 [2018SV][T1] 201311263 김민환 201311308 전세진 201411278 서희진 201411317 조민규 1 INDEX 1. 2. 3. IDE IntelliJ Unit Test JUnit Build Configuration & CI

More information

슬라이드 1

슬라이드 1 Subclipse 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 도구명 Subclipse (http://subclipse.tigris.org/) 라이선스 Eclipse Public License v1.0 소개 Subversion( 이하 svn) 용 Eclipse 플러그인 SVN 을만든 Tigris.org 에서만든클라이언트툴 Java

More information

개발환경 교육교재

개발환경 교육교재 1. 개발환경개요 1. 개발환경개요 개발환경은프레임워크이해관계자중응용 S/W 개발자를위한환경 전자정부개발프레임워크이해관계자주요관심사분석 응용 SW 개발자는전자정부개발프레임워크를기반으로어플리케이션을개발하며, 개발생산성향상을위해전자정부개발프레임워크로부터의개발지원기능이필요함 응용 SW 개발자 개발 실행 응용 SW 응용 SW 는젂자정부개발프레임워크를기반으로개발되는어플리케이션으로써어플리케이션의효과적인동작을위한젂자정부개발프레임워크의실행지원기능이필요함

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java( 혹은 에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을

을풀면된다. 2. JDK 설치 JDK 는 Sun Developer Network 의 Java(  혹은   에서 Download > JavaSE 에서 JDK 6 Update xx 를선택하면설치파일을 안드로이드설치및첫번째예제 안드로이드설치 안드로이드개발킷은안드로이드개발자사이트 (http://developer.android.com/) 에서다운로드받을수있으며현재 1.5 버전으로윈도우즈, 맥 OS X( 인텔 ), 리눅스플랫폼패키지가링크되어져있다. 안드로이드개발킷을설치하기위해서는다음과같은시스템환경이갖추어져있어야한다. 플랫폼 Windows Mac Linux 지원환경

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

슬라이드 1

슬라이드 1 Continuous Integration Part 2 Continuous Integration Servers 조영호카페PJT팀 2008.09.01 youngho.cho@nhncorp.com 목차 1. Continuous Integration Servers 2. CruiseControl 3. Bamboo 1. Continuous Integration Severs

More information

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR Configure Kernel Build Environment And kernel & root file system Build 2018-09-27 VLSI Design Lab 1 지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함.

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2. 3Rabbitz Book 애플리케이션파일다운로드하여압축파일을풀고복사합니다. 3. 3Rabbitz Book 실행합니다.

More information

슬라이드 1

슬라이드 1 모바일소프트웨어프로젝트 지도 API 1 조 20070216 김성수 20070383 김혜준 20070965 이윤상 20071335 최진 1 매시업? 공개 API? 2 매시업 웹으로제공하고있는정보와서비스를융합하여새로운소프트웨어나서비스, 데이터베이스등을만드는것 < 최초의매시업 > 3 공개 API 누구나사용할수있도록공개된 API 지도, 검색등다양한서비스들에서제공 대표적인예

More information

슬라이드 1

슬라이드 1 Git 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 소개 Git (http://git-scm.com/) 라이선스 리누스토발즈가만든분산형버전관리시스템 대부분의공개 SW 가 Git 을이용해서관리되고있음 General Public License v2 GitHub, BitBucket, GitLab 등웹기반의다양한소스저장소서비스의기반

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다. 1.1. 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot) 만별도로필요한경우도있어툴체인설치및설정에대해알아봅니다. 1.1.1. 툴체인설치 다음링크에서다운받을수있습니다.

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

서현수

서현수 Introduction to TIZEN SDK UI Builder S-Core 서현수 2015.10.28 CONTENTS TIZEN APP 이란? TIZEN SDK UI Builder 소개 TIZEN APP 개발방법 UI Builder 기능 UI Builder 사용방법 실전, TIZEN APP 개발시작하기 마침 TIZEN APP? TIZEN APP 이란? Mobile,

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp A SQL Server 0 설치 A. 소개 Relational DataBase Management System SQL Server 0는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 express 버전 의무료에디션을제공하는데, 이책에서는실습을위해 SQL Server 0 익스프레스에디 션 SP

More information

슬라이드 1

슬라이드 1 Jenkins 1. 도구개요 2. 설치및실행 3. 주요기능 1. 도구개요 1.1 도구정보요약 도구명 Jenkins (http://jenkins-ci.org/) 라이선스 MIT License 소개 CI ( 연속적통합 ) 도구 빌드, 배포등반복되는작업을모니터링하는도구. 특징 쉬운설치및웹기반으로된쉬운 UI 제공 여러 project 동시 Build 제공 다양한언어

More information

consulting

consulting CONSULTING 전략 컨설팅 클라우드 마이그레이션 애플리케이션 마이그레이션 데이터 마이그레이션 HELPING YOU ADOPT CLOUD. 클라우드로 가기로 결정했다면 누구와 함께 갈지를 선택해야 합니다. 처음부터 끝까지 믿을만한 파트너를 찾는다면 베스핀글로벌이 정답입니다. 전략 컨설팅 다양한 클라우드 공급자가 존재하고, 클라우드 공급자마다 다른 장단점을

More information

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드]

Microsoft PowerPoint - aj-lecture1.ppt [호환 모드] 인터넷과웹서비스 개발환경구성, JSP 기본구조 인터넷과 WWW(World Wide Web) 인터넷은 TCP/IP 기반의네트워크가전세계적으로확대되어하나로연결된 네트워크의네트워크 WWW(World Wide Web) 는인터넷기반의서비스중하나 이름프로토콜포트기능 WWW http 80 웹서비스 524730-1 2019 년봄학기 3/11/2019 박경신 Email SMTP/POP3/IMAP

More information

JDK이클립스

JDK이클립스 JDK 와이클립스설치 A. JDK 다운로드, 설치및환경설정 지금부터 JDK를다운로드받아설치하고 JDK를윈도우에서활용할수있도록환경을설정하는전과정을소개한다. 다운로드 www.oracle.com 사이트에접속하여 Downloads 메뉴를선택한후 [ 그림 1] 과같이 "Java for Developers" 를클릭한다. [ 그림 1] www.oracle.com 사이트

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

Keil Flexlm 라이선스 설명서

Keil Flexlm 라이선스 설명서 Copyright 2013 EMThink. All rights reserved. Date: 13 年 8 月 14 日 목차 라이선스서버의 HOSTID 찾기...3 라이선스파일만들기...5 라이선스서버프로그램다운로드하기...5 라이선스서버프로그램설치하기...6 라이선스파일수정하기...6 라이선스서버프로그램시작하기...7 라이선스서버프로그램종료하기...9 Page

More information

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-C언어개요.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1 Tizen 실습예제 : Remote Key Framework 시스템소프트웨어특론 (2014 년 2 학기 ) Sungkyunkwan University Contents 2 Motivation and Concept Requirements Design Implementation Virtual Input Device Driver 제작 Tizen Service 개발절차

More information

슬라이드 1

슬라이드 1 TortoiseSVN 1. 도구개요 2. 설치및실행 3. 주요기능 4. 활용예제 1. 도구개요 1.1 도구정보요약 도구명 Tortoise SVN (http://tortoisesvn.net) 라이선스 GNU GPL v2.0 소개 Subversion 를통해서소스버전관리를할수있게하는클라이언트도구 특징 Windows Explorer 에서곧바로 Subversion 를사용하여버전컨트롤가능

More information

GeoTools 3D Extension Guide 출시 0.5.0 Soojin Kim, Hyung-Gyu Ryoo 12 월 02, 2017 Modules 1 목차 3 1.1 개요................................................... 3 1.2 Geometry.................................................

More information

Google SVN 계정만들기 Site : 1. 사이트접속후프로젝트호스팅선택 2. 오픈소스프로젝트검색선택

Google SVN 계정만들기 Site :   1. 사이트접속후프로젝트호스팅선택 2. 오픈소스프로젝트검색선택 Google SVN 계정만들기 Site : http://code.google.com/ 1. 사이트접속후프로젝트호스팅선택 2. 오픈소스프로젝트검색선택 3. 새로운프로젝트생성을위해서는 Sign in to create a project 링크를클릭한다. 4. 로그인이안되있으면로그인을한다. 5. 다음화면에서프로젝트관련정보를입력한뒤생성한다. 주의 : 1. Project

More information

SIGIL 완벽입문

SIGIL 완벽입문 누구나 만드는 전자책 SIGIL 을 이용해 전자책을 만들기 EPUB 전자책이 가지는 단점 EPUB이라는 포맷과 제일 많이 비교되는 포맷은 PDF라는 포맷 입니다. EPUB이 나오기 전까지 전 세계에서 가장 많이 사용되던 전자책 포맷이고, 아직도 많이 사 용되기 때문이기도 한며, 또한 PDF는 종이책 출력을 위해서도 사용되기 때문에 종이책 VS

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows

More information

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for

메일서버등록제(SPF) 인증기능적용안내서 (Exchange Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for 메일서버등록제(SPF) 인증기능적용안내서 (Exchange 2003 - Windows 2000) OS Mail Server SPF 적용모듈 작성기준 Windows Server 2000 Exchange Server 2003 GFI MailEssentials 14 for Exchange 2016 년 6 월 - 1 - 목 차 I. 개요 1 1. SPF( 메일서버등록제)

More information

Secure Programming Lecture1 : Introduction

Secure Programming Lecture1 : Introduction Malware and Vulnerability Analysis Lecture3-2 Malware Analysis #3-2 Agenda 안드로이드악성코드분석 악성코드분석 안드로이드악성코드정적분석 APK 추출 #1 adb 명령 안드로이드에설치된패키지리스트추출 adb shell pm list packages v0nui-macbook-pro-2:lecture3 v0n$

More information

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks XSS s XSS, s, May 25, 2010 XSS s 1 2 s 3 XSS s MySpace 사건. Samy (JS.Spacehero) 프로필 페이지에 자바스크립트 삽입. 스크립트 동작방식 방문자를 친구로 추가. 방문자의 프로필에 자바스크립트를 복사. 1시간 만에 백만 명이 친구등록. s XSS s 위험도가 낮은 xss 취약점을 다른 취약점과 연계하여

More information

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins Project 1-3: Implementing DML Due: 2015/11/11 (Wed), 11:59 PM 이번프로젝트의목표는프로젝트 1-1 및프로젝트 1-2에서구현한프로그램에기능을추가하여간단한 DML을처리할수있도록하는것이다. 구현한프로그램은 3개의 DML 구문 (insert, delete, select) 을처리할수있어야한다. 테이블데이터는파일에저장되어프로그램이종료되어도사라지지않아야한다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

More information

Software Verification Team 오준 임국현 주영진 김슬기

Software Verification Team 오준 임국현 주영진 김슬기 Software Verification Team 2 200611490 오준 201011358 임국현 200913988 주영진 201011318 김슬기 Contents CTIP Mantis Additional info Q&A CTIP Continuous Test & Integration Platform CI 개념을바탕으로소스검토 ( 테스트및정적분석 ), 빌드,

More information

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx)

(Microsoft PowerPoint - AndroG3\306\367\306\303\(ICB\).pptx) w w w. g b t e c. c o. k r 6 안드로이드 App 적용하기 115 1. 안드로이드개요 모바일 OS 의종류 - 스마트폰 : 스마트폰운영체제탑재 애플의 IOS(iPhone OS) - 아이폰, 아이패드, 아이팟터치 구글의안드로이드 - Nexus, 갤럭시 A, S, 모토로이, 시리우스,... MS 의윈도우모바일 ( 윈도우폰 7) - 옴니아 2,

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

슬라이드 1

슬라이드 1 SW 개발도구연계 Jenkins - Redmine - Mylyn 목차 Intro Mylyn - Redmine 연계 Mylyn - Jenkins 연계및빌드실행 Mylyn에서 Redmine 일감처리 Intro 연계도구 웹기반의프로젝트관리도구 한글화가잘되어있어사용저변이넓음 플러그인을통해다양한도구와연계가능 Eclipse 용 ALM(Application Lifecycle

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

강의 개요

강의 개요 정규화와 SELECT (II) 웹데이터베이스 학과 학생 과목 학과 지도교수 학과학번성명 수강과목 담당교수 A 김수정 A 0001 고길동 성질이론 김수정 B 허영만 A 0002 둘리 한식의멋 허영만 C 강풀 B 0003 희동이 심리학의이해 강풀 과목 _ 성적 학번 수강과목 성적 0001 성질이론 A 0001 한식의멋 C 0002 성질이론 A 0002 한식의멋

More information

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt Practice #1 APM Install 2005. 8. 31 Lee Seung-Bok http://hpclab.uos.ac.kr Contents 2 APM 소개 Apache 설치 PHP 설치 MySQL 설치기타사항 Q & A APM(Apache,, PHP, MySQL) 소개 3 Apache PHP 현재전세계에서가장보편적으로사용되고있는오픈소스웹서버안정성및우수한기능

More information

PowerPoint Presentation

PowerPoint Presentation Mantis, SVN & CTIP Team 2 200910793 임민우 200911388 박미관 200911412 이영준 2014 Software Verification 2014.04.18 Index Mantis SVN CTIP 2 Mantis 3 Mantis_what is Mantis? Bug Tracking System 오픈소스 APM 환경기반 4 Mantis_Advantage

More information

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위

B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위 B.3 JDBC 설치 JDBC Java DataBase Connectivity 는자바에서 DBMS의종류에상관없이일관된방법으로 SQL을수행할수있도록해주는자바 API Application Program Interface 다. 이책에서는톰캣과 SQL Server 간의연결을위해서설치한다. http://www.microsoft.com/ko-kr/download에접속해

More information

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1]

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1] * 넋두리 * 저는주식을잘한다고생각합니다. 정확하게는주식감각이있다는것이맞겠죠? 예전에애널리스트가개인주식을할수있었을때수익률은엄청났었습니다 @^^@. IT 먼쓸리가 4주년이되었습니다. 2014년 9월부터시작하였으니지난달로만 4년이되었습니다. 4년간누적수익률이최선호주는 +116.0%, 차선호주는 -29.9% 입니다. 롱-숏으로계산하면 +145.9% 이니나쁘지않은숫자입니다.

More information

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이 이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이 보유한 발팀 추가 비용없이 Team Foundation Server를 활용하여 형상관리 소스

More information

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결

YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결 YUM(Yellowdog Updater,Modified) : RPM 패키지가저장된서버 ( 저장소 ) 로부터원하는패키지를자동으로설치한다. : YUM 도구는 RPM 의패키지의존성문제를해결해주어 RPM 패키지설치시자동적으로의존성문제를 처리하여 RPM 패키지를안전하게설치, 제거, 업그레이드등의작업을스스로하는도구 YUM 설정 (/etc/yum.conf) [main]

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

server name>/arcgis/rest/services  server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지 ArcGIS for Server (Windows) 설치가이드 ArcGIS 10.2 for Server 설치변경사항 1 설치 간편해진설치 -.Net Framework나 Java Runtime 요구하지않음 - 웹서버 (IIS, WebSphere ) 와별도로분리되어순수하게웹서비스기반의 GIS 서버역할 - ArcGIS Server 계정을이용한서비스운영. 더이상 SOM,

More information

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기 Mango-IMX6Q mfgtool 을 이용한이미지 Write 하기 http://www.mangoboard.com/ http://cafe.naver.com/embeddedcrazyboys Crazy Embedded Laboratory www.mangoboard.com cafe.naver.com/embeddedcrazyboys CRZ Technology 1 Document

More information

01....b74........62

01....b74........62 4 5 CHAPTER 1 CHAPTER 2 CHAPTER 3 6 CHAPTER 4 CHAPTER 5 CHAPTER 6 7 1 CHAPTER 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

More information

(291)본문7

(291)본문7 2 Chapter 46 47 Chapter 2. 48 49 Chapter 2. 50 51 Chapter 2. 52 53 54 55 Chapter 2. 56 57 Chapter 2. 58 59 Chapter 2. 60 61 62 63 Chapter 2. 64 65 Chapter 2. 66 67 Chapter 2. 68 69 Chapter 2. 70 71 Chapter

More information

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾ Chapter 1 Chapter 1 Chapter 1 Chapter 2 Chapter 2 Chapter 2 Chapter 2 Chapter 2 Chapter 3 Chapter 3 Chapter 3 Chapter 3 Chapter 3 Chapter 3 Chapter 3 Chapter 3 Chapter 4 Chapter 4

More information

Microsoft PowerPoint - 3조-최종발표.pptx

Microsoft PowerPoint - 3조-최종발표.pptx Final Presentation Team 3 members : 200714170 모진종 200714173 심상문 200714179 황규원 1 Quick Check 항목 SDT Condition,Action 의 FOD, FSM, TTS 에서 FSM, TTS에서 Initial State Undefined Variable Transition 이없는노드 로부터 Unreachable

More information

NX1000_Ver1.1

NX1000_Ver1.1 See the world in perfect detail 1 2 3 4 J J KL t P A S M i g s v B 5 6 t P A S M i E PASM Z g s v 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Chapter 1 25 12 11 10 9 1 2 3 4 5 6 7 8 1 t P A S M i g

More information

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조

소프트웨어설치 1. 소프트웨어설치및제거 ( 소스코드 ) 소스코드컴파일을이용한 S/W 설치 1. 소스코드다운로드 - 예 ) httpd tar.gz - 압축해제 : #tar xzvf httpd tar.gz - INSTALL 또는 README파일참조 운영체제실습 소프트웨어관리 2016. 6 표월성 passwd74@naver.com cherub.sungkyul.ac.kr 목차 Ⅶ. 소프트웨어관리 1. 소스코드컴파일을이용한소프트웨어설치 2. RPM패키지를이용한소프트웨어설치 3. YUM패키지를이용한소프트웨어설치 4. APT패키지를이용한소프트웨어설치 5. Telnet서버설치 6. ssh서버 (openssh) 설치

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월

메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix spf-filter 년 6 월 메일서버등록제(SPF) 인증기능적용안내서 (HP-UX - postfix) OS Mail Server SPF 적용모듈 (Perl 기반) 작성기준 HP-UX 11.11i postfix 2.7.1 spf-filter 1.0 2016 년 6 월 목 차 I. 개요 1 1. SPF( 메일서버등록제) 란? 1 2. SPF 를이용한이메일인증절차 1 II. postfix,

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1.About GIT 박재석대표 / 투씨드 1. About GIT History 2005 년리누스토발즈에의해 Linux 커널프로젝트지원을위해제작된버전관리도구 12 년간지속적인발전및꾸준한성장세 1. About GIT Concept 분산형버전관리시스템 Reverse Delta 방식이아닌변경에대한 Snapshot 방식 1. About GIT Architecture

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우  요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사 OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 zns038053@gmail.com, hwkang0621@gmail.com 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사물인터넷기반의오픈소스가공개가되고있다. 본문서에서는그중 Eclipse에서공개한 OM2M 플랫폼을기반으로개발된헬스케어플랫폼인

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 사용자계정관리 운영체제실습 목차 Ⅲ. 사용자계정관리 4.1 사용자계정관리 4.2 그룹관리 4.3 사용자계정관련파일 4.4 패스워드관리 4.5 사용자신분확인 4.1 사용자계정관리 사용자생성관련명령어 사용자생성 : useradd / adduser 사용자삭제 : userdel 사용자정보변경 : usermod 패스워드설정및변경 : passwd 그룹생성관련명령어 group

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information