본 수업은 웹 애플리케이션 만들기 수업으로 대체 되었습니다. 개편된 수업에서 뵙겠습니다. 본 수업은 2015년 6월 이후에 폐지됩니다. http://opentutorials.org/course/1688
개발이란?
개발(development)이란 프로그램을 만드는 행위를 의미하고 프로그래밍(programming)과 같은 의미로 사용된다. 프로그래밍은 컴퓨터와 인간이 모두 이해할 수 있는 언어(language)를 통해서 이루어지는데, 인간의 언어처럼 프로그래밍의 언어도 상호 간에 이해할 수 있는 약속인 문법(syntax)이 있다. 이 문법에 따라 작성된 구체적인 설계도를 코드(code) 또는 소스(source)라고 부르고, 이것을 작성하는 행위를 코딩(coding), 이것을 작성하는 사람을 일컬어 코더(coder) 또는 개발자(developer) 또는 프로그래머(programmer)라고 한다.
환경
일반적으로 개발 또는 프로그래밍이라고 하면 코드를 작성하는 행위를 말하지만, 프로그램은 단순히 코드만으로 구동되는 것이 아니라 환경(environment)을 필요로 한다. 환경이라는 것은 우리가 작성한 코드가 동작할 시스템을 의미한다. 가장 밑바닥에는 컴퓨터라는 하드웨어가 있을 것이고, 그 위에서 하드웨어를 제어하는 소프트웨어인 운영체제가 있다. 잘 알고 있는 윈도우나 맥OS 그리고 리눅스가 운영체제에 속하는 소프트웨어들이다. 이 운영체제 위에서 웹페이지를 보여주는 소프트웨어인 웹브라우저가 동작하는데, 웹페이지를 만드는 언어가 HTML, CSS, JavaScript인 것이다. 따라서 웹페이지를 만드는 행위인 프로그래밍은 HTML, CSS, JavaScript의 문법에 맞게 작성해서 코드를 만드는 일이지만, 이 코드가 웹페이지가 되려면 우선 웹브라우저가 있어야 하고, 그것이 구동되는 운영체제와 하드웨어가 있어야 한다. 물론 겁먹을 필요는 없다. 10년 차 개발자인 필자도 이 거대한 초고층 인프라에 대해서 아는 바가 거의 없다. 그럼에도 프로그래밍으로 돈도 벌고, 취미도 하고, 이렇게 강의도 한다. 수업에서 안내하는 대로 설치하면 된다.
만약 저사양의 컴퓨터 환경이라서 실습에 어려움이 있다면 '저사양 실습환경' 수업을 참고하자.
하위수업 소개
운영체제 수업에서는 리눅스를 설치해본다. 리눅스는 무료고 오픈소스면서 웹서비스를 운영하는 가장 대표적인 시스템이다.
서버구축 수업에서는 Apache, PHP, MySQL이라는 소프트웨어를 통해서 웹서비스를 제공하는 데 사용하는 핵심적인 소프트웨어들을 설치해본다.
개발도구 수업에서는 코드를 작성할 때 도움을 주는 소프트웨어에 대해서 알아본다.
클라이언트 측 기술에서는 HTML, CSS, JavaScript와 같이 브라우저 위에서 동작하는 언어를 통해서 UI를 만드는 방법에 대해서 알아볼 것이다.
서버 측 기술에서는 데이터를 관리하는 데이터베이스와 HTML을 프로그래밍적으로 생성해주는 PHP에 대해서 알아본다.
만만치 않은 여행이 될 것이다. 충분히 시간을 확보하고 가급적 하루 안에 완주하자.