⏳ Time Log/1. One Day (Daily · TIL)

Day 17 (11/11) - JavaScript 기초

this.Serena 2026. 2. 19. 00:02

📝 오늘의 강의 요약

핵심 키워드: 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): 중간 과정에서 데이터 스트림 처리 학습 병행