사실 프로그래밍을 오래한 전문 프로그래머도 모든 것을 알지 못합니다. 다만 전문가는 '무엇을 모르는지 아는 상태'에 있기 때문에, 어떤 문제를 해결하기 위해서는 무엇이 필요한지를 아는 사람이라고 할 수 있을 겁니다. 그렇다면 프로그래밍을 처음 시작하는 비전문가는 이렇게 정의할 수 있을 겁니다. '무엇을 모르는지 모르는 상태'
생활코딩의 1차적인 목적은 학습자가 바로 이 '무엇을 모르는지 모르는 상태'에서 재빠르게 벗어날 수 있도록 도와드리는 것입니다. 이것을 위해서 실습편을 만들었습니다. 생활코딩 실습 시리즈 중 첫번째인 '웹서비스 만들기' 편은 하나의 웹서비스가 어떤 맥락에서 시작되는지에 대한 '발상'에서부터 그것을 기획, 개발, 운영하는 전과정을 실습해보는 일종의 '무작정 따라하기'입니다.
생활코딩 실습은 프로그래밍에 대해서 아무것도 모르는 분들을 위한 코스입니다. 차분하게 실습을 따라하면서 하나의 웹서비스가 어떤 기술들로 구성되어 있고, 각각의 기술들이 어떻게 상호작용하는지를 음미하다보면 '무엇을 모르는지 모르는 상태'에서 재빠르게 벗어날 수 있을 것입니다. 그렇기 때문에 아무것도 모른다고 겁먹지 않으셔도 됩니다. 아무것도 모르는 사람들을 위한 수업이고, 설령 중도에 포기하더라도 그것은 필자의 부족함 때문이지 여러분 때문이 아닙니다.
실습편은 한번에 완주하는 것이 좋습니다. 강의 하나 하나가 대단히 방대하고 복잡한 맥락을 감추고 있기 때문에 공백이 생겨버리면 풀려버린 실타래처럼 엉망이 되버릴 수 있거든요. 토요일 아침부터 시작해서 가급적이면 그날 완주하시고, 아니면 일요일까지는 끝내는 것이 좋습니다. 혼자하기 어렵다면 친구나 동료들과 함께하는 것도 좋을 것입니다. 생활코딩 페이스북 그룹을 통해서 함께 할 사람을 찾아보는 것도 좋은 생각입니다. 또 생활코딩의 공동공부 기능을 이용하면 지속적인 학습에 도움이 될 것입니다.
자 그럼 화이팅
이 수업에서 html, css, javascript를 다루고 있는 이유는 이 3가지 기술만이 웹브라우저 위에서 동작하면서 웹페이지나 웹에플리케이션을 만들 때 사용할 수 있는 언어이기 때문입니다. 웹에서 이 기술들은 독점적인 기술입니다. 다른 대안이 없습니다. 특히나 이 기술들은 최근에 웹이 아닌 분야에서 광범위하게 활용되고 있는 추세입니다.
PHP를 사용하는 이유는 PHP는 웹개발 분야에서 대단히 인기있는 기술이면서 웹을 위해서 만들어진 기술이기 때문에 웹개발을 할 때 여러 편리함을 제공합니다. 특히나 그 구조가 매우 단순하기 때문에 배우기 쉽다는 장점이 있습니다. PHP를 바탕으로 서버 쪽에서 동작하는 웹에 대한 이해를 먼저 획득하시고, 후에 본인이 원하는 기술(Java, Python, Ruby, Nodejs...)로 교체하시면 됩니다. 어렵지 않으실꺼예요.
MySQL을 사용하는 이유는 MySQL이 대중적으로 인기있는 데이터베이스이면서 무료이고 배우기 쉽기 때문입니다. 특히나 최근에는 MySQL에 호환되는 데이터베이스(MariaDB, AWS Aurora...)와 같은 제품들이 쏟아지고 있기 때문에 MySQL은 제품을 넘어서서 하나의 기술 표준처럼 되어가고 있는 추세입니다. 마치 웹브라우저가 여러가지가 있는 것처럼요. 그렇기 때문에 MySQL은 대단히 효용이 큰 기술입니다. MySQL을 통해서 데이터베이스에 대한 기본적인 경험을 하시고, MySQL에 대한 이해를 높이거나 다른 데이터베이스 시스템을 공부하시면 됩니다. 역시 어렵지 않으실꺼예요.