웹 스터디

클라이언트 측 기술

토픽 웹 스터디 > 웹 서비스 만들기

본 수업은 웹 애플리케이션 만들기 수업으로 대체 되었고, 2015년 6월 이후에 폐지됩니다. 개편된 수업에서 뵙겠습니다.http://opentutorials.org/course/1688

클라이언트 측 기술이란?

클라이언트 측 기술(client side technologies)를 이해하기 위해서는 먼저 클라이언트(client)와 서버(server)의 관계를 이해해야 한다. 식당을 생각해보자. '서빙' 한다는 말은 음식을 클라이언트(손님)에게 제공한다는 뜻이다. 즉. 제공하는 쪽이 서버고 제공 받는 쪽이 클라이언트가 되는 것이다.

웹에서의 서버 - 클라이언트 관계

웹에서 클라이언트란 정보를 요청하는 쪽을 의미하는데 http://opentutorials.org를 주소 입력창에 입력하고 엔터를 치면 브라우저는 그 주소에 해당하는 컴퓨터를 찾아간다. 여기서 브라우저는 클라이언트 측의 소프트웨어가 되고, 브라우저가 설치된 컴퓨터는 클라이언트 측의 머신(Machine)이 되는 것이다. 그 URL에 해당하는 컴퓨터는 클라이언트가 요청한 정보를 제공하게 되는데, 정보를 제공하는 측의 컴퓨터를 서버 머신이라고 하고, 이 서버 머신 위에서 동작하는 소프트웨어를 서버 측 소프트웨어라고 부른다. 서버 구축 시간에 설치한 apache, mysql, php가 여기에 해당한다.

HTML, CSS, JavaScript

우리가 배울 것은 클라이언트 측 소프트웨어인 웹브라우저에서 동작하는 언어인 HTML, CSS, JavaScript이다. 이 언어들은 웹브라우저라는 환경 위에서 구동되는데, HTML이 웹페이지를 만드는 언어라면 CSS는 웹페이지를 디자인적으로 아름답게 꾸며주는 언어다. 그리고 JavaScript는 HTML이라는 언어가 가진 한계를 확장해서 웹페이지를 단순한 문서에서 복잡한 작업을 수행할 수 있는 프로그램으로 끌어올려 주는 언어라고 할 수 있다. 이 관계를 이렇게 짧은 지면에서 다 설명하는 것은 무리수다. 하위 수업들을 통해서 각각의 쓰임을 좀 더 구체적으로 이해할 수 있을 것이다. 또 각각의 기술마다 생활코딩에서 제공하는 수업에 대한 링크를 마련했다. 실습을 완주한 후에 각각의 수업을 보면 '무엇을 모르는지 모르는 상태'에서 금방 벗어날 수 있을 것이다.

사족. 프로그래밍을 하기 위해서는 수학을 잘해야 하나?

그럴 수도 있고 아닐수도 있습니다. 무엇을 프로그래밍하느냐에 달린 문제입니다. 컴퓨터는 분명히 숫자로 이루어진 시스템이기 때문에 최초의 컴퓨터 과학자들은 대체로 수학자거나 수학에 탁월한 사람들이었습니다. 하지만 컴퓨팅 환경이 고도화될수록 수학은 시스템 깊은 곳에 숨겨집니다. 대신에 더 인간 친화적인 환경으로 진화합니다. 마치 20년 전의 컴퓨터가 소수의 공학자만이 다룰 수 있는 시스템이었던 것에 비해서 요즘은 터치만으로도 컴퓨터를 제어하는 데 부족함이 없는 것처럼요. 이것과 똑같은 일이 프로그래밍의 세계에서도 진행되고 있습니다. 고백 하자면 필자는 중학교 1학년 1학기 때 수학을 단념했습니다. 열심히 하지 않은 것도 아닌데, 필자의 하드웨어는 이해력이 느리고 암기력이 짧기 때문에 선두권에 맞춰서 밀어붙이는 진도의 폭력성을 감당할 수가 없었던 것 같습니다. 그런 필자 같은 사람도 프로그래밍으로 먹고 사는데 큰 지장이 없습니다. 프로그래밍의 세계는 광활합니다. 그렇기 때문에 수학 없이 무엇인가를 도모할 수 있는 분야는 차고 넘칩니다. 최소한 웹개발을 하는데는 사칙연산만 알고 있으면 됩니다. 무엇보다 우리는 수학을 못하는 사람이 아니라, 앞으로 잘 할 사람이 아닌가요?

댓글

댓글 본문
  1. 김태용
    개발자님 글을 읽으면 없던 힘이 나네요. 말씀 한마디 한마디가 주옥 같으셔 ㅎㅎㅎ
  2. 파스텔
    검색으로 우연히 발견하게 되었는데....
    정말 너무 정리를 잘해 주셔서~ 완전 감사~^^
    전 웹디자인을 하는데 요즘 자바스크립트도 관심이 가져서 차근히 공부해 보려고 합니다.
    아직은 느무 어려지만~^^;;
  3. 빛나는새벽
    감사합니다
  4. gr8sloth
    궁금한 점을 정말 콕콕 찍어서 알려주시네요 ;; 뭔가 안된다 싶거나 모른다 싶으면 어김없이 설명이 잘 나와있네요 ;; 감사합니다. 지금까지 한것처럼 앞으로도 포기하지 않고 꾸준히 공부하고 싶네요. 꼭 !
  5. 사족 내용이 프로그래밍 분야에 대해 새로운 관점을 주네요. 감사해요
  6. giicha2
    좋은강의 감사합니다
  7. 감사합니다!!
  8. dynamickam
    고맙습니다. 생활코드~
  9. 루트
    휴...다행이네요...힘을 얻고 갑니다.
  10. 썸남
    헹헹 생활코딩 너무 좋아영
  11. 의견
    공감합니다. 저 역시 수학을 잘하면 플러스 알파가 된다는점은 동의하지만, 못해도 마이너스가 되는점은 없다고 봅니다. 웹뿐만아니라 게임쪽이든, 시스템쪽이든, 컴퓨터공학은 다른공학보다 수학이 훨씬 덜 쓰이는건 사실이구요, 프로그래밍에서 결국 중요한건 수학식을 아느냐가 아니라 문제를 어떤순서로 해결할지 생각하는 능력이고, 이 점이 인문학과 유사한점이 있어서 융합효과를 낼 수 있다고 생각합니다. 그래서 요즘 기업에서 문과출신 개발자를 양산하려는거라고 저는 보고있습니당..
  12. 말짱황
    제가 공교육과 멀어지게 된 계기도 생각해보면 수학 같군요. ㅜㅜ

    용기를 가지고 다음 장으로 !
  13. 문군
    수학...듣기만 해도 덜덜하네요
  14. 순시미
    파이팅 감사합니다 !!
  15. David Jung
    사족이 사족이 아닌 느낌입니다. 최고의 선생님 이십니다 !
  16. 지노러스
    전체적인 큰틀을 그려주시는것 같아서 너무 좋아요!정말 내가 뭘 모르는지 모르는단계였는데. 감사합니다.
  17. 다음버튼
    자바스크립트 조금 할 줄 안다고 프로그래머가 된 것 마냥 기세 등등 했던 날이 부끄럽게 느껴지네요 ㅠㅠ
  18. 그래도 코드를 좀 더 효율적으로 짜려면 수학에 관심을 갖는것도 좋은 방법아닐까요ㅎㅎ
    대화보기
    • Dongju Seo
      게임 개발자, 시스템 엔지니어, 리버스 엔지니어, 알고리즘 과학자(개발자), 컴퓨터 과학자가 아닌이상 수학이 크게 이용될 일은 없죠. 특히 웹 분야에서는 더욱 제한적으로 사용되죠. 사용되어도 기본적인 용어와 개념이 필요할뿐이고, 특별하게 수학적 지식이 쓰인다면 이미 리소스가 있기 때문에 걱정 안하셔도 됩니다.
    • egoing
      저는 더 빨리 포기했다니까요. ㅎㅎ
      대화보기
      • 로디마스
        이제 개발자로서 일을 시작한 사람으로서, 날짜 계산등의 공식에 고1때부터 포기한 수학의 영향으로 거부감이 앞서서 걱정했습니다만, 글을 보고 힘을 얻습니다. 좋은 말씀 감사합니다.^_^