[DAY 1] 스프링 부트와 버전 오류 이겨내기
길벗 코딩 자율학습단 9기 스프링부트!
책이 생각보다 일찍 와서 그냥 바로 시작해버렸다!
그래서 지금 3장까지 진도가 나갔지만 학습일지는 진도에 맞춰서 복습 & 트러블슈팅개념으로 기록할거다.
사실 자바 시작하기 전 버전 오류 억까 예상하고 있었지만 역시나...ㅋㅋ
1.1 스프링 부트란
스프링부트 - 자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위한 도구
스프링과 무슨 차이? -> 같은 스프링 프레임워크 기반 / 스프링을 좀 더 편하게 사용하도록 개선한 것이 스프링 부트
개발 환경 설정 최소화
- 스프링은 외부 라이브러리를 개발자가 직접 연동, 설정 파일을 작성해야함. 반면 스프링 부트는 프로젝트 설정과 라이브러리를 자동으로 처리하는 기능을 제공. 개발자가 간편하고 빠르게 개발을 시작할 수 있음.
웹 애플리케이션 서버를 내장함
- 스프링 부트는 WAS(웹 애플리케이션 서버)인 톰캣을 가지고 있어 jar파일로 간단히 서비스를 배포할 수 있음.
jar(java Archive) : 여러 자바 클래스 파일과, 클래스 관련 리소스, 메타데이터를 하나의 파일로 모아 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷. jar 파일은 zip 포맷으로 이루어진 압축파일이며 JDK에 포함된 jar 명령어를 이용하여 사용 가능.
1.2 스프링 부트 개발 환경 설정하기
IDE 인텔리제이 / JDK 17 사용
오류 시작!
Trouble shooting
문제 1: JDK 버전 오류
예전에 학교 다닐때 자바를 썼기때문에 JDK 다른 버전이 이미 있었고, 그때 환경변수 설정도 해놔서 그런지 자꾸 프로젝트 빌드할때 그 JDK를 잡아서 빌드가 안됐다.
해결방법
1차 시도 :인텔리제이 File>Settings>Gradle에서 Gradle JVM 에 17로 설정한 뒤 apply 해도 실패.
2차 시도 : project Structure 들어가서 Moudle SDK 17로 잡혀있는지 확인 -> 성공
하지만 나에겐 아직 스프링 부트 버전이 남았다.
문제 2 : 스프링 부트 버전 변경 오류
책에서 쓴 버전과 현재 버전이 차이가 나서, 변경을 해야했다. 다행히 책에서 친절하게 버전 변경하는 법을 알려줬는데 응 쉽게 되면 그건 컴퓨터가 아니지.
스프링 부트 버전 변경하는 법!
build.gradle 에서 springframework.boot 찾아서 버전 변경 후 오른쪽 위에 있는 코끼리 이모티콘 클릭
해결 방법
이때도 빌드 오류가 막 나기 시작해서 또 첫번째 오류처럼 sdk 확인, 다 안됨. 인텔리제이 자체를 껐다 키니까 해결... 나중에 보니 빌드 새로고침 눌렀으면 됐었을 수도 있겠단 생각이 들었다.
문제 3 : 포트 충돌
신나게 localhost:8080 들어갔더니 뭔 로그인을 하란다... 하...
예전에 자바를 썼다고 했지요, 그는 이클립스에 오라클 톰캣 사용했는데 걔들이 8080 포트를 차지하고 있어서 그떄 그시절 사용자 이름 비번을 내놓으라고 한 거였다.
해결 방법
서치해보니 해결 방법이 3가지였다.
1) netstat -ano 로 8080 PID 찾아서 KILL -> 한번만 kill하면 되나?
2) 제어판에서 오라클 찾아서 중지시킨다 -> 관리 도구 도무지 못찾겠음.
3) 인텔리제이 포트 변경한다.
3번으로 해결했다.
인텔리제이 포트 변경하는 법
Run > Edit Configurations 에서 Environment variables 찾는다
server.port="원하는 포트 번호" 로 수정.
드디어 만난 hello world...