국비교육

국비지원 74일차 (스프링 - 복습)

재밌는개발러 2023. 11. 7. 20:54

※이번에는 스프링 프레임워크를 배우면서 잘 몰랐던 용어 들에 대해 찾아보도록 할 것입니다.

※ 도메인

1. 도메인

 1) 도메인은 인터넷에 연결된 컴퓨터를 사람이 쉽게 기억하고 입력할 수 있도록 문자(영문, 한글 등)로 만든 인터넷주소입니다.

 2) URL의 한 부분으로 URL 은 해당 페이지의 "전체주소"이며 일반적으로 프로토콜 도메인 이름 및 경로로 구성된다.

 

2. 도메인의 체계

도메인은 “.”또는 루트(root)라 불리는 도메인 이하에 아래 그림과 같이 역트리(Inverted tree) 구조로 구성되어 있습니다.
루트 도메인 바로 아래의 단계를 1단계 도메인 또는 최상위 도메인(TLD, Top Level Domain)이라고 부르며, 그다음 단계를 2단계 도메인(SLD, Second Level Domain)이라고 부릅니다

 

※ API(Application programing Interface)

1. 다양한 응용프로그램에 사용할 수 있는 운영체제

2. 업데이트가 빈번하고 이용자가 많은 데이터를 제공해야 할 때, 공공 데이터 포털을 통해 계정발급 가능

3. 날씨나 교통정보 등 실시간 업데이트 되는 데이터를 제공받을 수 있고, 소프트웨어 개발자나 사용자들이 쉽게 사용할 수 있어 개발 비용절감, 개발 기간 단축등 다양한 장점이 있다.

즉, 개발자들이 프로그램을 만들기 위해서 필요한 대용량 데이터를 쉽게 제공해 주는 수단.

 

* 인터페이스란?

-> 서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어주는 접속장치이다.

 

 

 

 

※ JDBC (Java database Connectivity)

1. 자바프로그램이 데이터 베이스와 연결되어 데이터를 주고받을 수 있게 해주는 프로그래밍 인터페이스

2. DB에 접근할 수 있도록 JAVA에서 제공하는 API이다.

3. JDBC에서는 데이터 베이스에서 자료를 처리하거나 업데이트하는 방법 제공함

4. 통역자의 역할 : 응용프로그램과 DB 간의 통신을 중간에서 번역해 주는 역할을 한다.

5. spring JDBC를 사용하려면 먼저 DB커넥션을 가져오는 DataSource를 Bean으로 등록해야 한다.

 

 

 

※ 서버와 브라우저 관계

1. 서버

 1) Http를 통해 웹브라우저에서 요청하는 HTML 문서나 오브젝트 (이미지 파일 등)을 전송해 주는 서비스 프로그램을 말한

다.

 2) 클라이언트로(브라우저)로 요청을 받아 정보 및 서비스를 제공하는 시스템(응답을 보내는 주체)

 3) 아파치, 엔진엑스, 마이크로소프트사의 llS 등이 있다.

 

2. 웹브라우저

 1) 사용자로부터 입력을 받아 서버와 통신하고 사용자에게 결과를 제공하는 소프트 웨어 요청을 보내는 주체

 2) 크롬, 익스폴로어, 사파리 등이 클라이언트라 할 수 있습니다.

 

3. 서버 브라우저간 흐름

 1) 위그림에서 상호작용 원리는 먼저 웹브라우저(크롬, 익스폴로어)에서 내가 원하는 웹페이지 주소를 입력하는 것은 이 웹 브라우저가 웹서버에 요청하는 것을 의미한다.

 2)  이 웹서버는 그 입력된 HTTP 주소를 찾아 클라이언트에 응답을 하게 되면 웹브라우저에 웹 페이지가 나타납니다.

 

※ HTTP, 쿠키, 세션 관계

-> HTTP 프로토콜의 특성이자 약점을 보완하기 위해서 쿠키 또는 세션을 사용합니다.

기본적으로 HTTP 프로토콜 환경은 Connectionless, Stateless  한 특성을 가지고 있기 때문에 서버는 클라이언트가 누구인지 매번 확인해야 한다. 이특성을 보완하기 위해 쿠키와 세션을 사용합니다.

 

1. Connectionless

-> HTTP는 클라이언트가 request를 서버에 보내고, 서버는 클라이언트 요청에 맞는 reponse를 보내고 접속을 끊는 특성이 있다.

 

2. Stateless  

-> 연결을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다.

 

* 쿠키와 세션은  위의 두 가지 특성을 해결하기 위해 사용한다.

예를 들어 , 쿠키와 세션을 사용하지 않으면 쇼핑몰에서 옷을 구매하려고 로그인을 했음에도, 페이지를 이동할떄마다 계속 로그인을 해줘야 한다. 그렇지만 쿠키와 세션을 사용할 경우, 한번 로그인하면 어떠한 방식에 의해 그 사용자에 대한 인증을 유지하게 된다.

 

3. Cookie 

 1) 쿠키는 클라이언트(브라우저) 로컬에 저장되는 키와 값이 들어있는 데이터 파일이다.

 2) 사용자인증이 유효한 시간을 명시할 수 있고, 유효시간이 정해지면 브라우저가 종료돼도 인증이 유지된다는 특징이 있다.

 3)  Response Header에 add Cookie를 사용해 쿠키 만들 수 있다.

* Cookie 사용처

-> 방문 사이트에서 로그인 시(아이디 비밀번호 기억)

-> 쇼핑몰의 장바구니 기능

-> 자동로그인, 팝업에서 "오늘 더 이상 이창을 보지 않음" 체크

 

4. Session

 1) 쿠키를 기반하고 있지만, 사요 자 정보 파일을 브라우저에 저장하는 쿠키와 달리 세션은 서버 측에서 관리합니다.

 2) 서버에서 클라이언트 구분하기 위해 세션 ID를 부여하여 웹브라우저가 서버에 접속해서 브라우저를 종료할 때까지 인증 상태를 유지합니다.

 3) 물론 접속시간에 제 한두어 일정시간 응답이 없으면 정보가 유지되지 않게 설정가능.

 4) 서버에 정보를 보관하기 때문에 쿠키보다 보안에 좋지만 사용자 많아질수록 서버메모리가 많이 차지하므로 서버에 과부하를 주게 될 수도 있고, 성능저하의 원인이 될 수도 있다.

 

* Session 사용처

-> 로그인, 로그아웃 과같이 보안상 중요한 작업을 수행할 때 사용.