1. MVC패턴 동작방식
MVC패턴이란 웹 어플리케이션(이하 app)을 Model, View, Controller라는 영역으로 나누어 Model은 app과 데이터베이스 사이에 오고가는 데이터(즉, 비즈니스 데이터)를 담당하며,(예; Vo, Dao, Dto, Service) View는 web에 보여 지기 위한 표현 부분을 담당합니다. Controller는 Model과 View 영역 사이에 위치하여, 각 영역 간의 통신을 담당.
(호텔에 비유하자면, Model은 사람(Data)이 투숙하는 호실, View는 밖에서 봤을 때의 외관, Controller는 체크인, 아웃을 위한 호텔 카운터라고 생각하면 되겠네요.)
2. model1과 model2 패턴의 차이
model1과 model2의 가장 큰 차이는 View의 역할.
model1은 Controller가 View의 역할까지 같이 수행함으로써, 프로젝트 제작 기간이 단축되나 코드의 재사용성이 낮다. (JSP/Servlet <-> Service/Dao)
model2는 Controller가 View와 차별화됨으로써 프로젝트 제작 기간이 늘어나지만, 코드의 재사용성이 높다.
(JSP <-> Servlet <-> Service/Dao)
3. JSTL은 무엇이고 사용하는 이유
JSTL이란 Jsp Standard Tag Library 의 약자로서 jsp에서 자바의 각종 기능을 태그로 사용할 수 있도록 제공 되어지는 라이브러리. 이를 통해, 자바의 조건문, 반복문 등을 jsp에서 쉽게 사용할 수 있으며 EL 태그를 통해 컨트롤러에서 전송한 값을 쉽게 사용할 수 있다.
4. JSP에서 세션에 값을 저장하고 꺼내는 방법
jsp에서 세션에 값을 저장하고 꺼내는 방법은 우선 컨트롤러 부분에서 HttpSession 클래스를 활용하여 세션을 생성하여 jsp에 전송하면 jsp에 세션이 전달되고, jsp에서는 sessionScope (EL태그)를 통해 이 세션을 사용할 수 있다. 반대로, HttpSession 클래스의 invalidate() 함수를 이용하면 세션을 해제할 수 있다.
이를 활용하여 로그인/로그아웃을 구현할 수 있다.
5. jsp에서 한글이 깨지는 문제가 발생 시
jsp에서 한글이 깨지는 경우는
1. 컨트롤러에서 HttpServletResponse 클래스를 이용하여 인코딩 처리를 하지 않았거나,
2. jsp에서 인코딩 선언을 하지 않은 경우
이 두 가지를 통해 한글 깨짐 현상을 해결할 수 있다.
6. JSP
Java Server Pages 의 약자로, 서블릿의 사용을 통해 웹페이지의 내용이나 모양을 제어하는 기술.
7. Servlet
서블릿은 클라이언트의 요구를 받아 그에 대한 처리를 한 후, 결과를 되돌려주는 서버 모듈입니다. 즉 클라이언트(View) 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servelt 클래스를 구현하는 자바 기반 웹 어플리케이션 프로그래밍 기술입니다. 흔히 CGI(Common Gateway Interface)라고 합니다. java thread 이용하여 동작하며 MVC패턴에서 Controller로 이용.
8. ajax
필요한 데이터를 받아서 페이지의 이동없이 브라우저의 일부분만 업데이트 하는 방법으로, 비동기 방식의 javascript 와 XML.
* 장점: 페이지의 이동 없이 고속화면 전환, 서버의 처리를 기다리지 않고 비동기 요청이 가능함.
* 단점: 보안상의 문제, 요청 남발할 경우 서버 부하의 문제 발생.
9. RESTful
REST, RESTful이란 개념을 한마디로 정의한다면 URL(자원을 정의하고 자원에 대한 주소를 지정하는 방법 전반)이라 할 수 있다. 즉, 웹서비스에 있는 리소스의 구조적 상태(자원의 구분과 수행하려는 동작 등)를 URL에서 인지할 수 있는 것. REST는 Representational State Transfer의 줄임말로써 표현 가능한 상태 전송이란 뜻을 가지고 있다. 웹 사이트의 이미지, 텍스트, DB 내용 등의 모든 자원에 고유한 URI를 부여.
이러한 관점에서 REST는 무슨 개체에 대한 작업을 하려고 하는지 쉽게 이해할 수 있다.
* RESTful 한 웹 서비스를 구현하고자 한다면, 지켜야 할 네 가지 기본적인 원칙이 있다.
1. 명시적으로 HTTP 메서드를 사용할 것.
2. 상태를 저장하지 말 것. (Be stateless)
3. 디렉토리 구조와 유사한 URI 를 사용할 것.
4. XML 혹은 JSON 혹은 두 가지 방법 모두를 사용하여 리소스를 전송할 것.
10. 쿠키과 세션의 차이점
- 쿠키는 사용자 컴퓨터(Client)의 브라우저에 저장된 작은 조각으로 일반적으로 쿠키는 인증을 하는데 사용.
또한 사이트 환경 설정, 쇼핑 카트 항목 및 서버 세션 식별에 대한 쿠키 값을 저장하기도 한다.
- 세션은 사용자가 웹 서버에 접속해 있는 상태를 말합니다. 사용자가 브라우저를 열어 서버에 접속 한 뒤
접속을 끊을(브라우저를 종료) 시점까지를 세션이라고 합니다. 서버와 접속이 종료되면 접속했던 PC에는 정보가 남지 않게 되며, 서버에서는 자동으로 세션을 삭제하기도 한다.
구분 | 쿠키 | 세션 |
저장위치 | 클라이언트 | 서버 |
저장형식 | 텍스트형식 | Object 형 |
종료시점 | 쿠키 저장 시 설정(설정하지 않으면 브라우저 종료 시 소멸) | 정확한 시점을 알 수 없음. (시간설정 가능, 직접 제거 가능) |
자원 | 클라이언트의 자원을 사용 | 서버의 자원을 사용 |
용량제한 | 한 도메인 당 20개, 쿠키 하나 당 4KB/총 300개 | 서버가 허용하는 한 용량 제한 없음. |
11. Get/Post 전송방식의 특징
GET 과 POST는 웹 브라우저에서 입력한 값이 서버로 넘어가는 방식을 지정하는 것.
* GET방식의 특징 :
1. 데이터의 길이가 256byte를 넘지 않는 비교적 짧은 데이터를 전송할 때 사용
2. 사용자의 웹브라우저에 주소를 노출시켜도 관계없을 때 사용
3. 요청 해더의 URL에 붙어서 전송 됨
* POST방식의 특징 :
1. 비교적 길이가 길고 복잡한 양식의 데이터를 전송할 때 사용
2. 사용자의 웹브라우저에 주소나 데이터가 노출되는 것을 피하고자 할 때 사용
3. 요청 해더와는 별도로 전달(표준 입출력 방식으로 데이터를 전송할 때 사용)
12. jquery
자주 사용하는 자바스크립트 코드를 재사용할 수 있는 형태로 가공해 프로그래밍의 효율을 높여준다.
'✏️ 서술형&면접 준비 > Spring & Web' 카테고리의 다른 글
실제 면접때 받았던 질문 정리 (java, db, spring, web) (0) | 2022.08.29 |
---|---|
개념정리/기술면접 준비_Spring (0) | 2022.08.28 |