개발자가 되기 위해서는 뭐든지 알아두면 어떤 개발을 하든 조금이라도 밑거름이 된다는 사실을 확신했으면 한다.
대학 전공 커리큘럼 중에 C, Java와 같은 프로그래밍 언어도 있었지만 프로그래밍 언어 외에도 소프트웨어 공학 개론, 알고리즘, 자료구조 그리고 컴퓨터 구조까지 있었던 것으로 생각나는데 당시만 해도 이런 걸 왜 알아야 하나?라는 의문이 많이 들었다.
프로그래밍 서적의 문법을 이해하기 위한 예문들을 아무리 들여다보고 이해를 해가도 프로그래밍 언어 외의 커리큘럼들이 왜 필요한지 이해가 되지 않았다. 하지만 실제 서비스를 구축하고 운영하다 보면 왜 필요한지 그제야 알게 된다.
반대로 알고리즘이나 자료구조와 같은 이론을 모르고 프로그래밍을 하거나 웹 개발을 하는 사람이라면 내가 왜 이 문제를 해결하지 못하는지 알지 못할 수도 있을 것이다.
특히, 알고리즘과 자료구조는 내가 짠 코드의 라인 수를 대폭 줄일 수 있고, 성능을 업그레이드하기에 반드시 필요한 배경지식이 된다.
내가 하는 이야기들은 단순히 웹 개발을 하기 위한 방법을 알려준다든지 프로그래밍 언어의 강좌가 아니다.
웹 개발자로서 내가 경험한 것들을 바탕으로 바닥부터 다져갈 수 있는 이야기들을 공유하고, 웹 개발자를 꿈꾸는 사람들과 소통하며 서로의 경험을 공유하고 싶어서 이 연재를 시작하게 되었다.
그럼 이제부터 본격적으로 웹 개발에 대한 이야기를 시작해 보자.
앞서 웹 개발은 크게 프론트앤드와 백앤드 개발로 나뉘는 것을 알 수 있었고, 두 영역의 로드맵의 시작은 인터넷(Internet)으로 같았다는 것을 알았다.
웹 개발자를 준비하면서 가장 먼저 해야 하는 것은?
웹 개발 이야기 - 들어가며 -대학에서 컴퓨터 관련 전공을 졸업하고, 졸업도 하기 전부터 웹 개발 직무를 시작해서 20년이 넘었다. 그동안 여러 회사를 거치며 웹 개발 업무를 해왔고
wishlan.tistory.com
인터넷(Internet)이란?
그래서 이제는 이게 없다고 생각할 수 없을 정도로, 우리 일상생활에 밀접하게 연관되어 있는 것이 인터넷(Internet)인데, 이 인터넷에 대한 이야기를 해보자.
구글에서 인터넷이라고 검색해 보면, '나무위키'에 인터넷을 다음과 같이 정의하고 있다.
인터넷(Internet)은 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되어 있는 컴퓨터 네트워크 통신망을 일컫는 말이다. 그야말로 인류의 역사상 전례 없는 거대한 정보의 바다인 셈이다. 인터넷하면 흔히 웹이라고 줄여 부르는 월드 와이드 웹만 생각하기 쉽지만 인터넷은 월드 와이드 웹, 전자 메일, 파일 공유(토렌트, eMule 등), 웹캠, 동영상 스트리밍, 온라인 게임, VoIP, 모바일 앱 등 다양한 서비스들을 포함한다.
나무위키(https://namu.wiki/w/인터넷)
뭔가 말이 너무 어렵지 않나요?
이렇다 보니, 인터넷이 뭐냐고 물어보면, 대부분 제대로 얘길 하지 못한다.
나무위키에서 얘기하는 첫 문장부터 용어들이 너무 어렵다.
“인터넷 프로토콜 스위트(TCP/IP)”를 기반으로 한다는데 이게 뭐지? 시작부터 용어들이 너무 어렵다.
간단히 다르게 얘기해 보면,
인터넷은 전 세계적으로 연결된 네트워크 시스템을 말하는데, 하나의 거대한 통신망이라고 보면 된다.
더 쉽게 얘기하자면, 전 세계 컴퓨터들을 하나로 연결하는 거대한 컴퓨터 통신망이라고 할 수 있다.
이 얘기나 나무위키에서 하는 얘기나 별반 다를 거 없이 어렵다면 우리는 먼저 '통신을 한다'라는 것을 생각해 보자.
각각 다른 장소에 있는 두 사람이 통신을 한다면 대표적으로 전화와 문자를 생각할 수 있다.
물론 카톡을 이용하는 것도 포함이다.
그럼, 사람과 사물이 통신을 한다면 휴대폰으로 집에 설치해둔 보안 캠을 확인하거나, 에이컨이나 전등을 조작하는 일이 사람과 사물이 통신을 한다고 할 수 있다.
요즘은 스마트폰으로 자동차 시동을 걸고 끄고, 문을 닫고 열고 등의 제어를 하는 것도 사람과 사물이 통신을 하는 것이다.
사물과 사물이 통신을 하는 경우는 우리는 모르는 공간에서 지금 이 시간에도 엄청난 통신을 하고 있다.
이렇게 통신을 하기 위해서는 유선으로든 무선으로든 연결되어 있어야 하고, 이렇게 통신을 하기 위해 연결되어 있는 것들이 한두 개가 아니라 무수히 많은 사람과 사물이 긴밀하게 연결되어 있는데 이것을 '네트워크'라고 한다.
'네트워크'라는 말을 찾아보면 '그물'을 뜻하는 Net과 Work의 합성어로 '네트워크'라는 용어에 '그물'의 의미가 포함되어 있기 때문에 '네트워크망'이라는 얘기는 적절하지 않다고 생각한다. 오히려 '통신망'이라고 하거나 '네트워크'라고 얘기하는 것이 바람직할 것 같다.
'나무위키'에 인터넷을 시각화한 아래와 같은 이미지를 보면 그물과 같다는 느낌을 받을 수 있다.
요즘은 스마트폰이라고 하는 휴대전화도 하나의 컴퓨터로 생각하면 된다.
자동차에 들어가는 인포테인먼트 시스템들도 어찌 보면 하나의 컴퓨터다.
요즘은 각종 사물을 포함해 모든 것이 유선이든 무선으로 연결되어 있고 서로 통신이 가능하다.
그럼 네트워크(Network)가 인터넷(Internet) 인가?
그건 아니다. 네트워크는 인터넷보다 더 큰 개념이다.
통신이라는 것은 무엇이든 주고받는 것이다. 영어로는 커뮤니케이션이다.
소리를 보내고 받든, 사진을 보내고 받든, 문자를 보내고 받든, 전기적인 신호를 주고 받든 이런 것이 통신이다.
이렇게 통신을 하기 위해 보내는 사람과 받는 사람 사이에 약속이 필요하다.
가령, 언어로 얘기하면 우리는 영어로만 하자든지, 한국어로만 얘기하자든지, 서로 정보를 주고받기 위해 약속을 하게 되는데, 그 약속을 프로토콜(Protocol)이라고 한다.
네트워크 상에서 일어나는 통신에도 다양한 약속들을 기반으로 하고 있다.
그중에 인터넷(Internet)은 많은 프로토콜(약속) 중에 TCP/IP라는 약속을 기반으로 해서 통신을 하게 된다.
이제 나무위키의 정의를 다시 보면 이해 정도가 조금 달라졌을 거라 생각한다.
인터넷(Internet)은 인터넷 프로토콜 스위트(TCP/IP)를 기반으로 하여
전 세계적으로 연결되어 있는 컴퓨터 네트워크 통신망을 일컫는 말이다.
내 컴퓨터나 휴대폰이 네트워크에 연결되어 있으면 온라인(Online) 상태, 연결되어 있지 않으면 오프라인(Offline) 상태라고 얘기한다.
지금 이 포스팅을 보고 있다면 온라인(Online) 상태다.
웹(Web)이란?
이제 네트워크와 인터넷을 이해했고, 우리가 지금 하고 있는 이야기는 '웹 개발 이야기'인데 '웹 개발'이라고 할 때에도 '웹'이라는 용어를 사용하는데, 도대체 웹(Web)은 그럼 무엇인가?
웹은 World Wide Web의 약자로, '월드 와이드 웹'의 세 단어에 W가 들어가니, 줄여서 www라고 하거나, (W가 세개라서) W3라고도 부르지만 대부분 간단히 웹(Web)이라고 한다.
위키백과에 정리되어 있는 '월드 와이드 웹'에 대한 문서를 보면 다음과 같이 이야기하고 있다.
월드 와이드 웹(World Wide Web, WWW, W3)은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다. 간단히 웹(the Web)이라 부르는 경우가 많다. 이 용어는 인터넷과 동의어로 쓰이는 경우가 많으나 엄격히 말해 서로 다른 개념이다. 웹은 전자 메일과 같이 인터넷 상에서 동작하는 하나의 서비스일 뿐이다. 그러나 1993년 이래로 웹은 인터넷 구조의 절대적 위치를 차지하고 있다. 인터넷에서 HTTP 프로토콜, 하이퍼텍스트, HTML 형식 등을 사용하여 그림과 문자를 교환하는 전송 방식을 말하기도 한다.
https://ko.wikipedia.org/wiki/월드_와이드_웹
웹은 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할 수 있는 전 세계적인 정보 공간을 말한다.
이 포스팅도 하나의 정보라고 할 수 있다.
웹은 사람들이 이용하는 정보의 공간으로 생각해야 한다.
위키백과에서도 얘기하듯 '웹'을 '인터넷'과 같은 의미로 생각하는 사람들이 많겠지만 서도 다른 개념임을 알아야 한다. 개념적으로는 인터넷이 웹의 상위 개념이라 할 수 있다. 웹은 인터넷 속에서 동작하는 많은 통신 중에 하나라고 봐야 한다.
웹은 통신을 HTTP라는 프로토콜로 한다.
HTTP는 HyperText Transfer Protocol의 줄임말인데,
http://wishlan.tistory.com ←요 링크(주소)를 보면 http로 시작한다는 것을 알 수 있는데 이러한 방식으로 통신을 하며 정보를 주고받는 것을 웹(Web)이라고 한다는 것으로 이해해도 된다.
그런데 http://wishlan.tistory.com으로 브라우저 주소 표시줄에 입력하면 http가 아닌 https로 바뀌는 것을 알 수 있는데, http와 https에 대해서는 다음에 이야기하고자 한다.
다시 웹(Web)으로 돌아와서,
웹을 검색해 보면 "전 세계적으로 연결된 네트워크 시스템인 인터넷상에서 데이터를 주고받기 위한 프로토콜인 HTTP를 기반으로 만들어진 분산 하이퍼미디어 시스템이다."라고 정의하고 있다.
분산 하이퍼미디어 시스템이라는 어려운 말을 사용하는데 이 용어 대신에 '정보의 공간'이라고 보면
앞서 네트워크라는 것도 알아봤고, 프로토콜이 약속이라는 것도 알았고, HTTP도 프로토콜 중에 하나라는 것을 알았기에 이제 위와 같은 정의가 어렵지 않을 것이라 생각된다.
여기까지 인터넷(Internet)과 웹(Web)에 대한 이야기였습니다.
이제 겨우 시작이고, 앞으로 해야 할 이야기들이 참 많은데, 하나씩 서두르지 않고, 천천히 풀어헤쳐 볼 생각이다.
이제 앞서 언급되었던 HTTP부터 차근차근 알아보자.
HTTP(HyperText Transfer Protocol)란 무엇인가?
HTTP (HyperText Transfer Protocol) HTTP는 HyperText Transfer Protocol의 줄임말이다. 직역을 한번 해볼까요? ㅎㅎ '하이퍼텍스트(Hyptertext)를 교환하기 위한 프로토콜(규약=약속)' 정도로 해석이 되려나... ㅎㅎ H
wishlan.tistory.com
상기 상품 배너는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'코딩해보니 > 웹(Web)개발' 카테고리의 다른 글
인터넷과 웹의 동작 방식 (인터넷은 어떻게 구성되고 웹은 어떻게 동작하는가?) (1) | 2024.11.22 |
---|---|
HTTPS란 무엇인가? (1) | 2024.11.21 |
웹에서 요청(Request)과 응답(Response)는 무엇인가? (2) | 2024.11.20 |
HTTP(HyperText Transfer Protocol)란 무엇인가? (2) | 2024.11.19 |
웹 개발자를 준비하면서 가장 먼저 해야 하는 것은? (1) | 2024.11.17 |
댓글