[Spring]스프링 레거시 - 초기 설정(1)

Inung_92·2023년 2월 15일
2

Spring

목록 보기
7/15
post-thumbnail

스프링레거시 프로젝트 준비하기

⚡️ 설치환경 준비(Mac M1기준)

🖥️ JDK설치

Mac M1을 기준으로 openjdk 11버전을 설치해보자. brew는 깔려있다는 전제 하에 시작하겠다.

openjdk 저장소 추가

brew tap adoptopenjdk/openjdk

cask가 없는 경우 설치

brew install cask

OpenJDK 11 설치

brew install --cask adoptopenjdk11

설치 여부 확인

java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

🖥️ Tomcat 9.0 설치

사이트 접속하여 tomcat 설치
https://tomcat.apache.org/download-90.cgi

아래와 같이 tar.gz파일을 다운로드하면된다. 혹시 windows 사용자라면 자신의 bit에 맞는 버전을 다운로드하자.

tomcat이 다운로드된 위치로 이동하여 아래 커맨드 입력 후 실행

cd '설치위치'

tar zxvf apache-tomcat-9.0.50.tar.gz -C /Users/유저네임/Documents/상세경로

위의 상세경로는 일반적으로 /Library에 넣는 경우가 많음. 나는 그냥 Users/유저네임 폴더에 저장하여 사용하는 중이다.

🖥️ IDE 설치(sts3 또는 전자정부프레임워크)

Spring 레거시 프로젝트를 작성하기 위해서는 STS3 또는 전자정부프레임워크로 프로젝트를 생성해야한다. 인텔리제이의 경우 나는 Spring Boot 프로젝트만 뜨기 때문에 전자정부프레임워크로 진행하였다. 링크는 아래를 참고하자.

https://www.egovframe.go.kr/home/sub.do?menuNo=41

위 링크에서 Mac 64bit용으로 다운을 받아주면된다. STS3는 아래를 참고하자.

STS3는 이클립스의 마켓플레이스에서 다운을 받아야하는데 검색을 하면 위와 같이 2개가 나온다. 현재는 정식적으로 STS4를 지원하기 때문에 STS4에 추가하여 사용할 수 있는 위의 플러그인을 설치해주면된다.

나만 그런것일지도 모르지만 STS3 자체로는 스프링 레거시 프로젝트 생성은 불가능했다. 그래서 스프링 config xml 파일로 일일이 설정하여 프로젝트를 생성하였다.


프로젝트 생성하기

⚡️ 프로젝트 생성

나는 전자정부프레임워크를 수업시간에 다뤘으므로 해당 툴로 진행을 하겠다. 혹시라도 STS3로 진행하는 사람들은 우선 Danymic Web으로 프로젝트를 생성하고 설정 파일들을 동일하게 설정해주면 된다.
이제 본격적으로 프로젝트를 생성해 볼 것이다. New를 선택하여 'Spring Legacy Project'를 클릭하여 준다.

아래와 같이 프로젝트명을 작성하고 Templates 하단의 메뉴들을 살펴보면 Spring MVC Project가 보일 것이다. 선택하고 Next를 누르자.

그럼 아래와 같이 top-level 패키지를 지정하라는 설정창이 나온다. 패키지명은 본인이 정하기 나름이니 해당 패키지명을 설정해주자.(패키지는 차후 bean을 자동 탐색할때 경로의 대상이되니 구분을 잘해두어야한다.)

⚡️ 설정하기

이제 프로젝트가 생성되었으니 차근차근 설정을 시작해보자. 제일 먼저 Java와 스프링의 버전을 수정해주겠다. 참고로 나는 JDK 1.8, 스프링 4.3.30 버전을 사용하였다.

src>main>webapp>pom.xml 파일을 클릭하여 열어주자. 아래 보이는 사진에서 처럼 java-version과 org.springframework-version을 수정해주자. 여기서 properties는 이 xml파일에서 하나의 변수처럼 사용할 수 있는 태그를 선언하는 것을 의미한다.

위에서 설정을 수정하였으면 아래로 스크롤을 쭉 내리다보면 pluging 설정 부분이 나온다. 아래 사진에 표시된 부분을 1.8로 수정해주자. 이렇게 수정을 해주어야 JDK가 완전히 수정된다.

다음은 필요한 라이브러리들을 설정해주겠다. 아래는 복사해서 사용할 수 있도록 작성한 것이며, 해당 태그들이 위치하는 곳은 pom.xml 내부의 dependencies 태그 내부로 지정해주면 된다.

<!-- lombok -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.24</version>
  <scope>provided</scope>
</dependency>

<!-- Mybatis -->
<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.4.6</version>
</dependency>
<dependency> <!--해당 라이브러리가 있어야 스프링에서 mybatis를 사용가능-->
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis-spring</artifactId>
  <version>1.3.3</version>
</dependency>

<!-- DB -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.49</version>
</dependency>
<dependency>
  <groupId>com.oracle.database.jdbc</groupId>
  <artifactId>ojdbc8</artifactId>
  <version>19.7.0.0</version>
</dependency>

<!-- upload -->
<dependency>
  <groupId>commons-fileupload</groupId>
  <artifactId>commons-fileupload</artifactId>
  <version>1.4</version>
</dependency>

이렇게 라이브러리들을 등록완료하였으면 maven 라이브러리에도 잘 적용이 되었는지 확인해주면 된다. 혹시 라이브러리가 보이지 않거나 maven 라이브러리 자체가 보이지 않으면 여기를 참고하여 조치하자.

이제 dispatcherServlet이 참고하는 servlet-context.xml 설정을 해보자. 우선 STS3 사용자는 해당 파일 자체가 없으니 사진 속 내용을 참고하여 파일을 설정해주자.

여기서 위의 내용에 대해 어떤 설정인지 알아보자.

  • annotation-driven : 어노테이션 기능을 사용하겠다고 선언
  • resources : 정적인 자원(이미지, 텍스트 등)을 매핑할 경로와 위치를 지정
  • ⚠️beans : bean은 스프링에서 객체를 가르키는 개념이다. beans는 @... 어노테이션이 붙은 객체들을 자동으로 매핑해주기 위하여 등록을 할 수도 있지만 현재 설정 파일에서는 view에 대한 경로분석을 담당하는 객체를 수동매핑 해 준 것이다.
  • context : 스프링 빈 컨테이너에 등록할 객체를 찾는 범위를 설정하는 태그이다. component-scan을 적용하면 base-package에 설정된 경로의 모든 객체를 어노테이션과 매핑하여 자동으로 의존성을 주입한다.

다음은 가장 중요한 web.xml 파일의 설정을 해볼 것이다. 중요한 내용인만큼 다음 글에서 자세하게 알아보자.

그럼 이만.👊🏽

profile
서핑하는 개발자🏄🏽

2개의 댓글

comment-user-thumbnail
2023년 8월 8일

감사합니다 ㅠㅠ 덕분에 레거시 프로젝트 생성했어요..

1개의 답글