- DNS와 관련된 개념을 파악한다.
- 도메인
- 도메인 네임
- 도메인 네임 시스템 (DNS)
- DNS의 구성 요소를 파악한다.
- 도메인 네임 스페이스 (로드맵 도메인 네임은 무엇일까요? Part)
- 네임 서버 ( = DNS 서버)
- Resolver ( = Local DNS)
- DNS의 동작 원리를 이해한다.
- 도메인 : 각 IP에 이름을 부여하는 것
- 도메인 네임 : DNS를 통해 부여된 이름
- ex1) 223.130.195.95 : naver.com
- ex2) 142.250.207.110 : google.com
- 도메인 네임 시스템 : 도메인 네임을 IP 주소로 변환하는 시스템
도메인 네임 스페이스(Domain Name Space)❗
- DNS가 관리하는 데이터베이스로서, 도메인 네임을 관리하기 위한 규칙
도메인 네임은 다음과같은 계층적 구조를 지닌다.
- Root : 최상위에 위치하며
.
으로 표현하고, 생략 가능한 형태이다.- TLD(Top Level Domain) : 도메인 네임의 목적, 종류 또는 국가를 나타낸다.
ex).com
.net
.kr
.us
- SLD(Second Level Domain) : 도메인 네임의 성격을 나타내며, 위 사진과같이 존재하지 않을수도 있다.
ex).co
: 영리 목적의 단체.go
: 정부 기관- Subdomain : 임의로 지정하는 사이트 이름
ex)naver
daum
네임 서버(Name Server)
- DNS 서버와 같은 말로, 도메인 네임에 해당하는 IP주소를 알려준다.
도메인 네임 스페이스의 구조 정보를 가진 서버로서, 다음과같은 구성을 지닌다.
- Root DNS 서버 : TLD DNS 서버의 IP를 저장하고 안내한다.
- TLD DNS 서버 : SLD DNS 서버의 IP를 저장하고 안내한다.
- SLD DNS 서버 : Subdomain DNS 서버의 IP를 저장하고 안내한다.
- 리졸버
리졸버(Resolver)
- Local DNS와 같은 말로, 클라이언트가 브라우저를 통해 보낸 요청을 네임 서버에게 전달하고, 받은 응답을 다시 클라이언트에게 전달한다.
- DNS의 동작 순서는 다음과 같다.
- 클라이언트가 주소창에 도메인 네임을 입력하면, 리졸버에게 전달된다.
- 리졸버는 도메인 네임의 IP를 Root DNS server에게 묻는다.
- Root DNS server는 리졸버에게 해당하는 TLD DNS server를 안내한다.
- 리졸버는 도메인 네임의 IP를 TLD DNS server에게 묻는다.
- TLD DNS server는 리졸버에게 해당하는 SLD DNS server를 안내한다.
- 리졸버는 도메인 네임의 IP를 SLD DNS server에게 묻는다.
- SLD DNS server는 리졸버에게 해당하는 Subdomain DNS server를 안내한다.
- 리졸버는 도메인 네임의 IP를 Subdomain DNS server에게 묻는다.
- subdomain DNS server는 도메인 네임의 IP를 알려준다.
- 리졸버는 클라이언트에게 IP를 알려준다.
- 와닿는 예시로 한 번 더 알아보자.
- 주소창에
www.google.co.kr
입력- 리졸버가 Root server에게, "
google.co.kr
의 IP 알고있니?"- Root server : "아니, 하지만
.kr
를 관리하는 TLD server를 알려줄게."- 리졸버가 TLD server에게, "
google.co.kr
의 IP 알고있니?"- TLD server : "아니, 하지만
.co
를 관리하는 SLD server를 알려줄게."- 리졸버가 SLD server에게, "
google.co.kr
의 IP 알고있니?"- SLD server에게, "아니, 하지만
- 리졸버가 Subdomain server에게, "
google.co.kr
의 IP 알고있니?"- Subdomain server : "응, IP는
142.250.207.110
이야."- 리졸버는 클라이언트에게 IP를 전달한다.
인터넷
인터넷 작동 원리HTTP란?브라우저 동작 원리DNS 작동 원리도메인 네임이란?- 호스팅이란?
기본적인 프론트엔드 지식- HTML
- CSS
- JavaScript
OS 및 일반적인 지식- 터미널 사용방법
- OS 작동 방식
- 프로세스 관리
- 스레드와 동시성
- 기본적인 터미널 명령어
- 메모리 관리
- 프로세스간 통신 (IPC)
- 입출력 관리
- POSIX 기초
- 기본적인 네트워크 개념
버전 관리- Git 기본 사용법
DataBase- PostgreSQL (변경 가능성 있음)
- MongoDB
DataBase 상세 정보- ORM
- ACID
- Transaction
- N + 1 Problem
- DataBase 정규화
- Index와 작동 방식
API- 인증
- REST
- JSON APIs
캐싱- CDN
- Server side
- Client side
웹 보안 지식- MD5, SHA family, scyrpt, bcrypt
- HTTPS, CORS, SSL/TL, 보안 정책
Testing- 통합 테스트
- 단위 테스트
- 기능 테스트
- CI/CD
개발과 설계 원칙- SOLID
- KISS
- YAGNI
- DRY
아키텍처 패턴- 모놀로틱 앱
- 마이크로서비스
- SQA
- Serverless
검색 엔진- ElasticSearch
메세지 브로커- RabbitMQ, Kafka
컨테이너화 vs 가상화- Docker
GraphQL- Apollo
- 웹 소켓
- 웹 서버
확장성- 측정, 모니터링, 원격측정
- 마이그레이션 전략
- 수평적 확장 vs 수직적 확장
- 관찰 가능성을 고려한 확장
DNS (Domain Name System) 개념 및 동작 원리
DNS란? (도메인 네임 시스템 개념부터 작동 방식까지)
도메인 네임은 무엇인가요?