네트워크망에서 각자의 컴퓨터(노드)를 식별하기 위한 위치 주소
192.168.0.123
와 같이 생긴 숫자
-> 실제로는 32자리의 2진수로 이뤄져있음 ( 8비트인 각각의 영역을 '.'으로 구분 )
( 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111 )
192.168.0.123
└───┬────┘└─┬─┘
네트워크 호스트
주소 주소
( browser )
인터넷에서 웹 서버의 모든 정보를 볼 수 있도록 하고, 문서 검색을 도와주는 응용프로그램
( 네이버나 구글 같은 사이트에 접속할 수 있는 도구 )
Google Chrome
, Apple Safari
, Naver Whale
, Microsoft Edge
등
( Domain Name System )
웹사이트의 IP주소와 도메인 주소를 이어주는 시스템
( 도메인 주소를 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP주소로 바꾸고 해당 IP주소로 접속하는 과정이 필요함. 이 과정, 전체 시스템을 DNS라고 함 )
-> 길고 복잡한 IP주소를 외울 수 없기 때문에 사용함
역트리 구조로 최상위 루트(Root)부터 Top-Level Domain, Second-Level Domain, Third-Level Domain을 단계적으로 찾음
www.naver.com.
<-------------
뒤에서부터 찾음
.
: 맨 마지막에 붙은 .은 Root로서 생략함com
: Top-Level Domain ( TLD )naver
: Second-Level Domainwww
: Third-Level DomainLocal DNS
( 기지국 DNS )
기본적으로 인터넷을 사용하기 위해선 IP를 할당해주는 통신사(KT, SK, LG 등)에 등록을 해야 함
인터넷에 연결되면 가입한 각 통신사의 기지국 DNS 서버가 자동으로 등록됨
Root DNS
( 루트 네임서버 )
ICANN( 국제인터넷주소관리기구 )이 직접 관리하는 절대 존엄 서버
TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 함
TLD DNS Server
( 최상위 도메인 서버 )
도메인 등록 기관이 관리하는 서버
도메인의 가장 마지막 부분( .com , .co.kr 등 )을 관리하고 부여하는 서버
Authoritative DNS 서버 주소를 저장해두고 안내하는 역할
Authoritative DNS Server
( 권한 )
실제 개인 도메인과 IP주소의 관계가 기록, 저장, 변경되는 서버
( HyperText Transfer Protocol )
데이터를 주고 받는 양식을 정의한 정해둔 약속
, 통신 규약
HTTP에서는 언제나 Request(요청), Response(응답)라는 개념이 존재함
( 이미지 출처 : 항해99 )
( 호출 / 요청 방식 )
( 추가 데이터, 메타 데이터 )
다양한 의사 표현을 위한 데이터를 모두 포함하고 있으며 Method
도 Header
에 포함됨
( 실제 데이터 )
응답 : 서버가 응답을 보낼 때는 항상 Payload를 보낼 수 있음
요청 : 클라이언트가 요청을 할 때는 GET method 를 제외한 요청일 때 payload를 보낼 수 있음
( Representational State Transfer )
서버 api가 적절하게 http를 준수하며 잘 설계되어있음
Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 프레임워크
스프링으로 애플리케이션을 만들 때에 필요한 설정을 간편하게 처리해주는 별도의 프레임워크
( Layered Architecture Pattern = Multi-tier Architecture Pattern )
백엔드 API코드에 가장 널리 적용되는 패턴 중 하나로서,
코드를 논리적인 부분 혹은 역할에 따라 독립된 모듈로 나누어서 구성하는 패턴
( 이미지 출처 )
@Controller
( = Domain Layer = Service Layer )
@Service
( = Data Access Layer )
@Repository
( Object Relational Mapping ) - 객체 관계 매핑
프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구
객체지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델간의 불일치가 존재함
-> ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결함
( 객체를 통해 간접적으로 DB를 다룸 )
( Java Persistence API )
ORM을 사용하기 위한 인터페이스의 모음