Spring/Springboot-Intellij

[Server] 서버 (Server)

congs 2025. 1. 26. 01:35

Network 네트워크

  • 여러대의 컴퓨터, 장비(라우터, 허브 등)들이 서로 연결되어 정보를 주고받는 기술
  • IP 주소, 서브넷 마스크, 게이트웨이등의 정보를 설정하고, 네트워크 프로토콜을 이용하여 통신

 

Server 서버

  • 사용자가 요청을 했을때, 해당 요청에 대한 응답을 수행하는 프로그램

  • IP주소 : 사용자의 요청이 해당 서버에 정확하게 도달할 수 있게 제공되는 위치정보
    • 예) 192.168.0.4 = 인천 부평구 
    • 예) 포트번호 8080 = 받는사람 홍길동

 

Web server 웹서버

  • 인터넷을 통해 HTTP를 이용하여 웹상의 클라이언트의 요청에 응답하는 컴퓨터
  • 역할
    1. 브라우저에서 URL(www. 같은)을 입력하여 페이지 요청 - HTML문서같은 정적인 콘텐츠(누구나 같은 화면)를 사용자에게 전달
    2. 브라우저로부터 동적인 요청을 들어오면 ( 로그인하여 각기다른 MyPage 요청 등) -> 웹 서버 자체적 처리가 어려우니 해당 요청은 WAS( Apache, Nginx 등)에 전달

브라우저에서 HTTP로 보내고 - 서버에서 다시 정보 보내서 - 받아보기

 

WAS 왓스

  • 웹 서버와 동일하게 HTTP 기반 동작 (웹 서버 기능 대부분 처리가능 = 정적요청도 가능)
  • 로그인, 회원가입, 게시물 조회, 정렬 등(동적인 요청)의 다양한 로직을 수행하는 프로그램 동작가능
  • 종류 : Tomcat, JBoss 등

 

Apache Tomcat

 

 

 

 

 

  • Web Server 웹 서버 + WAS 왓스
  • 동적인 처리를 할 수 있는 웹서버를 만들기 위한 웹 컨테이너
  • 정적인 데이터 처리와 동적인 데이터 처리를 효율적으로 처리하도록 함

 

 

 

 

 

API  application programming interface

  • 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙
  • 서로 다른  애플리케이션이 약속한 방식의 API요청을 수행 - 정해진 결과물 반환 (식당의 점원 역할)

 

interface 인터페이스

  • 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면
  • 사용자가 기기를 쉽게 동작시키는데 도움을 주는 시스템

 

HTTP (Hypertext Transfer Protocol) 

  • 웹에서 데이터를 주고받기 위한 프로토콜(약속) 
  • 인터넷에서 브라우저와 서버가 대화하는 방법
  • 예) 크롬에 방문 - "페이지를 보여줘" - http요청
  • 예) 서버는 요청을 받고 - 필요한 정보를 브라우저로 보냄 - http응답
  • HTTPS : HTTP 보안 강화 버전으로 데이터를 암호화하여 전송 (은행에서 사용)

 

RESTful API

  • REST 아키텍처 스타일을 따르는 API
  • REST ( Representational State Transfe ) : API 작동방식에 대한 조건을 부과하는 소프트웨어 아키텍처 (통신관리 지침)
  • 서버가 적절하게 HTTP를 준수하면서 설계가 되어있다 = RESTful 하게 설계되어 있다
  • Method 메서드 : 클라이언트(브라우저)가 서버에게 요청할 때 요청의 목적을 설명하는 방식 (어떤 작업을 하는지)
    1. GET 
      • 서버에 데이터를 요청 (데이터 변경x)
      • 서버의 지정된 URL에 있는 리소스에 엑세스
      • GET요청을 캐싱하고 RESTful API 요청에 파라미터를 넣어 전송하여 전송전 데이터를 필터링 하도록 서버에 지시
    2. POST
      • 서버에 데이터를 전송 (데이터 생성, 제출)
      • 요청과 함께 데이터 표현이 포함되며, 요청한 데이터는 요청의 BODY에 담음
      • 동일한  POST 요천을 여러번 전송하면 동일한 리소스를 여러번 생성하는 부작용 있음
    3. PUT
      • 서버에 데이터를 업데이트(전체 수정)하거나 새로 생성
      • 데이터를 덮어쓰는 방식으로 동작
      • 서버의 기존 리소스를 업데이트 / POST와 달리 동일 리소스를 여러번 전송해도 결과는 동일\
    4. PATCH
      1. 서버에서 데이터를 부분적으로 수정시 사용
      2. PUT과 달리 필요한 부분만 변경
    5. DELETE
      1. 서버에서 데이터를 삭제

 

SPRING - SPRINGBOOT 차이

SPRING 프레임워크 : AOP, IoC/DI, PSA 등과 같은 핵심기능을 사용하기위해 많은 xml 설정이 필요↓ 이를 개선하기 위해 2014년 SPRINGBOOT 등장SPRINGBOOT 

  1. 기존의 xml 설정 대신 JAVA의 애너테이션 기반으로 간편하게 설정가능

  2. 일반적으로 자주 사용하는 설정값을 디폴트 값으로 자동 설정

  3. 외부 라이브러리나 하위 프레임워크들의 의존성 관리가 편해짐  예) starter로 묶어서 제공 =  각 버전 호환성 확인 필요x

SPRINGBOOT는 이러식으로 의존성에 맞게 묶어서 제공

  4. 내장 Apache Tomcat : 직접 다운 받아야하는 SPRING과 다르게, 기본적으로 내장형 톰캣 제공( starter-web dependency를 설정)

SPRING은 이렇게 Tomcat을 연결했어야했음 (SPRINGBOOT는 생략)

 

 

POSTMAN :  API 개발을 빠르고 쉽게 구현할 수 있도록 도와주는 소프트웨어 플렛폼

https://www.postman.com/downloads/

 

Download Postman | Get Started for Free

Try Postman for free! Join 35 million developers who rely on Postman, the collaboration platform for API development. Create better APIs—faster.

www.postman.com

  • API에 맞춰 HTTP요청을 서버에 보내고 -> 응답을 확인 = 서버가 동작하는 지 확인이 가능
  • 이러한 작업을 간편하게 할 수 있도록 도와주는 플랫폼 중 하나