본문 바로가기
백엔드(Back-End)/Spring Boot

[sts4-Spring Boot] 01. OOP and Spring Framework

by 기딩 2023. 11. 9.
728x90

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, 컨트롤러가 좀 무거워짐

그래서 여러 컨트롤러 사용

728x90