[CS]정적언어/동적언어/정적 프로그래밍/동적 프로그래밍

우니·2023년 3월 18일
0

서론

정적언어, 동적언어, 정적 프로그래밍, 동적 프로그래밍....자칫 헷가릴 수 있는 개념들을 정리해보고자 한다.

Type(타입)

타입은 자료형을 뜻한다. 우리가 흔히 아는 int, short, float, bool 등이 있다.

정적언어

정적언어는 바로 그 Type을 컴파일 시에 결정한다. 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 한다. 컴파일 시에 자료형에 맞지 않은 값이 들어가 있으면 컴파일 에러가 발생하게 된다.

장점 : 컴파일 시에 타입에 대한 정보를 결정하기 때문에 속도가 빠르다. 타입 에러로 인한 문제점을 초기에 발견할 수 있어서 타입의 안정성이 높다.

단점 : 코드 작성시 변수형을 결정해줘야하는 번거로움이 있다.

정적언어 종류 : C, C++, C#, Java, Scala 등

동적언어

동적언어는 Type을 컴파일시 정하는것이 아니고 런타임시(실행 도중) 결정한다. 타입 없이 변수만 선언하여 값을 지정할 수 있다.

장점 : 런타임까지 타입에 대한 결정을 끌고 갈 수 있기에 유연성이 크다.

단점 : 인터프리터 언어는 배우기 쉬우나, 실행 도중 변수에 예상치 못한 타입이 들어와 Type Error를 내뱉을 수 있다. 만약 코드가 길고 복잡할 경우 타입 에러를 찾기가 어려워질 수 있다.

동적언어 종류 : JavaScript, Ruby, Python 등

정적 프로그래밍

정적 프로그래밍은 웹서버에 미리 보여줄 HTML 페이지, CSS, 이미지, 자바스크립트 파일 등을 저장해놓고 브라우저에서 요청할 경우 그대로 전달하는 방식이다. 따라서 사용자는 페이지가 변경되지 않는 한 고정된 웹 페이지를 보게 된다.

동적 프로그래밍

정적 프로그래밍의 단점을 극복한 방식으로, 서버에 있는 데이터들을 스크립트에 의해 가공처리한 후 생성되어 전달되는 방식이다. 서버는 사용자의 요청을 해석하며 데이터를 가공한 후 생성되는 웹페이지를 내보낸다. 정적 웹프로그래밍과 달리 사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게 된다.

정적 웹 프로그래밍에서는 관리자가 서버에 정보를 수시로 업데이트해야 하던 과정을, 동적 웹프로그래밍에서는 엡 애플리케이션 서버(WAS)에서 수행한다. 이런 기술에는 JSP, ASP, PHP 등이 있다.

0개의 댓글