Java 개발자로 몇 년 일하다가 Python 처음 봤을 때, 솔직히 당황했어요.
분명 코드인데 왜 이렇게 낯설지? 싶었거든요. 문법 자체는 단순한데 Java랑 발상이 달라서 계속 헷갈리는 부분들이 있었어요.
저처럼 Java/C# 배경으로 Python 입문하는 분들한테 도움이 됐으면 해서 정리해봤어요.
1. 중괄호가 없다 — 들여쓰기가 문법이에요
Java에서는 이렇게 쓰죠:
if (score >= 90) {
System.out.println("A학점");
} else {
System.out.println("기타");
}
Python은 이래요:
if score >= 90:
print("A학점")
else:
print("기타")
중괄호 {} 대신 들여쓰기로 블록을 구분해요. 처음엔 불안한데, 익숙해지면 오히려 깔끔해요.
⚠️ 들여쓰기 칸 수가 안 맞으면 에러 나요. 탭이랑 스페이스 섞어 쓰는 것도 에러예요. VS Code에서 Python 쓸 때는 스페이스 4칸으로 통일하는 게 국룰이에요.
2. 타입 선언이 없다
Java는 타입을 명시하죠:
String name = "잠탱이";
int age = 30;
List<String> list = new ArrayList<>();
Python은 그냥 넣으면 돼요:
name = "잠탱이"
age = 30
list = []
타입 추론이 자동이에요. 편하긴 한데 처음엔 "이게 맞나?" 싶기도 해요.
타입 명시하고 싶으면 타입 힌트 쓸 수 있어요 (강제는 아니에요):
name: str = "잠탱이"
age: int = 30
AI 개발할 때는 타입 힌트 쓰는 게 코드 읽기 편해서 습관 들이는 걸 추천해요.
3. == 비교 vs is 비교
Java에서 객체 비교할 때 == 는 주소 비교, .equals() 는 값 비교였죠.
Python은 좀 달라요:
a = [1, 2, 3]
b = [1, 2, 3]
a == b # True → 값 비교
a is b # False → 다른 객체인지 비교
Python에서 값 비교는 ==, 동일 객체인지는 is 예요. 대부분은 == 만 쓰면 돼요.
None비교할 때는== None말고is None쓰는 게 파이썬 스타일이에요.
if result is None:
print("결과 없음")
4. 세미콜론이 없다
Java는 줄 끝에 ; 붙이죠. Python은 없어도 돼요.
name = "잠탱이" # 세미콜론 없어도 됨
age = 30
붙여도 에러는 안 나는데, Python 스타일이 아니에요. 그냥 안 쓰는 습관 들이세요.
5. 리스트 컴프리헨션 — 처음 보면 당황해요
Java에서 리스트 만들 때:
List<Integer> result = new ArrayList<>();
for (int i = 0; i < 10; i++) {
if (i % 2 == 0) {
result.add(i * 2);
}
}
Python은 한 줄로:
result = [i * 2 for i in range(10) if i % 2 == 0]
처음엔 읽기 어려운데, 익숙해지면 진짜 편해요. AI 개발할 때 데이터 가공할 일이 많아서 꼭 익혀두는 게 좋아요.
6. self — Java의 this 랑 비슷한데 명시해야 해요
Java에서 this 는 생략 가능하죠. Python은 self 를 항상 명시해야 해요:
class ChatBot:
def __init__(self, name):
self.name = name # self 필수
def greet(self): # self 필수
print(f"안녕하세요, {self.name}입니다")
깜빡하고 self 빼면 에러 나요. 처음엔 귀찮은데 금방 익숙해져요.
7. 예외처리 — try/catch 가 try/except 로
Java:
try {
// 코드
} catch (Exception e) {
System.out.println(e.getMessage());
}
Python:
try:
# 코드
except Exception as e:
print(str(e))
catch 대신 except, 괄호 없이 as 로 받아요. 구조는 거의 같아서 금방 적응돼요.
정리
| Java/C# | Python | 비고 |
|---|---|---|
{} 블록 |
들여쓰기 | 스페이스 4칸 통일 |
| 타입 선언 필수 | 타입 추론 | 타입 힌트 선택사항 |
.equals() |
== |
None 비교는 is |
; 필수 |
; 없음 |
붙여도 에러는 아님 |
this 생략 가능 |
self 필수 |
클래스 메서드마다 |
catch |
except |
구조는 동일 |
Java/C# 개발자라면 문법보다 발상의 전환이 더 중요해요. Python은 간결함을 추구하는 언어라서, Java처럼 장황하게 쓰면 오히려 이상해 보여요.
다음 글은 Python 가상환경 venv — Maven이랑 비교해서 이해하기예요!
'Python 입문' 카테고리의 다른 글
| Python 문법 핵심만 — C# 개발자가 2시간만에 파악한 것들 (3) | 2026.04.20 |
|---|---|
| Python 가상환경 venv란? — Java Maven 쓰던 개발자가 이해한 방식 (1) | 2026.04.09 |