서블릿이나 JSP 에서 역할을 분리 하여 컨트롤러의 역할과 뷰의 역활을 명확하게 구분이 가능 

Model : 뷰에 출력할 데이터를 담아 두는 곳

View  : 출력할 화면

Contoller : HTTP 요청 처리, 비니지스 로직 실행, 데이터를 모델에 저장 (컨트롤러와 비지니스가 섞인 패턴과 로직을 분리한것 두가지가 있다)

 

/WEB-INF라는 경로를 이용하여 클라이언트가 직접 접근하지 못하는 디렉토리설정도 가능

 

컴퓨터 프로그램의 작업 처리에 동시 실행 을 처리 하기 위한 소프트웨어 설계 패턴 

 쓰레드들을 유지 관리 하는 설계 패턴 

  • 작업이 할당 되면 스레드 풀에서 쓰레드 할당
  • 작업이 끝나면 스레드 풀로 쓰레드 할당
  • 모든 쓰레드가 사용중인 경우 요청 거절 또는 특정 숫자만큼 대기 설정 

장점

  • 쓰레드를 생성하고 종료하는 비용 절감
  • 쓰레드가 생성되어 있기 때문에  응답시간 단축
  • 많은 요청이 들어와도 기존 요청은 안전하게 처리가 가능 

최대 쓰레드 갯수

너무 낮으면 서버 자원은 여유롭지만 클라이언트에서 지연발생

너무 높은 경우 서버자원(CPU, 메모리)이 부족해져 임계점 초과로 서버 다운 발생 

 

서버 사양에 맞게 튜닝을 잘하는것이 필요 

자원이 부족한 경우 서버 증설 필요

 

SRP(Single Responsibility Principle)

단일책임 원칙

하나의 클래스는 하나의 책임만 가져야한다.

 

OCP(Open Closed Principle) (중요)

개방-폐쇄 원칙

확장에는 열려 있으나 변경에는 닫쳐 있어야 한다.

 

LSP(Liskov Substitution Principle)

리스코프 치환원칙

프로그램 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위타입의 인스턴스로 바꿀 수 있어야한다.

다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야한다는 것

 

ISP(Interface Segregation Principle)

특정 클라이언트를 위한 인터페이스 여러개가 범용인터페이스 하나보다 낫다.

인터페이스가 명확해지고 대체 가능성이 높아진다.

 

DIP (Dependency Inversion Principle)

추상화에 의존해야하고, 구체화에 의존하면 안된다.

구현클래스에 의존하지말고 인터페이스에 의존해야함

 

 

객체 지향의 핵심은 다형성이다,

Ctrl(cmd) + Shift + T  (window)

현재 선택한 class Create Test (JUnit 단위테스트 생성) 하기

 

Ctrl(cmd) + Alt(option) + v

변수 추출하기

'기타' 카테고리의 다른 글

Spring MVC(Model View Contoller)  (0) 2023.09.22
Thread pool(쓰레드 풀)  (0) 2023.09.20
좋은 객체 지향 설계의 5 원칙(SOLID)  (0) 2023.08.30
pre프로젝트 과정 중 놓쳤던 부분들(추후 수정 예정들)  (0) 2022.10.26
Schema  (0) 2022.08.05

+ Recent posts