티스토리 뷰

728x90
반응형

1. 웹 애플리케이션 

1) HTTP 프로토콜

서버와 클라이언트가 데이터를 주고 받기 위한 프로토콜(규약)이다.

  • HTTP/1.1, HTTP/2는 TCP 기반 위에서 동작하고,
  • HTTP/3는 UDP 기반 위에서 동작한다.

 2) TCP와 UDP

  • TCP는 인터넷상에서 IP와 함께 데이터를 메시지 형태로 전송하는 프로토콜이다. 3-way handshaking 과정을 통해 연결이 된다. 속도는 느리지만 높은 신뢰성을 보장함으로 파일 전송 등에 쓰인다.
  • UDP는 데이터를 데이터그램 단위로 처리하는 비연결형 프로토콜이다. 속도가 빠르고 네트워크 부하가 적지만 신뢰성 있는 데이터 전송을 보장하지 못한다. 때문에 연속성이 더 중요한 실시간 서비스(streaming)에 쓰인다.

TCP, UDP 참고 (https://mangkyu.tistory.com/15)

3) HTTP 특징

  • 클라이언트 - 서버 모델
    • 클라이언트가 서버에 요청을 보내면 응답을 보내는 모델
  • 무상태(Stateless) 프로토콜
    • 클라이언트가 서버에 요청을 보내면 close 상태가 된다. 다시 요청을 보낼 때는 다시 연결을 해야한다.
    • 해결책으로는 Keep-Alive가 사용되는데, 이 또한 클라이언트 요청이 많아질 때는 신규 사용자를 못받는 문제가 생긴다. (스레드 부족 현상)
  • 비연결성(Connetionless)
    • 서버가 클라이언트 요정에 대한 응답을 마치면 연결을 끊는 것을 말한다.
    • 쿠키나 세션, JWT를 통해 정보를 임시 저장할 수 있다.
  • HTTP 프로토콜은 리소스 낭비를 감소하고 많은 연결을 할 수 있도록 설계되어 있다.

 

4) 추가로 더 공부할 내용

  • HTTP 요청 메소드
    • GET, POST, PUT, DELETE 등
  • HTTP 응답 코드
    • 2xx(성공), 3xx(리다이렉션), 4xx(클라이언트 에러), 5xx(서버 에러) 등
  • HTTP 헤더
    • Content-type, Accept, Cookie, Set-Cookie, Authorization 등

 

2. 계산기 프로그램을 웹 애플리케이션

1) 계산기 프로그램을 웹 애플리케이션으로 만들기

  • Step1 - 사용자 요청을 메인 Thread가 처리하도록 한다.
  • Step2 - 사용자 요청이 들어올 때마다 Thread를 새로 생성해서 사용자 요청을 처리하도록 한다.
  • Step3 - Thread Pool을 적용해 안정적인 서비스가 가능하도록 한다.

 

(1) 새 프로젝트 생성

  • Name: was-practice
  • Language: Java 11
  • Build system: Gradle
  • JDK: temurin 11
  • Gradle DSL: Groovy

 

(2) 의존성 추가

implementation 'ch.qos.logback:logback-classic:1.2.3'
testImplementation 'org.assertj:assertj-core:3.23.1'

 

(3) 구현된 계산기 코드를 가져와 웹 애플리케이션으로 만들기

  • 예를 들어 GET으로 calculate 요청이 들어 온다면 계산을 해준다.
  • GET /calculate?operand1=11&operator=*&operand2=55

 

(4) 구현 참고사항

  • Server 클래스를 생성하고 logger를 사용하여 처리 상황에 대한 로그를 남길 수 있다.
  • HTTP 요청 파일을 생성한다.
    • GET http://localhost:8080
    • 위와 같이 작성하고 실행하면 실제 HTTP 요청을 받은 것처럼 작동 가능하다

  • 처리 과정을 line by line으로 읽기 위해 BufferReader를 사용한다.
    • BufferReader에는 요청 형태, Host, Connection, User-Agent, Accept-Encoding 정보 등이 포함된다. 

 


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/43z0P6S

 

 

#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완

728x90
반응형
댓글