본문 바로가기
카테고리 없음

CS지식 자바스크립트와 파이썬 / 프로그래밍언어의 주요개념

by 소년수 2022. 7. 31.

프로그래밍 언어...도대체 왜이렇게 많을까?? 

 

프로그래밍언어는 엄청나게 많다.

이렇게 많게 된 이유는 1990년~2010년대, 언어춘추시대에 각 회사마다 경쟁률때문에 자기회사만의 언어를 만든이유도 있지만 근본적으로는 언어마다 각 프로그램에 더 호환이 잘맞는 언어다라는 이유도 있다. 

예를 들어 안드로이드용 스마트폰 어플리케이션을 만들고 싶으면 자바(Java)가 필요하고, 아이폰용으로는 스위프(SWIFT)가 필요하다.

두 언어 모두 초보자도 배울 수있지만 편하게 사용하기는 어렵고, 스마트폰 앱을 만들 떄는 신경 써야 할 세부 사항이 많다.


그래서 이번 CS지식에선 자바스크립트와 파이썬에 대해 간단히 적어보려고한다.

두 언어 모두 아마추어 또는 전문 프로그래머 사이에서 널리 사용된다. 초보자 수준에서 배우기 쉽고, 더큰 프로그램으로 확장하기에도 용이하고, 폭넓게 적용 가능하다.

 

자바스크립트는 모든 브라우저에 포함되어 있어 소프트웨어를 별도로 다운로드하지 않아도 된다. 프로그램을 작성해서

웹페이지에 바로 적용가능하며 클라이언트에 바로 보여 줄 수도 있다.언어 자체가 간단하고, 문법도 복잡하지 않아 다른언어에 비해 상대적으로 유연하다. 거의 모든 웹페이지에 자바스크립트 코드를 어느 정도 포함하고 있고, 페이지소스를 통해코드를 확인 할 수 있다.

 

구글 문서나 다른 회사에서 만든 비슷한 프로그램 모두 자바스크립트를 사용한다. 

어떻게 보면 자바스크립트는 트위터,페이스북,인스타그램 등 웹 서비스에서 제공하는

API를 위한 언어기도 하다. 하지만 이런 유연한 자바스크립트에도 단점이 있다.

때때로 의도치않게 다른 동작을 할때도 있다. 코드를 잘못 작성한 이유도 있겠지만 , 브라우저 인터페이스는 우리가 원하는 만큼표준화되어 있지 않아서 프로그램이 서로 다른 브라우저에서 항상 같은 방식으로 동작하지는 않는다.

 

 


Python

 

 

다음은 파이썬이다. 파이썬은 매우 폭넓은 응용 분야에 활용 가능하며 보통 초보 개발자와 프로그래머 입문자가

처음 코드를 접하기에 진입장벽이  매우 낮다는 장점을 가지고 있다.

파이썬에서 배운 지식으로 다른 언어에도 관심이 있거나 배워야 할 필요할때도 적용이 가능해 조금은 더 쉽게 배울 수 있다. 

 

특유의 철학 때문에 문법이 엄격한 편이다. 잘 작동하는지와는 별개로 가독성을 위해 이렇게 쓰기를 권장한다는 스타일 가이드까지 있다. 파이썬 공식 문서에서는 파이썬에 맞는 코딩 스타일을 지키기를 권장하는데, 이것이 바로 PEP8이다.

 

https://peps.python.org/pep-0008/

 

PEP 8 – Style Guide for Python Code | peps.python.org

PEP 8 – Style Guide for Python Code Author: Guido van Rossum , Barry Warsaw , Nick Coghlan Status: Active Type: Process Created: 05-Jul-2001 Post-History: 05-Jul-2001, 01-Aug-2013 Table of Contents This document gives coding conventions for the Python co

peps.python.org

장점

파이썬의 압도적 장점은 높은 생산성. 높은 생산성은 그 무엇과도 비교할 수 없는 파이썬만의 특징이다. 전 세계의 모든 프로그래밍 언어 중에서 파이썬 정도의 낮은 난이도를 가지면서, 범용성을 갖추고, 파이썬 수준의 프로그램 개발 속도를 따라잡을 수 있는 언어가 없다. 파이썬으로 만든 프로그램을 같은 객체 지향 프로그래밍 언어인 자바 C언어로 만드려는 순간 숨이 턱 막힐 정도. 이런 언어들을 사용하려면 설계부터 난감해진다.

단점

기본적으로 가장 아쉬운 점은 속도이다. 한 논문에 따르면 10개의 벤치마킹을 돌려본 결과 파이썬은 C에 비해 71배의 시간, 2.8배의 메모리, 75배의 에너지를 더 소모한다고 한다.

 

 

 

 

 

 

 

 

 

 

 

 

 


프로그래밍 언어의 주요 개념

모든 프로그래밍 언어는 모두 계산을 일련의 단계로 풀어서 상세히 설명하기 위한 표기법이므로, 몇 가지 기본 아이디어를 공유한다.

1. 모든 프로그래밍 언어가 입력 데이터를 읽는다.

2. 산술 연산을 한다.

3. 1,2 의 과정의 계산이 진행됨에 따라 중간 값을 저장하고 가져온다.

4. 계산한 값을 기반으로 어떻게 진행할지 결정한다.

5. 그 과정에서 결과를 표기하고, 계산이 완료되면 결과를 저장 하기 위한 방법을 제공한다.

 

모든 언어에는 구문 규칙이 있다. 문법적으로 무엇이 맞고 무엇이 틀리는지 정의하는 규칙이 있다. 

프로그래밍 언어는 문법 면에서 매우 까다롭다. 대소문자, 오타 한글자, 쉼표 등등 하나라도 안적거나 잘못표기하면 프로그램 자체가 구현이 잘되던 부분까지 싸그리 합쳐서 실행이 되질 않는다. 

 

언어에는 또 의미 체계라는 것도 있는데, 이는 해당 언어로 표현 할 수 있는 모든 것에 대해 명확히 정의된 의미이다.

 이론상으로는 특정 프로그램이 구문상 정확한지, 만약 그렇다면 그 의미가 무엇인지 모호함이 없어야 한다.  프로그래밍 언어는 대개 단어로 정의되고, 자연 언어로 작성된 다른 문서와 마찬가지로 단어의 정의에는 모호성이 있어서 다르게 해석할 수 있는 여지가 있다. 게다가 개발자가 실수를 할 수도 있고, 시간이 지나면서 언어는 점점 변한다.

 

 

대부분의 언어는 세 가지 측면에서 살펴볼 수 있다. 

 

1. 언어 그자체

 

컴퓨터에 산술 연산을 수행하고, 조건을 검사하고, 계산을 반복하라고 지시하는 프로그래밍 문자이다.

 

2. 코드 라이브러리

 

라이브러리는 직접 작성 하지 않아도 되는 사전 제작된 부품으로, 대표적인 예로는 수학 연산, 날짜 계산, 텍스트 검색과 조작을 위한 함수가 있다.

 

3.프로그램 실행 환경 접근

 

예를 들어 브라우저에서 실행되는 자바스크립트의 경우, 사용자에게서 입력을 받고, 사용자가 버튼을 누르거나 폼에 타이핑에 입력하는 것과 같은 이벤트에 반응하며, 브라우저가 다양한 콘텐츠를 표시하거나 다른 웹페이지로 이동하게 만들 수 있다. 

 

 

 

 

 

 

 

댓글