시리즈:중급 프로그래밍 시리즈

문서의 내용이 너무 쉬워서 오늘부터 프로그래밍 할 수 있을 것 같습니다.

이 문서에는 독자적으로 연구한 내용이 들어갑니다. 다른 사람의 의견을 존중하면서 무례하지 않도록 작성해 주시고, 의견 충돌 시 토론 문서에서 토론해 주세요.
리브레 프로그래밍 시리즈
초급
프로그래밍
중급
프로그래밍
고급
프로그래밍

1 공통 용어[편집]

어떤 프로그래밍 언어를 사용하든지 반드시 알아야 할 용어들을 정리하였다.

1.1 키워드[편집]

미리 정의된 특별한 의미를 가지고 있는 단어이다. 정의된 의미대로 사용하지 않는다면 이 단어를 "대소문자를 지켜 똑같은 철자로" 사용할 수 없다.(예외적으로, 주석 안에서는 허용한다)

1.2 주석[편집]

Commentary, 코드를 간략하게 (또는 자세하게) 설명 하는 것을 말한다.

복잡한 컴퓨터 언어를 사람이 보고 한눈에 파악할 수 없기 때문에 부분마다 주석을 달아 이 부분은 어떤 동작을 하는 부분입니다. 라고 달아놓는다.

컴파일러가 해석하지 않으며 고급 프로그래머와 저급 프로그래머는 주석을 얼마나 잘 사용했는지에 따라 다르다.

다른사람이 작성한 코드를 인계받았는데 주석이 하나도 없다면 아아 망했어요..

int main() { //코드의 시작
    printf("Hello, World!"); //출력 부분
    return 0;
}

기본적으로 //로 시작하거나 /* */ 로 감싸주어 주석을 나타낸다.

1.3 빌드[편집]

프로그램의 소스코드를 실행 가능한 파일 형태로 변환하는 것을 말한다. 참고로 이는 컴파일이 필요한 언어에서 사용하는 용어로, 인터프리터 언어는 애초에 즉시 실행이 되기 때문에 "빌드"라는 개념이 존재하지 않는다.

1.4 통합 개발 환경[편집]

Integrated Development Environment, 보통 IDE로 줄여 사용한다. 기본적으로 컴파일러, 디버거, 텍스트 편집기를 포함한다. Visual StudioEclipse처럼 기본적인 기능 외에 추가적인 기능을 자체적으로 또는 플러그인을 통해 제공하기도 한다.

1.5 라이브러리[편집]

개발 업계에서 흔히 하는 말 중에 하나가 '당신이 생각한 것은 다른 누군가가 이미 개발해 놓았다.' 이다. (특히 한국과 같은 개발환경에서는 새로운 것을 완전히 창조하기보다 기존의 것을 엮어서 논리적인 흐름만 제어하는 정도의 작업이 상당히 많다.) 예를 들어 단순히 Max값을 반환해주는 코드에서 시작해서 3D제어 함수까지 많은 것들이 미리 만들어져 있고 개발자는 그것을 가져다 쓰면 된다.

이렇게 '남들이 미리 만들어 놓은 코드'를 라이브러리라고 한다.

단 이것을 소스코드의 형태로 배포하는 대인배는 잘 없고 (코드프로젝트 같은 사이트에 가보면 그런 대인배들이 가끔 있긴 한다) 보통 헤더파일과 lib/dll파일의 형태로 미리 컴파일하여 배포한다. 일반적으로 라이브러리라 함은 이 두개의 파일을 말한다.

  • 정적 라이브러리(lib)

컴파일 타임에 라이브러리의 코드가 실행파일에 포함되는 방식을 말한다. 정적라이브러리가 좋은 점은 배포시에 dll같은 것을 따로 추가할 필요 없이 그냥 실행파일만으로 작동할 수 있게 한다는 것이다.

  • 동적 라이브러리(dll/so)

런타임에 라이브러리의 모듈을 호출하는 방식이다. 따라서 공용라이브러리를 사용하지 않는다면 실행파일과 라이브러리파일은 동시에 배포되어여야 한다. 프로그램 실행시에 해당 라이브러리도 같이 로드되어(혹은 필요시 로드되어) 해당 모듈을 실행할 준비를 한다.

동적 라이브러리가 좋은 점은 해당 라이브러리만 바꾸면 프로그램 전체를 바꾸지 않아도 된다는 것이다. 패치등을 제공할때 전체 프로그램을 재 컴파일할 필요 없이 dll만 따로 컴파일하여 제공할 수 있다.

1.6 프레임워크[편집]

프로그램을 설계할 때 복잡하고 반복되는 함수나 정의들을 미리 선언 해둔 집합체

사람으로 따지면 골격이라고 생각하면 편하다.

1.6.1 웹 프레임워크[편집]

1.6.1.1 자바스크립트[편집]
  1. AngularJS (클라이언트)
  2. NodeJS (서버)
1.6.1.2 PHP[편집]
  1. CodeIgniter
  2. Yii
  3. Laravel
1.6.1.3 Python[편집]
  1. Bottle
  2. Django
  3. Flask
  4. Pyramid