Java을 배우면서 처음 접하게 되는 개념들이 많습니다. 특히 Java를 공부할 때 "터미널", "컴파일", "클래스" 같은 개념을 제대로 이해하는 것이 중요합니다.
터미널은 컴퓨터와 사용자가 텍스트 기반으로 소통하는 창입니다. 명령어를 입력하여 파일을 실행하거나 관리할 수 있습니다.
운영체제별 터미널 실행 방법
명령 프롬프트(CMD), PowerShell, Git Bash터미널(Terminal)명령 프롬프트(CMD) VS 터미널
제 윈도우 컴퓨터에는 명령 프롬프트(CMD)와 터미널이 둘 다 있어 혼동이 되었는데요.
명령 프롬프트(CMD)와 터미널은 비슷하지만 차이가 있습니다.1. 명령 프롬프트 (Command Prompt, CMD)
- Windows에 기본적으로 포함된 명령줄 인터페이스입니다.
- 오래된 도스(DOS) 기반 명령을 주로 실행합니다.
- 명령어 예시:
dir (현재 폴더의 파일 목록 보기) cd (폴더 이동) ipconfig (네트워크 정보 확인)2. 터미널 (Windows Terminal)
- 최신 Windows 10과 11에서 제공하는 새로운 터미널 앱입니다.
- 여러 종류의 셸(명령 실행 환경)을 하나의 창에서 실행할 수 있습니다.
- 기본적으로 Windows PowerShell, 명령 프롬프트(CMD), Azure Cloud Shell 등을 지원합니다.
- 여러 탭을 열어서 다양한 환경에서 작업할 수 있습니다.
결론: 터미널은 여러 명령줄 환경을 실행할 수 있는 "컨테이너" 같은 역할을 하고, 명령 프롬프트(CMD)는 그 안에서 실행할 수 있는 하나의 셸입니다.
👉 터미널을 사용하면 CMD뿐만 아니라 PowerShell이나 WSL(리눅스 서브시스템)도 함께 사용할 수 있어 더 유용합니다.
터미널에서 명령어를 입력한 후 Enter 키를 누르면 실행됩니다.
실행에 성공하면, 터미널에 아무 오류 메시지도 표시되지 않습니다. 그래서 확인하려면 따로 현 폴더 목록을 출력(ls)한다는 등 추가 확인이 필요합니다.
만약 오류가 발생하면, 다음 줄에 에러 메시지가 출력되며 오류의 원인을 확인할 수 있습니다.
| 명령어 | 설명 | 유래 |
|---|---|---|
ls (Linux/Mac) / dir (Windows) | 현재 폴더에 있는 파일 목록 보기 | list, directory |
cd 폴더명 | 특정 폴더로 이동 | change directory (디렉토리=폴더) |
pwd | 현재 작업 중인 폴더 경로 확인 | print working directory (윈도우 cmd에서는 cd 단독 입력시 폴더 경로 확인 가능) |
javac 파일이름.java | Java 파일을 컴파일 | Java Compiler |
java 클래스이름 | Java 프로그램 실행 |
컴파일은 인간이 읽을 수 있는 프로그래밍 언어를 컴퓨터가 이해할 수 있는 코드로 변환하는 과정입니다. Java에서는 javac(Java Compiler)를 사용하여 .java 파일을 바이트코드(.class) 파일로 변환합니다.
.java 파일)javac 파일이름.java) → .class 파일 생성java 클래스이름) → 프로그램 실행public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
javac Hello.java
결과: Hello.class 파일이 생성됨.
java Hello
출력: Hello, Java!
🚀 컴파일 후 실행할 때 .class 확장자는 입력하지 않습니다. java Hello.class ❌ → java Hello ✅
class 개념Java에서는 모든 코드가 반드시 클래스(class) 안에 있어야 합니다. 즉, Java 코드를 작성하려면 반드시 public class 클래스이름 형태로 선언해야 합니다.
public class Animal {
String name;
public Animal(String name) {
this.name = name;
}
public void speak() {
System.out.println(name + "이(가) 소리를 냅니다.");
}
}
클래스를 기반으로 객체를 생성하고, 해당 객체의 메서드를 실행할 수 있습니다.
public class Main {
public static void main(String[] args) {
Animal dog = new Animal("강아지");
dog.speak(); // 출력: 강아지가 소리를 냅니다.
}
}
class 차이점Java와 JavaScript 모두 class 키워드를 사용하지만, 개념적으로 차이가 있습니다.
| 비교 항목 | Java | JavaScript |
|---|---|---|
| 언어 유형 | 클래스 기반 객체지향 | 프로토타입 기반 객체지향 |
| 클래스 필수 여부 | 필수 (모든 코드가 클래스 안에 있어야 함) | 선택 사항 (ES6 이전에는 class 없이도 객체 생성 가능) |
| 실행 방식 | 컴파일 후 실행 (javac) | 인터프리터 방식 (바로 실행 가능) |
Java는 언어 자체가 클래스 기반이지만,
Node.js는 자바스크립트 엔진(V8)을 기반으로 서버 측에서 실행되도록 만든 환경이에요.
즉, JavaScript를 웹 브라우저가 아닌 곳에서도 실행할 수 있도록 만든 것이 Node.js입니다.
✔ 터미널: 명령어를 입력하여 파일 실행 및 관리하는 도구
✔ 컴파일: .java → .class 변환 과정 (javac 사용)
✔ Java의 클래스: 코드가 반드시 클래스 안에 존재해야 함
✔ Java와 JavaScript의 클래스 차이: Java는 클래스 기반, JavaScript는 프로토타입 기반
