1편. Python 설치와 구조 이해 – Java 개발자를 위한 입문 가이드
📚 목차
1. Python 설치 방법과 VSCode 개발환경 설정
2. 인터프리터 기반 실행 구조 이해하기
3. Java와 Python 실행 방식 및 문법 차이
4. Hello World 예제로 비교하는 두 언어
✔ 마무리 - Java 개발자에게 Python은 어떤 느낌일까?
Python은 간결한 문법과 방대한 라이브러리 생태계를 바탕으로 웹 개발, 데이터 분석, 인공지능 등 다양한 분야에서 폭넓게 사용되고 있습니다.
Java에 익숙한 개발자에게는 Python의 자유로운 문법과 실행 방식이 다소 생소할 수 있지만, 기존 지식을 잘 활용하면 훨씬 빠르게 습득할 수 있습니다.
이 시리즈는 Java 개발자 관점에서 Python을 구조적으로 비교하며, 실습 위주로 학습할 수 있도록 구성되어 있습니다.
이번 1편에서는 Python의 설치 방법부터 언어 실행 구조, 그리고 Java와의 근본적인 차이를 간단한 예제와 함께 정리합니다.
1. Python 설치 방법과 VS Code 개발환경 설정
✔️ Python 설치
Python은 별도의 컴파일러나 가상 머신 없이도 작동하는 인터프리터 언어입니다. Java 개발 경험이 있다면, Python의 설치 과정은 매우 간단하게 느껴질 것입니다.
🔸공식 사이트: python.org/downloads
🔸Windows/macOS: 설치 프로그램 다운로드 후 “Add Python to PATH” 체크 → Install
🔸Ubuntu: 터미널에서 아래 명령어 실행
sudo apt update
sudo apt install python3 python3-pip
#설치 후 버전 확인
python3 --version
pip3 --version

설치 후 터미널에서 python --version 혹은 python3 --version으로 정상 설치 여부를 확인합니다.
✔️ VS Code 개발환경 구성
Java에서는 Eclipse, IntelliJ IDEA 등을 많이 사용하지만, Python은 가볍고 직관적인 에디터가 선호됩니다. 그중에서도 가장 인기 있는 개발 도구는 VS Code입니다.
Visual Studio Code는 Microsoft에서 만든 오픈소스 코드 편집기로, Python 개발을 위한 다양한 확장을 제공합니다.
🔸설치 및 설정 순서
1. VS Code 공식 사이트에서 설치
2. 실행 후 좌측 Extensions 아이콘 클릭 → Python 검색 후 설치
3. .py 파일 생성 후 Ctrl + F5 또는 터미널에서 실행

2. 인터프리터 기반 실행 구조 이해하기
Java는 .java 파일을 .class로 컴파일하고 JVM에서 실행합니다. 반면 Python은 인터프리터가 직접 소스코드를 읽고 즉시 실행합니다.
✔️ Python 인터프리터란?
Python 인터프리터는 .py 파일을 읽어 들여 문법 분석 → 바이트코드 변환 → 실행의 흐름으로 작동합니다.
일반적으로 .pyc라는 캐시 형태의 바이트코드가 내부적으로 생성되며, 이 파일은 플랫폼 독립적입니다
✔️ Python 코드 실행 방식
Python 코드는 크게 두 가지 방식으로 실행될 수 있습니다.
| 실행 방식 | 특징 | 사용 예 |
| 스크립트 실행 | .py 파일을 한 번에 실행 | 일반적인 프로젝트 개발 |
| 대화형(Interactive Shell) | 한 줄씩 실행, 즉시 결과 확인 | 간단한 테스트, 학습 |
🔷 1. 대화형 실행 방식(Interactive Shell):
명령 프롬프트(CMD), PowerShell, 터미널에서 python 또는 python3 명령어를 입력하면 Python 인터프리터가 실행되고 >>> 프롬프트가 나타납니다.
이 상태에서 한 줄씩 Python 코드를 입력하고 Enter를 누르면 즉시 결과가 출력됩니다. 간단한 테스트나 학습에 유용합니다.
🔸예시
>>> print("Hello, Python!")
Hello, Python!
>>> 1 + 2
3
>>> exit() # 대화형 모드 종료
Python 시작 학습자나 데이터 분석 환경(Jupyter)에서 많이 사용됩니다.
🔷 2. 스크립트 실행 방식:
가장 일반적인 Python 코드 실행 방식입니다. .py 확장자를 가진 파일에 Python 코드를 작성합니다.
명령 프롬프트/터미널에서 python your_script.py (Windows: py your_script.py, macOS/Ubuntu: python3 your_script.py) 명령어를 사용하여 파일을 실행합니다.
🔸예시: my_script.py 파일 생성 후 실행
# my_script.py
def greet(name):
return f"Hello, {name}!"
message = greet("World")
print(message)
🔸실행:
python my_script.py
Hello, World!
스크립트 실행은 VS Code, 터미널, 혹은 Python이 내장된 다른 앱에서도 사용 가능합니다.
3. Java와 Python의 실행 방식 및 문법 차이
Java와 Python은 각각 컴파일 언어 vs 인터프리터 언어, 정적 타입 vs 동적 타입, 중괄호 vs 들여쓰기 등 구조적으로 큰 차이를 가집니다.
✔️ 실행 구조 (컴파일 vs 인터프리트)
| 특징 | Java | Python |
| 개발 | .java 소스 코드 작성 | .py 소스 코드 작성 |
| 컴파일 | javac 컴파일러가 .java를 .class(바이트 코드)로 컴파일 | 인터프리터가 실행 시 .py를 바이트 코드(.pyc)로 변환 (명시적 컴파일 없음) |
| 실행 | JVM(Java Virtual Machine)이 .class 파일을 읽어 실행 | Python 인터프리터가 바이트 코드 또는 소스 코드를 직접 실행 |
| 특징 | 명시적인 컴파일 단계, 엄격한 타입 체크 | 동적인 실행, 런타임에 타입 결정 |

Java는 .java 파일을 javac 컴파일러가 .class 파일(바이트 코드)로 변환하고, 이 바이트 코드가 JVM 위에서 실행됩니다.
반면 Python은 .py 파일을 Python 인터프리터가 직접 읽어 실행하며, 이 과정에서 내부적으로 바이트 코드를 생성하기도 합니다.
즉, Java는 컴파일 후 실행, Python은 즉시 인터프리팅하여 실행하는 방식에 가깝습니다.
✔️ 문법 유연성
| 특징 | Java | Python |
| 타입 시스템 | 정적 타입(Statically Typed): 변수 선언 시 타입을 명시해야 함 | 동적 타입(Dynamically Typed): 변수 선언 시 타입 명시 불필요, 런타임에 타입 결정 |
| 세미콜론 | 각 문장의 끝에 ;를 사용 (필수) | 문장 끝에 ;를 사용하지 않음 (선택 가능, 일반적으로 사용하지 않음) |
| 코드 블록 구분 | { }(중괄호)를 사용하여 함수, 클래스, 조건문 등의 코드 블록 구분 | **들여쓰기(Indentation)**를 사용하여 코드 블록 구분 (필수, 들여쓰기 오류 시 실행 불가) |
| 메인 메서드 | public static void main(String[] args) 진입점 필요 | 특정 진입점 없이 파일 상단부터 코드 실행, if __name__ == "__main__": 관용구 사용 |
🔸예시 (타입 시스템):
Java: int x = 10; String s = "hello"; (변수 선언 시 타입 명시)
Python: x = 10; s = "hello" (변수 선언 시 타입 명시 불필요)
🔸예시 (코드 블럭)
Java:
if (x > 0) {
System.out.println("Positive");
}
Python:
if x > 0:
print("Positive") # 들여쓰기 4칸 (공백 또는 탭)
Python에서 들여 쓰기는 단순한 코드 스타일을 넘어선 문법적인 요소이므로 매우 중요합니다.
✔️ 플랫폼 종속성
| 특징 | Java | Python |
| 슬로건 | "Write Once, Run Anywhere (WORA)" | "Write Once, Run Anywhere" (사실상 동일한 목표) |
| 원리 | JVM이 특정 운영체제에 독립적인 **바이트 코드(.class)**를 실행 | Python 인터프리터가 다양한 운영체제에 맞춰 개발되어 .py 소스 코드를 실행 |
| 실제 사용 | JVM이 설치된 모든 플랫폼에서 동일하게 동작 | Python 인터프리터가 설치된 모든 플랫폼에서 동일하게 동작 |
| 차이점 | Java는 컴파일된 바이트 코드(.class)가 실행됨 | Python 소스 코드(.py)는 바이트 코드(.pyc)로 컴파일된 후, 인터프리터에 의해 실행된다 |
두 언어 모두 이론적으로는 "한번 작성하면 어디서든 실행된다"는 목표를 가지고 있습니다.
Java는 컴파일된 .class 파일이 JVM이라는 추상화 계층 위에서 동작하여 플랫폼 독립성을 확보합니다.
Python은 각 운영체제에 맞는 Python 인터프리터가 존재하여, 동일한 .py 소스 코드를 해당 인터프리터가 해석하여 실행하는 방식으로 플랫폼 독립성을 확보합니다.
4. Hello World 예제로 비교하는 두 언어
가장 기본적인 "Hello World" 프로그램을 통해 Java와 Python의 문법적 차이를 직접 비교해 보겠습니다.
✔️ Java "Hello World"
// HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
▪️public class HelloWorld: 모든 코드가 HelloWorld라는 클래스 내에 있어야 합니다. Java는 엄격한 객체 지향 언어이기 때문입니다.
▪️public static void main(String[] args): 프로그램의 시작점(진입점)을 나타내는 메인 메서드입니다.
▪️System.out.println("Hello, World!");: 콘솔에 문자열을 출력하는 표준 출력 메서드입니다. 각 문장의 끝에는 세미콜론(;)이 필수입니다.
✔️Python "Hello World"
# hello_world.py
print("Hello, World!")
▪️print("Hello, World!"): 단 한 줄로 끝납니다!
▪️클래스 정의 불필요: Python은 스크립트 언어의 특성을 가지고 있어, 클래스나 메인 메서드 없이도 최상위 레벨에서 코드를 바로 실행할 수 있습니다.
▪️세미콜론 없음: 문장의 끝에 세미콜론이 필요 없습니다.
▪️진입점 없음: 별도의 main 함수 정의 없이 파일의 최상단부터 순차적으로 코드가 실행됩니다.
🔸main 함수가 필요한 경우는 다음과 같이 작성합니다
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
이 관용구는 직접 실행 vs 모듈로 import 시를 구분할 때 유용합니다.
✔ 마무리 - Java 개발자에게 Python은 어떤 느낌일까?
Java에 익숙한 개발자 입장에서 Python은 마치 형식적 제약을 풀어버린 자유로운 언어처럼 느껴집니다.
설치도 간단하고, main() 함수 없이도 바로 실행되며, 변수에 타입도 안 붙입니다.
하지만 그 자유로움 뒤에는 명확한 설계 철학과 실행 구조가 존재합니다. Python은 인터프리터 기반 언어로, 코드를 즉시 해석하고 실행하는 구조 덕분에 빠른 개발 사이클을 가능하게 합니다.
또한 들여쓰기를 문법으로 활용함으로써 코드 가독성과 유지 보수성을 자연스럽게 확보하고 있습니다.
Java와 비교했을 때 Python의 가장 큰 특징은 다음과 같습니다:
📌요약
🔸 설치와 실행이 간단: Python은 별도의 빌드 없이 바로 실행 가능
🔸 인터프리터 구조: Python은 소스 코드를 즉시 해석하여 실행 (스크립트 실행 + 대화형 실행 모두 지원)
🔸 문법이 간결: 클래스 없이도 동작하며, 세미콜론 없이도 실행
🔸 코드 블록은 들여쓰기로 구분: 문법적으로 중괄호 대신 들여쓰기를 사용
🔸 정적 vs 동적 실행의 차이: Java는 컴파일 후 JVM에서 실행, Python은 인터프리터가 직접 실행
Python은 초반에 낯설고 느슨한 언어처럼 보일 수 있지만, 실제로는 엄격한 논리와 유연한 생산성이 공존하는 언어입니다.
특히 빠른 실험, 데이터 처리, 자동화 스크립트, AI 개발 등에서는 Java보다 훨씬 민첩하게 대응할 수 있습니다.
※ 게시된 글 및 이미지 중 일부는 AI 도구의 도움을 받아 생성되거나 다듬어졌습니다.
'3.SW개발 > Python' 카테고리의 다른 글
| [Java관점]3편. Python 조건문과 반복문 – Java와 다른 제어 구조 한눈에 보기 (1) | 2025.11.11 |
|---|---|
| [Java관점]2편. Python 변수와 자료형 – Java보다 유연한 선언 방식 비교 (0) | 2025.11.10 |
| [Python요약]7. Python 자료형 정리 : List, Tuple, Dictionary, Set, Sequence, Range (3) | 2025.11.05 |
| [Python요약]6. Python 병렬 처리 : GIL, threading, asyncio, multiprocessing (0) | 2025.11.05 |
| [Python요약]5. Python 예외(Exception) 처리 : try-except-finally, with (0) | 2025.11.05 |