몇주간 데스크톱에서 노트북으로 작업환경을 옮겨야 해서 스프링, 톰캣, jdk를 재설치하려는데, 어떻게 하는지 그새 까먹었던 것이다... 다시는 잊어버리지 않기 위해.. 또 나와 같은 문제가 있는 사람들을 위해.. 복기하면서 글을 업로드해본다.
✅ jdk 11 설치하기
나같은 경우는 처음에 뭣도 모르고 '당연히 최신버전이 좋은거아님? ㅎㅎ' 이라고 생각하고 jdk 17버전을 설치했던 케이스인데, 이게 오라클에서도 그렇고 톰캣 서버 구동할 때도 sts 구동할 때도 호환이 잘 안 되었던 경험이 있어서 아예 다시 jdk 11버전을 설치하였고 톰캣도 그냥 재설치를 해버렸다.
1. https://www.oracle.com/kr/java/technologies/downloads/#java11 오라클 다운로드 사이트 접속
2. 위에 있는 19,17 말고 스크롤을 아래로 내려서 java 11 클릭
3. 각자 OS에 맞는 버전 다운로드 (오라클 계정 로그인 필요함)
4. ★★★ 기존에 설치된 jdk 삭제하기 (환경변수 내 시스템 변수, path 설정도 다 삭제) / 없으면 무시하기
5. 다운로드 받은 jdk-11.0.17.exe 파일 실행 후, 설치 경로만 본인이 원하는 경로로 바꿔주기
6. 환경변수 설정하기
- window키+R 눌러서 실행창 오픈 후 sysdm.spl 입력 (혹은) 검색창에 고급 시스템 설정 입력 후 실행
- 고급 탭에서 환경변수 버튼 클릭
- 시스템 변수에서 새로 만들기 후 JAVA_HOME 변수 이름, 값 추가하기
- path에서 경로 설정해주기
- %JAVA_HOME%\bin 을 추가해주고 맨 위로 이동시켜준다.
7. cmd에서 path와 java version 확인
명령어로 path를 입력했을 때 jdk 버전이 11로 뜨면 정상적으로 path에 등록된 것이고,
java -version을 입력했을 때 위와 같이 나오면 설치가 제대로 되었다는 뜻이다.
* 간혹 아무리 java -version을 입력해도 아무것도 안 나오고 다시 명령어를 입력하라고 하는 경우가 있다.
나의 경우 이전의 jdk가 제대로 삭제되지 않은 상태에서 새로운 jdk를 덮어씌웠을 때 이런 에러가 발생했고, jdk 완전삭제 후 환경변수, 시스템변수 모두 삭제해준 뒤 재설치 해주면 정상적으로 확인이 되었다.
✅ Apache Tomcat 9.0 설치
1. 구글에 apache tomcat 검색 후 다운로드 페이지 이동
2. Archives 페이지 이동
3. 버전 선택 후 bin/ 폴더 클릭
4. exe 파일 다운로드
5. exe파일 실행 후 포트번호 입력
셧다운 포트는 기본적으로 -1 (사용하지 않음) 으로 되어있으며 그냥 8005번으로 바꿔준다. 대체로 8005를 사용하는듯.
8005 포트에 shutdown 문자열이 들어오면 톰캣이 종료된다.
HTTP 커넥트 포트번호는 보통 8080이나 8090을 많이 쓰는데 이건 그냥 내 맘대로 9090으로 바꿔주어도 테스트 하는 데 전혀 지장이 없다. 다른 프로그램과 겹치지만 않으면 된다. 나는 9090으로 바꿔주었으며 이는 "앞으로 9090 포트로 접속해서 9090포트를 열고있는 서비스와 통신해라"는 의미이다.
▶ HTTP? 프로토콜?
프로토콜 이란?
컴퓨터간 통신을 위해 미리 정해놓은 '통신규약'이다. 신호나 오류를 처리하는 방식, 암호, 보안, 인증, 주소 같은 것들을 포함하며 국제 표준 통신규약이 존재한다.
이 프로토콜의 종류 중 하나가 바로 HTTP다. (FTP, SMTP...등등 프로토콜의 종류는 많음)
HTTP는 'Hyper Text Transfer Protocol'의 약자이며, 이 하이퍼 텍스트(Hyper Text)라는 놈이 바로 우리가 잘 아는 프로그래밍 언어인 HTML(Hyper Text Mark-up Language)이다. 웹페이지는 기본적으로 HTML로 제작되는데, 이 하이퍼 텍스트 문서를 제공하고 제어하는 통신규약, 즉 프로토콜이 바로 HTTP인 것이다. 클라이언트와 서버가 어떻게 서로 통신할 지에 대해 정해놓은 규칙이며, Request와 Response로 구성되어 있다.
웹 브라우저의 URL은 표준 포트 번호로 80번을 사용하기 때문에 뒤에 포트번호를 생략하면 http://000.000.000.000:80으로 자동으로 인지하게 된다. :8080처럼 포트번호를 별도로 지정하는 것도 당연히 가능하다. 2022년 현재 HTTP의 3번째 버전인 HTTP/3이 표준화되었고, 방금 설치한 톰캣 9.0은 HTTP/1.1 커넥터가 기본이며 HTTP/2.0 커넥트도 추가가 가능한 것으로 알고 있다.
6. JVM (JDK) 경로 지정
아까 설치했던 JDK11버전의 경로를 설정해준다.
7. 톰캣이 설치될 폴더를 지정해준다.
8. ★★★ 환경변수 설정
JDK 환경변수 설정과 동일하게 톰캣 서비스인 CATALINA도 시스템 변수에 등록해야 한다.
변수 이름에 CATALINA_HOME 입력 후 톰캣 폴더가 있는 경로를 찾아 변수 값을 지정해준다.
path 설정도 자바홈 설정했을 때랑 동일하게 해준다.
%CATALINA_HOME%\bin
9. 서버 구동 확인하기
서비스 앱으로 접속하여 아파치 톰캣 서비스가 실행 중인지 확인한다.
직접 검색해서 실행해도 되고, Window+R + services.msc 입력해도 실행된다.
그리고 http://localhost:9090(본인이 설정한 포트번호) 으로 접속해본다.
해당 화면이 나오면 톰캣이 제대로 설치가 완료된 것이다.
✅ 스프링 (STS3) 설치 및 셋팅
드디어 JDK와 톰캣을 다 깔았다. 스프링 툴을 설치해보자.
먼저 구글에 Spring Tool Suits 3 검색하기.
혹은 아래 링크 접속해서 하단으로 내려가면 sts3 다운로드 화면이 보인다.
Spring Tools 4 is the next generation of Spring tooling
Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE.
spring.io
왜 하필 3.9.12냐고 물어본다면... 잘 모르겠음.
각자 OS 환경에 맞는 파일을 다운받아주면 될 것 같다.
압축파일을 풀어준다.
나는 C드라이브 바로 하위에 dev 폴더를 만들어서 아까 설치했던 jdk, tomcat부터 eclipse, 각종 workspace, ojdbc 등 개발에 필요한 모든 소스들을 몰아두었다.
...\spring-tool-suite-3.9.12.RELEASE-e4.15.0-win32-x86_64\sts-bundle\sts-3.9.12.RELEASE 경로로 들어가면 STS.exe파일이 있다. (나뭇잎 모양의 아이콘이다)
매번 이렇게 들어오는 건 귀찮으니 시작화면이나 작업표시줄에 아이콘을 추가해준다.
실행 후 뜨는 창에서 워크스페이스 경로도 지정해준다.
그럼 이제 새로운 프로젝트를 하나 만들어보자.
New > Spring Legacy Project를 클릭한다.
Starter Project와 Legacy Project는 차이점이 뭐지? 싶었는데 찾아보니 스프링부트를 이용할 때는 스타터 프로젝트를 쓴다고 한다. 목적 자체가 간단한 실행과 설정, 스피드, 최소한의 개발 등에 있는듯 하다. 개발자가 복잡하게 이것저것 설정할 필요가 없다고 한다. 아직 스프링부트를 써보지 않아서 뭐가 다른지 정확하게는 잘 모르겠다.
레거시 프로젝트는 아무래도 레거시..가 붙다보니 그냥 전통적인 방식대로 개발환경을 설정하는 것을 의미하지 않나 싶다. 스타터와 달리 WAS 설정도 따로 해주어야 한다. 우리가 사용하는 모델2 방식의 MVC프로젝트도 레거시 프로젝트를 통해 만들 수 있다. 초기셋팅은 직접 해줘야 한다는 번거로움이 있다.
아무튼.. 템플릿에서 Spring MVC Project를 클릭하고 프로젝트명 작성한 후 Next >
이후 패키지명을 지정해준다.
마지막 단어로 지정되는 것이 해당 프로젝트의 context가 된다.
무슨 기준으로 패키지명을 지정해주는 지 궁금했는데, 보통 웹사이트 주소를 반대로 기재한 모양으로 만들어준다고 한다. 그리고 소스파일의 그룹은 온점을 기준으로 구분되기 때문에 그 사이에 점을 찍어준다는 것이다.
예를 들면 com.naver.myapp처럼 com.회사이름.프로그램이름 이라고 짓는 식이다.
대문자 사용은 권고되지 않으며 소스폴더는 자동으로 생성된다.
그런 다음 톰캣 서버를 불러와준다.
처음 스프링을 실행하면 내장서버가 이미 로딩되어 있을텐데 그냥 Delete 해주자.
아파치 > 톰캣 해당 버전 (9.0) > Browse 버튼을 눌러 톰캣이 설치된 폴더를 선택해준다.
현재 프로젝트를 Configured 탭으로 옮겨준다.
톰캣 서버가 추가되었다.
Start를 시켜봅니다.
※ 간혹 이런 오류가 뜰 수 있다.
포트가 이미 사용중이라 충돌이 난 것이다.
현재 실행중인 톰캣 서버 프로세스를 죽이고 스프링 내에서 다시 구동해야 한다.
아까 열었던 '서비스' 창으로 들어온다. 혹은 윈도우키+R키 누르고 services.msc 입력.
Apache Tomcat 9.0 Tomcat9 라는 서비스가 실행 중이라고 뜰 것이다.
중지 버튼을 누른다.
다시 스프링으로 돌아와 스타트 버튼을 누른다.
서버가 제대로 스타트된 것을 확인할 수 있다.
홈화면 확인 이전에, 나는 기본 웹 브라우저를 변경해주었다.
해줘도 되고 안 해줘도 되는 부분이다.
Window > Web Browser > 원하는 브라우저 선택
이제 웹브라우저로 접속해서 스프링에서 기본으로 만들어준 홈페이지를 확인해보자.
크롬에서 http://localhost:9090/myapp 로 접속한다.
(사람마다 주소가 다를 수 있다. 9090은 포트번호 myapp은 context이다.)
서버는 잘 돌아가는데.. 보니까 한글이 깨진다. 인코딩을 해줍시다.
페이지 상단에 아래 코드를 넣어준다.
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
내친 김에 sts 내 인코딩 설정도 전부 바꿔준다.
Window > Preferences > enc 라고 검색해서 나오는 모든 encoding 방식을 UTF-8로 변경해준다.
workspace, CSS Files, HTML Files, JSP Files.. 등등 다 그냥 UTF-8로 변경해준다.
이제 한글이 깨지지 않는다.
SPRING 폰트 변경 방법
- Window > Preferences > General > Appearance > Colors and Fonts > Text Font > 글꼴 선택
나는 D2 글꼴이 가장 보기 편해서 그것으로 선택했다.
글씨 크기만 변경하려고 하시는 분들은 그냥 워크스페이스에서 Ctrl키 누르고 플러스나 마이너스 누르면 커졌다 작아졌다 하기 때문에 굳이 이렇게 변경할 필요는 없다.
하 오늘 pom.xml 설정까지 다 포스팅하려고 했는데 실패..
다음에 이어서 셋팅하도록 하겠습니다.
혹시 잘못된 부분이 있다며 댓글로 알려주세요.

'Dev > Web' 카테고리의 다른 글
[Servlet] Init-param과 param-name, param-value의 쓰임새 사용예 example (0) | 2022.12.06 |
---|---|
[JDBC] Class.forName()의 의미와 궁금점 (0) | 2022.12.06 |