본문 바로가기
기술 면접

Java vs Python

by JayAlex07 2024. 1. 29.

Java vs Python

 

Java와 Python의 공통점

 

Java와 Python은 객체 지향 프로그래밍 언어다 (Object Oriented Programming)

  • 절차형 프로그래밍 언어는 과정, 메서드, 함수 위주로 생각하는 프로그래밍으로 객체 지향 프로그래밍 언어의 반대 유형의 언어다.
  • 객체 지향 프로그래밍 언어는 객체의 관점에서 프로그래밍을 하는 것이다.
  • Object, 객체는 각 구성 요소, 즉 대상을 나타내는 것이고, 그 구성 요소의 공통점들을 묶어 표현하는 것이 Class라고 한다.
    • Class의 속성 (Attributes)와 행위 (Method)를 가지고 Object, 객체를 만들어 낼 수 있다.

 

OOP의 4가지 특성

  • 추상화
    • 불필요한 정보는 숨기고 필요한 정보만 표현하여 프로그램을 간단하게 만들 수 있다.
      • 자동차를 운전할 때에, 모든 부품을 알 필요가 없다. (우리는 자동차를 '운전'하는 방법만 알면 된다)
      • 메서드 명이 명확하면, 메서드의 로직을 할 필요 없이, 바로 사용할 수 있다.
  • 캡슐화
    • 속성과 행위, 즉 변수와 함수를 클래스로 묶고, 외부에서 접근을 못 하도록 숨길 수 있다.
    • 클래스 내에서 접근이 가능한 변수 또는 메서드만 외부에서 접근할 수 있다.
      • 알약을 생각할 때에, 안에 뭐가 들어갔는지는 알약 통의 설명란에서 볼 수 있지만, 알약 안에 들어간 내용물의 맛은, 알약을 터뜨리지 않는 이상, 알 수 없다.
  • 상속
    • 정의된 상의 클래스의 속성과 메서드를 하위 클래스에서 받아서 사용할 수 있다.
    • 동물이라는 사의 클래스가 존재하고, 하위 클래스에 고양이 또는 강아지가 있을 수 있다.
      • 동물 (걷는 메서드, 뛰는 메서드) - > 강아지 (걷는 메서드, 뛰는 메서드, 강아지 짖는 메서드)
    • 이렇게 상속을 하게 되면, 코드의 중복을 막고, 코드를 더 간단히 사용할 수 있다.
      • 동일한 속성, 메서드가 있는 클래스들이 있으면 동일한 속성과 메서드를 묶어서 하나의 클래스를 만든다.
      • 해당 클래스를 상위 클래스로 만들어서, 각 클래스에 상속을 하면 된다.
  • 다향성
    • 형태가 같지만 다른 기능을 할 수 있다.
      • 하위 클래스에서 상위 클래스의 속성과 메서드를 상속 받았다.
      • 하지만 하위 클래스에서 상위 클래스의 속성과 메서드를 재정의 할 수 있다. (이것을 오버라이딩 이라고 한다)
      • 동물 (울음 소리 메서드) -> 강아지 (울음 소리 메서드 - 멍멍)
      • 동물 (울음 소리 메서드) -> 고양이 (울음 소리 메서드 - 야옹)

 

광범위한 표준 라이브러리를 가지고 있다

 

가비지 컬렉션 (Garbage Collection)

  • 두 언어 모두 메모리 관리를 자동으로 처리한다.
    • 불필요한 메모리를 주기적으로 삭제하는 것이다.

 

멀티 스레딩 지원

  • 프로세스 내 작업을 여러 개의 스레드로 처리하는 것이다.
    • 프로세스는 메모리 상에서 실행 중인 프로그램을 뜻하는 것이다.
    • 프로세스에서는 크롬을 실행한다.
      • 스레드에서는 크롬 내에서 진행되는 작업을 책임 진다.
        • 유투브를 틀어 노래를 들으면서, 영화를 다운로드 받고, 구글링을 하는 것이 멀티 스레딩

 

대규모 프로젝트 지원

  • 주로 자바는 Spring 프레임워크, 그리고 파이썬은 Django 프레임워크를 통해 대규모 프로젝트를 한다.

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

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