[CS] 백엔드

CHOI IN HO·2024년 2월 20일
0

코딩테스트

목록 보기
55/74

Ref : https://mangkyu.tistory.com/95
[WAS와 WS의 차이]

  • WAS(Web Application Server)
    - 비즈니스 로직을 넣을 수 있음.
    • tomcat, php, ASP, .Net등
  • WS(Web Server)
    - 비즈니스 로직을 넣을 수 없음
    • Nginx, Apache등

[많은 트래픽이 발생한 경우 대처하는 방법]

  • 스케일 업(Scale Up): 서버에 CPU나 RAM등을 추가하여 서버의 하드웨어 스펙을 향상시키는 방법이다.
  • 스케일 아웃(Scale Out): 서버를 여러 대 추가하여 시스템을 증가시키는 방법이다.

[디자인 패턴]

  • 생성패턴
    -팩토리 패턴: 객체를 생성하기 위한 디자인 패턴
    -추상 팩토리 패턴: 객체를 생성하는 팩토리를 생성하기 위한 디자인 패턴
    -빌더 패턴: 상황에 따라 동적인 인자를 필요로 하는 객체를 생성하기 위한 디자인 패턴
    -싱글톤 패턴:객체를 1개만 생성하여 항상 참조가능하도록 고안된 디자인 패턴
  • 구조 패턴
    -어댑터 패턴: 호환성이 맞지 않는 두 클래스를 연결하여 사용하기 위한 디자인 패턴
    -프록시 패턴: 어떤 객체에 접근 제어를 위해 대리인을 사용하는 디자인 패턴
    -데코레이터 패턴: 어떤 객체에 새로운 기능 추가를 위해 대리인을 사용하는 디자인 패턴
    -퍼사드 패턴: 어떤 복합적인 기능에 대해 간략화된 인터페이스를 제공하는 디자인 패턴
  • 행위 패턴
    -전략 패턴: 상황에 따라 다른 전략을 사용하기 위한 디자인 패턴
    -옵저버 패턴: 값을 관찰하여 빠르게 반영하기 위한 디자인 패턴
    -커맨드 패턴: 실행될 기능을 캡슐화하여 재사용성이 높은 클래스를 설계하기 위한 디자인 패턴

[ 디스패처 서블릿(Dispatcher Servlet)이란? ]
디스패처 서블릿이란 톰캣과 같은 서블릿 컨테이너를 통해 들어오는 모든 요청을 제일 앞에서 받는 프론트 컨트롤러입니다. 디스패처 서블릿은 공통된 작업을 처리한 후에, 적절한 세부 컨트롤러로 작업을 위임해줍니다. 그리고 각각의 세부 컨트롤러는 처리할 부분을 처리하고 반환할 view를 Dispatcher Servlet에 넘기게 됩니다.

[ MVC 패턴이란? ]
MVC(Model-View-Controller)패턴은 아키텍쳐를 설계하기 위한 디자인 패턴입니다. 
MVC 패턴은 애플리케이션을 개발할 때 그 구성요소를 3가지로 나눕니다.
-Model: 데이터를 저장하는 컴포넌트
-View: 사용자 인터페이스(UI) 컴포넌트
-Controller: 사용자의 요청을 처리하고 Model과 View를 중개하는 컴포넌트

[ Spring MVC란? ]
Spring MVC란 웹 애플리케이션 개발을 위한 MVC 패턴 기반의 웹 프레임워크입니다. Spring MVC는 애플리케이션의 구성요소를 Model, View, Controller로 분리합니다. 또한 Spring MVC는 아래와 같은 컴포넌트들로 구성됩니다.

  • Dispatcher Servlet: 클라이언트의 요청을 먼저 받아들이는 서블릿으로, 요청에 맞는 컨트롤러에게 요청을 전달함
  • Handler Mapping: 해당 요청이 어떤 컨트롤러에게 온 요청인지 검사함
  • Controller: 클라이언트의 요청을 받아 처리하여 결과를 디스패처 서블릿에게 전달함
  • ViewResolver: View의 이름을 통해 알맞은 View를 찾음
  • View: 사용자에게 보여질 UI 화면

[ Spring MVC 작동 원리 ]

  1. 클라이언트는 URL을 통해 요청을 전송한다.
  2. 디스패처 서블릿은 핸들러 매핑을 통해 해당 요청이 어느 컨트롤러에게 온 요청인지 찾는다.
  3. 디스패처 서블릿은 핸들러 어댑터에게 요청의 전달을 맡긴다.
  4. 핸들러 어댑터는 해당 컨트롤러에 요청을 전달한다.
  5. 컨트롤러는 비지니스 로직을 처리한 후에 반환할 뷰의 이름을 반환한다.
  6. 디스패처 서블릿은 뷰 리졸버를 통해 반환할 뷰를 찾는다.
  7. 디스패처 서블릿은 컨트롤러에서 뷰에 전달할 데이터를 추가한다.
  8. 데이터가 추가된 뷰를 반환한다.    
profile
개발자기 되기 위해선 무엇이든!

0개의 댓글