언어별 특징 정리

  • 제너릭 프로그래밍
    • C++ : template로 구현
    • 파이썬 : 동적 타이핑 언어라 제너릭 필요 없다 (하지만 이것이 코드 가독성을 낮추기도 한다)
  • 배열 반복
    • C++, 자바, 파이썬 모두 for-each loop 지원해준다
  • 구조체
    • C++ : struct
    • 파이썬 : namedtuple (from collections import namedtuple) 
      • 3.7 이상부터는 dataclass 지원 (from dataclass import dataclass)
from dataclass import dataclass

@dataclass
class Product:
	weight: int=None
    price: float=None
    
apple = Product()
apple.weight = 10
apple.price = 100.0

 

  • 클래스
    • C++ : 선언부 / 구현부 분리 가능하다 (헤더파일과 소스파일로)
    • 파이썬 : 클래스 존재
from dataclass import dataclass

@dataclass
class Rectangle:
	width: int
    height: int
    
    def area(self):
    	return self.width*self.height
        
rec = Rectangle(3, 4)
print(rec.are())

 

 

 

 

어떠한 언어를 선택해야 하는가?

  • 면접관이 쉽게 이해할 수 있는가? (화이트보드 코딩 테스트에서 특히 더 중요하다!)
  • 코딩 플랫폼에서 지원하는가? (필수 확인 조건)
  • 유연한 언어인가? 
    • 대규모 프로젝트 진행 시 가독성을 위해 자료형을 엄격히 선언해주는 게 좋다.
    • 하지만 빠른 시간 내 문제풀이를 진행해야 하는 코딩 테스트에서는 유연한 언어가 좀 더 편할 수 있다.
  • 외부 라이브러리를 사용할 수 없는 코딩테스트! 그렇다면 언어 레벨에서 많은 기능을 지원하는가?
    • C++는 STL이 표준 라이브러리라서 다양한 자료구조, 알고리즘 사용할 수 있다
    • 반면, C는 모든 자료구조 구현해야 하므로 코딩 테스트 언어로는 부적절
    • 파이썬도 언어 레벨에서 다양한 기능 제공! (이 때문에 일부 기업은 파이썬을 코딩 테스트 언어로 사용하는 것을 금지...)

+ Recent posts