개발

서버란 무엇인가

재근이 2021. 10. 4. 14:03
반응형

🚀서버

서버가 전혀 뭔지 모르는 사람이 나에게 물어보면 이렇게 대답한다.

서버: 무언가(?)를 제공해주는 프로그램(앱) 또는 컴퓨터

  • 웹 사이트 서버 : 우리가 방문하는 웹페이지를 제공해주는 프로그램 또는 컴퓨터
  • 게임 서버 : 멀티플레이 게임을 위해 여러 정보들 제공해주는 프로그램 또는 컴퓨터
  • 동영상 인코딩 서버 : 동영상의 포맷을 변경(인코딩)해주는 프로그램 또는 컴퓨터
  • 기타 서버 : 기타 치는 프로그램 또는 컴퓨터

 

🚈긴 글

이 글을 포스팅 하는 이유는 어릴 적 위와 같이 대답해 주는 사람이 없어서, 서버에 대해 명확하게 모르고 있던 기억이 나서 작성하게 됐다.

지금도 주변 개발자 친구들 또는 동료들에게 동일한 질문을 했을 때, 서버 쪽 개발과 관련이 없는 사람들은 개발자라고 해도 서버를 모르는 경우가 꽤 있었다.

 

🔙서버가 뭐야?

어릴적 주변 사람이 서버를 개발한다고 들으면 뭔가 어렵고 대단한 개발을 하는 거처럼 느꼈다. 임베디드나 윈도우 클라이언트 어플 개발로 코딩 공부를 시작하면서 서버에 대한 개념을 확실히 모른 채 서버란 단어를 사용하고 들어왔다. 난 윈도우 창 그리면서 놀고 있는데, 서버한다는 친구들은 검은 화면의  초록색 또는 흰색 글자들만 있는 화면에서 놀고 있었다.

이런 느낌?

그런 친구들에게 "서버가 뭐야?"라고 물으면 "서버가 서버지" 또는 "http 통신을 어쩌구... DB, 분산 과부하 통신 ..어쩌구" 등등 서버 개발 시 필요한 아직 들어보지 못한 용어들을 설명 듣곤 했다. 그래서 결국 서버가 뭐야라는 질문을 하고 나면 더 서버에 대한 이해를 못 했었다.

막연하게 뭔가 물음표 같은, 모르는 거 같지는 않지만 애매한 정의를 갖고 있었다.

어릴 땐 내가 아직 모르는 게 많아서 이해를 못 하는 줄 알았는데, 지금도 일하면서 개발자 동료들 중 몇몇 사람에게 서버 관련한 얘기를 하다 보면 어릴 적 내가 이해를 못 했던 것처럼 모르는 경우가 있었다

 

✍🏼개념적 용어: 서버

서버라는 게 단어 그대로 제공하는 무엇(?)이다. 그 무엇이 우리가 개발하는 프로그램이고 명확한 역할에 따라 서버가 해야 하는(개발자가 구현해야 하는) 일들이 있는 것이다.

실제 MDN의 서버의 정의 글

그냥 인터넷에 웹서버란 이라고 검색만 해도 위의 MDN 사이트의 글처럼 어려운 용어들로 더 혼란스럽게 만든다.

어려운 설명이 어렵다면 단순하게 "지금 보고 있는 웹페이지를 주는 프로그램"이라고 생각하는 것이 이해에 도움이 될 것이다.

어려운 Http, 네트워크, URL 등등의 이런 기술들의 용어들로 서버의 개념을 설명을 하는 게 아니라,

먼저 쉬운 서버의 개념을 설명하고 나서 기술들을 공부하고 이해를 해야지 반대로 설명하고 있기 때문에 이해하기 어렵게 느껴지지 않을까?

 

☝🏼아직도 모르겠다면!

아직도 모르겠다면, 한번 직접 만들어보면 정말 피부로 이해할 수 있을 것이다.

서버를 만든다는 거 자체가 어렵고 오래 걸리는 일이 아닐까 하는 걱정이 있다면, 그건 맞을 수도 있고 틀릴 수도 있다.

하지만 쉽게 만들 수 있는 프레임워크들이 많이 있기 때문에, 쉽게 만든다면 정말 뚝딱 몇 분 만에 만들 수 있다.

"[Node js] 서버 만들기 0 - 1분만에 Http 서버 만들기"를 따라 해본다면 정말 금방 이해할 수 있을 것이다.

 

[Node js] 서버 만들기 0 - 1분만에 Http 서버 만들기

📋요약 서버란 무엇인가에서 말한것과 같이 서버라는 게 무엇인지 피부로 느끼고 싶다면, 이 글에서 설명하는 1분만에 (Http) 서버 만들기를 따라하기를 바란다. 정말 짧은 시간안에 좋은걸 얻어

jaegeun.tistory.com

 

참고 사이트: https://developer.mozilla.org/ko/docs/Learn/Common_questions/What_is_a_web_server

반응형

'개발' 카테고리의 다른 글

[에러/해결]eslint, 보안 오류: (:) [], PSSecurityException  (0) 2021.10.11