IT/프로젝트

웹 개발_1일차

So1_b 2022. 1. 13. 11:08

배운 점

1. 백엔드  rest API를 이용해 http요청
2. ec2가 제공하는 퍼블릭 도메인을 이용해 배포
3. rest API는 스프링 부트로 개발
4. 프론트 엔드 애플리케이션 개발 시 프론트엔드 서버는 react.js으로 애플리케이션을 반환 (백엔드와 프론트엔드를 분리)


? 도메인
1) Domain (도메인)
네트워크 상 각각의 컴퓨터를 식별하기 위해 고유의 숫자가 부여됨(= IP주소 ex)192.168.1.0)
사용성을 높이기 위해 문자의 주소로 사용하는데 이것을 도메인/도메인 네임이라고 함. ex) www.example.com

2) 도메인의 구조
.(닷)을 기준으로 계층별 나뉘어짐. 3단계 도메인.2단계 도메인.1단계 도메인 순으로 배열.

- 1단계 도메인:
어느 기관이 관리하는지에 따라 국가 코드 도메인과 일반 도메인으로 나뉨
국가기관이 관리 > 국가 코드 도메인, 일반 회사가 관리> 일반 도메인

ex) 예시
국가 코드 도메인: 'kr', 'uk' 등
일반 도메인: 'com' 회사, 'org' 공식적 단체기관, 'EDU' 교육, 'GOV' 정부 기관, 'net' 단체/기관 등


- 하위 도메인 (서브 도메인/2단계 도메인):
조직의 목적을 나타냄. 도메인 등록 기관에 등록되어 있는 하나의 루트 도메인을 목적에 맞게 여러개로 쪼개고 싶을 때 사용함.

ex) 예시
'co' 영리 기업, 'go' 정부 기관, 'ac' 대학 등
다음의 루트 도메인 'daum.net' 뉴스 서비스 도메인은 'news.daum.net'  사전 서비스 도메인 'dic.daum.net'
이렇게 목적에 따라 여러개로 나눔

3단계 도메인: 조직/ 서비스 이름을 나타냄. 영문자 [A-Z][a-z] 숫자 [0-9] 하이픈 [-]만 사용가능
영문자의 대소문자 동일 취급 (규칙 참고 https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/infoboard/law/pastRulePop.jsp? bNo=211&dNo=17000 )


도메인에 따라 www, ftp 등으로 나뉨 웹 사용이 증가하면서 www을 생략하기도 함.
- 컴퓨터 이름
인터넷을 tcp/ip프로토콜을 사용하고 용도에 따라 나눔

* 국가 코드 도메인은 2~3단계 도메인 구성 가능 일반 도메인은 2단계 도메인으로 구성 가능함.
www.daum.net은 일반 도메인으로 2단계 도메인임.

3) 질의 원리
각각 계층 별 네임서버가 분산되어 있음.
상위 계층의 네임 서버(DNS)는 하위계층의 도메인 정보를 관리

ip검색 > ip주소를 알고있는 루트네임서버에 접속 > 계층에 맞게 질의 과정을 반복 > ip에 맞는 도메인 찾아 전달
* DNS: ip와 도메인을 저장하고 맵핑하는 DB

4) 도메인 네임 레지스트리 == 도메인 레지스트리
최상위 도메인에 등록된 모든 도메인 네임 DB

5) 장점
여러 ip를 한 도메인에 연결 가능(서브 도메인: 주 도메인의 일부 도메인)
여러개의 도메인을 한 ip로 연결 가능 (가상 호스트)

참고 사이트:
https://better-together.tistory.com/128

쉽게 이해하는 네트워크 15. 도메인 의미와 계층 구조 및 DNS 네임 서버(ft. 도메인의 가치)

도메인과 DNS 네임 서버의 이해 도메인이란? 앞서 우리가 인터넷에서 구글이나 네이버가 제공하는 웹 서비스를 이용할 수 있는 것은 구글이나 네이버가 만든 웹 서버에 누구나 접속할 수 있도록

 

참고 사이트
better-together.tistory.com
https://gentlysallim.com/%EB%8F%84%EB%A9%94%EC%9D%B8-%EC%9D%B4%EB%A6%84%EA%B3%BC-%EC%A2%85%EB%A5%98-%EC%B5%9C%EC%83%81%EC%9C%84-%EB%8F%84%EB%A9%94%EC%9D%B8%EB%B6%80%ED%84%B0-%EC%84%9C%EB%B8%8C%EB%8F%84%EB%A9%94%EC%9D%B8/#3


gentlysallim.com
https://ko.wikipedia.org/wiki/%EB%8F%84%EB%A9%94%EC%9D%B8_%EB%84%A4%EC%9E%84_%EB%A0%88%EC%A7%80%EC%8A%A4%ED%8A%B8%EB%A6%AC


? HTTP
1) W3상에서 서버와 클라이언트가 정보를 주고 받을 수 있는 tcp기반으로 만들어진 프로토콜(통신규약)
url이 http:으로 시작한다.

* W3: 인터넷 서비스 중 하나로,  연결되어 있는 컴퓨터끼리 정보를 전달하거나 검색할 수 있는 공간.
* tcp: 근거리 통신망/인터넷에 연겨뢴 컴퓨터가 옥텟(8비트)을 안정적으로 교환할 수 있도록 함. (ip가 출발지와 도착지의 주소라면 tcp는 출발지, 도착지 포트)

http 메서드와 api를 연결해야 함
http의 응답 바디에 json을 넣어 전달. 응답받은 애플리케이션은 응답 바디에 json을 꺼내 변환 후 사용
json이란 데이터를 주고 받을 때 수신자 발신가 보두 이해가능하도록 데이터를 일정한 규칙대로 변환한 문자열
ec2 > 클라우드에서 확장가능한 컴퓨팅 용량
가상의 서버를 구축하고 스토리지를 확장 및 축소 등 관리 가능
aws: 프론트 엔드, 백엔드 애플리케이션이 실행될 프로덕션 환경 구축 가능하게 하는 클라우드 플랫폼
* 클라우드 플랫폼: it리소스를 온디맨드(필요한 만큼 주문하고 비용 지불)형식으로 제공하는 것.
기능 ) 컴퓨팅, 스토리지, DB 등 관련 서비스와 서비스 내 기능을 제공.
직접 관리 ㄴㄴ 네트워크를 통해 필요에 따라 액세스 가능




? 서버
지정된 포트에 클라이언트가 연결할때까지 무한 대기하는 프로그램. 클라이언트로 부터 연결되면 클라이언트 소켓에서 요청을 받아 수행해 전달.
어떤 프로토콜을 사용하는지에 따라 http서버 ftp서버 등 종류가 나뉘어짐.

1) 정적 웹 서버
대표적으로 아파지, Nginx
클라이언트로 부터 요청받으면 지정된 경로로 이동해 리소스를 그대로 전달
개발자는 지정된 경로에 리소스 연결하면 끝

2)  동적 웹 서버
요청을 처리한 후 결과에 따라 응답 바디를 재구성.
클라이언트가 누군지, 어떤 매개변수인지에 따라 다른 응답을 받을 수 있음.
대표적으로 아파지 톰캣