프로그래밍을 배우는 중인데 내 코드는 왜 이렇게 초라하고 볼품없을까?
프로그래밍 입문자라면 함수, 변수, 조건문 들을 배우기 시작하지만 이게 어떻게 프로그램으로 이어지는지 전혀 모르겠고, 다른 사람들의 코드에 비하면 너무 초라할 뿐만 아니라 실제로 프로그램으로 완성해서 동작 할 수 있는지 의심스러운 순간이 있었을 것이다.
프로그래밍에 입문하면서 프로그램의 동작 원리와 구현 방법을 알고 있다면 지루하고 포기하고 싶은 마음을 다잡을 수 있을 것이다.
프로그래밍 입문자가 알기 힘든 두가지, 프로그램 동작 원리와 구현 방법
1. 프로그램의 동작 원리
코딩으로 만든 서비스, 프로그램은 코드가 여러 조각으로 나뉘어있고, 이 조각들이 서로 맞물려서 동작한다. 대부분(모두는 아니다)의 서비스는 클라이언트 코드와 서버 코드라 나누어진다.
1.1 클라이언트
웹개발을 기준으로 봤을때 클라이언트는 크롬이나 엣지같은 웹 브라우저이다.
웹 브라우저는 HTML, CSS, Javascript 코드로 나누어져 있다. 각각의 역할은 다음과 같다.
HTML : 어떤 내용이 어디에 들어갈지 정한다.
CSS : 크기, 색깔, 테두리 등 스타일을 정한다.
Javascript : 클릭, 스크롤 등 유저 동작에 대한 반응을 정한다.
1.2 서버
서버는 웹사이트를 보여주기 위한 내용이 담겨있는 것으로, 하드웨어는 크고 성능 좋은 컴퓨터이며 역시 코드로 이루어져있다. 유튜브를 본다는 것은 웹 브라우저라는 클라이언트를 사용해서 구글의 서버에 있는 영상 정보를 받아 보는 것이다.
클라이언트와 서버는 어떻게 소통할까?
우리가 인터넷 창에 주소를 입력하면 DNS에서 IP 주소를 자동으로 찾아서 서버 컴퓨터를 찾는다.
서버 컴퓨터에 클라이언트가 정보를 요청하면 서버는 클라이언트에 정보에 해당하는 코드를 제공한다. 웹 브라우저는 서버에서 받은 코드를 사용자가 볼 수 있도록 표현한다.
또한 복잡한 계산이 필요한 경우 상대적으로 성능이 좋은 서버 컴퓨터에 시킬 수 있고, 서버는 클라이언트의 요청이 없어도 정기 결제와 같은 일들을 할 수 있다.
2023.08.25 - [IT&Computer] - 플랫폼의 파편화를 위한 크로스 플랫폼, 가상머신과 웹
2. 프로그램의 구현 방법
유튜브와 같은 웹 서비스는 검색, 결재, 컨텐츠 추천, 플레이리스트 만들기, 공유 등 다양한 기능을 가진다.
우리가 코딩 공부를 처음할 때는 더 간단한 코드를 공부하는데(반복문, 조건문) 이 것을 배울 때는 우리가 만들려고 하는 기능과는 전혀 상관이 없어 보이기도 한다.하지만 화려한 기능들을 쪼개고 세부적으로 나누어보면 우리가 배우는 작은 기능들이 모인 것을 알 수 있다.
유튜브의 기능을 아래와 같이 분할해보자
- 영상 재생 : 재생/정지, 이동, 볼륨 조정, 반복
- 플레이리스트 : 생성, 수정, 공유, 탐색
- 회원가입 : 가입, 로그인, 인증
간단히 추상화해보면 반복 재생은 반복문을 활용한다. 아이디 중복 체크는 조건문을 활용한다. 우리가 기본으로 배우는 항목들을 천천히 쌓아나가야 유튜브라는 웹서비스를 완성할 수 있는 것이다.
프로그래밍 입문자가 알기 힘든 두가지, 프로그램 동작 원리와 구현 방법
'IT&Computer' 카테고리의 다른 글
프로그래밍의 핵심 개념 자료형 - 숫자형과 문자형, 그리고 형변환 (2) | 2023.10.04 |
---|---|
프로그래밍으로 뭘 할까? 프로그래밍의 분야 (3) | 2023.09.05 |
플랫폼의 파편화를 위한 크로스 플랫폼, 가상머신과 웹 (2) | 2023.08.25 |
운영체제란 무엇일까? 운영체제의 역할과 종류 알아보기 (2) | 2023.08.24 |
컴퓨터가 내 코드를 이해할 수 있게 해주는 컴파일러와 인터프리터 (2) | 2023.08.17 |