📝 오늘의 강의 요약
핵심 키워드: JSP 생명주기, 스크립팅 요소, 암시적 객체, MVC 패턴, JavaScript 기초
- JSP: 서블릿 변환부터 소멸까지의 생명주기 및 폼 데이터 처리 방식 학습
- MVC: 모델, 뷰, 컨트롤러의 역할 분담을 통한 효율적인 웹 애플리케이션 구조 이해
- JavaScript: 변수 선언 키워드(let, const)와 생산성을 높이는 VSCode 환경 설정
☕ JSP (JavaServer Pages) 심화
1. JSP 생명주기 (Life Cycle)
- 요청 및 변환: 클라이언트 요청 시 JSP 파일을 자바 서블릿 소스(.java)로 변환
- 컴파일 및 로드: 서블릿 소스를 클래스 파일(.class)로 컴파일 후 메모리에 로드
- 초기화 (jspInit): 서블릿 인스턴스 생성 및 초기화 수행
- 서비스 (_jspService): 실제 클라이언트의 요청을 처리하고 응답 생성
- 소멸 (jspDestroy): 서버 종료 또는 언로드 시 서비스 종료 및 자원 해제
2. JSP 스크립팅 요소 및 지시문
| 요소 |
문법 |
설명 |
| 스크립트릿 |
<% Java 코드 %> |
_jspService() 내부에 작성되는 자바 로직 |
| 표현식 |
<%= 표현식 %> |
결과를 HTML에 직접 출력 (out.print()와 동일) |
| 선언 |
<%! 선언 %> |
클래스 멤버 변수나 메서드 선언 (메서드 외부) |
| Page 지시문 |
<%@ page ... %> |
페이지 인코딩, 임포트, 에러 페이지 설정 등 |
| Include 지시문 |
<%@ include ... %> |
다른 파일의 내용을 변환 시점에 그대로 복사 |
3. 주요 암시적 객체 (Implicit Objects)
- request: 클라이언트의 요청 정보 및 파라미터 관리 (getParameter)
- response: 클라이언트로의 응답 및 페이지 이동 제어 (sendRedirect)
- session: 사용자별 상태 유지 및 정보 저장 (로그인 정보 등)
- out: 응답 스트림에 텍스트를 출력하는 객체
🏗️ MVC 아키텍처 및 JavaBeans
1. MVC 패턴 계층 구조
- Model (Java Class, DAO): 데이터 비즈니스 로직 처리 및 DB 연동
- View (JSP): 사용자에게 보여질 화면 구성 및 데이터 출력
- Controller (Servlet): 사용자 요청을 받아 흐름을 제어하고 모델과 뷰를 연결
2. 액션 태그 (Action Tags)
- <jsp:forward>: 현재 요청을 다른 페이지로 전달 (URL 주소 변경 없음)
- <jsp:include>: 실행 시점에 다른 페이지의 결과물을 동적으로 포함
- <jsp:useBean>: 자바빈(JavaBean) 객체를 생성하거나 참조하여 데이터 관리
📜 JavaScript & VSCode 생산성 팁
1. 자바스크립트 변수 및 데이터 처리
- 변수 선언: 재할당 가능한 let과 상수 선언을 위한 const 사용 권장
- 배열 메서드:
- push / pop: 배열 끝에 추가 및 제거
- unshift / shift: 배열 앞에 추가 및 제거
- slice: 배열의 특정 범위를 복사하여 반환
2. VSCode 환경 설정 꿀팁
- Tab Out 확장 프로그램: 자동 완성된 괄호나 따옴표 밖으로 Tab 키를 이용해 즉시 이동 가능
- 유효성 체크: 클라이언트 사이드에서의 폼 데이터 유효성 검증 로직 구현
🗂️ 향후 학습 로드맵
- 오전: JSP 기반 웹 프로그래밍 심화
- 오후: JavaScript 및 람다(Lambda), 스트림(Stream) 학습 예정
- 입출력(I/O): 중간 과정에서 데이터 스트림 처리 학습 병행