02.03 웹 동작방식 이해하기
2023. 2. 3. 12:35ㆍ개발일지
IP
- 거대한 네트워크망에서 사람들의 컴퓨터를 식별하기 위한 위치 주소
브라우저
- 우리가 사용하고 있는 크롬, 사파리, 엣지와 같이 웹페이지, 이미지, 비디오등의 컨텐츠를 송/수신하고 표현해주는 소프트웨어
DNS
- 인터넷의 DNS 시스템은 이름과 숫자 간의 매핑을 관리하여 마치 전화번호부와 같은 기능을 합니다. DNS 서버는 이름을 IP 주소로 변환하여 도메인 이름을 웹 브라우저에 입력할 때 최종 사용자를 어떤 서버에 연결할 것인지를 제어합니다. 이 요청을 쿼리라고 부릅니다.
HTTP
- HTTP는 Hyper Text Transfer Protocol의 두문자어로, 인터넷에서 데이터를 주고받을 수 있는 프로토콜입니다. 프로토콜은 규칙이라고 생각하시면 됩니다. 이렇게 규칙을 정해두었기 떄문에, 모든 프로그램이 이 규칙에 맞춰 개발해서 서로 정보를 교환할 수 있게 된 것입니다.
API(application programming interface)
- 다른 소프트웨어 시스템과 통신ㅇ하기 위해 따라야 하는 규칙을 정의합니다.
- 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성합니다.
ex) 근무시간 기록 애플리케이션은 직원의 전체 이름과 날짜 범위를 요청하는 API를 표시합니다. 이 정보가 수신되면 내부적으로 직원의 근무 시간 기록을 처리하고 해당 날짜 범위에서 근무한 시간을 반환합니다. - 웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 생각할 수 있습니다.
인터페이스(interface)
- 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면 입니다.
- 사용자가 쉽게 동작시키는데 도움을 주는 시스템을 의미하며, 컴퓨팅에서 컴퓨팅 시스템끼리 정보를 교환하는 공유 경계입니다.
- 아직 설명이 이해가 안되면, 하나의 "약속"이자, 서로 다른 에플리케이션 간에 약속한 방식으로 요청을 하면 정해진 결과물, 즉 요청을 받아 응답을 돌려주는 식당의 점원이라고 비유적으로 이해하셔도 좋을 것 같습니다.
REST(Representational State Transfer)
- API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처입니다. REST는 처음에 인터넷과 같은 복잡한 네트워크에서 통신을 관리하기 위한 지침으로 만들어졌습니다. REST 기반 아키텍처를 사용하여 대규모의 통신을 안정적으로 지원할 수 있습니다. 쉡게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있습니다.
- API 개발자는 여러 가키텍처를 사용하여 API를 설계할 수 있습니다. REST 아키텍처 스타일을 따르는 API를 REST API라고 합니다. REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 합니다. RESTful API라는 용어는 일반적으로 RESTful 웹 API를 나타냅니다. 하지만 REST API와 RESful API라는 용어는 같은 의미로 사용할 수 있습니다.
(여기서 HTTP메서드는 GET, POST, PUT등을 의미합니다.)
데이터베이스 사용하는 이유
- 데이터를 더 많이 저장하기 위해서가 아니라, 저장 조회 수정 삭제등을 더 빠르고 효율적으로 처리하기 위해서, “성능상의 이점”을 얻기 위해서 사용합니다.
결론
- 서버 개발에서 그래도 가장 많이 하는 일은, "새로운 정보"와 "기존의 정보"를 가지고 "정해진 로직"을 수행하는 일 입니다.
- 위와 같은 이야기를 하기 위해서
- 기존에 알고 있던 웹 프로그램이 어떻게 동작하는지를 살펴봤고
- 어떻게 새로운 정보인 클라이언트의 요청이 서버로 도달하는지를 살펴봤고
- 어떻게 기존의 정보를 저장하는지를 살펴봤습니다.
'개발일지' 카테고리의 다른 글
02.03 Database 와 SQL (0) | 2023.02.03 |
---|---|
02.03 SpringBoot 및 서버 이해 (0) | 2023.02.03 |
02.02 시험 풀이 (0) | 2023.02.02 |
02.02 시험 (0) | 2023.02.02 |
02.02 복습 (0) | 2023.02.02 |