no image
[IntelliJ 오류] Web server failed to start. Port 8080 was already in use.
Mac에서 서버가 가동중인 상태로 프로젝트를 닫아버려서 Web server failed to start. Port 8080 was already in use. 오류가 발생하였다. 8080 포트가 이미 실행중인데 다시 이 포트를 사용하려고 하니 포트 충돌로 인한 오류로 보여진다. 해결 방법은 간단하다. 터미널을 열고 아래의 명령어를 입력한다. sudo lsof -i :8080 위 명령어를 입력하면 아래와 같은 메시지가 출력된다. PID라는 항목이 중요하다. PID 9894가 8080포트를 사용중인 것이다. 따라서 아래의 명령어로 8080포트를 사용중인 프로세스를 강제로 종료시킨다. kill -9 PID번호
2024.03.02
no image
[IntelliJ] 자주 사용하는 단축키 정리
Maccommand + shift + t : 테스트 케이스 생성option + enter : static importcommand + option + v : 리턴 값을 받아줄 변수 자동 생성command + n : 생성자, getter, setter 등 자동 생성command + d : 라인 복제ctrl + t : 리팩토링option + command + m : 메서드 추출 리팩토링 (extract method)command + shift + 왼쪽 or 오른쪽 : 프로젝트 탐색창 좌우 크기조절command + option + b + 클릭: 인터페이스의 구현체 리스트를 보여줌command + p : 생성자 목록command + e : 최근 실행 파일shift + shift : 전체 검색command + d..
2024.01.24
no image
IntelliJ에서 Database(MySQL, Oracle) 연결하기
개발 환경 windows 11 pro jdk : 17.0.9 mysql : 8.0.35 oracle : 19.3.0 intelliJ : 2023.3.2 데이터베이스 연결하기 우측 상단의 톱니바퀴 모양을 클릭하고 Project Structure 클릭 Libraries - +버튼 - Java 클릭 JDBC가 있는 폴더에서 jar 파일 클릭 mySQL, Oracle 각각 JAR이 다르니 검색해서 버전에 맞는거 다운로드 하세요 프로젝트 선택후 ok 버튼 클릭 정상적으로 추가된 것을 확인했으면, ok 버튼이나 apply 버튼 클릭 이제 데이터베이스와 연결할 준비가 끝났다. 또 다른 방법 우측 끝에서 Database 아이콘 클릭 + 버튼 클릭 Data Source - 원하는 데이터 베이스 클릭 MySQL - MyS..
2024.01.09
no image
IntelliJ Address localhost 1099 already in use 오류 해결
문제상황 이미 1099 포트가 사용되고 있다 (백그라운드에서 작동되고 있어서 그런 것으로 추정) 이클립스에서는 자동으로 종료가 됐는데, intelliJ에서는 그게 불가능한 것 같다. 문제 해결 cmd에서 아래의 명령어를 입력한다. netstat -ano| find "1099" 현재 1099 포트를 사용하고 있는 프로세스 PID가 우측에 나타난다. 문제의 PID는 12892 이제 작업관리자로 해당 PID를 검색해서 삭제해야 한다. 작업 끝내기를 누르면 해결 완료
2024.01.08
no image
이클립스(Eclipse) 디버그 모드
디버그 모드란? 오류가 발생했을 때, 코드의 논리적인 순서 흐름을 파악할 수 있도록 코드를 한줄 한줄씩 실행해나가는 과정을 뜻한다. 디버그 모드를 사용하면 어디서 에러가 발생하는지를 좀 더 쉽게 알 수 있다. 디버그 모드 사용 디버그 모드를 사용하려면 먼저 브레이크 포인트를 걸어야 한다. 브레이크 포인트 코드가 처음부터 실행되다가 일시적으로 멈추게 되는 지점이다. 브레이크 포인트부터 사용자가 순차적으로 코드를 진행시키며 코드의 실행 흐름을 파악할 수 있다. 소스코드 좌측에, 라인번호 왼쪽에 파란색으로 칠해진 공간을 더블 클릭하면 브레이크 포인트를 지정할 수 있다. 브레이크 포인트가 걸리면 위 사진처럼 동그란 아이콘이 나타난다. 이 포인트가 디버그 시작점이다. 이후 디버그 모드(단축키 : F11)를 실행하..
2023.11.18

Mac에서 서버가 가동중인 상태로 프로젝트를 닫아버려서 Web server failed to start. Port 8080 was already in use. 오류가 발생하였다.

8080 포트가 이미 실행중인데 다시 이 포트를 사용하려고 하니 포트 충돌로 인한 오류로 보여진다.

 

해결 방법은 간단하다.

터미널을 열고 아래의 명령어를 입력한다.

sudo lsof -i :8080

위 명령어를 입력하면 아래와 같은 메시지가 출력된다.

PID라는 항목이 중요하다.

PID 9894가 8080포트를 사용중인 것이다.

 

따라서 아래의 명령어로 8080포트를 사용중인 프로세스를 강제로 종료시킨다.

kill -9 PID번호

Mac

  • command + shift + t : 테스트 케이스 생성

  • option + enter : static import

  • command + option + v : 리턴 값을 받아줄 변수 자동 생성

  • command + n : 생성자, getter, setter 등 자동 생성

  • command + d : 라인 복제

  • ctrl + t : 리팩토링

  • option + command + m : 메서드 추출 리팩토링 (extract method)

  • command + shift + 왼쪽 or 오른쪽 : 프로젝트 탐색창 좌우 크기조절

  • command + option + b + 클릭: 인터페이스의 구현체 리스트를 보여줌

  • command + p : 생성자 목록

  • command + e : 최근 실행 파일

  • shift + shift : 전체 검색

  • command + d : 해당 라인을 아래에 복제

  • command + shift + : 코드 한 줄 혹은 선택 영역을 한 줄 위로 이동

  • command + shift +  : 코드 한 줄 혹은 선택 영역을 한 줄 아래로 이동

  • command + L : 행:열을 입력하여 원하는 코드 라인으로 이동

  • command + backspace : 라인 한줄 지우기

  • command + shift + r : file replace(패키지나 디렉토리 선택한 후)

  • option + command + m : 메서드 추출

  • option + command + n : 인라인으로 합치기

  • option + command + c : 상수 지정

  • ctrl + o : 메서드 오버라이드

  • command + option + 클릭 : 인터페이스를 구현한 구현체로 이동

  • Shift + F6 : 변수명 한번에 바꾸기

 

 

 

Windows

  • art + Enter : static import

  • Alt + Insert : 새로운 클래스나 패키지등을 만들 때 사용 또는 생성자, getter and setter을 만들 때 유용하다.

  • Shift+Ctrl+Alt+T : 리팩토링

  • Alt + Shift + m : 메소드 리팩토링의 Extract Method 생성

  • Ctrl + Alt + s : Files->settings 로 이동

  • Ctrl + b : 해당 코드의 구현부로 이동

  • Ctrl + Alt + v : 리턴값을 받을 변수 자동 생성(클래스타입을 예측하여 편하게 클래스와 이름을 자동 완성해주는 기능)

  • Ctrl + e : 최근 사용한 파일 목록을 조회한다.

  • Ctrl + Shift + enter : 줄의 끝에 ;를 자동으로 입력

  • psvm 입력 -> enter : public static void main(String[] args) {} 메인 메서드 자동 완성

  • iter 입력 -> enter : foreach문을 자동 완성

  • sout 입력 -> enter : System.out.println(); 자동 완성

  • Ctrl + E : 직전에 작업했던 파일 목록들을 확인

  • Ctrl + / : 바로 주석 처리

  • Ctrl+Alt+L : 코드 내의 라인들을 보기 좋게 정리

  • Ctrl + Alt + O : 사용하지 않는 Import 라인을 알아서 정리

  • Ctrl + D : 해당 라인을 아래에 복제

  • Shift + Enter : 현재 커서 위치가 가로로 어디에 있던, 바로 아래에 새로운 라인을 만들어주는 기능

  • Ctrl + Shfit + T : 테스트파일 생성을 위한 도구를 켜줌, 자동으로 폴더까지 만들어주며 메소드를 선택할 수 도 있음.

 

참고

https://howtolivelikehuman.tistory.com/202

https://seongho96.tistory.com/58

https://mangkyu.tistory.com/139

https://velog.io/@janeljs/IntelliJ-IDEA-useful-shortcuts

 

개발 환경

  • windows 11 pro
  • jdk : 17.0.9
  • mysql : 8.0.35
  • oracle : 19.3.0
  • intelliJ : 2023.3.2

 

데이터베이스 연결하기

우측 상단의 톱니바퀴 모양을 클릭하고 Project Structure 클릭

 

 

Libraries - +버튼 - Java 클릭

 

JDBC가 있는 폴더에서 jar 파일 클릭

mySQL, Oracle 각각 JAR이 다르니 검색해서 버전에 맞는거 다운로드 하세요

 

프로젝트 선택후 ok 버튼 클릭

 

정상적으로 추가된 것을 확인했으면, ok 버튼이나 apply 버튼 클릭

이제 데이터베이스와 연결할 준비가 끝났다.

 

또 다른 방법

  1. 우측 끝에서 Database 아이콘 클릭
  2. + 버튼 클릭
  3. Data Source - 원하는 데이터 베이스 클릭
  • MySQL - MySQL
  • Oracle - Oracle

 

이후 데이터베이스 아이디와 패스워드를 입력한다.

 

Test Connection을 통해서 연결 테스트를 한다.

Succeeded가 뜨면 apply -> ok 버튼을 누른다.

문제상황

이미 1099 포트가 사용되고 있다
(백그라운드에서 작동되고 있어서 그런 것으로 추정)
이클립스에서는 자동으로 종료가 됐는데, intelliJ에서는 그게 불가능한 것 같다.

 

문제 해결

cmd에서 아래의 명령어를 입력한다.

netstat -ano| find "1099"

현재 1099 포트를 사용하고 있는 프로세스 PID가 우측에 나타난다.

문제의 PID는 12892

이제 작업관리자로 해당 PID를 검색해서 삭제해야 한다.

작업 끝내기를 누르면 해결 완료

디버그 모드란?

오류가 발생했을 때, 코드의 논리적인 순서 흐름을 파악할 수 있도록 코드를 한줄 한줄씩 실행해나가는 과정을 뜻한다.

디버그 모드를 사용하면 어디서 에러가 발생하는지를 좀 더 쉽게 알 수 있다.

 

디버그 모드 사용

디버그 모드를 사용하려면 먼저 브레이크 포인트를 걸어야 한다.

브레이크 포인트
코드가 처음부터 실행되다가 일시적으로 멈추게 되는 지점이다.

브레이크 포인트부터 사용자가 순차적으로 코드를 진행시키며 코드의 실행 흐름을 파악할 수 있다.

소스코드 좌측에, 라인번호 왼쪽에 파란색으로 칠해진 공간을 더블 클릭하면 브레이크 포인트를 지정할 수 있다.

 

 

브레이크 포인트가 걸리면 위 사진처럼 동그란 아이콘이 나타난다.

이 포인트가 디버그 시작점이다.

이후 디버그 모드(단축키 : F11)를 실행하면, 브레이크 포인트부터 코드를 분석할 수 있다.

브레이크 포인트를 해제하려면 동그란 아이콘을 다시 더블 클릭하면 된다.

 

이런 창이 나타나면 Yes를 눌러주면 된다.

 

디버그 모드가 실행되면 위와 같은 화면을 볼 수 있다.

우측 상단에 현재 변수가 생성된 목록과 해당 변수의 값이 무엇이 담겼는지 알 수 있다.

여기서 한줄씩 디버그를 진행하려면 F6이나 F5를 누르면 된다.

그러면 브레이크 포인트로부터 한 줄씩 내려가면서 코드가 실행된다.

 

몇 번 F6을 누른 후의 사진이다.

변수가 어떤 것이 있고, 변수에 무슨 값이 담겨있는지 확인할 수 있다.

소스 코드 수정하는 공간 위에 위와 같은 아이콘을 볼 수 있다.

  1. 첫 번째 아이콘 : step into - 메소드를 포함한 라인을 만나면 메소드 안으로 진입 (단축키 F5)
  2. 두 번째 아이콘 : step over - 다음 라인으로 이동, 메소드가 있어도 메소드 안으로 진입하지 않고 다음 라인으로 이동 (단축키 F6)
  3. 세 번째 아이콘 : step Return - 현재 메소드에서 즉시 리턴 (단축키 F7)
  4. 네 번째 아이콘 : 메소드를 처음부터 다시 실행

 

참고