OS는 커널, 라이브러리, 응용 프로그램 같은 수많은 요소가 뭉쳐서 이루어졌다면, 리눅스는 그 OS의 핵심인 커널 그 자체입니다만, 보통 리눅스를 지칭할때 이 커널 기반의 운영체제를 이야기합니다. 리눅스는 그 자체로는 전체 운영 체제가 이나리 단순히 하드웨어와 통신하는 핵심 컴포넌트일 뿐입니다. 리눅스란 하드웨어와 소프트웨어 간의 통신을 관리합니다. 리눅스 명령어는 백엔드 개발자라면 필수적으로 터미널을 다루게 됩니다. 평소에는 사용할 일이 거의 없기 떄문에 어색할 수 있습니다. 보통의 웹서버들, 아파치, IIS 또는 NGiNX 같은 서버들은 리눅스 환경에서 사용되기 때문입니다. 이 리눅스는 오랜 기간동안 개발되어 오며 전 세계적으로 많은 개발자들이 사용합니다. 안정적이고 보안문제에 대해 빠른 업데이트가 ..
웹 호스팅은 개인, 조직이 자신의 웹사이트를 인터넷에 게시할 수 있게 해주는 서비스다. 단순히 말하면, 웹 사이트의 파일과 데이터가 저장되는 서버 공간을 임대하는 것과 같다. 자신,기업의 웹사이트를 남들에게 서비스하려면 반드시 필요한 과정 중 하나인것이 바로 호스팅입니다. 공유 호스팅 : 이름에서도 알 수 있듯이, 여러 웹 사이트가 하나의 서버를 공유합니다. 비용이 저렴하나 속도가 느릴 수 있습니다. 전용 호스팅 : 웹사이트가 온전한 전용 서버를 가지게 됩니다. 빠르고, 안전하지만 비용이 높습니다. VPS(가상 사설 서버) 호스팅 : 공유 / 전용의 사이쯤에 위치하는 호스팅입니다. 서버는 공유되나 자원은 가상 서버로 나누어 개별로 유지됩니다. 클라우드 호스팅 : 하나의 서버 대신 웹사이트가 여러 연결된 ..
웹 브라우저에서 다양한 주소를 입력하고, 클릭하며 상호작용 하고 있습니다. 그렇게 다양한 웹 사이트에 접속하는데 이 주소의 핵심이 바로 도메인 이름입니다. 인터넷에 연결된 모든 컴퓨터가 가지는 고유한 IP주소는 무작위의 숫자 '192.0.1.2' 혹은 '2001:DB8:15A4:6124:0000:1338:03B1" 같은 무작위 주소입니다. 이러한 숫자들은 기억하기 어렵고, 시간마다 변경되는 경우도 있습니다. 이런 주소는 사용자 입장에서 상당히 번거롭기 때문에 이런 숫자대신 'naver.com' 'google.com' 같은 도메인 이름을 사용합니다. 도메인 이름 구조 도메인 이름은 여러 부분으로 구성되어 있습니다. 가장 기본적인 구성요소는 TLD(Top-Level Domain), 도메인의 이름이 가장 오른..
도메인 이름 시스템(Domain Name System)은 사람의 전화번호를 찾는 것 처럼, 컴퓨터 또한 DNS를 사용하여 웹사이트의 주소를 찾습니다. DNS는 "google.co.kr" 같이 기억하기 쉬운 주소를 이름으로 컴퓨터가 네트워크에서 서로를 식별하는데에 사용하는 IP주소로 변환됩니다. 왜 DNS를 사용하는가, 철저하게 유저입장에서 192.0.0.1 라는 규칙없는 번호를 기억하는 대신 'localhost.com' 을 기억하면 됩니다. DNS의 작동 과정 1. 사용자의 요청 : 브라우저에 URL을 입력 2. 브라우저 캐시 확인 : 도메인의 IP 주소를 이미 알고 있는지 캐시를 확인, 알고있다면 과정 종료 3. 운영 체제 캐시 확인 : 브라우저가 해당 정보를 모른다면 OS는 캐시를 확인 4. 라우터 ..
웹 브라우저 작동 방식 브라우저 화면에 google.com을 입력하면 구글 페이지가 표시될 때까지에 어떤 동작을 하는지 알 수 있습니다. 브라우저는 기본적으로 선택한 웹 리소스를 서버에 요청하여 브라우저 창에 표시하는 것입니다. 리소스의 위치는 사용자가 URI를 사용하여 지정합니다. 브라우저에서 HMTL 파일을 해석/표시하는 방법은 지정되어 있습니다. 웹 표준 기구(W3C) 에서 관리하고 있습니다. 보통 모든 방법을 지키진 않았고, 자체 확장 프로그램을 개발했는데 이는 지금 호환성의 문제들이 생긴 이유이기도 하다. 허나 브라우저의 공통 부분들 ( 뒤로가기 버튼, 주소표시줄, 북마크 기능 )은 공식 가이드문서에 있는 사항이 아니다. 그럼에도 동일한 부분들이 많은 이유는 수년간 사용했던 UX, UI가 고착화..
HTTP란 HTTP란 클라이언트와 서버가 서로 통신하는 방식을 표준화한 통신 프로토콜입니다. 인터넷을 통해 컨텐츠가 요청, 전송되는 방식을 정의합니다. TCP 포트는 80을 사용하지만, HTTPS는 443 포트를 사용합니다. HTTP는 컴퓨터가 아닌, 사람이 읽을 수 있게 간단하게 고안됐습니다. HTTP/2 에서 조금 더 복잡해 졌지만, 여전히 간결함을 유지하고 있습니다. 사람이 읽고 이해하기 쉬우며, 테스트하기 쉽게, 초심자의 진입장벽을 많이 낮췄습니다. 동일한 연결 상에서 연속하여 전달된 두 개의 요청에는 연결고리가 전혀 없습니다. 쇼핑 바구니처럼, 일관된 방식으로 페이지와 페이지간에 상호작용을 원할 때 문제가 됩니다. 하지만 HTTP 쿠키는 상태를 저장하는 세션을 만들도록 해줍니다. HTTP 연결은..
인터넷이 작동하는 원리 네트워크란, 서로 연결된 컴퓨터나 장치의 그룹을 뜻합니다. 이렇게 서로 연결된 컴퓨터나 장치의 그룹이 다시 한번 결합되는 것을 인터넷이라고 합니다. 즉, 인터넷이란 네트워크간의 네트워크입니다. 인터넷은 표준화된 프로토콜을 사용해서 작동합니다. 장치, 네트워크 간에 정보가 교환되는 방식을 정의함으로써 안정적이고 안전하게 전송되는 것을 보장합니다. 핵심은 서로 다른 장치와 시스템이 트래픽을 전달할때 담당하는 상호 연결된 라우터의 네트워크입니다. 인터넷을 통해서 데이터를 보내면 패킷으로 나누어 장치 -> 라우터로 전송되는데, 라우터는 이 패킷을 검사하여 다음 라우터로 전달하는 반복을 최종 목적지로 전달할 때 까지 계속하게 됩니다. 패킷이 올바르게 전송되고 수신되도록 하기 위해서 인터넷 ..
https://roadmap.sh/backend Backend Developer Roadmap: What is Backend Development? Learn what backend development is, what backend developers do and how to become one using our community-driven roadmap. roadmap.sh 인터넷 인터넷이란 https://nelapham.tistory.com/146 인터넷이란? 인터넷이 작동하는 원리 네트워크란, 서로 연결된 컴퓨터나 장치의 그룹을 뜻합니다. 이렇게 서로 연결된 컴퓨터나 장치의 그룹이 다시 한번 결합되는 것을 인터넷이라고 합니다. 즉, 인터넷이 nelapham.tistory.com HTTP란 htt..