웹개발을 할때의 MVC 패턴을 기준으로 보며 이해해보자

스프링을 이용한 개발을 할때, 서블릿이라는 용어가 많이 보여 따로 공부를 해보았다

1. 서블릿이란 웹서버에 포함되어 실행되는 JAVA 클래스이다

2. 웹 브라우저를 통해 클라이언트가 요청하면 요청에 대해 동작하고, HTTP 형식으로 응답한다

3. MVC 패턴에서 controller로 이용된다

 

서블릿 컨테이너 (Web Application Server) 란?

1.DB조회나 동적인컨텐츠를 제공하기 위해 만들어진 WebServer 이다

2.비즈니스로직에서 실제 업무를 처리를 수행한다.

3.굳이 WebServer가 있는데도 Was가 존재하는 이유는 클라이언트에게 제공하는

정적인 페이지와 동적인페이지를 WebServer에서 처리하게 된다면 여러 단점이 발생하게 된다

3-1.WebServer의 부담이 커지고 처리속도가 저하된다.

3-2.특히, 대용량어플리케이션에서 WebServer와 서블릿 컨테이너의 기능을 분리하여 사용하게 된다면,

운영에 대한 장애극복에 쉽게 대응이 가능하다.

3-3.WAS를 통해 요청에 맞는 데이터를 DB에서 가져와서 비즈니스 로직에 맞게 그때 그때 결과를 만들어서 제공

함 으로써 자원을 효율적으로 사용할 수 있다.

서블릿의 생명주기는 아래 블로그에서 참고하면된다.

출처: https://kadosholy.tistory.com/47 [KADOSHoly]

'Java' 카테고리의 다른 글

API Method  (0) 2022.07.12
abstract 와 interface 의 차이  (0) 2022.07.12

url.openStream()

-요청한 url의 사이트 데이터를 읽어들인다.

InputStreamReader 

- 바이트단위로 읽어들이는 inputstream을 통해 문자 단위로 읽어오는 방식으로 변형한다.

BufferedReader 

- 입력속도향상을 위해 사용

-  데이터를 문자하나씩 읽는것보다 일시적으로 데이터를 저장하는 버퍼영역에서 문자를 보관하고,

 문자를 다 읽어들이면 한번에 읽는다.

StringBuffer 

- StringBuffer 자료형은 append 라는 메소드를 이용하여 계속해서 문자열을 추가해 나갈 수 있다.

- String + 연산이 있는 경우 객체가 자동으로 생성되지만, StringBuffer 경우 한번의 객체만 생성된다.

- String보다 메모리사용량이 많기때문에, 문자열 추가/삭제가 빈번한 경우에만 사용하는 것이 좋다.

'Java' 카테고리의 다른 글

서블릿  (0) 2022.07.12
abstract 와 interface 의 차이  (0) 2022.07.12

abstract

-추상클래스로서 interface처럼 실제로 동작하는 인스턴스를 가지고 있지 않다

-부모클래스로서 하위클래스에 '상속'하는 특징을 가지고 있다.

-abstract가 하위클래스에게 기능을 상속해주면

하위클래스는 기능을 재정의 하여 사용하고, 기능을 확장하여 사용이가능하다.

ex.동물은 먹고, 잔다, 배설한다라는 행위를 abstract클래스에서 하위클래스가 가져오면

하위클래스에서는 먹는다라는 행위을 가져오고 동물을 곰으로 재정의한다.

그리고 곰은 겨울잠을 잔다라는 행위로 확장하여 사용한다.

 

interface

-틀이라는 개념을 가진 부모클래스이다.

-실제로 동작하는 인스턴스를 가지고 있지않다.

-프로젝트를 할 때, 공통된 행위를 가진 메소드를 interface를 통해 하위클래스에서 전달 받아 사용된다.

ex.동물은 먹고, 잔다, 배설한다라는 공통된 행위를 여러클래스에서 사용할 수있다

이때, interface자체는 아무런 의미가 없지만 하위클래스와 행위를 가진메소드를 연결하는

역할을 한다고 이해하면 쉽다.

-자바는 다중상속을 지원하지않는다. 이유는 다중상속을 하게되면 상속받게되는

하위클래스에서 두개이상의 부모클래스에서 어디에 접근해야하는지 모르는

애매한 상태에 놓이게 되기때문이다. 그래서 나온게 interface라는 개념이다.


두개의 키워드가 헷갈리는 이유는 행위를 받아 하위클래스에서 동작하는 일때문이다.

결과적으로본다면 abstract는 '상속'의 개념을 가지고 있고 interface는 '다형성'의 개념을 가진 키워드이다.

프로젝트를 할 때의 여러클래스에서 공통된 동작을 하는 행위가 필요하다면 interface를 사용하고

부모클래스의 동작을 상속받아야하는 행위가 필요하다면 abstract를 사용해야한다.

'Java' 카테고리의 다른 글

서블릿  (0) 2022.07.12
API Method  (0) 2022.07.12

+ Recent posts