2024-10-31 22:30:40

1. 웹의 개요

월드 와이드 웹 (World Wide Web)

  • 줄여서 WWW 또는 웹이라고 함
  • 웹은 인터넷에서 운영되는 서비스 중 하나임 (웹 자체가 인터넷을 의미하는 것은 아님)
  • 웹의 개발 목적
    • 연구자들이 흩어져 있는 정보를 손 쉽게 정리하고 공유하기 위함

웹의 특징

  • 인터넷은 컴퓨터 네트워크 망을 의미하고, 웹은 인터넷 서비스 중 하나를 의미
  • 인터넷상의 정보를 하이퍼텍스트 방식과 멀티미디어 환경에서 검색할 수 있게 해주는 정보 검색 시스템을 의미
  • HTTP 프로토콜을 사용하고, HTML 문서를 연결하여 다양한 콘텐츠를 제공
  • 많은 사람들이 정보를 쉽게 공유하고 접근할 수 있도록 하는 것을 목적으로 함

웹의 동작 구조

  • HTML을 중심으로 한 웹의 동작 과정

웹의 동장 구조 정리 사진

 

2. 네트워크와 인터넷의 개념

네트워크 (Network)

  • 사전적 의미 : 전선이나 혈관, 통로 등으로 이루어진 망형 조직
  • 가장 많이 쓰이는 의미 :  컴퓨터와 컴퓨터를 연결해주는 망

프로토콜 (Protocol)

  • 네트워크를 구축하기 위한 컴퓨터 간의 연결 규격
  • TCP/IP : 여러 프로토콜 중 가장 널리 쓰이며 인터넷에서도 사용되고 있는 프로토콜

TCP/IP (Transmission Control Protocol / Internet Protocol)

  • 컴퓨터 간에 통신할 수 있도록 만든 프로토콜의 종류 중 한 가지
  • 이 프로토콜에 기반하고 있는 것이 인터넷임
  • TCP/IP가 인터넷의 기반 프로토콜로 자리 잡은 이유
    • 하드웨어, 운영체제, 접속 매체와 관계없이 동작할 수 있는 개방형 구조이기 때문

4계층 구조

OSI 7 계층

  • 네트워킹을 위한 물리적 장비에서부터 실제 서비스를 제공하기 위한 애플리케이션에 이르는 단계를 계층화한 것
  • 계층화를 통해 상위 레벨에서는 하위 레벨에서 구현한 내용을 모르더라도 표준화된 인터페이스를 통해 네트워크
    시스템을 개발 및 운영할 수 있음

TCP/IP의 특징

  • TCP/IP는 이러한 OSI 7계층을 좀 더 단순화하여 4계층으로 정의한 것
  • TCP : 데이터의 흐름관리, 데이터 정확성 확인 등의 역할을 수행
  • IP : 데이터(패킷)를 목적지까지 전송하는 역할을 담당
  • TCP/IP는 개방형 구조로, 특정 운영체제나 하드웨어에 영향을 받지 않고, 근거리와 원거리 모두 데이터를 전송할 수 있음

IP 주소 (IP Address)

  • TCP/IP로 연결된 네트워크에서 각각의 컴퓨터를 구분하기 위해 사용하는 주소
  • IP 주소는 숫자로 구성되어 있음
  • 123.123.123.123과 같이 4개로 구분되며, 10진수를 사용
  • 사용할 수 있는 IP 주소 범위

IP 주소의 구분과 범위

인터넷

internet과 Internet의 차이점

  • internet은 내부 네트워크를 의미함
  • Internet은 전세계가 하나로 연결된 네트워크를 의미함
  • 즉 인터넷(Internet) 자체는 네트워크 인프라임
  • 우리가 알고 있는 웹, 이메일 등은 인터넷 기반의 서비스인 셈

인터넷 기반 서비스

  • 웹 이외에도 이메일, FTP, Telnet, DNS 등이 있지만 일반적으로 사용하는 인터넷 기반 서비스로는 웹이 절대적
    • 이메일은 네이버, 다음, 구글과 같은 웹 기반의 메일 서비스를 이용하는 경우가 많음\

대표적인 인터넷 기반 서비스

프로토콜 (Protocol)

  • 네트워크에 연결된 컴퓨터 간의 통신 규약
  • 위 표와 마찬가지로 모두 TCP/IP를 사용하며, TCP/IP 4계층 중에서도 응용계층에 해당되는 프로토콜
  • 즉 물리적인 네트워크 연결은 TCP/IP를 지원하지만 응용 계층에서는 서비스 마다 별도 규격이 필요

포트 (Port)

  • 네트워크 서비스를 제공하기 위한 일종의 출입문
  • 하나의 컴퓨터에서 여러 개의 네트워크 서비스를 제공하는 경우 이들을 구분하기 위한 목적
  • 포트와 프로토콜이 일치하지 않는 경우 정상적인 네트워크 서비스를 이용할 수 없음

Domain Name System (DNS)

  • 컴퓨터의 IP 주소는 네트워크에서 컴퓨터를 구분해주는 주민번호와 같은 개념
  • 인터넷 주소의 형태 : 호스트 (컴퓨터) 이름(www) + 도메인 이름(xxxx.co.kr)
  • 도메인 이름은 규칙에 따라 붙여지며, 도메인을 관리하는 기관에 일정 비용을 지불하고 구매해야 함
  • 도메인 이름을 통한 웹 사이트 접속도 겉으로는 보이지 않지만 내부적으로 도메인 이름을 IP 주소로 변환하는
    서비스를 이용함.

3. 웹 프로그래밍의 구조

클라이언트 - 서버 구조

  • 웹 서비스를 제공을 위해서는 서버 컴퓨터와 서버에서 동작하는 프로그램이 필요함

웹 프로그래밍의 구조

  • 클라이언트 : 웹 서비스를 이용하는 사용자
  • 서버 : 웹 서비스를 제공하기 위한 서비스 공급자
  • 프런트엔트 : 클라이언트 중심의 프로그래밍 (HTML, CSS, JavaScript) 영역
  • 백엔드 : 서버를 구성하며 서비스를 제공하기 위한 서버 쪽 프로그래밍 (웹 서버 소프트웨어, 웹 프레임워크, 데이터베이스) 영역

HTML (HyperText Markup Language)

  • 웹 문서의 구조를 정의하고 콘텐츠를 표현하는 기본 마크업 언어
  • 웹을 통해 콘텐츠를 제공하려면 HTML을 사용해야 함
  • HTML은 태그라고 하는 간단한 표기법으로 표현하고자 하는 정보에 의미를 부여함

CSS (Cascading Style Sheet)

  • HTML 문서에 레이아웃과 디자인을 포함한 시각적 요소를 정의하기 위한 규격
  • HTML은 콘텐츠의 내용과 구조 (레이아웃)을 정의하고 CSS에서 콘텐츠의 위치, 정렬, 글자크기, 배경 색상 등을 정의
  • 디자인을 적용할 HTML 요소를 셀렉터 (Selector)로 지정하고 원하는 디자인 속성을 부여하는 형식

자바스크립트(JavaScript)

  • HTML 문서에서 동적으로 변하는 콘텐츠를 표현하기 위해 이벤트 처리를 하거나 서버와 연결하여 데이터를 가지고 오는 등의 역할을 하는 프로그래밍 언어
  • HTML 문서에서 이벤트를 서버 연결 없이 동적으로 처리할 수 있는 기술
    • 즉 서버에 새로 접속하지 않고도 화면 정보가 변하는 기능을 함
  • 대표적인 자바스크립트 라이브러리 (프레임워크)
    • 앵귤러 (Angular.js), 뷰 (Vue.js), 리액트 (React.js) 등

4. 새로운 웹 개발 트렌드

자바 언어의 대안 등장

  • 오라클과 구글의 자바 라이센스 문제가 오라클의 승리로 종료
  • 구글은 새로운 안드로이드 개발 언어로 코틀린을 추가하면서 안드로이드 개발 트렌드는 코틀린으로 이전
  • 코틀린은 최신 프로그래밍 언어 특징을 모두 가지는 모던 프로그래밍 언어

백엔드 개발 및 운영 환경의 변화

  • 스프링 프레임워크의 등장
  • 클라우드 기반의 서버 운영이 보편화되면서 전통적인 모놀리식 아키텍처 중심의 서버 운영 전략이 소규모 분산 서비스 운영 방식인 MSA로 전환되기 시작함
  • 프론트엔드 중심의 개발이 가속화 되면서 서버 프로그램 보다 간결한 형태로 전환되고 Node.js, 파이썬을 이용한 서버 프로그램 개발이 늘어나고 있음
  • 특히 REST API 형태의 개발이 주를 이루게 되면서 백엔드에서 화면을 다루어야 하는 경우는 점점 줄어들고 있음
  • 구글의 파이어베이스를 비롯한 클라우드 기반의 서비스 인프라가 보편화되어 필요한 데이터를 REST API 형태로 
    손쉽게 제공받을 수 있는 서버리스 환경도 보편화되고 있음

프론트엔드 중심 개발로의 이동

  • 웹에서 모바일로 이동하면서 데이털르 서버에서 조합 (바인딩 Binding)한 다음 화면을 렌더링 하는 서버 사이드 렌더링 방식은 여러 문제가 부각되기 시작함
    • 모바일에서 인터넷을 사용하려면 데이터 요금을 부담해야하고 유선에 비해 상대적으로 속도도 느림
    • 인터넷 접속이 항상 보장되지 않으며, 실시간으로 데이터 갱신은 필요함
  • 이러한 새료운 요구는 서버로부터 데이터만 수신하고 클라이언트에서 데이터를 조합한 다음 화면을 구성하는 클라이언트 렌더링 방식으로 개발을 전환하는 계기가 됨

스프링 프레임워크

  • 스프링 프레임워크는 상용화할 수 있는 수준의 대규모 서비스를 누구라도 쉽게 개발할 수 있도록 해줌
  • 자바 기반의 대표적인 백엔드 개발 프레임워크로는 국내에서 절대적인 위치에 있음
  • 전자정부 프레임워크 역시 스프링 기반임
  • 스프링을 쉽게 사용할 수 있게 하는 스프링 부트의 경우 JSP 사용에 제약이 있음

'JSP와 스프링' 카테고리의 다른 글

자바 웹 개발 개요  (1) 2024.12.10
환경 구축  (0) 2024.11.01