본문 바로가기
카테고리 없음

기술 면접 list - Spring Framework, jsp

by 힐무새 2017. 10. 29.

Servlet, JSP의 차이


JDBC란?


Get, Post 방식


Session, Cookie의 차이


MVC 패턴이란?

사용자의 입력을 받아 이벤트를 처리하고, 그 결과를 다시 사용자에게 표시하기 위한 최적화된 설계(Model, View ,Controller로 구성)

뷰 : 화면에 내용을 표출하는 역할을 담당. JSP 기반 어플리케이션에서는 JSP 페이지가 뷰에 해당된다.


모델 : 로직을 가지는 부분, DB와의 연동을 통해 데이터를 가져와 어떤 작업을 처리하거나 그 결과를 DB에 저장하는 일을 처리. 모델은 수행에 필요한 데이터를 모델링하고 비즈니스 로직을 처리한다. javabean이 모델에 해당됨.


컨트롤러 : 어플리케이션의 흐름을 제어하는 것으로, 뷰와 모델 사이에서 이들의 흐름을 제어한다. 컨트롤러는 사용자의 요청을 받아 모델에게 넘겨주고 모델이 처리한 결과를 뷰에 보내주는 역할을 한다. 보통 서블릿을 컨트롤러로 사용.

 

모델 1 

- 클라이언트에서 request(요청)를 받아들이고 response(응답)해주는 처리를 jsp 단독으로 처리하는 구조

장점

- 단순한 페이지의 흐름으로 개발기간이 단축

- 페이지가 많지 않은 중소형 프로젝트에 적합


단점

- 복잡해질수록 유지보수가 힘들다

- 디자이너와 개발자간의 원할한 의사소통이 힘들다.


모델 2

- 요청처리, 데이터베이스 접근, 비즈니스 로직을 포함하고 있는 컨트롤 컴포넌트와 뷰 컴포넌트가 엄격하게 분리되어, 뷰에는 어떠한 로직도 포함하고 있지 않다.

장점

- 비즈니스 로직과 뷰의 분리로 인해 어플리케이션이 명료해지며, 유지보수와 확장이 용이

- 개발자와 디자이너의 작업이 분리되어 역할과 책임구분이 명확해진다.


단점

- 개발초기에 구조 설계를 위한 시간이 많이 소요된다.


* 개발하려는 프로젝트의 복잡도가 적고 유지보수가 적다면 모델1, 그렇지 않다면 모델 2


Spring Framework는 무엇인가요?


웹서버와 WAS의 차이

웹서버(WS) : 웹 브라우저의 요청을 받아들이는 곳으로 작업의 결과를 웹 브라우저에게 응답하는 곳이다. 요청된 페이지의 로직 및 데이터 베이스와의 연동을 위해 어플리케이션 서버에 이들의 처리를 요청하는 작업을 수행한다.


웹 어플리케이션 서버(WAS) : 요청된 페이지의 로직 및 DB와의 연동을 처리


처리 순서

1. 웹 브라우저가 웹 서버에 어떠한 페이지를 요청

2. 웹 서버는 요청된 페이지의 로직 및 DB와의 연동을 위해 WAS에 처리를 요청

3. WAS는 DB의 연동이 필요하면 DB와 데이터의 처리를 수행

4. 로직 및 DB 작업의 결과를 웹 서버에 돌려보낸다.

5. 웹 서버는 그 결과를 정적인 View에 결합하여 브라우저에 응답한다.


- 둘의 차이점은 웹 서버는 정적 페이지 컨텐츠(HTML, jpeg, css..)를 처리하기 위해서라면, WAS는 DB와의 연동, 특정 로직 처리 등을 통해 동적 컨텐츠를 전달한다.


- 웹 서버 없이도 구축이 가능하지만, WAS는 동적 컨텐츠를 위해 존재하는 서버이기 때문에 정적 컨텐츠 요청이 들어온다면 웹 서버보다 수행 속도가 느리다.

- 따라서 웹 서버를 앞에 두고 필요한 WAS들을 플러그인 형태로 설정하여 효율성을 높일 수 있다.


URI, URL의 차이

- URL(Uniform Resource Locator)는 서비스를 제공하는 각 서버들에 있는 파일들의 위치를 표시하기 위한 것으로 서비스의 종류, 도메인, 파일의 위치 등을 포함한다.

- URI(Uniform Resource Indetifier)는 존재하는 자원을 식별하기 위한 일반적인 식별자를 규정하기 위한 것이다. (URI = URL + URN)


JSP 내장객체 Scope

Page

한 번의 웹 브라우저(클라이언트)의 요청에 대해 하나의 JSP 페이지가 호출