Section 01. Network, Internet, Web
Network
컴퓨터와 컴퓨터를 연결해주는 망
컴퓨터 네트워크
TCP/IP
컴퓨터 간 통신할 수 있게 만든 프로토콜
인터넷 기반 네트워크 시스템
-> 하드웨어, 운영체제, 접속 매체 관계 없이 동작하는 개방형 구조
IP address
TCP/IP로 연결된 네트워크에서 각 컴퓨터를 구분하는 주소
ex) 123.123.123.123처럼 4개로 구분된 10진수
Internet
전 세계가 하나로 연결된 네트워크 의미하는 고유명사
내부 네트워크를 의미
인터넷은 네트워크 인프라
www, email 등은 인터넷 기반 서비스
인터넷 ≠ 웹
Port
네트워크 서비스 접속하기 위한 접점
컴퓨터에서 여러 네트워크 서비스 제공할 때 구분하는 용도
like 은행의 업무 창구
DNS(Domain Name System)
ip 주소 대신 알기 쉬운 이름 형태로 컴퓨터 구분하는 인터넷 서비스/시스템
호스트(컴퓨터) 이름(www) + 도메인 이름(google.com) 형태
ex) www.naver.com
도메인 관리 기고나 통해 일정 비용 지불하고 사용 가능
DNS 처리 과정
네트워크 서비스 제공 회사(kt, skt, u+)의 DNS 서버에 도메인 이름 요청
DNS 서버는 컴퓨터의 ip주소 요청 &
DNS zone file에서 wwww 컴퓨터의 ip주소 찾아서 알려줌 &
다시 요청한 클라이언트에 ip주소 알려줌
Server
네트워트에서 서비스 제공하는 컴퓨터
웹 서버, FTP 서버, 파일 서버, 프린트 서버
Client
서비스 이용하는 컴퓨터
PC, 스마트폰, 태블릿
HTTP(Hyper Text Transfer Protocol)
웹 서비스 사용되는 통신 규격
간단한 명령어와 헤더 규격
웹 서비스 동작 과정
Section 02. Web Programming
프로그램은 서버에서 실행. 실행 결과만 컴퓨터 브라우저로 보여짐
구현 by 서버와 클라이언트의 협력
Server technology
HTML은 파일 내용 수정 전까진 내용 안 변하는 정적 구조
사용자 요청 따라 다른 정보 제공하거나 db 통한 서비스 위해 별도 프로그램 기술 필요
- ASP.Net
MS 윈도우 기반의 서버 프로그램 기술
.Net 기반의 컴포넌트 사용 o
MS 윈도우 종속, 상용 라이센스 정책 -> 대규모 공개 웹 서비스 개발에는 거의 사용x - PHP (Progessional Hypertext Preprocessor)
처리속도 빠름, 다양한 운영체제와 웹 서버 환경에서 실행 o
APM = Apache + PHP + MySQL
오픈소스 게시판, 위키 프로그램, 연구용으로 사용 - JSP (JAva Server Page)
자바 서블릿 기반의 웹 프로그래밍 기술
자바의 모든 기능 사용o & 안정성ㅇ, 확장성ㅇ
*서블릿 Servlet
동적 웹 페이지 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술
웹 요청과 응답 흐름을 간단 메서드 호출만으로 다루게 해준다.
ex) 로그인 시 클라이언트의 아이디, 비밀번호를 확인하고 다음 페이지 띄워줄 때 이러한 역할을 수행하는 게 서블릿
Client technology
브라우저에 의해 처리
화면 구성, 스타일, 동적 이벤트 처리 등 사용자 상호작용 담당
- HTML
웹서비스 표현 용어
<HTML></HTML>과 같은 마크업 구조 - JavaScript
웹 클라이어트 개발 언어
웹 브라우저에서 해석. 웹 브라우저 성능 평가에서 중요!
jQuery와 같은 공개 라이브러리 유명
JSON은 클라이언트 서버간 정보 교환에 널리 사용 - CSS (Cascading Style Sheet)
HTML에서 레이아웃이나 디자인 요소를 분리
HTML5 + CSS3 + JavaScript로 웹 개발
Section 03. Spring Framework
자바 Web 프레임워크
기능은 좋은데 가벼워서 good
특징
IoC, DI, AOP
경량, POJO, Container
JSP와 JavaBean만 사용한 모델
자바빈은 한 곳에 다 뿌림
수정이 힘들고 무거움
So, MVC Model (Model-View-Controller)
컨트롤러가 클라이언트의 요청 받으면 Model을 호출
모델은 데이터를 받아옴
컨트롤러는 모델에서 받아온 데이터를 어떻게 처리할지 가공
뷰는 그걸 화면에 보여줌
모델, 뷰는 다른 컴포넌트에 대해선 모르고 자신의 역할만 아는데, 컨트롤러는 다른 컴포넌트(모델, 뷰)의 역할도 안다.
But, 컨트롤러가 좀 무거워짐
그래서 여러 컨트롤러 사용
'백엔드(Back-End) > Spring Boot' 카테고리의 다른 글
[sts4-Spring Boot] 04. CRUD Test 작성 (0) | 2023.11.28 |
---|---|
[sts4-Spring Boot] 03. 데이터베이스 CRUD (0) | 2023.11.28 |
[스프링부트] main 실행하기 (1) | 2023.11.26 |
[스프링부트] 프로젝트 생성 옵션 spring initializr (1) | 2023.11.26 |
[sts4-Spring Boot] 02. Java and Spring Project - STS에서 db연동하기 (0) | 2023.11.09 |