💾 혼공학습단 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 주소들이 저장되어 있음
- 요청 처리 순서
- 사용자가 주소창에 www.naver.com을 입력하면 브라우저는 DNS에 IP 주소를 요청함
- DNS는 해당 도메인에 맞는 IP 주소를 찾아 브라우저에 전달함
- 브라우저는 해당하는 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. 요청 메소드와 응답 코드
- 메소드
- GET: 서버에 HTML 등의 문서나 이미지, 기타 각종 데이터를 요청함. 브라우저에서 웹사이트를 접속할 때 보내는 요청이며, API에서도 서버로부터 데이터를 가져오기 위해 사용함
- POST: 서버에 새로 저장될 자료를 보냄. 새 게시물을 작성할 떄 사용
- PUT: 특정 데이터 전체를 새로 저장함. 게시물을 수정할 때 사용
- PATCH: 특정 데이터를 일부만 수정함. 게시물의 조회수나 '좋아요' 수를 올릴 때 등에 사용함
- DELETE: 게시물 등 특정 데이터를 삭제함
- OPTIONS: 해당 URL이 어떤 메소드를 허용하는지 물어보기 위해 사용함
- 응답 코드
- 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에 비해 많이 떨어짐
- 장점
- CLI 환경이 컴퓨터 자원을 덜 소모함
- CLI 환경이 간편하고 정확함
- 네트워크 환경에서는 GUI보다 CLI가 더 적합함
3. 리눅스
- 오픈 소스 (소프트웨어의 소스 코드가 공개되어 있음)
- 리누스 토르발스
- 리눅스 배포판: 필요와 용도에 따라 기존 리눅스를 개량하여 새 버전을 만들어 공개함. 다양한 개량 버전을 '리눅스 배포판'이라고 부름
- 우분투
- 현재 가장 많이 사용되는 리눅스 버전
- GUI를 탑재한 데스크톱(클라이언트)용과 CLI로 동작하는 서버용으로 제공됨
- 데비안
- 레드햇 엔터프라이즈 리눅스
- 레드햇에서 개발한 유료 운영체제
- 개발을 위한 여러 가지 도구 및 기술 지원을 제공하기 때문에 실제 현업에서 가장 많이 사용되고 있음
- RHEL은 비용이 발생하지만, 그만큼 안정성을 보장받을 수 있기 때문에 일정 규모가 있는 기업에서 많이 사용함
- 센트OS와 로키 리눅스
- 유료인 RHEL을 기술 지원 없이 무료로 배포한 버전
- RHEL의 기술을 그대로 사용할 수 있다는 장점이 있음
- 센트OS의 지원이 종료되면서 이를 대신할 OS로, 로키 리눅스가 주목받고 있음
- 리눅스 민트
- 우분투 리눅스에서 파생한 배포판
- 화면 디자인 및 사용자 편의성을 크게 개선해서 리눅스에 입문하는 일반 사용자에게 주로 추천하는 운영체제
- 라즈베리 파이
- 데비안 계열의 오픈 소스 운영체제
- 초소형 컴퓨터인 라즈베리 파이 하드웨어에 최적화된 운영체제
- 데비안 패키지의 안정성과 성능을 가벼운 용량으로 사용할 수 있음
- 만자로 리눅스
- 쉽게 배우고 사용할 수 있는 인터페이스와 세련된 디자인, 패키지 설치의 용이성 등으로 큰 인기를 누리고 있음
4. 커널
- 커널(중심부)은 단어 뜻 그대로 운영체제의 핵심임
- 하드웨어와 응용 프로그램 사이에서 작동하며 컴퓨터에서 일어나는 모든 일을 통제함
- 소프트웨어가 하드웨어를 사용하기 용이하도록 인터페이스로 연결해 줌
- 사용자가 여러 프로그램을 원활히 사용할 수 있도록 작업 간 우선순위를 정해서 컴퓨터 자원을 효율적으로 분배함
5. 오픈 소스
- 누구든지 프로그램의 소스 코드를 살펴볼 수 있으며, 오류를 찾아 수정하거나 새로운 기능을 제안하는 방식으로 개발에 참여할 수 있음
- 기존의 소스 코드를 수정해서 다른 프로그램으로 출시하는 것도 가능함
기본 숙제(필수)
Ch.03 마무리 용어 정리하기(p.219)
- IP
- 데이터 통신 규약
- IP 주소는 PC나 스마트폰 같은 기기의 네트워크 주소임
- 도메인
- 사람이 기억하기 쉽도록 문자로 만들어 특정 IP에 연결한 인터넷 주소
- DNS
- IP 주소와 이에 해당하는 도메인의 IP 정보를 갱신하며, 특정 도메인에 대한 요청이 들어오면 IP 주소를 찾아 알려 주는 시스템임
- WWW
- 전 세계의 사람들이 정보를 공유하고 소통할 수 있는 인터켓 공간
- HTTP
- 클라이언트의 요청과 서버의 응답으로 이뤄지는 통신 규약임
- HTTPS
- HTTP에 보안 기능을 추가해서 보다 안전하게 만든 통신 규약
4주 차 후기
우분투를 거의 사용했었는데, 다양한 리눅스가 있다는 사실이 흥미로웠다.
그리고 오픈소스에 대해서 생각해보는 계기가 되었다.
개인이 소유할 수 있었음에도, 모두에게 공유하고 계속 발전을 거듭해나간다는 건 얼마나 멋진일인가.
언젠가는 나도 그럴 수 있는 사람이 되고 싶다는 바람과 함께 4주 차 끝.
한빛미디어 <혼자 공부하는 얄팍한 코딩 지식> 책 참고
300x250
'ETC > LEARN' 카테고리의 다른 글
[혼공얄코] 프로그래밍 용어 정리 끝 (6주 차) (0) | 2024.08.13 |
---|---|
[혼공얄코] 프로그래밍 용어 습득하기 (5주 차) (0) | 2024.08.06 |
[혼공얄코] 다양한 IT 용어 학습하기 (3주 차) (0) | 2024.07.16 |
[혼공얄코] 가깝지만 먼 AI에 대해 알아가기 (2주 차) (0) | 2024.07.11 |
[혼공얄코] 혼자 공부하는 얄팍한 코딩 지식 시작! 다시 혼공학습단! (0) | 2024.07.02 |