반응형

클라이언트(PC/노트북 내 브라우저)에서 주소창에 인터넷 주소를 입력하고 그내용을 서버에 요청하면 HTML 파일을 회신 받습니다. HTML파일은 회신 받는 내용의 전체 틀을 구성하기 때문에 받는 내용(파일) 중에서 가장 중요다고 할 수 있습니다. 이 HTML에 대해서 알아보겠습니다.

HTML : Hyper Text Markup Language 홀 담당 매니저

  • 정의
  • 기본 구조 및 문법
  • 샘플 코딩 해보기


정의

이전 포스팅의 식당 예시에서 하태민님(HTML)을 정의한 내용은 아래와 같습니다.

  • 식당 문을 열고 들어가면 식당 전체가 보이는 계산대에서 하태민님이 서 있습니다. 손님이 보는 관점에서 식당 전체를 관리하는 사람이 하태민님 입니다.
  • 하태민님은 홀이 손님에게 깔끔하고 잘 보여질 수 있게 하기위해 식당 협회에서 정한 기준을 잘 알고 이를 준수하는 직원으로 식당 매니저 5년차의 정규 직원입니다.
  • 매니저로서 손님에게 보여지는 식당 내 전체적인 구성과 배치, 설정을 관장 합니다.즉, 매장 내 테이블이나 의자, 메뉴판 등의 필요 여부를 정하고 위치와 크기, 모양, 색상 등을 정할 수 있습니다.
  • 제일 오래된 직원으로 추신스와 자비스를 품을 수 있는 오랜 베테랑 입니다.


이것을 웹 어플리케이션 관점에서 다시 설명 드리겠습니다.

  • HTML은 클라이언트 브라우저에서 보여지게되는 전체의 틀과 내용을 제공합니다. 즉, 브라우저에서 보여지는 모든 요소들의 구성과 속성을 정의하는 언어 입니다.
  • HTML은 브라우저에서 표시되는 것을 정하기 위해 사용되는 W3C 표준 마크업 언어입니다. 마크업 언어란 구성 요소를 정의하기 위해 태그를 사용하는 언어를 말합니다. HTML 5 버전이 사용중입니다.
  • HTML은 다양한 요소를 포함하여 구성할 수 있습니다. 요소에는 속성 값을 갖을 수 있으며 속성을 통해 통해 위치, 크기, 모양, 색상 등을 조정할 수 있습니다.
  • HTML 파일에 직접 CSS, JavaScript 내용을 포함 할 수도 있고 외부 링크로 표시하여 포함 할 수도 있습니다.
  • HTML은 특별한 작성 프로그램이 필요하지 않습니다. 일반 메모장이나 텍스트 작성기만 있으면 충분합니다. 저장시 확장자를 .html 또는 .htm 으로만 해주시면 됩니다. 그리고 저장된 파일을 웹 브라우저에서 열면 작성 내용을 볼 수 있습니다.

기본 구조 및 문법

자, 이제 부터는 간단한 기본 구조와 문법에 대해서 알아보겠습니다. 우리의 목표는 HTML이 대략 어떤 것인지 이해하는 것이므로 아주 자세한 내용은 생략하겠습니다.

  • 문서 내 모든 내용은 <요소명> 으로 시작하고 </요소명>으로 닫습니다.
  • 첫 줄은 <!DOCTYPE html> 입니다.
  • <html> 로 시작합니다.
  • <head> 와 </head>는 옵션입니다.
  • <body> 와 </body> 사이에 구성 요소를 위치 시킵니다.
  • 마지막은 </html>로 끝납니다.
  • 요소 안에는 또 다른 요소를 포함 할 수 있습니다. 단, 교차는 안됩니다.
  • 요소(Elements)의 예입니다. : <h1> : 해드라인, <p> : 문단, <a> : 링크, <img> : 이미지, <ul>, <ol>, <li> …..
  • 속성(Attributes) 의 예입니다. : <a> 태그의 href (하이퍼링크), <img> 태그의 src(소스위치), width, height,

샘플 코딩 해보기 - html 파일 만들기

이제 어떻게 작성하는 지를 알았으니 아래와 같은 요건을 만족 시키는 html을 한번 만들어 보겠습니다. HTML 작성에는 특별한 프로그램이 필요하지 않습니다. 메모장 같은 모든 텍스트 작성 프로그램으로 작성이 가능합니다. 메모장을 열어서 위에서 배운 문법에 따라 html 파일을 작성해 보시지요. 메모장이 없으시면 간단한 무료 텍스트 작성기를 다운 받아 사용할 수 있습니다. 여기 링크를 통해 운영체재에 맞는 sublime text라는 택스트 작성기를 다운 받아 사용하실 수 있습니다.

요건

  • 오른쪽 내용으로 타이들을 만드세요 (힌트<title> 사용): “Welcome to HTML world!”
  • 오른쪽 내용으로 해드라인을 만드세요 (힌트<h1>사용): “Hello HTML!”
  • 오른쪽 내용으로 문단을 작성하세요 (힌트<p>사용): “이것은 문단입니다.”
  • "Go To Google" 이라는 text 내용이 보이게 링크를 만드세요. 클릭하면 www.google.com 으로 연동되게 만드세요(힌트<a>사용)

샘플 코딩 내용

한번 직접해 보셨나요?! 아래는 위의 요건을 html 파일로 만들어본 내용입니다. 파일이름을 01_html.html 이라고 하겠습니다.(제일 뒤에 .html만 붙이면 앞은 어떤 이름이라도 상관 없습니다.)

<!DOCUMENT html>
<html>
<head>
<title>Welcome to HTML world!</title>
</head>
<body>
<h1>Hello HTML!</h1>
<p>이것은 문단 입니다.</p>
<a href="https://www.google.com”>Go To Google</a>
</body>
</html>

작성 내용 확인

앞에서 작성한 내용을 .html로 끝나는 파일로 저장하고 이 파일을 웹 브라우저에서 오픈하면 내용이 잘 작성되었는지 확인 할 수 있습니다.
아래 이미지는 위에서 작성한 샘플 코딩 파일을 크롬 브라우저에서 파일 열기를 통해 열었을 때 보여지는 내용입니다.


요약

이처럼 HTML 언어를 이용하여 웹 브라우저에서 보여지는 내용들을 구성하고 설정 할 수 있습니다. 더 많은 구성 요소(태그)를 학습하시면 박스라든가 표, 리스트 등 복잡하고 다양한 정보를 표시할 수 있습니다.

이번 시간에는 HTML에 대해서 조금 더 구체적으로 알아 보았습니다. 기본 문법과 구성요소(태그)를 가지고 간단한 HTML을 작성해 보았습니다.
다음 시간에는 CSS에 대해서 알아보도록 하겠습니다.

질문 댓글은 언제나 환영이며 구독, 좋아요를 눌러 주시면 다음 글을 더 편하게 보실 수 있습니다.

감사합니다.




반응형
반응형


지난 시간의 내용을 요약하면 웹 어플리케이션은 웹브라우저, 인터넷, 웹서버 등으로 구성되어 클라이언트(PC)에서 브라우저를 통해 사용할 수 있는 시스템을 웹 어플리케이션 시스템이라고 정의 했습니다. 클라이언트는 브라우저를 통해서 데이터의 전송과 수신을 담당하는데 이때 주소창에 입력하는 내용이 전송 내용이고 수신 내용으로는 HTML, CSS, JavaScript 등의 데이터가 수신된다고 하였습니다.
이처럼 HTML, CSS, JavaScript, 그리고 서버에서 동작하는 프로그램 언어인 자바(JAVA)나 파이썬(Python) 같은 언어들이 웹 어플리케이션(Web Application) 시스템에 사용되는 언어 입니다.
이번 시간에는 이러한 언어들에 대한 개요를 설명해 드리겠습니다.

자 시작해 보겠습니다.

목표 및 범위

  • 목표
  • Web Application 의 전반적인 구조를 이해하고,
  • 필요한 기술요소를 알 수 있으며,
  • 이에 필요한 언어들의 특징을 이해하고 설명할 수 있다. (이번 포스팅)
  • 범위
  • 전반적인 구조와 기술요소, 언어 특징에 대한 이해를 목표로하며,
  • 각 언어에 대한 실제적인 코딩 실력을 키우는 것은 이후 포스팅에서 진행합니다.



한식당 - 웹앱

여러분이 자주 가는 하나의 한식당 가게를 생각해 보시지요. 가게는 크게 홀과 주방으로 나누어 집니다. 직원은 4 명이 있고 각자 맏은 역할이 아래와 같다고 가정해 보겠습니다.

  • 하태민님 : 홀 담당 매니저 - 홀 전체의 구성을 관리하고 연계함
  • 추신스 : 홀 셋팅 직원 - 손님에 따라 다른 색, 크기, 모양의 테이블 등 환경 셋팅 담당
  • 자비스 : 홀 서빙 직원 - 물/반찬 추가 요청 직접 수행, 식사 배달
  • 파이썬 : 주방장 - 재료를 이용해서 주문받은 음식을 요리해서 전달

 

등장인물 직원 소개

하태민님

식당 문을 열고 들어가면 식당 전체가 보이는 계산대에서 하태민님이 서 있습니다. 손님이 보는 관점에서 식당 전체를 관리하는 사람이 하태민님 입니다.
하태민님은 홀이 손님에게 깔끔하고 잘 보여질 수 있게 하기위해 식당 협회에서 정한 기준을 잘 알고 이를 준수하는 직원으로 식당 매니저 5년차의 정규 직원입니다.
매니저로서 손님에게 보여지는 식당 내 전체적인 구성과 배치, 설정을 관장 합니다.즉, 매장 내 테이블이나 의자, 메뉴판 등의 필요 여부를 정하고 위치와 크기, 모양, 색상 등을 정할 수 있습니다.
제일 오래된 직원으로 추신스와 자비스를 품을 수 있는 오랜 베테랑 입니다.

추신스

사실 추신스 직원은 하태민님의 소개로 식당에 취직하게 되었습니다.
하태민님 혼자서 손님의 기호에 맞추어 깔끔한 매장을 유지하기 위해 매장 내 테이블과 의자 등의 배치와 크기, 색상을 자주 바꾸는데 너무 힘 들었기 때문입니다. 그래서 추신스 직원은 이러한 배치, 크기, 색상 등 손님에게 보여지는 것 들을 전담으로 관리합니다.

자비스

자비스 직원이 하는 일은 크게 2가지 입니다. 첫째는 홀에서 손님이 요청한 간단한 서비스를 제공하는 것입니다. 예를 들면 음료수라든가 물 부족한 반찬 등을 요청하면 자비스가 홀에 비치된 냉장고 같은 장치에서 꺼네서 제공합니다. 커피머신이나 빙수기 등 홀에 있는 장비를 이용하여 홀 안에서 고객응대를 잘 합니다. 복잡한 일도 잘 처리하고 미리 준비해 놓지 않아도 고객의 요청이 있으면 그때 그때 홀 장비를 이용해서 잘 처리 합니다.
둘째는 주방에 (때로는 다른 가게에 가서까지) 손님이 원하는 요리를 요청하고 완성된 요리를 손님에게 전달 합니다. 가끔은 추신스 직원이 완성된 요리에 장식을 하기도 합니다.

파이썬

파이썬은 주방장입니다. 파이썬은 네덜란드 출신입니다. 이 주방장은 항상 오픈된 주방에서만 일을 하기 때문에 주방장이 요리하는 순서나 내용을 다른 사람들이 쉽게 알 수 있습니다.
이 주방장은 어느 오픈 주방에서든지 요리를 잘합니다. 가끔 미리 준비된 재료(데이터)를 사용해서 주문이 들어오면 그때 그때 조리를 하기도 합니다.
또 급할때는 밀키트 처럼 미리 만들어 놓은 재료(오브젝트)를 기반으로 추가/변경하여 요리하기도 합니다.
이 주방장은 요리 중간에 들어간 재료를 확인하지 않아서 가끔 주요 재료가 빠진 식사가 잘 못나올 수 있기 때문에 조리 전에 주문에 맞게 재료가 맞게 들어가 있는지 확인해 줘야 합니다.

이상으로 등장인물의 소개를 마치겠습니다.


혹시 눈치 채셨나요?

네, 그렇습니다. 바로 웹 어플리케이션에서 쓰이는 언어의 구성을 식당으로 재구성한 내용입니다. 하태민님은 HTML, 추신스 직원은 CSS, 자비스 직원은 JavaScript, 파이썬 주방장은 Python 입니다. 홀은 클라이언트(PC/노트북)이고 주방은 웹/어플리케이션 서버를 말합니다.
이런 등장인물들이 서로 도와서 손님이 주문한 음식과 요리를 만들고 제공하며, 손님이 편하게 즐길 수 있도록 환경을 제공합니다. 웹 어플리케이션도 마찬가지로 서로 자기의 역할을 하면서 서비스를 제공합니다. 이처럼 모든 등장인물은 특성과 담당 특기가 있습니다. 여러분은 어떤 일이 마음에 드시는 지요? 여러분의 마음에 따라 사용하는 언어가 달라 질 수 있기 때문에 중요하다고 할 수 있겠습니다. 아직 개별 언에 대해 알아보진 않았지만 크게는 2가지로 나눌 수 있을 것 같습니다. 클라이언트에서 사용되는 언어와(HTML, CSS, JavaScript) 서버에서 사용되는 언어(Python 또는 JAVA)이 있습니다. 이 두 종류의 개발을 다른 말로 프론트엔드(Frontend) 개발과 백엔드(Backend) 개발이라고 나눕니다.

이번 시간에는 HTML, CSS, JavaScript, Python 언어의 역할에 대해서 알아 보았습니다.
다음 시간에는 각 언어별로 좀더 자세하게 알아보도록 하겠습니다.


질문 댓글은 언제나 환영이며 구독, 좋아요를 눌러 주시면 다음 글을 더 편하게 보실 수 있습니다.

감사합니다.


반응형

'취미코딩' 카테고리의 다른 글

취미코딩 - JavaScript란? 자바스크립트란?  (0) 2022.04.02
취미코딩 - CSS란?  (2) 2022.04.02
취미코딩 - HTML이란?  (0) 2022.04.02
취미코딩 - 웹 어플리케이션 이란?  (0) 2022.04.01
취미코딩- 1. 코딩이란?!  (0) 2022.03.29
반응형

이번 시간에는 프로그래밍 언어를 배우기 전에 웹 어플리케이션(Web Application)에 대한 내용을 먼저 설명해 드리겠습니다.

 

웹 어플리케이션에 대한 이해가 중요한 이유는 우리가 사용하는 대부분의 많은 프로그램이 웹 어플리케이션으로 개발되기 때문입니다. PC, 노트북, 그리고 휴대폰에 있는 웹 브라우저를 통해서 누구나 쉽게 사용할 수 있게 만든 시스템이 바로 웹 어플리케이션 시스템입니다.

자 시작해 보겠습니다.

 

목표 및 범위

  • 목표
  • Web Application 의 전반적인 구조를 이해하고,
  • 필요한 기술요소를 알 수 있으며, 
  • 이에 필요한 언어들의 특징을 이해하고 설명할 수 있다. (다음 포스팅)
  • 범위
  • 전반적인 구조와 기술요소, 언어 특징에 대한 이해를 목표로하며,
  • 각 언어에 대한 실제적인 코딩 실력을 키우는 것은 이후 포스팅에서 진행합니다.

 

 

컴퓨터의 구조

컴퓨터는 사람을 참고해서 만든 장치 입니다. 사람이 시각,청각, 촉각 등을 통해 외부의 자극을 받아들이고 이를 뇌에서 인지하고 판단한 뒤 말과 행동으로 반응하게 됩니다. 이와 같은 원리로 컴퓨터도 동작합니다. 컴퓨터에도 키보드, 마우스와 같은 입력 장치들이 있고, 우리의 뇌와 같은 역할을 하는 중앙처리장치(CPU)와 메모리가 있습니다. 그리고 출력 장치로 모니터, 프린터, 스피커 등이 있습니다.

 

 

웹 어플리케이션 이란?

1970년대의 컴퓨터는 이처럼 홀로 동작했습니다.(참고로 애플2 PC가 1977년에 출시됬습니다. 역사는 따로 정리해야겠네요 ^^) 요즘 같은 WiFi 를 통해 인터넷을 연결하지 못했습니다. 그냥 말그대로 데탑(데스크탑) PC 였지요. 프로그램 팩에 저장된 것을 연결해서 사용하다가 나중에는 PC에 연결된 드라이버를 통해 플로피 디스크나 하드 디스크에 데이터를 저장 관리했습니다. 1980년대 중반에는 직장이나 가정에서 사용이 많았기 때문에 문서 작성프로그램, 데이터 처리 프로그램, 프린터 출력 프로그램 등이 많이 개발되었습니다. 마이크로소프트의 워드, 파워포인트, 엑셀 같은 프로그램과 한글과 컴퓨터의 한글, 그리고 여러 종류의 스프레드 시트 같은 프로그램들이 그 예가 되겠습니다. 이러한 프로그램을 이용해서 각 데스크탑 PC에서 문서를 작성하고 데이터를 처리하고 프린터로 출력을 했습니다. 점점 네트워크 기술도 발달했는데 처음에는 유선 전화선을 이용한 PC통신에서, ADSL, 광랜, 기가 네트워크 등으로 발전해왔습니다. 그리고 결정적으로 인터넷, 즉, WWW(World Wide Web)이 만들어 지면서 데이터와 네트워크의 사용이 폭발적으로 증가했습니다. 그러면서 홈페이지와 블로그와 같은 데이터가 폭발적으로 증가했으며 전자상거래라는 (당시에는) 새로운 형태의 기업 형태가 나타났습니다. (휴~! 간단하게 역사를 이야기했네요.)

이러한 과정을 거쳐 오늘날에는 (특히 한국에서는) 언제 어디서나 인터넷에 접속할 수 있는 환경에 놓여있습니다. 그래서 많은 프로그램들이 인터넷(Web)을 통해 서비스를 제공할 수 있도록 개발되고 있습니다. 이와 같은 프로그램이 바로 웹 어플리케이션 프로그램 입니다.

위키피디아에서는 아래와 같이 정의하고 있습니다.

웹 애플리케이션(web application) 또는 웹 앱은 소프트웨어 공학적 관점에서 인터넷이나 인트라넷을 통해 웹 브라우저에서 이용할 수 있는 응용 소프트웨어를 말한다.
A web application (or web app) is application software that runs on a web server, unlike computer-based software programs that are run locally on the operating system (OS) of the device. Web applications are accessed by the user through a web browser with an active network connection. These applications are programmed using a client–server modeled structure—the user ("client") is provided services through an off-site server that is hosted by a third-party. Examples of commonly-used web applications include: web-mail, online retail sales, online banking, and online auctions.

 

 

웹 어플리케이션의 구조 및 동작

그럼 웹 어플리케이션은 어떤 구조로 되어있고 어떻게 동작할까요? 그림으로 설명해보면 아래와 같습니다.

웹 어플리케이션 구조도

 

위에서 정의한 바와 같이 웹 어플리케이션을 위한 하드웨어 구성은 클라이언트, 인터넷, 서버 컴퓨터로 구성됩니다. 클라이언트 하드웨어 위에서는 Chrome 또는 인터넷 익스플로어 등의 브라우저 프로그램이 동작합니다. 이런 브라우저를 클라이언트라고 부르기도 합니다. 웹 브라우저는 사용자의 요청사항을 웹서버에 전달하고 웹서버의 반환 내용을 수신하고 브라우저 화면에 표시 합니다. 인터넷에 있는 다양한 네트워크 장비들은 다양한 통신규약인 프로토콜과 연결 설정에 따라서 클라이언트와 서버 사이에 데이터를 전송해 줍니다. 서버 컴퓨터에서는 인터넷을 통해 들어오는 요청에 응답하기 위한 프로그램 즉, 웹서버, WAS 서버, 어플리케이션 서버 등이 동작합니다. 요청이 들어오면 요청내용을 확인하고 정해진 작업을 수행후 결과를 회신 합니다.

 

그럼 이때 클라이언트의 웹브라우저에서는 구체적으로 무엇을 주고 받을 까요?

웹 브라우저가 전송하는 내용은 바로~~~

인터넷의 주소와 요청 내용이 들어있는 URL을 웹 서버 쪽에 전달합니다. 그리고 웹서버로 부터 회신 받는 내용은 바로~~~

HTML, CSS, JavaScript, Image 등의 파일(리소스)을 브라우저가 받게 됩니다. 

실제로 아래는 naver.com을 웹 브라우저 주소창에 입력후 받은 html 파일의 내용입니다. 스트립트 소스와 이미지 소스를 표시한 것이 보입니다.

 

이번 시간에는 웹 어플리케이션의 정의, 그리고 구조와 동작 내용에 대해서 알아보았습니다. 웹 브라우저를 통해 서비스를 제공하는 시스템이 웹 어플리케이션 시스템이고, 클라이언트, 네트워크, 서버로 구성되며, 웹 브라우저에서 URL 인터넷 주소를 가지고 요청하면 네트워크를 거쳐 해당 서버에 접속하며, 서버에서는 관련된 자료를 웹 브라우저에 회신해 주는데 그 내용은 주로 HTML, CSS, JavaScript 등의 파일 및 리소스 입니다.

다음 시간에는 웹서버로 부터 회신 받은 HTML, CSS, JavaScript 등의 언어에 대해서 알아보도록 하겠습니다.

 

질문 댓글은 언제나 환영이며 구독, 좋아요를 눌러 주시면 다음 글을 더 편하게 보실 수 있습니다.

감사합니다.


 

반응형
반응형

모든 내용은 글쓴이의 짧은 경험과 지식에서 나온 개인적인 의견임을 밝힘니다. 불편한 내용이나 이견이 있는 내용은 연락주시면 수정 재고하겠습니다. 감사합니다. theyellowlionking@gmail.com

글쓴이

  • 부모님의 권고로 컴퓨터를 시작하게되어 평생 직업이된 사람입니다.(감사합니다. 아버지, 어머니)
  • 대학에서 컴공을 전공했고 경영학과 심리학에도 관심이 많은 사람입니다.
  • 오랫동안 IT 분야에 일하면서 설계, 개발, 운영, PM/SM, DA/DE/DS, MLE 등 많은 역할을 해 봤습니다.(감사합니다. 동료 여러분)
  • BigData/AI/Machine Learning에 관심이 많으며, 한 기업에서 머신러닝 엔지니어로 일하고 있습니다.(감사합니다. 사장님)
  • 더 좋은 사람이 되기위해 노력하는 사람입니다.(더 노력하겠습니다.)
  • MBTI는 ISTJ 입니다.

포스팅의 목적

  • 취미로 코딩을 배우는 분들을 돕기 위한 포스팅입니다.
  • 최대한 쉽고 간단하게 설명 할 예정입니다.
  • 최종적으로는 독자가 일상생활에서 간단한 문제를 코딩으로 해결 할 수 있도록 하는 것이 목표 입니다.

향후 주요 내용(예정)

아주 기본적인 개념부터 시작합니다. 코딩과 관련된 전반적인 관계와 구조를 소개하고 프로그래밍 언어를 선택해서 배우면서 하나씩 문제를 풀어볼 예정입니다. 마지막에는 첫번째 프로젝트로 배운 코딩기술을 이용해서 프로그램을 만들어볼 예정입니다.
1. 코딩에 대한 개요
2. 코딩을 위한 언어 배우기
3. 첫 프로젝트 프로그램 만들기


오늘은 그 첫번째 시간으로 코딩에 대한 개요에 대해서 알아 보겠습니다.

1. 코딩에 대한 개요

코딩을 배우면 무엇이 좋은가?

  • 코딩을 배우는 이유는 다양할 수 있겠지요. 누군가는 스티브 잡스, 빌 게이츠, 마크 저커버그 처럼 되기 위한 꿈을 이루기 위해 코딩을 배우고 싶어할 수도 있고, 누군가는 다른 사람들이 필요하다고 해서 일 수도 있고, 또 다른 누군가는 그저 재미있을 것 같아서 일 수도 있습니다. 목적은 다를 수 있지만 시작은 모두 같은 내용으로 시작해야 할 것 같습니다. 기본적인 내용을 아는 것이 중요하기 때문이지요. 바로 이런 기본적인 내용을 제공하기 위한 포스팅 입니다.
  • 코딩을 배우면 인생을 바꿀 수 있습니다. 과한 표현일 수 있지만 적어도 일상 생활에서 본인의 시간을 조금 더 만들 수 있습니다. 혹시, 일상 생활을 하면서 특히, 컴퓨터나 핸드폰 등을 사용할 때 단순하고 반복적인 일들로 인해서 불편을 느낀 적이 있으신가요? 생활이나 일을 개선하기 위해 떠오르는 아이디어가 있으신가요? 이런 분들이야 말로 불편을 해소하고 아이디어를 실현 시키기 위해 코딩이 필요한 분들 입니다.
  • 취미로 배우는 것은 정말 좋은 선택입니다. 하나를 배울 때 마다 마치 SF영화에서 초능력이 하나 더 생긴 것처럼 할 수있는 일이 더 많아집니다. 스스로 발전을 느낄 수 있고 행복감을 느낄 수 있습니다. 시간이 너무 빨리 지나가서 아쉬울 수도 있습니다.

코딩이란 무엇인가?

  • 코딩은 컴퓨터 프로그래밍 보다 살짝 좁은 의미이기는 하지만 보통은 같은 의미로 사용됩니다. 아주 쉽게 말씀드리면 컴퓨터에게 일을 시키기 위해 컴퓨터가 해야할 일들을 작성하는 것을 코딩이라고 말합니다. 컴퓨터가 실행해야 할 명령어들을 적는 것이라고 할 수 있겠는 데요, 컴퓨터와 소통하는 방법이 코딩인 것 이지요. 소통을 잘 하기 위해서는 사람도 그렇듯이 언어가 필요합니다. 사람끼리의 소통에서도 미리 정리된 문법과 규칙에 따라 말이나 글을 전달하면 그 내용을 다른 사람이 해석해서 의미를 이해하고 행동하는 것처럼 컴퓨터와의 소통에서도 미리 정의된 문법과 규칙에 따라 작업할 내용을 적어야 컴퓨터가 이해하고 실행 할 수 있습니다.이러한 컴퓨터와 소통하기 위해 사용하는 언어가 바로 프로그래밍 언어 입니다. 들어보셨을 수도 있는 파이썬, 자바, 자바스크립트, C 등이 프로그래밍 언어의 좋은 예 입니다. 이처럼 프로그래밍 언어에서 정의한 문법과 규칙에 따라서 명령어를 작성하는 것을 코딩이라고 합니다. 즉, 코딩이란 "컴퓨터가 해야할 일들을 미리 정의된 문법과 규칙(프로그래밍 언어)에 따라 작성하는 것"을 말합니다. 코딩을 통해 작성된 내용을 프로그램 이라고 합니다.
  • 프로그램의 예를 들어보겠습니다. 요즘 식당이나 카페이서도 자주 볼 수 있는 무인주문 단말기(키오스크)가 하는 일은 예전에는 주문 담당 직원이 했던 일입니다. 예전에 새로운 주문 담당 직원이 입사했다고 생각해보시죠. 그러면 기존에 주문을 담당했던 직원이 새로온 직원에게 교육을 해주겠지요. 예를 들면 고객이 주문할 때 물어봐야할 것과 그 대답에 따른 고려 사항을 점검하고 어떻게 반응해야하는 지 같은 것을 알려줄 것입니다. 즉, 고객으로 부터 어떤 입력을 받아서 어떤 작업들을 거친뒤 어떤 반응을 해야하는 지를 알려줄 것입니다. 이러한 입력, 처리, 출력 내용을 정리해 놓은게 프로그램이고 이러한 프로그램을 만드는 것이 코딩입니다.
  • 코딩이란 '컴퓨터용 언어로 프로그램을 만드는 것' 이라고 SBS런닝맨 퀴즈에서도 나왔네요. ^^

어떻게 코딩을 해야하나?

  • 코딩은 위에서 말한 것 처럼 프로그래밍 언어를 통해 컴퓨터가 해야할 일을 작성하는 것을 말합니다. 따라서 코딩/프로그래밍을 위해서는 프로그래밍 언어를 배워야 합니다. 프로그래밍 언어를 알아보기 전에 먼저 컴퓨터의 구성과 동작에 대해서 간단하게 이해하겠습니다.
  • 컴퓨터의 구성은 크게 메모리, 중앙처리장치(CPU)와 주변장치 디스크, 모니터, 키보드로 구성됩니다. 물론 휴대폰의 경우 모니터와 키보드가 하나의 모니터에서 구현되기도 합니다. 메모리는 임시 정보를 저장하는 장치이고 CPU는 계산을 담당하는 장치 입니다. 들어보셨겠지만 컴퓨터는 모든 정보를 바이너리, 즉 이진수 0과 1로 저장합니다. 이해를 돕기위해 간단히 예를 들어보겠습니다. 메모리의 장치번호는 00000001 번 이고 CPU는 00000010 이라고 가정하시죠. CPU에서 메모리의 첫번째에 저장된 데이터를 가져오기 위해서는 전체 주소가 필요한데 예를 들면 장치번호와 메모리 주소번호를 붙여서 가져올 수 있습니다. 즉, 전체 주소가 00000001 00000001 이겠습니다. 이 주소에 저장된 내용을 CPU에서 가져다가 처리한 뒤 다음 처리할 내용이 메모리의 두번째 장소에 있다면 다음 전체 주소는 다음과 같겠습니다. 00000001 00000010. 제가 설명드리고자 했던 것은 컴퓨터의 모든 내용이 실제로는 이진수로 저장되고 관리된다는 것입니다.
  • 다시 프로그래임 언어로 돌아가서, 프로그래밍 언어는 크게 2가지 종류로 나눌 수 있습니다. 저수준 언어과 고수준 언어가 그것입니다. 저수준 언어(Low-Level Language)는 간단히 말하면 추상화를 제공하지 않는 언어입니다. 추상화를 제공하지 않는다는 의미는 코딩을 컴퓨터가 이해할 수 있는 방식으로 작성해야 한다는 의미 입니다. 컴퓨터가 이해할 수 있는 방식이란 위에서 말씀드린 대로 이진수로처리/관리하는 것을 말합니다. 그래서 코딩도 2진수로 할 수 있는데 이처럼 2진수를 가지고 프로그래밍 할 수 있도록 만들어진 언어가 바로 '기계어'입니다. 생각만 해도 어렵지 않으신가요? 0과 1로 코딩을 하려면 위에서 처럼 모든 장치의 주소값을 01010001 같은 이진수로 다 알고 있어야 하고, 언어의 명령어도 01로 작성해야하기 때문에 무척이나 어려울 것 같습니다.
  • 반대로 고수준의 언어(High-Level Language)는 추상화를 제공합니다. 즉, 2진수가 아니라 사람이 이해하기 쉬운 방법으로 명령어를 작성할 수 있습니다. 앞서 예를 든 메모리에서 데이터를 가져오는 경우를 다시 비교해서 설명해 보겠습니다. 고수준 언어에서는 a를 메모리의 한 영역이다라고 정의만 하면 그 실제 2진수 주소가 무엇이던 간에 특정 메모리 주소를 의미합니다.(프로그래밍할때 주소가 필요하지는 않으니까요) 그래서 특정 주소에 2진수 주소를 이용해서 데이터를 넣고 가져올 필요가 없고 a와 같은 변수로 추상화해서(a가 2진수 주소를 가리키게 해서) 사용할 수 있습니다. 즉, 00000001 00000001 주소에 123을 넣어라 라고 작성할 필요가 없고, 고수준 언어에서는 a 에 123을 넣어라 이렇게만 작성하면 됩니다. 장치 주소를 외울 필요도 없고 메모리 주소도 외울 필요가 없습니다. 그래서 일반적인 범용 프로그램을 개발하는데 많이 사용됩니다. 프로그래밍 언어라도 들어보셨던 대부분의 언어가 이 고수준 언어에 해당됩니다. 이러한 언어로 만들어진 프로그램을 어플리케이션(Application) 이라고 말합니다.



다음 시간에는 코딩을 위한 언어를 배우기 전에 가장 많이 사용되는 어플리케이션 유형인 Web Application에 대한 소개를 하고 이를 통해 어떤 언어들이 있는지를 알아보겠습니다.


질문 댓글은 언제나 환영이며 구독, 좋아요를 눌러 주시면 다음 글을 더 편하게 보실 수 있습니다.

감사합니다.

반응형

+ Recent posts