Skip to main content

Wanna be a Web Application Developer?

제가 만나고 이야기 나눴던 학생들 , 그리고 한국에서 컴퓨터 프로그래밍에 관심이 있어 연락을 받았던 몇몇 학생들의 대부분의 관심사가 어떻게 하면 빨리 웹 어플리케이션 개발자가 되느냐는 것이었습니다.

현재 컴퓨터 사용 범위에서 인터넷과 웹이 차지하는 비율을 실로 엄청나다 할 것입니다. 거의 모든 업무와 작업을 웹을 통해서 하고 있고, 아울러 일반 PC 나 Mac 용으로 어플리케이션이 나와있다 해도 같은 기능을 웹 어플리케이션을 통해 제공하고 있고 End User (사용자) 또한 당연히 기대하는 기대치이기도 합니다.

그래서 오늘은 앞으로 제가 시작할 "웹 어플리케이션 개발자가 되는 길" 의 시리즈에 대해 간략하게 설명하고 바로 그 첫번째 글을 시작하도록 하겠습니다.  제가 오늘 시작하는 이 시리즈는 웹 프로그래밍에 관심있는, 컴퓨터 사이언스와 상관없이, 학생들과 일반인들을 위해 디딤돌이 될 수 있기를 바라는 마음에서 시작합니다.  아주 디테일한 내용을 모두 설명할 수는 없지만, 꼭 알아야 하고 기본이 되는 지식들을 나누어 좋은 길잡이가 되어줄 인터넷 사이트와 책들을 소개하고 제 경험을 추가하여 이 시리즈가 길잡이가 되기를 바랍니다.



Web Application / 웹 어플리케이션이란 무엇인가?

웹 에플리케이션이란, 인터넷 브라우져를 통해 사용자와 interact 이 가능한 사이트를 이야기 합니다. 따라서 사용자의 input / data entry 가 발생하며, 그에 따른 data processing 이 일어나고 다시금 사용자의 웹 브라우져 화면에 output 을 생성하게 하는 흐름이 포함된 모든 웹 사이트를 이야기 합니다.  따라서 input / data entry 의 processing 을 위해선 당연히 데이터 베이스가 필요하겠고, 데이터베이스와 사용자의 웹 브라우져 간의 송수신도 필요할것입니다.
이때 사용자의 브라우져와 실제 어플리케이션간의 송수신은 HTTP (Hyper Text Transfer Protocol) 라는 protocol 을 이용하게 되며, 실제 어플리케이션은 개발사가 관리하는 서버에서 작동되게 됩니다.


웹 어플리케이션을 서버에서 작동하고 관리하는것을 hosting 한다고 하며, hosting server 와 database server 를 함께 할 수도 또는 각기 다른 서버에서 관리하고 hosting 하도록 할 수도 있습니다. 이는 사용하는 concurrent users 숫자나 data traffic 그리고 processing 의 양에 따라 설계가 됩니다.

이때에 servers 들을 설계하고 배치하는 방법에 따라, Cluster 라는 architecture 방법과 Node 라는 것이 따라붙으며 Multi-Clusters 와 Load Balance 라는 architecture 형식이 있는데 이러한 설계 구조에 대해선 나중에 다시 설명하도록 하겠습니다.


Web Application's Process Flow / 웹 어플리케이션의 전반적인 프로세스 흐름은? 

웹 에플리케이션을 개발하고 나면, 거의 모든 에플리케이션의 Process Flow 는 다음과 같게 됩니다. 따라서 이러한 흐름을 잘 이해하고 알고나면, 어떤한 에플리케이션을 개발하던 간에 모든 근간은 이 foundation 에서부터 시작될 것입니다. 

사용자는 해당 웹 에플리케이션에 로그인하고 => 이미 등록된 사용자라면 바로 main landing page 로 이동되며, 등록안된 사용자라면 register 화면으로 redirect => main landing page 에서는 원하는 기능을 선택 => 해당 기능이 실행된 후에는 다시 사용자의 웹브라져 화면에 output 이 display 되는 방식으로 END USER 와 Application 간의 계속 반복되는 실행이 있게 됩니다.




Web Application Developer / 웹 에플리케이션 개발자란? 

따라서 웹 에플리케이션 개발자는 기계적인 Servers 환경들을 제외하고, 프로그램적으로 사용자와 interact 할 수 있는 소프트웨어를 개발하는 사람을 가리키며 웹 에플리케이션이라 함은 소프트웨어 중에서도 인터넷 웹 브라우저 안에서 실행되는 소프트웨어를 가리키게 됩니다. 
따라서 기본적으로 알아야 할 프로그래밍 지식으로는

  1.  웹 사이트 (static page) 를 위한 html, css 
  2.  Database 와 연동하는 Web Application 을 개발하기 위한 프로그래밍 언어와 Web Framework
  3. Database 에서 데이터를 다룰 수 있는 지식과 SQL
물론 위에서 나열한 세 가지 외에 더 많은 것을 알아야 하지만, 우선은 위 3 가지를 시작으로 준비하기를 권합니다. 

다음 회에서는 Web Application 을 개발하기 위한 프로그래밍 언어와 Web Framework 에는 어떤것들이 있고, 왜 그리 많은 종류들이 사용되고 어떠한 Framework 과 언어가 처음 시작하는 사람들에게 쉽게 접근이 가능한지 설명하도록 하겠습니다.




Comments