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

Popular posts from this blog

컴퓨터 사이언스에 관심있는 학생들에게 추천하는 책들

지난번에 마무리 하며, 이번 주엔 관련 책들을 소개 시켜 드리겠다 약속 드렸습니다. Head First Python: A Brain-Friendly Guide , by Paul Barry Head First Learn to Code: A Learner's Guide to Coding and Computational Thinking   Problem Solving with Algorithms and Data Structures Using Python , by Bradley N Miller Practical Programming: An Introduction to Computer Science Using Python 3.6, by Paul Gries  위에 언급한 책들은 제가 개인적으로 한 번씩 리뷰 해 보았던 책들입니다. Head First 시리즈는 개인적으로 좋아하는 시리즈로, 어려운 내용들도 쉽게 그림을 섞어 설명이 되어 있습니다.  책을 선택하고 이제 막 시작해 보려는 학생들 그리고 부모님들께서 궁금하신 사항이 있다면, 제가 도움이 될 수 있는 한도 내에서는 Q&A 로 도와드리도록 하겠습니다. 우선은 이메일로 여쭤봐 주시고, 조만간 Slack 채널을 Q&A 만을 위해 열도록 하겠습니다.