Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 구글 로그인 후 js
- 이클립스
- Java
- 회고
- 구글 로그인 후 경로
- sysout
- /js/app/index.js
- 7기
- 구글 로그인 후 redirect
- 줄바꿈
- 자동으로 줄내리기
- 취업퇴소
- 특화프로젝트
- sysout자동입력
- Word Wrap
- 싸피
- System
- cannot determine url for
- 삼성청년소프트웨어아카데미
- SSAFY
- Cannot determine URI for
- System.out.println
- http://localhost:8080/js/app/index.js
- 사피
- 중도퇴소
- 줄변경
Archives
- Today
- Total
IT탐험
메이븐, 스프링STS 본문
- 현재 웹 앱을 구현할 때는 메이븐과 같은 도구를 사용해 자동으로 스프링의 라이브러리 기능을 관리하면서 개발함
- 메이븐
- 프로젝트의 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴
- 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리할 수 있음
- 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리
- 일반적인 앱은 코드 컴파일로써 동작하는 것이 아니라, 오픈소스 라이브러리들을 컴파일할 때 합쳐서 하나의 기능을 이루고, 컴파일 외에 테스팅, 배포등을 거쳐야 하는데 모든 과정을 통틀어 빌드라고 하고 자동으로 수행해 주는 툴을 빌드 툴이라 한다
- 메이븐 사용 시 컴파일과 동시에 빌드를 수행할 수 있고 관련 라이브러리도 일관성 있게 관리할 수 있다
- 메이븐의 웹 앱 프로젝트 구조
- 프로젝트
- pom.xml
- src
- main
- java
- com.mycompany.app.*
- resource
- java
- test
- java
- com.mycompany.app.*
- resource
- java
- main
- 구성 요소
-
구성요소 설명 pom.xml 프로젝트 정보가 표시되며 스프링에서 사용되는 라이브러리를 설정해 다운로드 src/main/java 자바 소스 파일 위치 src/main/resource 프로퍼티 파일이나 XML 파일 등 리소스 파일 위치 src/main/webapp WEB_INF 등 웹 앱 리소스 위치 src/test/java JUnit 등 테스트 파일 위치 src/test/resources 테스트 시에 필요한 resource 파일 위치 - pom.xml
-
더보기
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.myspring</groupId> <artifactId>pro27</artifactId> <name>pro27</name> <packaging>war</packaging> <version>1.0.0-BUILD-SNAPSHOT</version> <properties> <java-version>1.6</java-version> <org.springframework-version>3.1.1.RELEASE</org.springframework-version> <org.aspectj-version>1.6.10</org.aspectj-version> <org.slf4j-version>1.6.6</org.slf4j-version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${org.springframework-version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${org.springframework-version}</version> </dependency> </dependencies> </project>
- pom.xml의 프로젝트 정보 설정 태그
-
속성 설명 groupId 프로젝트 그룹 id를 나타내며 일반적으로 도메인 이름 artifactId 프로젝트 아티팩트 id를 설정, 일반적으로 패키지 이름 version 프로젝트 버전을 설정 packaging 앱 배포 시 패키징 타입을 설정, war 파일로 패키징
-
- <depandencies> 정보 설정 태그
-
속성 설명 dependency 해당 프로젝트에서 의존하는 다른 라이브러리 정보를 기술 groupId 의존하는 프로젝트의 그룹 id artifactId 의존하는 프로젝트의 artifact id version 의존하는 프로젝트 버전 정보
-
-
-
- 프로젝트
- 메이븐을 단독으로 사용하지 않고, STS에서 메이븐을 사용한다
- STS 에서는 프로젝트생성 시 미리 각 기능에 대한 폴더를 자동으로 만들어주고, 메이븐 기능이 자동으로 들어간다
- STS에서 마이바티스를 사용할 때 오라클은 오픈 소스가 아니므로 드라이버를 직접 설치하고 경로를 설정해야 한다
-
더보기
<dependency> <groupId>jdbc.oracle</groupId> <artifactId>OracleDriver</artifactId> <version>12.1.0.2.0</version> <scope>system</scope> <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc6.jar</systemPath> </dependency>
-
- log4j
- 유지관리를 위해 웹 사이트에 접속한 사용자 정보나 각 클래스의 메서드 호출 시각 같은 여러 정보를 파일로 저장하여 관리할때 로그 관련 기능을 제공하는 것
- 독립적으로 라이브러리를 설치해서 사용할 수 있고, 메이븐 같은 빌드 툴에서는 프로젝트 생성 시 자동으로 설치된다
- log4j.xml을 이루는 태그
-
태그 설명 <Appender> 로그의 출력 위치를 결정(파일, 콘솔, DB 등)
log4j API 문서의 XXXAppender로 끝나는 클래스들의 이름으로 출력 위치를 알 수 있다<Layout> Appender가 어떤 형식으로 출력할지 레이아웃을 결정 <Logger> 로깅 메세지를 Appender로 전달
개발자가 로그 레벨을 이용해 로그 출력 여부를 조정할 수 있다
logger는 로그 레벨을 가지고 있으며, 로그의 출력 여부는 로그문의 레벨과 로거의 레벨로 결정
-
- <Appender> 클래스
-
클래스 설명 ConsoleAppender org.apache.log4j.ConsoleAppender 클래스로, 콘솔에 로그 메시지를 출력 FileAppender org.apache.log4j.FileAppender 클래스로, 파일에 로그 메시지를 출력 RollingFileAppender org.apache.log4j.rolling.RollingFileAppender 클래스로,
파일 크기가 일정 기준을 넘으면 기존 파일을 백업 파일로 바꾸고 처음부터 다시 기록DailyRollingAppender org.apache.log4j.DailyRollingFileAppender 클래스로,
설정한 기간 단위로 새 파일을 만들어 로그 메시지를 기록
-
- PatternLayout 클래스의 출력 속성
-
속성 설명 %p debug, info, error, fatal 등 로그 레벨 이름 출력 %m 로그 메시지 출력 %d 로깅 이벤트 발생 시각 출력 %F 로깅이 발생한 프로그램 파일 이름 출력 %l 로깅이 발생한 caller의 정보 출력 %L 로깅이 발생한 caoller의 라인 수 출력 %M 로깅이 발생한 method 이름 출력 %c 로깅 메시지 앞에 전체 패키지 이름이나 전체 파일 이름 출력 ... ...
-
- log4j의 레벨
-
레벨 설명 FATAL 시스템 차원에서 심각한 문제가 발생해 애플리케이션 작동이 불가능할 경우에 해당하는 레벨
일반적인 앱에서는 사용할 일이 없다ERROR 실행 중 문제가 발생한 상태 WARN 향후 시스템 오류의 원인이 될 수 있는 경고 메시지 INFO 로그인, 상태 변경과 같은 실제 앱 운영과 관련된 메시지 DEBUG 개발 시 디버깅 용도로 사용한 메시지 TRACE DEBUG 레벨보다 상세한 로깅 정보를 출력하기 위해 도입된 레벨 - 낮은 레벨로 코드의 메시지를 설정했다면 그 레벨보다 높게 설정한 메시지들은 모두 출력된다
- ex) INFO로 설정했다면 DEBUG, TRACE로 설정한 메시지들은 출력되지 않는다
- log4j.xml의 <root> 태그는 앱 전체에 적용되는 로그 레벨을 설정한다
- <priority value="debug" /> 는 전체 앱 로그 레벨을 debug로 바꾸는 속성이다
-
- 타일즈
- 웹 앱 화면 구조를 따로 만들어 놓고 브라우저에서 웹 페이지를 요청하면 본문 화면만 추가하여 보여주는 화면 레이아웃 프레임워크
- 장점
- 페이지 레이아웃을 쉽고 단순하게 구현
- 공통된 레이아웃을 사용하므로 유지관리에 이점
- 타일즈 사용시 JSP를 표시하기 위해 사용했던 InternalResourceViewResolver를 사용하지 않음
- 따로 스프링의 TilesConfigurer 클래스 빈을 생성하고 URL 요청에 대해 브라우저에 나타낼 정보가 저자된 타일즈 설정 파일을 패키지 tiles에서 읽어온다
-
더보기
<beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> <beans:property name="definitions"> <beans:list> <beans:value>classpath:tiles/*.xml</beans:value> </beans:list> </beans:property> <beans:property name="preparerFactoryClass" value="org.springframework.web.servlet.view.tiles2.SpringBeanPreparerFactory" /> </beans:bean> <beans:bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" /> </beans:bean>
- JSP에 타일즈 사용하는 순서
- tile.xml 작성
- 레이아웃용 JSP 작성
- 레이아웃에 표시할 JSP 작성
- 컨트롤러에 tiles.xml에 설정한 뷰이름 반환
'게시판만들기기록 > 스프링 프레임워크' 카테고리의 다른 글
스프링 REST API (0) | 2021.10.13 |
---|---|
스프링에서 지원하는 부가 기능 (0) | 2021.10.12 |
스프링 트랜잭션 (0) | 2021.10.08 |
스프링과 마이바티스 연동 (0) | 2021.10.08 |
마이바티스 프레임워크 (0) | 2021.10.08 |
Comments