사용자 관리시스템 제작
2강 -
sts 설치 후
1. 인코딩 설정
이클립스 - 환경설정 - workspace - utf-8
윈도우 설정도 utf-8로 수정한다.
2. 폰트 설정
나눔고딕 설정
3. 느린 이클립스의 성능 개선
작업 목록이 모아져 있는게 있다.
Eclipse 성능개선 최적화
- eclipse.ini 설정
https://www.slipp.net/wiki/pages/viewpage.action?pageId=5177633
- folding 설정
환경설정 - java - editor - folding 에서
Enable folding 체크 해제
- validation 설정 (가장 많은 성능을 잡아먹는)
환경설정 - validation
suspend all validators 체크 해제
2강 - 이클립스와 git과 연결설정
* git 저장소 생성
* eclipse와 git연동
* eclipse에서 maven 프로젝트 생성
* maven 설정
https://github.com/
id: jsdilnam@naver.com">jsdilnam@naver.com
git repository로 가서 저장소를 하나 추가한다.
jsdilnam10/slipp
qna 사이트랑 연동하기 위해 이름이 같은 slipp으로 하겠습니다.
설명(Description)은 Q&A
README파일을 초기에 생성하기 체크
다음은 생성한 저장소를 이클립스와 연동한다.
이클립스 퍼스팩티브탭에서 git 선택으로 이동 후
3가지 방식으로 git저장소와 연결할 수 있다.
아이콘 왼쪽에서 세번째 이미 존재하는 git 저장소를 활용한다.
Clone Git Repository - clone URL - URL: https://github.com/jsdilnam10/slipp 입력후 NEXT
master branch를 로컬저장소를 지정한다 (d:\workspace-0126)\slipp
이렇게 하면 slipp저장소가 연결된 것을 확인 할 수 있다.
slipp3 [master] - D:\workspace-0126\slipp3\.git
확인을 해보면 로컬디스크의 D:\workspace-0126\slipp에 README.md 파일이 생성되어 있다.
git저장소 연결 후에 바로 임포트 할 수 있는데
메이븐 기반의 프로젝트를 생성할 때에 메이븐 플러그인이 제공하는 템플릿 프로젝트를 활용한다.
메이븐 플러그인 기능을 이용해 프로젝트를 생성하겠다.
javs 퍼스팩티브로가서
'ctrl - N' maven 입력 후 Maven Project 선택
create silple project 체크
group-id : net.slipp
artifact id : qna
version정보 바꿀수 있다.
packaging을 웹어플리케이션을 만들기 때문에 war를 선택
그러면 maven 기본 디렉토리를 가진 qna프로젝트가 생성된다. pom.xml로 확인가능하다.
메이븐 플러그인을 이용해 만든 프로젝트는 아직 git과 연결이 안되어 있다.
아래와 같이 연동한다.
프로젝트우클릭 - Team - share project - Git
qna 프로젝트가 자동으로 생성된 것이 확인됨.
current location과 Target Location의 위치값은
D:\workspace-0126/qna D:\workspace-0126/slipp3/qna/
Repository주소를 slipp3 - D:\workspace-0126\.git으로 선택하고 finish
> qna [slipp3 master] 라는게 표시되면
해당 프로젝트는 git저장소와 연동이 되었다는 것이다.
?로 보이는 것은 해당 파일이 git저장소에 추가되지 않았다는 것을 의미한다.
프로젝트 우클릭 - Team - Add to index
현재는 add만 한 상태 커밋을 하려면
프로젝트 우클릭 - Team - Commit... pom.xml 파일외에도 많은 파일이 생성된게 확인된다.
qna/.classpath와 qna/.project와 qna/.settings와
메이븐 빌드도구를 이용해 자동생성된 폴더이기 때문에 제외하고
pom.xml 파일만 체크한다.
commit message에 'pom.xml 파일 생성' 입력후 커밋한다.
그리고 제외한 폴더
qna/.classpath와 qna/.project와 qna/.settings를 ignore처리를 하자.
프로젝트 오른쪽 위의 아래화살표 - filters - .* resourses를 해제하면 된다.
그런데 실수로 .classpath .project 파일을 포함시켜 버렸다.
add한 파일을 해제하는 방법은
파일 우클릭 - Team - Remove from index
.settings폴더 우클릭 - Team - Remove from index
모두다 해제하면 별표(*) 모양에서 물음표(?)로 바뀐다.
그리고 .settings폴더와 .classpath .project 파일을 ignore 처리를 하자
선택 - 우클릭 - Team - ignore 하면 .gitignore파일에 추가된다.
이상태에서 다시 commit을 한다.
message에 .settings폴더 .classpath .project파일 ignore파일에 추가함.
이렇게 commit을 한 다음에
로컬저장소에 변경된 내용을 원격저장소로 푸쉬한다.
프로젝트 우클릭 - Team - Push to Upstream
로그인 메시지가 나오면 USER PW입력후 저장하고 OK
Pushed to slipp3 - origin 창이 뜬다 ok
gitup에 가서 qna 폴더가 생성되면 푸쉬가 잘 된 것이다.
자 이상의 과정은
github을 만들고
로컬에 clone을 하고
이클립스에서 maven 프로젝트를 만들고
프로젝트를 로컬저장소에 저장을 했고
로컬저장소에서 원격저장소로 푸쉬를 했다.
다음은 메이븐 설정을 한다. pom.xml
버전은 1.0.0으로 시작
기본적으로 컴파일러 버전을 지정한다.
수정하고 저장하면 자동으로 메이븐이 빌드되는데 멈추는 현상이 있을 수 있다.
이게 싫으면 메이븐 자동기능을 비활성화하자
pom.xml을 아래와 같이 빌드를 해주면
자동으로 빌드되지 않고 내가 원하는 시점마다 빌드할 수 있게 한다.
pom.xml 우클릭 Run As - Maven Build... -
Name : qna for eclipse
Goals : eclipse:clean eclipse:eclipse 을 이용해서 빌드를 해준다.
BUILD SUCESS 뜨는데 Errors 1개뜬다. 가끔
Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix.
원인은 잘 몰겠고 삭제해버린다.
pom.xml의 plugin의 configuration 버전을 바꾸고 다시 빌드할때는
히스토리에 있는 빌드를 사용한다. 상단 실해버튼의 아래화살표 qna for eclipse 히스토리를 이용한다.
1.8에서 1.7로 변경해보고
메이븐 빌드하고
커멧을 해보자 (message: comfiler plugin 설정)
커밋할때 바로 푸쉬까지 할 수 있다. (commit and push 버튼)
3강. wtp & hello.jsp
학습목표
다음은 우리가 만든 프로젝트를 wtp라는 이클립스 플러그인에 배포하는 과정을 해본다.
메이븐 설정파일에 wtp설정을 하고
hello jsp를 출력하는 jsp 생성
생성한 프로젝트를 wtp에 배포한 후 hello jsp가 출력되는지 확인
프로젝트의 src-main-webapp 구조를 보면
webapp에 접근하기 위해 두 depth를 거처야 되므로 불편하다.
깊은 depth를 줄여보자.
기본설정으로 사용해도 된다.(src-main-webapp)
메이븐의 war 플러그인(maven-war-plugin)을 이용해서 경로를 바꿀 수 있다.
webapp 소스 디렉토리를 'src-main-webapp'에서 'webapp'으로 변경한다.
그리고 webapp폴더를 상위로 옮긴다. src/main 폴더에는 아무것도 없다.
메이븐 빌드를 하고 f5눌러서 확인을 해준다.
메이븐 템플릿 파일이 webapp/WEB-INF폴더를 생성해주지 않는다
폴더를 생성하고 web.xml파일 생성(웹설정을 위해).
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>QnA</display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
위와 같은 설정을 변경하면
우리가 서블릿 기반의 웹표준 디렉토리를 따르고
그에 따라 설정파일을 추가했다.
다음은 이 프로젝트를 이클립스내에서 톰킷같은 웹어플리케이션 서버에 배포하기 위해서
wtp라는 플러그인을 사용할 거다.
이 프로젝트가 wtp플러그인에 배포가 가능한 상태로 설정을 변경해야 햔다.
설정변경 방법은 메이븐의 이클립스 플러그인을 이용해서 다음과 같이 변경한다.
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadSources>true</downloadSources>
<wtpversion>2.0</wtpversion>
<wtpContextName>/</wtpContextName>
</configuration>
</plugin>
이클립스 플러그인 추가하고
wtp version과
이 웹어플리케이션에 접근할때 path에 해당하는 ContextName을 지정할 수 있다.
빌드를 하면 지구본 모양이 생겨난다.
그러면 이 프로젝트는 wtp플러그인에 배포 가능한 상태이다.
이 프로젝트가 이클립스 다이나믹 웹 프로젝트가 된 것이다.
그러면 wtp플러그인에 배포할 수 있다.
첫번째과정인 메이븐설정파일에 wtp설정을 추가했다.
webapp에 hello.jsp파일을 추가해서 출력해본다.
jsp 인코딩 설정을 먼저 한다.
환경설정 - Web - Jsp Files - Encoding을 UTF-8로 한다.
jsp에러가 날때 아래를 참고
이클립스를 설치를 한 후 Dynamic Web Project를 생성한 후
JSP파일을 그냥 만들어버리면 JSP파일 맨 위에 X가 뜨면서
이런 에러가 생기는 것을 볼 수 있습니다.
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 에러
출처: https://crazykim2.tistory.com/318 [잡다한 프로그래밍]
hello.jsp를 wtp에 배포를 해서 정상출력이 되면 설정이 끝난다.
아파치 톰킷 7.0에 배포를 해본다.
이 과정이 잘 이해가 안되면 아래를 참고한다.
maven project 를 웹 프로젝트로 설정하는 방법
다이나믹 웹 포르젝트 아키타입을 선택하면 wtp 설정을 추가하지 않아도, 톰캣 서버에 배포할 수 있는 프로젝트가 만들어진다.
그러나, 스킵하고 나중에 wtp 를 추가하겠다.
wtp 는 web tools project 의 약자로 설정을 하면 웹서버에 배포할 수 있는 상태가 된다.
pom.xml에 플러그인 2개 (컴파일러 버전, wtp) 를 설정하고
빌드를 하면 wtp 와 자바 컴파일러 버전을 이클립스와 연동하는 플러그인을 다운한다.
다음에 서버를 추가하고
서버에 프로젝트를 웹서버에 배포한다.
출처: https://ishappy.tistory.com/entry/maven-project-web-설정하고-tomcat-서버에-배포하는-방법 [isHappy 이즈
'프로그래밍 > JAVA & SPRING' 카테고리의 다른 글
[박재성] Spring 기반 웹 프로그래밍 5강 - slipp 메인 페이지 개발 및 mvc setting (0) | 2020.06.07 |
---|---|
[박재성] Spring 기반 웹 프로그래밍 4강 - spring mvc settings (0) | 2020.06.07 |
[박재성] slipp3 web.xml 설정 (0) | 2020.06.07 |
[박재성] slipp3 pom.xml 설정 (0) | 2020.06.07 |
spring 5강 Oracle과 mybatis 연동 실습(회원 목록,등록,수정,삭제) (0) | 2020.06.07 |