목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/TIL · 하루

      Day 18 (11/12) - JSP 기초

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

      📝 오늘의 강의 요약

      핵심 키워드: 세션/쿠키/JWT, JSTL 라이브러리, Docker 기본 명령어, Oracle JDBC 연동

      • JSP: 상태 유지를 위한 세션 관리 및 JSTL 태그 라이브러리 활용법 습득
      • Docker: 컨테이너 환경 구축, 이미지 다운로드 및 포트 포워딩 실습
      • Database: 도커 기반 오라클 설치 및 Java 프로젝트와의 JDBC 연동 설정

      ☕ JSP 상태 관리 및 JSTL

      1. 상태 유지 기술 비교

      • Cookie: 클라이언트(브라우저)에 저장되는 텍스트 파일
      • Session: 서버 측에서 사용자 상태를 관리하는 객체 (session.invalidate()로 무효화)
      • JWT (JSON Web Token): 토큰 기반 인증 방식으로 클라이언트에 저장하며 서버 부하 감소

      2. JSTL (JSP Standard Tag Library) 설정

      • 설치: jstl.jar, standard.jar 파일을 WEB-INF/lib 폴더에 추가
      • 주요 태그:
        • <c:choose> / <c:when> / <c:otherwise>: Java의 switch 또는 다중 if문 역할
        • <c:forEach>: 배열이나 컬렉션의 요소를 순회하는 반복문

      🐳 Docker & 컨테이너 제어

      1. Docker 이미지 및 컨테이너 명령어

      구분 명령어 기능 설명
      이미지 docker pull [이미지명] 도커 허브에서 이미지 다운로드
        docker images 보유 중인 이미지 목록 확인
        docker image rm [ID] 특정 이미지 삭제
      컨테이너 docker ps 현재 실행 중인 컨테이너 확인 (-a는 전체)
        docker run [옵션] [이미지] 컨테이너 생성 및 실행
        docker rm [ID] 중지된 컨테이너 삭제

      2. 컨테이너 실행 옵션 분석

      docker run -d -p 8081:80 --name myhttpd httpd

      • -d: 백그라운드 실행 (Background mode)
      • -p 8081:80: 호스트의 8081 포트와 컨테이너의 80 포트 연결
      • --name: 컨테이너에 고유 이름 부여

      🗄️ Database & Oracle 연동

      1. Oracle 환경 구축

      • 도커 활용: 도커를 통해 오라클 이미지 설치 및 실행
      • SQL Developer: 설치 후 jsp-connect 접속 설정 (ID: test / PW: 1234)
      • Primary Key: 테이블 내 레코드를 구분하는 고유 식별자 (중복 및 NULL 불가)

      2. Eclipse JDBC 연동 설정

      • 드라이버 준비: ojdbc8.jar 파일 다운로드
      • 배치 경로: 프로젝트 내 WEB-INF/lib 폴더에 JDBC 드라이버 복사
      • 자동 완성 팁: Ctrl + Space를 사용하여 import 구문 누락 방지

      🛠️ 실습 메모 및 팁

      • Docker 명령어 효율: 컨테이너 ID는 앞 3자리만 입력해도 식별 가능 시 삭제 및 제어 가능
      • JSTL 라이브러리: Apache Tomcat 환경에서 JSTL 기능을 쓰기 위해 라이브러리 파일 위치 확인 필수
      • DB 연동 주의: 8장은 오라클, 9장은 MySQL을 사용하므로 프로젝트별 드라이버 및 쿼리 문법 유의