본문 바로가기
기술 면접

Java vs Python

by JayAlex07 2024. 1. 31.

Java vs Python

 

Java와 Python의 차이점

두 언어 모두 사용해보고, 취준을 하며 느낀 점

  • 파이썬은 가독성이 자바보다 훨씬 뛰어나고, 코드도 작성하기 매우 쉽다
    • 기본적으로 파이썬은 변수 타입을 따로 지정하지 않아도 된다 (코딩 테스트를 할 때에 변수명만 고민하면 된다)
  • 파이썬은 AI, 데이터 쪽으로 더 많이 활용이 되는 것 같다
    • 실제로 파이썬에서 AI와 데이터 쪽으로 라이브러리가 잘 형성되어 있다 (TensorFlow, Pytorch, NumPy, Pandas 등)
    • 이는 파이썬이 자바보다 학습을 더 빠르게 할 수 있다는 영향도 있다

 

Compile 언어 vs Interpreted 언어

기본적으로 컴퓨터는 0과 1만 이해할 수 있다.
즉 개발 언어를 사용해도, 그 개발 언어에서는 0과 1로 만들어주는 기능이 있는 것이다.

  • Python은 인터프리터 또는 스트립트 언어다
    • 코드를 한 줄씩 읽으면서, 기계어로 바꿔주는 것이다
    • 한 줄씩 명령을 내리다보니, 명령 자체의 속도는 컴파일 언어보다 느리다
    • 하지만, 실행될 때 바로 해석이 되어서, 코드를 변경할 때에 결과가 계속 바뀐다
  • Java는 컴파일 언어다
    • 코드를 한번에 번역하고, 한 번에 실행하는 프로그래밍 언어다 (즉 작성한 코드를 한번에 기계어로 변환 후 실행하는 것이다)
    • 실행 속도는 빠르지만, 대규모 프로젝트를 했을 때에 컴파일 과정에서 시간이 오래 걸린다
    • 모든 코드를 한번에 컴파일 하기 때문에, 코드를 수정한다 해도, 다시 컴파일을 하지 않으면 변경 사항이 적용이 안 된다

 

정적 타입 vs 동적 타입

여기서 타입은 int, str, float, boolean 같은 변수의 종류를 말한다

  • Java는 정적 타입 언어다
    • 정적 타입은 변수명 앞에 변수의 타입을 직접 지정해주는 것이다
    • 컴파일을 할 때에, 변수 타입과 값의 형태가 맞지 않을 때에 컴파일 에러가 뜬다
  • Python은 동적 타입 언어다
    • 변수의 타입은 런타임 때에 동적으로 결정이 된다
    • 즉 변수의 타입을 지정해 줄 필요가 없다

 

운영체제

  • 자바는 JVM (Java Virtual Machine)을 통해 각 운영체제에 맡게 작동을 한다
    • 컴파일을 통해 만들어진 ByteCode를 운영체제에 맞게 설정해주는 소프트웨어다

'기술 면접' 카테고리의 다른 글

스터디 질문 20240214  (0) 2024.02.14
한 길만 걷자 (제로베이스 백엔드취업 스쿨 14기 수강 후기)  (0) 2024.02.04
Java vs Python  (0) 2024.01.29