객체 지향 프로그래밍 : 프로그램 구현에 필요한 객체를 파악하고 역할이 무엇인지를 정의하여 상호작용을 통해 프로그램을 만드는 것을 말합니다.
Spring
의존성 주입 : 어떤 객체가 사용하는 의존 객체를 직접 만들어 사용하는게 아니라, 주입 받아 사용하는 방법
MVC 패턴 : Model, View, Controller 개념이 합쳐지면서 생긴 방식으로 소프트웨어 공학에서 사용되는 디자인 패턴
- Model : Model은 Controller에서 받은 데이터를 저장하는 역할을 하며, 뷰나 컨트롤러의 정보를 알아서는 안 됨
- View : Controller로 부터 받은 Model 데이터를 바탕으로 사용자에게 표현하며, 모델과 컨트롤러의 정보를 알아서는 안 됨
- Controller : 사용자가 접근 한 URL에 따라 요청을 파악하고 URL에 맞는 Method를 호출하여 Service와 함께 Business Logic을 처리한다. 최종적으로 나온 결과는 Model에 저장을 하고, View에 던져준다.
AOP : Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불립니다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것
트랜잭션 : DB에서 여러 작업을 진행하다가 문제가 생겼을 경우 이전 상태로 롤백하기 위해 사용되는 것, 트랜잭션은 더 이상 쪼갤 수 없는 최소 작업 단위를 의미
JSP
servlet : 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 자바 서블릿은 웹 서버의 성능을 향상하기 위해 사용되는 자바 클래스의 일종
Session Life Cycle
생성 : 최초로 request.getSession()이 호출될 때 container가 생성
사용 : 클라이언트가 세션 ID를 이용해 접속, request.getSession()을 통해 사용중인 HttpSession 객체 획득 후 사용
종료 : invalidate()가 호출되거나, 세션이 타임아웃 되었을 때 container가 소멸
Session
사용자 정보를 서버에 저장
클라이언트의 최초 접속 시 새로운 세션을 생성하고 세션 ID 전송
이후 접속마다 클라이언트가 세션 ID 재전송
서버는 세션 ID에 해당하는 세션 정보를 획득
세션 ID 전송 수단으로 쿠키를 사용할 수 있음
Cookie
브라우저를 통해 사용자 정보를 클라이언트에 저장
(name, value) 쌍으로 이루어진 정보
초기에 웹 서버에 의해 HTTP Header에 포함되어 클라이언트에게 전송
이후에 접속마다 클라이언트가 웹 서버에게 재전송
보안적 취약성으로 인해 중요 정보를 저장하지 않아야 함
EL표현식 : 자바 빈의 프로퍼티, 값을 JSP의 표현식 <%= %>이나 액션 태그 <jsp:useBean>를 사용하는것 보다 쉽고 간결하게 꺼낼수 있게 하는 기술
JSTL : 정식 명칭은 자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library)이고 줄여서 JSTL이라 부른다. 위키피디아를 참조하자면, JSTL은 Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음
스크립트릿 : JSP페이지에서 자바 코드를 실행할 때 사용되는 코드의 블록을 말한다.
Bean : 애플리케이션의 핵심을 이루는 객체이며, Spring IoC(Inversion of Control) 컨테이너에 의해 인스턴스화, 관리, 생성
액션 태그 : JSP 페이지 내에서 어떤 동작을 하도록 지시하는 태그
JDBC : 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
HTML / CSS
HTML : Hypertext Markup Languaged의 약자로 프로그래밍 언어는 아니고, 우리가 보는 웹페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있도록 하는 마크업 언어
CSS : Cascading Style Sheets의 약자로 HTML이나 XML로 작성된 문서의 표시 방법을 기술하기 위한 스타일 시트 언어
JavaScript
JavaScript : 복잡한 무언가(주기적으로 내용이 갱신되는 기능이나 능동적인 지도, 변화하는 2D/3D 그래픽, 동영상 등)를 웹페이지에 적용할 수 있게 하는 스크립트 혹은 프로그래밍 언어
DataBase
DML(Data Manipulation Language) : 데이터 조작어
SLECET, INSERT, UPDATE, DELETE
SLECET : 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어를 말하는 것으로 RETRIEVE 라고도 합니다.
INSERT, UPDATE, DELETE : 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류(데이터 삽입, 수정, 삭제)의 명령어들을 말합니다.
DDL(Data Definition Language) : 데이터 정의어
CREATE, ALTER, DROP, RENAME, TRUNCATE
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어들로 (생성, 변경, 삭제, 이름변경) 데이터 구조와 관련된 명령어들을 말합니다.
DCL(Data Control Language) : 데이터 제어어
GRANT, REVOKE
데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어들을 말합니다.
TCL(Transaction Control Language) : 트랜잭션 제어어
COMMIT, ROLLBACK, SAVEPOINT
논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어를 말합니다.