---- Maven은 자바 프로젝트의 빌드(build)를 자동화 해주는 빌드 툴(build tool)이다.
MANIFEST란
응용프로그램은 구성 요소를 시작하기 전에 Manifest 를 읽어서 존재한다는 사실을 알아야 한다.
이러한 각종 구성요소의 정보들 및 선언들이 담겨있다.
즉, 확장자가 사용할 수 있는 기능과 확장 앱에 대한 정보를 제공한다.
<modelVersion> : 4.0.0이라고 써있는데 이것은 maven의 pom.xml의 모델 버전이다. 형식이 4.0.0 버전이라고 이해하면 된다.
<groupId> : 프로젝트를 생성한 조직 또는 그룹명으로 보통, URL의 역순으로 지정한다.
<artifactId> : 프로젝트에서 생성되는 기본 아티팩트의 고유 이름이다.
메이븐에 의해 생성되는 일반적인 artifact는 <artifact>-<version>.<extention>이다. (ex demo-0.0.1-SNAPSHOT.jar)
<version> : 애플리케이션의 버전. 접미사로 SNAPSHOT이 붙으면 아직 개발단계라는 의미이며, 메이븐에서 라이브러리를 관리하는 방식이 다르다고 한다.
<packaging> : jar, war, ear, pom등 패키지 유형을 나타낸다.
<name> : 프로젝트 명
<description> : 프로젝트 설명
<url> : 프로젝트를 찾을 수 있는 URL
위와 같은 태그들은 프로젝트 정보에 관련된 내용이다.
* <properties> : pom.xml에서 중복해서 사용되는 설정(상수) 값들을 지정해놓는 부분. 다른 위치에서 ${...}로 표기해서 사용할 수 있다. (java.version에 1.8을 적용하고 다른 위치에서 ${java.version}이라고 쓰면 "1.8"이라고 쓴 것과 같다.
* <profiles> : dev, prod 이런식으로 개발할 때, 릴리즈할 때를 나눠야할 필요가 있는 설정 값은 profiles로 설정할 수 있다.
---- pom.xml이란
프로젝트의 중요한 정보를 정의하고 정리하기 위한 곳이 pom.xml이다.
대부분 Maven의 중요 설정 파일들이 들어가 있으며, 라이브러리를 추가함으로써, 불러오는 기능인'의존성'이 있으며, 실제 라이브러리 파일이 저장되어 있는 저장소 서버의 위치를 지정하고, 사용할 라이브러리를 지정해준다.
그렇기 때문에 Maven을 통해서 라이브러리를 설정해놓고 잘 관리한다면, jar파일을 보다 pom.xml 파일만 관리하면 된다.
<dependency>
'의존성'이라고 하며, 가장 중요하게 쓰이는 가장 핵심적인 단어입니다. 두가지 서로 다른 모듈간의 연결을 할 수 있으며, 객체지향의 개념에서 관계라고 할 수 있습니다. '의존성'이기 때문에, 관계가 있는 모듈이 변경이 된다면 다른 모듈 역시 변경이 되기 때문에 신중히 정의해야 합니다.
다만, 클래스를 재사용할 수 있고, 로직이 아닌 클래스를 생성하기에 있어서 아주 효율적입니다.
<properties>
JavaBean 기술에 의해서 관리되는 데이터를 property라고 하는데, 간단히 말해 속성으로 자주 사용되는 것(공통)을 정의해놓은 것 입니다.
"객체에 속한 데이터의 정의"
<groupId>
groupId는 프로젝트를 구분하는 값으로써, 도메인명을 사용하기도 합니다.
<artifactId>
artifactId역시 Id의미로써 프로젝트를 구분하는 값으로써 사용됩니다. 프로젝트명을 사용하기도 합니다.
<compile>
dependency에 scop을 따로 설정 하지 않았을 경우의 default범위 Compile 시점에 필요하다.
프로젝트의 모든 Class Path에 추가된다.
<runtime>
런타임(프로젝트 실행 시점)시 해당 dependency를 사용한다.
Runtime, test시 Class Path에 추가된다.
---- xml에서 <dynamic> 태그
1. dynamic : where 절에 들어갈 하위 요소가 존재하면 where 를 sql문에 추가된다
맨처음 val1 에서 추가되는 prepend(AND)는 자동으로 사라진다.
2. prepend : 쿼리에 지정된 문자(AND)를 추가하여 해당 쿼리에 반영
---- xml에서 <isNotEmpty> 태그
property의 값이 비어있지 않으면 (NULL이 아니면) <isNotEmpty> 태그가 실행하는 동적쿼리다.
1. prepend
<isNotEmpty>태그가 성립하면, 조건 앞에 붙는 논리 키워드를 정의할 수 있다.
논리 키워드는 AND, OR 등
2. property
<isNotEmpty>태그가 성립하는지 안하는지를 판단하는 prorerty 이름이다.
---- <![CDATA[
]]>
부등호 > 를 사용 할 때에 닫힘 태그로 인식되어 짐으로 CDATA태그를 사용하여 사용
---- iBatis 동적쿼리 만들기
isEqual : '=='
<isEqual property="ADMIN_YN" compareValue="Y">
ADMIN_YN값이 'Y' 랑 같을 경우 질의문
</isEqual>
isNotEqual : '!='
<isNotEqual property="ADMIN_YN" compareValue="Y">
ADMIN_YN값이 'Y' 랑 같지 않을 경우 질의문
</isEqual>
isEmpty : 공백일경우
<isEmpty property="KEYWORD">
KEYWORD값이 공백일 경우
</isEmpty>
isNotEmpty : 공백이아닐경우
<isNotEmpty property="KEYWORD">
KEYWORD값이 공백이 아닐 경우
</isEmpty>
isLessThan : '<'
<isLessThan property="MEMBER_LEVEL" compareValue="03">
MEMBER_LEVEL이 3보다 작을 경우 질의문
</isEqual>
isLessEqual : '<='
<isLessEqual property="MEMBER_LEVEL" compareValue="03">
MEMBER_LEVEL이 3보다 작거나 같을 경우 질의문
</isEqual>
isGreaterThan : '>'
<isGreaterThan property="MEMBER_LEVEL" compareValue="03">
MEMBER_LEVEL이 3보다 클 경우 질의문
</isEqual>
isGreaterEqual : '>='
<isGreaterEqual property="MEMBER_LEVEL" compareValue="03">
MEMBER_LEVEL이 3보다 크거나 같을 경우 질의문
</isEqual>
'STS(Spring Tool Suite)' 카테고리의 다른 글
SSL 적용방법(HTTP -> HTTPS) (0) | 2022.01.05 |
---|---|
log4j - Logging Levels(로그 레벨) 정리 (0) | 2022.01.05 |
Context Path란? (0) | 2022.01.04 |
HttpServletRequest, HttpServletResponse란? (0) | 2022.01.03 |
MVC란 무엇인가 (0) | 2021.12.30 |