변수의 데이터 타입을 어떻게 처리하느냐에 따른 구분
프로그래밍언어는 변수의 데이터 타입을 어떻게 처리하느냐에 따라 간편함과 편리함을 추구하는 동적 타이핑 언어와 안정성과 정교함을 추구하는 정적 타이핑 언어로 나뉜다.
동적 타이핑 언어에서 변수 타입은 프로그램이 실행되는 시점(runtime)에 결정된다. 코드를 작성할 때 변수 타입을 명시적으로 선언할 필요가 없으며, 컴퓨터적 구조를 생략하기에 코드의 '내용'이 눈에 잘 들어오고 사람이 이해하기 쉬워서 학습이 쉬운 편에 속한다. 자바스크립트, 파이썬, 루비 등이 동적 타이핑 언어에 속하며, 컴퓨터적 구조가 생략된 특징 때문에 실행 속도에 민감하거나 성능이 좋지 않은 환경에서는 잘 사용하지 않는다.
또, 동적 타이핑 언어는 유연하고 빠르게 개발할 수 있다는 장점이 있지만, 타입 오류가 실행 시점까지 발견되지 않을 수 있기에 디버깅이 어려울 수 있다.
반면, 정적 타이핑 언어는 변수 타입이 코드를 작성하는 시점(compile time)에 결정된다. 개발자는 변수 선언시 그 변수의 타입을 명시해야 하며, 한번 결정된 타입은 프로그램 실행 도중에 변경될 수 없다. 이처럼 동적 타이핑 언어와 다르게 컴퓨터적 구조를 코드에 명시하기 때문에 코드의 '구조'가 눈에 잘 들어오지만, 코드가 복잡해져서 학습하기 쉽지 않다. 다만, 컴퓨터가 코드를 이해하기 쉬워지기에 실행 속도가 중요한 임베디드나 실시간 투자, 인공지능 등에서 사용할 수 있다. 이런 정적 타이핑 언어로는 C, C++, 자바, 타입스크립트를 예로 들 수 있다.
그리고 정적 타이핑 언어는 타입 관련 오류를 컴파일 시점에 발견할 수 있어서 안정성이 높고, 대형 프로젝트 관리에 유리하다. 하지만 유연성이 떨어지고 개발 속도가 동적 타이핑 언어에 비해 느릴 수 있다.
추상화
추상화란 몰라도 되는 내용은 숨기고 꼭 알아야 할 내용만 드러내는 것을 말한다. 프로그래밍을 하면서 코드가 복잡하다면 개발자가 이해하기 어려워지고, 코드가 한눈에 들어오지도 않는다. 이때 이해하기 어려운 부분들을 모두 가리고, 꼭 필요한 부분만 드러낸다면 이해하기 편해진다. 이렇게 필요없는 부분을 가리고 핵심부분만 드러내는 것이 추상화인 것이다.
또, 코드가 간단해져서 사람이 이해하기 쉬운 언어를 고수준 언어, 코드가 복잡해서 사람이 이해하기 어렵지만 컴퓨터는 이해하기 쉬운 언어를 저수준 언어라고 한다.
고수준 언어로 갈수록 추상화 수준이 높아서 개발자는 편해지지만, 컴퓨터에게 너무 많은 부분을 맡겨버린다는 단점이 있어서 컴퓨터가 코드를 이해하기까지 오래걸려서 일반적으로 고성능을 요구하고 실행 속도가 느려진다.
반면, 저수준 언어로 갈수록 추상화 수준이 낮기 때문에 개발은 힘들어지지만, 컴퓨터는 정해진 코드대로만 움직이면 되기에 실행 속도가 빨라져서 고성능을 요구하지도 않는다. 그래서 가전제품, 전광판 등에 들어가는 임베디드 시스템에서 저수준 언어를 사용하는 것이다.

'컴퓨터 사이언스' 카테고리의 다른 글
렌더링 과정에서의 Reflow와 Repaint (2) | 2025.01.30 |
---|---|
CRP 프로세스 (0) | 2025.01.25 |
객체 지향 프로그래밍 (0) | 2024.06.07 |
애플리케이션 (0) | 2024.06.06 |
컴파일러 언어와 인터프리터 언어 / 운영체제 (2) | 2024.06.04 |