본문 바로가기
ETC/LEARN

[혼공얄코] 요청 메소드와 응답코드, 리눅스에 대한 학습 (4주 차)

by 아이엠제니 2024. 7. 23.

 

💾 혼공학습단 12기


 

 

 

 

 

챕터 3. 개발자와 소통하기: IT 업계 용어 알기

03-6 IP는 뭐고 HTTPS는 뭐죠?

 

1. IP 주소


  • IP 주소: 기기와 연결된 네트워크 끝 단의 주소
  • IP(Internet Protocol)의 약자
  • IPv4: 0부터 255까지의 숫자가 네 마디로 구분되는 방식이 현재 주로 사용하는 방식
  • IPv6: 0~F로 표현하는 16진수를 4자리 숫자 8개로 표현함
  • 공인 IP 주소: 지구상 어느 것과도 중복되지 않은 고유 IP, 인터넷 서비스 제공업체에 의해 회사나 개인에게 부여됨
  • 사설 IP 주소: IPv4 방식의 공인 IP 주소가 부족해지면서 기기에 서로 다른 주소를 할당할 수 없기 떄문에 생긴 개념
  • 고정 IP 주소: IP 주소가 영구적으로 할당되어 변경되지 않는 주소를 의미함
  • 유동 IP 주소: 기기에 고정적으로 IP를 부여하지 않고 남아 있는 IP 주소를 골라 그때 그때 기기에 할당하는 방법

 

2. 도메인과 DNS 


  • 도메인: IP 주소를 이름처럼 사용할 수 있는 것
    • 도메인은 도메인 등록 대행업체를 통해 구입함
  • DNS
    • Domain Name System의 약자
    • 전세계의 도메인과 각각의 도메인에 연결된 IP 주소들이 저장되어 있음
    • 요청 처리 순서
      1. 사용자가 주소창에 www.naver.com을 입력하면 브라우저는 DNS에 IP 주소를 요청함
      2. DNS는 해당 도메인에 맞는 IP 주소를 찾아 브라우저에 전달함
      3. 브라우저는 해당하는 IP 주소의 웹 서버에 연결함

 

3. WWW, HTTP


  • https = 통신규약
    • 어떤 종류의 통신이 이뤄질 것인가를 결정함
  • www = 호스트명
    • 이 자리에 mail, map, shopping 등 다른 호스트가 들어올 수 있음
  • com, co.kr, .edu = 도메인

 

  • WWW
    • World Wide Web의 줄임말, W3
    • 인터넷에 연결된 컴퓨터를 통해 전 세계의 모든 사람이 정보를 공유하고 소통할 수 있는 인터넷 공간
  • HTTP
    • http:// , https:// 통신 규약
    • HTTP는 클라이언트의 요청과 서버의 응답으로 구성된 방식임

 

4. HTTPS


  • HTTP의 취약점을 보완하기 위해 만들어진 것
  • 인증서가 확인된 웹사이트는 주소창에 자물쇠 표시로 HTTPS를 사용하는 곳임을 나타냄
  • 웹사이트 노출이 HTTP보다 유리함 (검색 엔진 최적화, SEO)

 

5. 요청 메소드와 응답 코드


postman
get
post

 

  • 메소드
    • GET: 서버에 HTML 등의 문서나 이미지, 기타 각종 데이터를 요청함. 브라우저에서 웹사이트를 접속할 때 보내는 요청이며, API에서도 서버로부터 데이터를 가져오기 위해 사용함
    • POST: 서버에 새로 저장될 자료를 보냄. 새 게시물을 작성할 떄 사용
    • PUT: 특정 데이터 전체를 새로 저장함. 게시물을 수정할 때 사용
    • PATCH: 특정 데이터를 일부만 수정함. 게시물의 조회수나 '좋아요' 수를 올릴 때 등에 사용함
    • DELETE: 게시물 등 특정 데이터를 삭제함
    • OPTIONS: 해당 URL이 어떤 메소드를 허용하는지 물어보기 위해 사용함

200
401

  • 응답 코드
    • 1XX: 요청을 성공적으로 받았으며 서버가 해당 작업을 진행 중임
    • 2XX: 요청을 성공적으로 받았으며 요청이 이루어졌음
      • 200: 요청이 성공적으로 처리됨
      • 204: 성공적으로 처리되었지만, 답장에 적어 보낼 내용은 없음
      • 206: 요청에서 지정한 대로, 일부 콘텐츠만 보냄
    • 3XX: 요청을 수행하기 위해서는 해당 요청을 다른 주소로 보내는(redirection) 등 추가 조치가 필요함. 자료의 위치가 변경되어 새 URL로 자동 이동시켜줄 때 사용함
    • 4XX: 클라이언트 요청에 문제가 있기 때문에 수행할 수 없음
      • 401: Unauthorized - 로그인이 필요한 요청인데 로그인되어 있지 않음
      • 403: Forbidden - 로그인되어 있지만 요청을 보낼 권한이 없음
      • 404: Not Found - 요청에 해당하는 데이터가 없음 또는 URL이 잘못되었을 때 등에 나타남
    • 5XX: 요청에는 문제가 없지만, 서버에 이상이 있어 응답할 수 없음
      • 500: 서버 내부에 오류 발생
      • 502: 서버 과부하 또는 기타 네트워크 문제로 통신이 제대로 되지 않음

 

 

 

03-7 디지털 시대, 데이터와 데이터베이스의 이행

1. 데이터와 데이터베이스


  • 데이터: 어떤 의미나 목적 없이 단순히 수집된 순수한 '자료'를 뜻함
  • 정보: 이런 데이터가 모여서 의도나 목적에 분석되어 의미가 부여되면 정보가 됨
  • 데이터베이스: 소프트웨어를 통해 데이터를 저장하고 읽고 수정하거나 삭제할 수 있는 형태의 데이터 집함을 의미함

 

2. DBMS


  • 데이터베이스 관리 프로그램
  • 많은 양의 데이터를 효과적으로 관리하기 위한 여러 가지 기능을 갖추고 있음
  • 특정 데이터를 저장, 조회, 삭제, 수정할 수 있음
  • 오라클, MySQL, MongoDB, 레디스 등

 

3. 관계형 데이터베이스


  • Relational Database Management System: 관계형 데이터베이스 관리 시스템
  • 테이블(표)에 데이터를 저장하는 방식으로 데이터베이스를 관리함
  • 종류
    • 오라클 데이터베이스
      • 대형 기업 사이에서 가장 널리 사용되는 관계형 데이터베이스
      • 오라클에서 만든 제품
      • 은행이나 대기업에서 사용할 만큼 강력한 기능과 안정성을 자랑함
      • 유료
    • 마이크로소프트 SQL 서버
      • MSSQL
      • 마이크로소프트에서 만듦
      • 윈도우 서버에서만 구동 가능
      • C#과 높은 호환성 가짐
      • 라이선스별로 금액이 다르며, 가용 범위도 다름
    • PostgreSQL (포스트그레스큐엘)
      • 무료
      • 다양한 데이터 타입을 지원하며, 객체지향 프로그램밍을 적용할 수 있음
    • MariaDB (마리아디비)
      • 무료
      • MySQL과 높은 호환성을 가짐
    • SQLite (에스큐엘라이트)
      • 클라이언트에서 작동하는 용도로 만들어짐
      • 비교적 가벼운 데이터베이스
      • 안드로이드와 iOS에 포함되어 있으며 응용 프로그램 실행에 필요한 데이터를 기기 내에서 관리하는 데 사용됨

 

4. SQL


  • SQL (구조화 질의 언어, Structured Query Language)
  • 영어 문장과 같은 구조로 되어 있어 비교적 직관적으로 명령의 의미를 파악할 수 있음

 

5. NoSQL


  • SQL을 사용하지 않는다는 의미
  • 종류
    • 문서 데이터베이스
      • 데이터를 문서의 형태로 저장함
      • XML이나 JSON과 비슷한 형태의 문서로 저장함
      • MongoDB, CouchDB
    • 키-값 데이터베이스
      • 키와 값의 쌍만을 저장하는 단순한 형태의 데이터베이스임
      • 기능은 한정되어 있지만 실행 속도가 빠르며, 용량 부족 시 다른 서버와의 분담이 용이한 수평 확장성을 갖고 있음
      • 레디스, 아마존 다이나모 DB, 멤캐시드 등
    • 그래프 데이터베이스
      • 여러 노드(node)와 그들 간의 관계를 뜻하는 엣지(edge)로 구성된 자료 구조를 뜻함
      • 각 노드의 정보인 프로퍼티(property)를 더해서 데이터로 저장함
      • Neo4j, JanusGraph 등

 

 

 

03-8 개발자들은 왜 리눅스를 좋아하나요?

 

1. 운영체제


  • CPU, 메모리, 그래픽 카드 등의 기기들을 가동하고 제어해서 사용자가 컴퓨터로 각종 작업을 할 수 있는 환경을 마련함
  • 하드웨어 기기와 사용자를 연결하고 중재하는 역할을 운영체제가 함
  • PC용: 마이크로소프트의 윈도우, 애플의 맥OS, 리눅스
  • 모바일용: 구글 안드로이드, 애플 iOS
  • 스마트워치용 WearOS, WatchOS / 초소형 컴퓨터를 위한 라즈베리 파이 OS 등

 

2. GUI vs CLI


  • GUI (Graphic User Interface)
    • 그래픽으로 구성된 사용자 인터페이스
    • 그래픽 요소들을 사용해서 사용자와 상호 작용하는 것
    • 아이콘, 툴바, 버튼, 메뉴창, 탐색기나 파인더처럼 직관적이고 알기 쉬운 그림 요소로 구성되어 있음
  • CLI (Comman Line interpreter)
    • 명령줄에 텍스트를 입력함으로써 컴퓨터에 일을 시키는 환경
    • CLI 환경에 따른 기본 명령어를 알고 있어야 하기 때문에 진입 장벽이 높으며, 일상에서의 활용도도 GUI에 비해 많이 떨어짐
    • 장점
      1. CLI 환경이 컴퓨터 자원을 덜 소모함
      2. CLI 환경이 간편하고 정확함
      3. 네트워크 환경에서는 GUI보다 CLI가 더 적합함

 

3. 리눅스


  • 오픈 소스 (소프트웨어의 소스 코드가 공개되어 있음)
  • 리누스 토르발스
  • 리눅스 배포판: 필요와 용도에 따라 기존 리눅스를 개량하여 새 버전을 만들어 공개함. 다양한 개량 버전을 '리눅스 배포판'이라고 부름
  • 우분투
    • 현재 가장 많이 사용되는 리눅스 버전
    • GUI를 탑재한 데스크톱(클라이언트)용과 CLI로 동작하는 서버용으로 제공됨
    • 데비안
  • 레드햇 엔터프라이즈 리눅스
    • 레드햇에서 개발한 유료 운영체제
    • 개발을 위한 여러 가지 도구 및 기술 지원을 제공하기 때문에 실제 현업에서 가장 많이 사용되고 있음
    • RHEL은 비용이 발생하지만, 그만큼 안정성을 보장받을 수 있기 때문에 일정 규모가 있는 기업에서 많이 사용함
  • 센트OS와 로키 리눅스
    • 유료인 RHEL을 기술 지원 없이 무료로 배포한 버전
    • RHEL의 기술을 그대로 사용할 수 있다는 장점이 있음
    • 센트OS의 지원이 종료되면서 이를 대신할 OS로, 로키 리눅스가 주목받고 있음
  • 리눅스 민트
    • 우분투 리눅스에서 파생한 배포판
    • 화면 디자인 및 사용자 편의성을 크게 개선해서 리눅스에 입문하는 일반 사용자에게 주로 추천하는 운영체제
  • 라즈베리 파이
    • 데비안 계열의 오픈 소스 운영체제
    • 초소형 컴퓨터인 라즈베리 파이 하드웨어에 최적화된 운영체제
    • 데비안 패키지의 안정성과 성능을 가벼운 용량으로 사용할 수 있음
  • 만자로 리눅스
    • 쉽게 배우고 사용할 수 있는 인터페이스와 세련된 디자인, 패키지 설치의 용이성 등으로 큰 인기를 누리고 있음

 

4. 커널


  • 커널(중심부)은 단어 뜻 그대로 운영체제의 핵심임
  • 하드웨어와 응용 프로그램 사이에서 작동하며 컴퓨터에서 일어나는 모든 일을 통제함
  • 소프트웨어가 하드웨어를 사용하기 용이하도록 인터페이스로 연결해 줌
  • 사용자가 여러 프로그램을 원활히 사용할 수 있도록 작업 간 우선순위를 정해서 컴퓨터 자원을 효율적으로 분배함

 

5. 오픈 소스


  • 누구든지 프로그램의 소스 코드를 살펴볼 수 있으며, 오류를 찾아 수정하거나 새로운 기능을 제안하는 방식으로 개발에 참여할 수 있음
  • 기존의 소스 코드를 수정해서 다른 프로그램으로 출시하는 것도 가능함

 

 

 

 

 

기본 숙제(필수)


Ch.03 마무리 용어 정리하기(p.219)
  1. IP
    1. 데이터 통신 규약
    2. IP 주소는 PC나 스마트폰 같은 기기의 네트워크 주소임
  2. 도메인
    1. 사람이 기억하기 쉽도록 문자로 만들어 특정 IP에 연결한 인터넷 주소
  3. DNS
    1. IP 주소와 이에 해당하는 도메인의 IP 정보를 갱신하며, 특정 도메인에 대한 요청이 들어오면 IP 주소를 찾아 알려 주는 시스템임
  4. WWW
    1. 전 세계의 사람들이 정보를 공유하고 소통할 수 있는 인터켓 공간
  5. HTTP
    1. 클라이언트의 요청과 서버의 응답으로 이뤄지는 통신 규약임
  6. HTTPS
    1. HTTP에 보안 기능을 추가해서 보다 안전하게 만든 통신 규약

 

 

 

4주 차 후기


우분투를 거의 사용했었는데, 다양한 리눅스가 있다는 사실이 흥미로웠다.

그리고 오픈소스에 대해서 생각해보는 계기가 되었다.

개인이 소유할 수 있었음에도, 모두에게 공유하고 계속 발전을 거듭해나간다는 건 얼마나 멋진일인가.

언젠가는 나도 그럴 수 있는 사람이 되고 싶다는 바람과 함께 4주 차 끝.

 

 

 

 

 

한빛미디어 <혼자 공부하는 얄팍한 코딩 지식> 책 참고

 

 

 

 

 

300x250