반응형

정리가 잘 된 블로그가 있어서 첨부합니다.

 

crosstheline.tistory.com/41

 

JQuery 노드찾기

1. 노드 찾기  - 태그 이름으로 노드 찾기 :  $("태그이름"), $("선택자")  - 클래스 이름으로 노드 찾기 : $(".클래스이름")  - ID로 노드 찾기 : $("선택자")  - 속성으로 노드 찾기 : $("[속성이름=값]").

crosstheline.tistory.com

 

반응형
반응형

postgresql 에는 generate_series 라는 함수가 있다.

 

대략

 

SELECT generate_series(시작, 종료, 간격)

(간격은 생략가능)

 

의 문법으로 쓰인다.

 

예를들어

 

1

select generate_series(1, 100)

cs

이렇게 쓰면

1부터 100까지 1씩 증가하는 데이터가 만들어진다.

 

만약

 

1

select generate_series(1, 100, 5)

cs

이런식으로 간격을 설정하게 되면

 

이런 데이터가 나오게 된다.

 

이 generate_series 를 이용하여 날짜 데이터를 생성할 수 있는데

사용법은 다음과 같다.

 

우선 시작날짜와 종료 날짜 사이의 데이터를 뽑고 싶다면

 

1

select generate_series('2020-01-01'::date , '2020-12-31'::date, '1 day'::interval)::date

cs

이렇게 하면 2020년 1월 1일 부터

2020년 12월 31일까지

하루 간격으로 데이터가 출력되고

 

 

1

select generate_series('2020-01-01'::date , '2020-12-31'::date, '1 month'::interval)::date

cs

이렇게 하면 한달 단위

 

그리고

1

select generate_series('2020-01-01'::date , '2020-12-31'::date, '7 day'::interval)::date

cs

이렇게 하면 일주일 단위의 날짜 데이터가 생성이 된다

 

그리고 만약

시작 종료 일자가 아닌

시작일로부터 몇일뒤의 날짜가 알고 싶다면

 

1

2

3

4

5

6

7

8

SELECT (ROW_NUMBER() OVER()) AS ROWNUM,

        a.date + b.idx as D 

FROM ( 

        SELECT '2020-01-01'::date as date 

) a 

CROSS JOIN ( 

    SELECT generate_series(0, 100) as idx 

) b

Colored by Color Scripter

cs

이런식으로 날짜 데이터 생성이 가능하다

이걸 응용하면

시작일로부터 n일이 지난 날짜의 월 데이터를 추출할 수도 있다.

 

1

2

3

4

5

6

7

8

9

10

11

12

SELECT DISTINCT to_char(D, 'YYYY-MM') AS date

FROM (

    SELECT (ROW_NUMBER() OVER()) AS ROWNUM,

            a.date + b.idx as D 

    FROM ( 

            SELECT '2020-01-01'::date as date 

    ) a 

    CROSS JOIN ( 

        SELECT generate_series(09999) as idx 

    ) b) T

WHERE D::date <= to_date('2020-12','YYYY-MM')::date

ORDER BY date

Colored by Color Scripter

cs

반응형
반응형

이 글은 

https://dzzienki.tistory.com/66

 

Eclipse Dynamic Web Project로 Spring Maven 프로젝트 만들기

이번 포스팅에서는 STS 나 egovframework 를 사용하지 않고 이클립스에서 Dynamic Web Project 를 이용하여 Spring Maven 기반의 웹 프로젝트를 만들어 보도록 하겠습니다. 이 포스팅의 목적은 가장 기본적인 �

dzzienki.tistory.com

이 포스팅의 마지막 부분에서 이어집니다.

 

tiles 라는 것은 말 그대로 화면을 조각들로 분할하여 사용할 수 있도록 도와주는 프레임워크 입니다.

예를들어 인터넷 카페나 블로그 등을 생각 해 보시면

화면이 상단메뉴, 좌측 혹은 우측 메뉴, 콘텐츠 부분, 하단메뉴

이렇게 나누어져 있는 것을 보신 적이 있으실 겁니다.

그걸 각각의 jsp 로 나누어 관리하기 편하도록 도와주는 툴이 바로 tiles 입니다.

 

타일즈를 사용하기 위해선 우선 pom.xml 에 다음 dependency 를 추가해주셔야 합니다.

 

코드는 아래쪽의 것을 복사하시면 되구요

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

<!-- tiles -->

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-jsp</artifactId>

        <version>3.0.8</version>

    </dependency>

    

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-servlet</artifactId>

        <version>3.0.8</version>

    </dependency>

    

    <dependency>

        <groupId>org.apache.tiles</groupId>

        <artifactId>tiles-extras</artifactId>

        <version>3.0.8</version>

    </dependency>

    <!-- /tiles -->

    

    

    <dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>jstl</artifactId>

        <version>1.2</version>

    </dependency>

Colored by Color Scripter

cs

그 다음으로는 

src/main/resources/spring/servlet-context.xml 에

아래의 내용을 추가해주셔야 합니다.

코드는 아래의 것을 복사하시면 됩니다.

1

2

3

4

5

6

7

8

9

10

11

12

13

    <!-- Tiles -->

    <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">

        <beans:property name="definitions">

            <beans:list>

                <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>

            </beans:list>

        </beans:property>

    </beans:bean>        

    <beans:bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">

        <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView" />

        <beans:property name="order" value="1" />

    </beans:bean>   

    <!-- /Tiles -->

Colored by Color Scripter

cs

 

다음은 tiles 의 설정 파일을 만들어 주어야 합니다.

위의 <beans:value>/WEB-INF/tiles/tiles.xml</beans:value>

이부분에 보시면 WEB-INF아래에 tiles라는 폴더 아래에 tiles.xml

이라는 파일 안에 설정파일을 넣어주겠다 라는 뜻이니

저 경로에 정확하게 파일을 tiles.xml 이라는 파일을 만들어 주시고

아래와 같이 작성을 해 줍니다.

코드 내용은 아래 코드를 복사하시면 됩니다.

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

32

33

34

35

36

37

38

39

40

41

42

43

44

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE tiles-definitions PUBLIC

  "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"

  "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">

 

<tiles-definitions>

 

    <!-- 메뉴 표시 -->

    <definition name="base" template="/WEB-INF/tiles/template.jsp">

        <put-attribute name="left"   value="/WEB-INF/tiles/left.jsp" />

        <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />

        <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />

    </definition>

 

    <definition name="*.page" extends="base">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />

    </definition>

 

     <definition name="*/*.page" extends="base">

         <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />

     </definition>

    

    <definition name="*/*/*.page" extends="base">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />

    </definition>

    

    

    <!-- 메뉴 미표시 -->

    <definition name="baseEmpty" template="/WEB-INF/jsp/templateEmpty.jsp">

    </definition>

    

    <definition name="*.part" extends="baseEmpty">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}.jsp" />

    </definition>

 

     <definition name="*/*.part" extends="baseEmpty">

         <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}.jsp" />

     </definition>

    

    <definition name="*/*/*.part" extends="baseEmpty">

        <put-attribute name="body" value="/WEB-INF/jsp/{1}/{2}/{3}.jsp" />

    </definition>        

    

</tiles-definitions>

Colored by Color Scripter

cs

위의 tiles.xml 에 작성한

 template="/WEB-INF/tiles/template.jsp"

attribute name="left"   value="/WEB-INF/tiles/left.jsp"

attribute name="header" value="/WEB-INF/tiles/header.jsp"

attribute name="footer" value="/WEB-INF/tiles/footer.jsp"

 

이부분을 보시면 템플릿 파일은 WEB-INF/tiles/폴더 아래에 template.jsp 에,

left, header, footer 파일은 각각 WEB-INF/tiles/ 폴더 아래에

left.jsp, header.jsp, footer.jsp

에 설정해 두겠다고 명시해 두었습니다.

그러니 파일 구조를 보시면

 

 

위와 같은 파일 구조가 되도록 각각의 파일들을 생성해 주시면 됩니다.

 

그리고 template.jsp 에는 아래와 같이

코드는

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

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>

<!DOCTYPE html>

 

<html>

    <head>

        <meta charset="EUC-KR">

        <title>Insert title here</title>

        <style>

            #header{            

                width:100%;

                height:50px;

                text-align: center;

                line-height: 50px;

                background-color: #61868e;

            }

            #left{

                float:left;

                 width:15%;

                 text-align: center;

                background-color: #d78b7d;

            }

            #main{

                float:left;

                 width:85%;

                background-color: #f9f3e3;

            }

            #footer{

                width: 100%;

                height: 50px;            

                text-align: center;

                background-color: #cfc8b5;

                clear:both;

            }

             #left, #main{ 

                   min-height: 700px;

             

        </style>

    </head>

    <body>

        <div style="width:100%; height:100%;">

        <div id="header"><tiles:insertAttribute name="header" /></div>

        <div id="left"><tiles:insertAttribute name="left" /></div>

        <div id="main"><tiles:insertAttribute name="body" /></div>    

        <div id="footer"><tiles:insertAttribute name="footer" /></div>

        </div>

     

    </body>

</html>

Colored by Color Scripter

cs

 

그리고 header.jsp, left.jsp, footer.jsp 에는 각각 아래와 같이 만들어 주시면 됩니다.

 

아래의 코드의 div 안의 내용만 바꾸시면 될 것 같습니다.

1

2

3

4

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<div>왼쪽 메뉴</div>

Colored by Color Scripter

cs

 

그럼 이제 tiles 를 사용하기 위한 기본적인 설정 파일들은 다 만들고 설정을 마친 것입니다.

물론 세세한 설정들은 손을 봐야겠지만 큰 틀을 잡고 가는데에는 문제가 없습니다.

그럼 이제 tiles를 테스트 해 보기 위해

mainController.java 에

아래와 같이 추가해줍니다.

코드는 

1

2

3

4

5

6

7

8

    /**

     * Tiles 사용

     */        

    @RequestMapping(value="/testTiles.do")

    public String testPage() {

        System.out.println("tiles Test!");

        return "main/tilesTest.page";

    }

Colored by Color Scripter

cs

위에 있구요

 

보통 타일즈를 사용할 때 상단메뉴 왼쪽 메뉴 아래쪽 메뉴를 고정시켜놓고 content 부분인 내용만 바꿔가며 사용하는 경우가 많습니다. 그 content 는 위의 return 에 명시한 대로

WEB-INF/jsp 폴더의 main폴더 아래에 tilesTest.jsp 를 만들고

아래와 같이 코드를 작성해줍니다.

1

2

3

4

5

6

7

8

9

10

11

12

<%@ page language="java" contentType="text/html; charset=EUC-KR"

    pageEncoding="EUC-KR"%>

<!DOCTYPE html>

<html>

<head>

<meta charset="EUC-KR">

<title>Insert title here</title>

</head>

<body>

타일즈 테스트

</body>

</html>

Colored by Color Scripter

cs

그리고 나서 서버를 실행시킨 뒤

http://localhost:8080//testTiles.do 에 접속해 보시면

 

위와 같이 각각의 tiles 들이 정해놓은 위치에 생성되어 있는 것을 보실 수 있습니다.

 

여기까지가 tiles 기본 설정 방법이었습니다.

 

반응형
반응형
1
2
3
4
5
6
7
8
9
10
fnDrawCallback: function () { 
    $('#tableId tbody tr').click(function () {  
        // get position of the selected row  
        var position = $('#tableId').dataTable().fnGetPosition(this)  
        // value of the first column (can be hidden)  
        var id = $('#tableId').dataTable().fnGetData(position).id
        // redirect
        document.location.href = 'abcd.html?id=' + id
    })
}
cs

 

반응형
반응형

svn 을 이용하여 작업을 하던 도중

update 가 되지않고 아래와 같은 에러메세지가 출력됬던 적이 있습니다.

 

 

이분의 블로그의 도움을 받아 문제를 해결했습니다.

https://benfatto.tistory.com/33

 

SVN | E155004 - SVN locked 에러 해결

잊을만 하면 찾아오는 SVN 대표적인 에러 LOCK. 간만에 쏟아지는 파일들 업데이트를 받다가 꼬여버렸다. 위와 같은 경우는 폴더 자체가 lock이 걸린 모양이다. Some resources were not updated. svn: E155004: Wo.

benfatto.tistory.com

해결 방법은

 

자신의 프로젝트 폴더에 아래의 .svn 이라는 폴더가 있는데

해당 폴더를 들어가보면

 

위와 같이 wc.db 라는 파일이 있다.

이 파일을 수정해야하는데 수정하기 위해서

SQL lite(https://sqlitebrowser.org/) 라는 프로그램을 설치해야 하는데

설치 방법은 위의 링크 홈페이지 접속 후 Download 탭에서

 

 

2020 아래의 Version 3.12.0 released (2020년 07월 23일 기준)

이라고 써 있는 부분을 클릭한 후

 

 

자신의 버전에 맞는 설치 파일을 다운받으시면 됩니다.

다운받은 zip 압축 파일을 풀면

많은 파일 목록이 나오는데 그중

 

DB Browser for SQLite 라는 파일을 실행시키시고

파일 > 데이터베이스 열기에서

해당 프로젝트의 .svn 폴더에 wc.db 라는 파일을 불러온 후

 

SQL 실행 탭에서

 

DELETE FROM WC_LOCK 

이라는 명령어를 입력하고

재생버튼처럼 생긴 Execute 버튼을 누르거나

혹은 키보드 F5 버튼을 누른 후

 

변경사항 저장하기를 눌러 저장해주시면

잠겨있던 svn 이 lock 이 풀리고 다시 정상적으로 작동합니다.

반응형
반응형

1. https://www.postgresql.org/

 

PostgreSQL: The world's most advanced open source database

PostgreSQL is a powerful, open source object-relational database system with over 30 years of active development that has earned it a strong reputation for reliability, feature robustness, and performance. There is a wealth of information to be found descr

www.postgresql.org

postgresql  공식홈페이지에 접속해서 다운로드 페이지에 들어갑니다

 

 

2. 여러가지 운영체제중 Windows 를 선택합니다

 

 

3. Download the Installer 라고 써있는 부분을 클릭합니다.

 

 

4. 자신의 운영체제 bit 와 설치할 postgresql 의 버전을 선택합니다.

저는 윈도우 64bit 에 postgresql 12 버전을 설치하겠습니다.

 

 

 

5. 다운받아진 설치파일을 실행합니다.

 

 

원하는 경로를 설정해줍니다.

이때 새 폴더가 생성되는게 아니라

선택한 폴더 아래에 바로 설치되므로

새 폴더를 생성해주고 적당한 이름을 지정해준 후

해당 폴더를 선택하여 설치해주는것이 좋습니다.

 

 

어떤 분들은 pgadmin 과 Stack Builder 를 제외하고 설치하시는 분들도 계시던데

저는 그냥 다 설치하겠습니다.

pgadmin 은 sql 툴이라고 생각하시면 됩니다.

 

 

postgres 의 데이터가 저장 될 폴더를 지정합니다.

보통 자동으로 data 폴더가 생성이 되어 그냥 Next> 버튼을 누르면 됩니다.

(중간에 경로가 다른것은 시행착오를 겪었기 때문이니 무시하셔도 괜찮습니다 :)

 

관리자 비밀번호를 지정해줍니다.

 

 

포트도 기본포트인 5432로 놔두고 Next> 를 눌러줍니다.

자랑스러운 Korean, Korea 를 선택해줍니다.

South, North 의 구분이 없는걸 보니 통일을 염원했나보네요

 

Next > 를 눌러줍니다.

 

 

 

Next > 를 또 눌러줍니다.

 

 

설치가 잘 진행되고 있습니다.

 

 

 Stack Builder 는 PostGIS 등의 확장 프로그램을 설치할 때 필요한 툴입니다.

우선은 특별히 설치할 프로그램이 없으니 체크를 해제하고 Finish를 눌러 설치를 완료합니다.

 

 

 

윈도우 검색창에 pgadmin 4 라고 검색하시면 sql 툴이 검색되는데 실행시킵니다.

위에서 설정해준 비밀번호를 입력하고 OK 버튼을 누르시면

 

 

위와같은 화면이 나오는데 그러면 설치가 잘 완료된 것입니다.

반응형
반응형

mysql 이나 mssql로 문자열을 구분자로 구분하고 싶을 때
substring_index를 사용하시면 됩니다.

substring_index 와 같은 기능을 하는 함수가
postgresql에도 있는데
그것은 바로 split_part 입니다.
사용법은 아래와 같구요

한가지 차이점이라면

mysql에선 구분된 문자열을 뒤에서부터 가져오고 싶으면
인자로 마이너스 값을 주시면 되지만
split_part에선 마이너스값을 사용할 수가 없습니다.

해결 방안으로는
reverse 함수로 한번 감싸 문자열을 뒤집은 후
split_part로 구분된 문자열을
reverse로 다시 뒤집으시면 됩니다.

반응형
반응형

이번 포스팅에서는 STS 나 egovframework 를 사용하지 않고

이클립스에서 Dynamic Web Project 를 이용하여

Spring Maven 기반의 웹 프로젝트를 만들어 보도록 하겠습니다.

 

이 포스팅의 목적은 가장 기본적인 설정을 직접 셋팅해봄으로써

각 설정의 의미들을 파악하고 익숙해지는데에 있습니다.

 

그럼 바로 시작해보겠습니다.

 

우선 이클립스에서 DynamiDynamic Web Project 를 하나 생성해 줍니다.

생성 방법은 상단 메뉴의 File > New > Dynamic Web Project

를 선택해주거나

 

 

혹은 Package Explorer 혹은 Project Explorer 에서

빈 공간에 마우스 우클릭을 한 후

New > Dynamic Web Project

를 선택해주는 방법입니다.

 

가급적 Project Explorer 보다는 Package Explorer 를 사용하시는 걸 추천드립니다.

왜냐하면 물리적 구조가 아닌 논리적 구조로 표시해줌으로써

더 직관적으로 파일 구조를 볼 수 있기 때문입니다.

 

 

혹시 Package Explorer 이 없으신 분들은 

 

 

상단 메뉴의 Window 에서 Show View > Other 를 선택하신 후

 

 

Package Explorer 를 선택하고 Open 을 눌러주시면 보이실 겁니다.

 

다시 본론으로 돌아와서

 

 

Project name 은 Spring_maven 으로 하고 (다른 이름을 사용하셔도 괜찮습니다.)

Target runtime 을 Apache Tomcat v8.5 를 선택해줍니다.

그리고 Next > 버튼을 눌러줍니다.

 

혹시 Tomcat 이 설치가 안된분들은

제 블로그의 톰캣 설치 방법 포스팅을 확인해주시면 됩니다.

https://dzzienki.tistory.com/5?category=1031882

 

1. 개발환경 세팅(3) 아파치 톰캣 apache tomcat 설치 및 환경변수 설정

1. http://tomcat.apache.org/ 에 접속합니다. 2. 왼쪽의 Download 의 Tomcat 8 부분을 클릭합니다. 3. Core 의 64-bit windows.zip 을 클릭하여 파일을 다운받아 줍니다. (자신의 버전에 맞게!) 다운받은 파일..

dzzienki.tistory.com

 

Next > 를 눌러주시구요

 

 

Context directory 이름이 WebContent 로 되어있을 수 있는데

위의 사진처럼 webapp 으로 수정해주신 후

(안하셔도 상관 없습니다. 제가 익숙한 파일명이라 바꿔주는 것이니

혹시 그대로 놔두실 분들은 앞으로 있을 설정에서 wepapp 이 나오는 부분에

설정하신 폴더 명을 사용하시면 됩니다.)

Generate web.xml deployment descriptor 에 체크를 해주시고 

Finish 를 눌러 줍니다.

 

그러면 이렇게 다이나믹 웹 프로젝트가 생성이 됩니다.

 

 

생성 된 프로젝트를 마우스로 우클릭 한 후

Configure > Convert to Maven Project 를 선택해줍니다.

이것은 일반 프로젝트를 메이븐 프로젝트로 바꿔주겠다는 뜻입니다.

 

 

위와 같은 화면이 뜨시면 

Finish 를 클릭해줍니다.

그러면 아래 사진처럼

 

 

프로젝트의 최상위 경로에 pom.xml 이 추가된 것을 보실 수 있습니다.

pom.xml 을 더블클릭하여 열면

아래 사진처럼 처음 내용이 입력되 있을텐데요

 

아래 사진과 같이 수정해 줍니다.

 

소스코드는 아래에서 복사 하시면 됩니다.

(위의 사진에는 없지만 아래 코드에 보시면

javax.annotation

 디펜던시가 추가되었습니다. 해당 라이브러리도 필요한 것이니 꼭 추가해주세요!)

 

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com</groupId>
  <artifactId>spring_maven</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <url>http://maven.apache.org</url>
  <dependencies>
		<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>javax.servlet-api</artifactId>
		    <version>4.0.1</version>
		    <scope>provided</scope>
		</dependency>
		<dependency>
		    <groupId>javax.servlet</groupId>
		    <artifactId>jsp-api</artifactId>
		    <version>2.0</version>
		    <scope>provided</scope>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-beans</artifactId>
		    <version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-context</artifactId>
		    <version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
		    <groupId>org.springframework</groupId>
		    <artifactId>spring-core</artifactId>
		    <version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>5.2.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-webmvc</artifactId>
			<version>5.2.3.RELEASE</version>
		</dependency>
	</dependencies>
    
    <!-- https://mvnrepository.com/artifact/javax.annotation/javax.annotation-api -->
	<dependency>
	    <groupId>javax.annotation</groupId>
	    <artifactId>javax.annotation-api</artifactId>
	    <version>1.3.2</version>
	</dependency>
  
  <build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
      	<groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.0</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
      	<groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.2.1</version>
        <configuration>
          <warSourceDirectory>webapp</warSourceDirectory>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

그리고 저장해 주신 후

이번에는 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://xmlns.jcp.org/xml/ns/javaee" 
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" 
id="WebApp_ID" version="3.1">

  <display-name>spring_maven</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:spring/context-*.xml</param-value>
	</context-param>

	<servlet>
		<servlet-name>dispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath*:spring/servlet-context.xml</param-value> 
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>dispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
  
</web-app>

 

그리고 저장해 줍니다.

그리고 나서

src 폴더를 우클릭 하여 

New > Folder 를 선택하여

새로운 폴더를 하나 생성해 줍니다.

 

 

폴더 이름은 아래와 같이 main 으로 해주신 후

 

생성된 main 이라는 폴더 아래에

java 와 resources 라는 폴더 두개를 더 생성해 줍니다.

 

생성을 해 주셨으면 아래와 같이 src 아래에 main 아래에

java 와 resources 라는 두 폴더가 생성되셨을 텐데요

 

이번에는 resources 폴더 아래에 spring 이라는 폴더 하나를 더 생성해 줍니다.

 

그리고 위의 사진과 같이

resources.spring 처럼 생성되셨을 수도 있고

resources 폴더 아래에 spring 이라는 폴더가 생성되셨을 수도 있는데 상관없습니다.

 

spring 폴더를 우클릭 한 후

New > Other... 를 선택하고

xml 이라고 검색하면 나오는

XML File 을 선택하고 Next > 버튼 눌러줍니다.

 

그리고 servlet-context.xml 라는 이름의 파일을 만들어줍니다.

 

그리고 servlet-context.xml 의 내용을 위와 같이 수정해 줍니다.

소스코드는 아래에 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
    xmlns:security="http://www.springframework.org/schema/security"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:beans="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/security
       http://www.springframework.org/schema/security/spring-security.xsd
       ">

	<annotation-driven />
	<resources mapping="/resources/**" location="/resources/" /> 
	
	<beans:bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
		<beans:property name="prefix" value="/WEB-INF/jsp/"/>
		<beans:property name="suffix" value=".jsp"/>
	</beans:bean>
	
	<context:component-scan base-package="main"/>
</beans:beans>

 

그리고 이번에는 src 폴더 아래의 main 폴더 아래의 java 라는 폴더를

마우스 우클릭 한 후 

New > Other... 를 선택하셔서

 

 

Package 라는 항목을 검색하셔서 선택하신 후

 

 

Name 부분을 아래와 같이

main.java.com

으로 입력해 주신 후

Finish 를 눌러 생성해 줍니다.

 

그리고 동일한 방법으로 

com 이라는 package 아래에

web 이라는 패키지를 만들어줍니다.

 

그리고 web 이라는 package 아래에

MainController 라는 class 를 만들어 줍니다.

web package 를 우클릭 한 후 New > Other... 에서 

class 를 선택하신 후

 

위와같이 생성해주시면 됩니다.

 

그리고 MainController 의 내용을 위와같이 입력해 줍니다.

코드는 아래에

package main.java.com.web;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import main.java.com.service.MainService;

@Controller
public class MainController {
 
	@Resource(name="mainService")
	private MainService mainService;
	
	@RequestMapping(value="/")
	public String test(Model model) throws Exception {
		System.out.println("controller");
		String test=mainService.selectTest();
		System.out.println(test);
		model.addAttribute("selectTableList", test);
		return "main/Main";
	}
}

 

 

그리고 이번에는 com package 아래에 service 라는 package 를 만들어 줍니다.

생성 방법은

com package 를 우클릭 하신 후

New > Other.. 에서 Package 를 선택하신 후

 

 

Name 을 위와 같이

main.java.com.service 로 입력해 주신 후

Finish 를 눌러줍니다.

그러면 생성되는 service package 에서

 

 

동일한 방법으로 우클릭 New > Other.. 를 선택하여

 

 

이번에는 Interface 를 선택하고 Next > 를 눌러줍니다.

 

 

MainService 란 이름의 인터페이스를 생성해 줍니다.

 

코드는 간단합니다.

입력해주시고 저장해줍니다.

package main.java.com.service;

public interface MainService {
	String selectTest() throws Exception;
}

 

그리고 service package 아래에 impl 이라는 package 를 만들어 줍니다.

 

 

그리고 동일한 방식으로 impl 아래에 

MainServiceImpl.java 라는 class 파일과

MainDAO.java 라는 class 파일을 만들어 줍니다.

 

 

그리고 MainServiceImpl.java 파일의 내용은 아래처럼

 

소스코드는 아래에

package main.java.com.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import main.java.com.service.MainService;

@Service("mainService")
public class MainServiceImpl implements MainService{

	@Resource(name="mainDao")
	private MainDAO mainDao;
	
	@Override
	public String selectTest() throws Exception {
		System.out.println("serviceImpl");
		return mainDao.selectTest();
	}
}

 

사진과 소스코드의 내용이 좀 다를 수 있는데

import 부분이 굳이 표시하지 않아도 되는 부분은 축소되어서 그런것이니

소스코드의 내용 그대로 입력해 주시면 됩니다.

 

그리고 MainDAO.java 파일의 내용은

 

 

아래처럼

 

 

 

package main.java.com.service.impl;

import org.springframework.stereotype.Repository;

@Repository("mainDao")
public class MainDAO {

	public String selectTest() throws Exception {
		String test = "Hello World!";
		return test;
	}
}

 

이렇게 작성해주시고 저장해줍니다.

 

 

그 다음은 webapp 폴더 아래의 WEB-INF 폴더 아래에 

jsp 라는 새로운 폴더 하나를 만들어 주고

 

 

jsp 폴더 아래에 main 이라는 폴더 하나를 더 만들어 줍니다.

 

 

 

그리고 그 main 이라는 폴더 아래에 Main.jsp 라는 파일을 생성해 줍니다.

생성방법은 이제 굳이 설명하지 않아도 되겠죠?

 

jsp 파일입니다.

 

파일 이름을 Main.jsp 로 해줍니다.

그리고 내용은

 

이렇게 소스코드는

<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
Hellow world!
</body>
</html>

이렇게 해주시면 됩니다.

 

그럼 이제 만들어놓은 프로젝트를 실행시켜 봐야겟죠?

서버 탭에서 새로운 서버를 하나 생성해 줍니다.

생성방법은 아래처럼 파란 글씨를 누르시거나

 

 

혹시 서버 탭이 안보이신다면

Package Explorer 탭을 열때와 동일하게

Window > Show View > Servers

이렇게 해주시면 됩니다.

 

 

새로운 서버를 생성하는 창이 열리면

 

 

Tomcat v8.5 Server 를 선택해 주시고

Server's host name 은 그대로 두시고

Server name 을 spring_maven 으로 입력해주시고

Finish 를 눌러줍니다.

 

그러면 아래처럼

 

spring_maven 이라는 이름의 서버가 생성이 된겁니다.

 

이제 마지막으로 프로젝트를 마우스 오른쪽 클릭 하신 후

 

Run As > Run on Server 를 선택해줍니다.

 

 

그리고 방금 전 생성한 spring_maven 서버를 선택해 주시고 Next >

위의 그림처럼 spring_maven 프로젝트가 Configured 쪽에 오게 해주신 후 

Finish 를 눌러주면

 

위의 그림처럼 콘솔창에는 MainController와 MainServiceImpl 그리고 MainDAO 에 입력했던

System.out.println 에 입력한 문구들이 나오고

위의 브라우저에는 jsp 파일에 입력한 Hellow World! 라는 문구가 보이는 걸 확인하실 수 있으실 겁니다.

 

아 그리고 마지막으로 작업해주실 게 한가지 남았는데

 

생성된 spring_maven 서버를 더블클릭해서 여시면

 

아래처럼 창이 열릴 텐데

 

 

왼쪽 아래의 Modules 탭을 선택해 주신 후

 

 

 

/spring_maven 을 선택해 주신 후 

오른쪽의 Edit.. 버튼을 눌러줍니다.

 

 

그리고 Path 부분을 위처럼

하나만 남기고 지워주신 후 OK 를 눌러줍니다.

그리고 서버를 재실행 시켜 주신 후

 

익스플로러나 크롬같은 인터넷 브라우저 창을 여시고

주소창에

https://localhost:8080/

를 입력해보시면

위의 사진처럼

여러분이 생성한 웹 프로젝트가

인터넷 브라우저에서 열리는 걸 확인하실 수 있으실 겁니다.

 

여기까지 여러분은 mvc 패턴으로 된

spring_maven 프로젝트를 직접 생성하고 만들어보셨습니다.

조금 과장해서 홈페이지 하나를 만든것과 다름없는 일입니다.

 

앞으로 이 홈페이지를 어떻게 꾸며나갈지

잘 준비해서 다시 포스팅 할 수 있도록 해보겠습니다.

 

그럼 지금까지 긴 글 읽어주셔서 감사합니다.

반응형

+ Recent posts