[스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술] - 섹션 1~3 Trouble Shooting
정적 컨텐츠 | 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
정적 컨텐츠
www.inflearn.com
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 를 들으면서 직면했던 문제들과 그에 대한 해결방안을 정리하였다.
다들 그렇다시피 모두가 같은 문제를 겪는 것 같다.
1)
java: cannot find symbol
symbol: method addAttribute(java.lang.String,java.lang.String)
location: variable model of type ch.qos.logback.core.model.Model
HelloController 오류 질문(addAttribute 오... - 인프런 | 커뮤니티 질문&답변
누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.
www.inflearn.com
import ch.qos.logback.core.model.Model;
model을 import시 이 패키지가 import 되는데, 이 대신
package org.springframework.ui;
이걸로 수정해야 한다.
2)
빌드 시 Error: Unable to access jarfile hello-spring-0.0.1-SNAPSHOT
build가 완료되었는데 jar파일에 접근할 수 없다고 나옵니다. - 인프런 | 커뮤니티 질문&답변
누구나 함께하는 인프런 커뮤니티. 모르면 묻고, 해답을 찾아보세요.
www.inflearn.com
$ ./gradlew build
$ cd build/libs
$ java -jar hello-spring-0.0.1-SNAPSHOT
Error: Unable to access jarfile hello-spring-0.0.1-SNAPSHOT
끝에 .jar를 붙이면 해결된다.
> java -jar hello-spring-0.0.1-SNAPSHOT.jar
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
4)
Cannot resolve class or package 'h2'
Gradle Sync도 해보고 Refresh도 해보고 껐다 켜봐도 안됐다.
implementation ("org.springframework.boot:spring-boot-starter-jdbc")
runtimeOnly ("com.h2database:h2")
build.gradle.kts에 직접 추가하고 다시 sync하니 됐다.
5)
Port 8080 was already in use
https://yuricoding.tistory.com/93
Port 8080 was already in use 에러 해결방법
개발꿀팁 Port 8080 was already in use 에러 해결방법 8080 포트를 여러프로젝트에서 사용하다 보니 아래와 같은 오류가 발생하였다. 원인 서버를 구동하려고 할 때 서버가 사용하려고 하는 port를 다른
yuricoding.tistory.com
이분의 블로그를 참고했다.
>lsof -i tcp:8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 68040 csh 59u IPv6 0x52865a6fdd802f6b 0t0 TCP *:http-alt (LISTEN)
> kill $(lsof -t -i:8080)
나는 맥북을 쓰고 있어서 이렇게 사용했다.
lsof(LiSt Open Files)
- 어떤 프로세스가 어떤 파일을 열고 있는지(소켓 포함) 확인할 수 있다.
- lsof -i tcp:8080 <- 어떤 PID가 포트를 점유 중인지
- lsof +D /path/to/dir <- 특정 디렉터리/파일을 열고 있는 프로세스가 있는가?
netstat(NETwork STATistics)
- 네트워크 상태를 전반적으로 보여주는 명령어.
- 현재 열려 있는 TCP/UDP/RAW 소켓, 연결 상태(LISTEN, ESTABLISHED 등), 프로토콜 통계, 라우팅 테이블, 멀티캐스트 그룹 등을 확인할 수 있다.
- netstat -tulnp <- 현재 열려 있는 포트(UDP/TCP)와 해당 PID를 확인 가능
- 맥에서는 -p 옵션 지원 x, -anv 등으로 사용한다.
- 최신 리눅스 배포판에서는 netstat 대신 ss를 쓴다.(상세하고 빠름)
ps(Process Status)
- 현재 실행 중인 프로세스의 목록을 보여준다.
- CPU 사용량, 메모리 사용량, 프로세스 ID(PID), 부모 프로세스 ID(PPID), 실행 명령, 실행 시간 등
- ps aux <- 간단한 프로세스를 보고 싶을 때
- top <- 동적으로 프로세스 상태를 보고 싶을 때