티스토리 뷰

추상화

"몰라도 되는 내용은 숨기고 꼭 알아야 할 내용만 드러내는 것"

문법 뿐 아니라 코드를 작성하는 방식, 코드를 바라보는 관점이 달라진다.


저수준 언어

  • 어셈블리 언어, C언어
  • 사람보다는 컴퓨터의 논리적인 사고방식에 맞추어져 있어 작성은 어렵지만 실행속도가 빠르고 효율적이다.
  • 스마트 워치, TV, 스피커, 전광판, 가전제품 등 작은 칩을 사용하는 경우
  • 이러한 시스템을 "임베디드 시스템" 이라고 부른다.
  • 추가적으로 실시간전송 채팅 어플리케이션, 트위치 등 동영상 스트리밍 서비스, 검색엔진, github, 머신 러닝 능에 사용한다.

장점

  • 컴퓨터 실행 속도가 매우 빠르다.
  • 성능이 낮은 컴퓨터에도 사용할 수 있다.

단점

  • 코드 작성이 어렵고 힘들고 오래걸린다.

 

체계적인 언어

  • static typing 정적 언어이면서 객체 지향의 개념이 적용된 언어
  • Java, C++
  • 협업하기 좋으며 큰 규모의 프로젝트에 적합
  • 구글, 에어비앤비, 우버, 이베이, 핀터레스트, 스포티파이, 트립어드바이저, 아마존, 인텔,...

장점

  • 협업이 중요한 규모가 큰 프로젝트에 적합하다.
  • 객체지향언어로 유지보수가 편리하다.

단점

  • 체계적 설계에 시간이 오래 걸린다.

 

쉬운 언어

  • dynamic typing 동적 언어이면서 객체 지향의 개념이 적용된 언어
  • Python, Ruby

장점

  • 배우기 쉽고 코드를 읽고 수정하기 간편하다.

단점

  • 컴퓨터 실행 속도가 느리다.
  • 큰 규모의 프로젝트, 많은 사람의 협업에 부적합하다.

일반 언어 및 목적 언어

일반적인 용도로 만들어진 프로그래밍 언어 General-purpose programming language

  • C, Java, Python

특별한 목적을 위한 프로그래밍 언어 (Domain-specific programming language)

  • R : 통계 소프트웨어 개발과 데이터 분석 및 시각화
  • SQL : 데이터베이스 관리
  • HTML : 웹페이지의 구조와 레이아웃
  • CSS : 웹페이지의 시각 표현

'Programming basic' 카테고리의 다른 글

쿠키, 세션 그리고 디장고 인증(Authentication)  (0) 2021.12.14
docstring 작성법  (0) 2021.11.29
HTTP 상태 코드  (0) 2021.10.25
변수 및 식별자 표기법 3가지  (0) 2021.10.20
자바와 파이썬의 차이점  (0) 2021.10.20
댓글