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

Day 19 (11/13) - JSP 심화

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

📝 오늘의 강의 요약

핵심 키워드: Docker 관리, Oracle SQL DML, JSP 예외 처리(500 에러), JavaScript BOM 객체

  • DB/Docker: 중단된 오라클 컨테이너 재시작 및 SQL 기본 데이터 타입과 제약 조건 학습
  • JSP: DB 연동 중 발생하는 NumberFormatException 원인 분석 및 해결 방법 파악
  • JavaScript: 브라우저 객체 모델(BOM)인 window, location, history 및 타이머 함수 실습

🐳 Docker 및 Oracle SQL 관리

1. Docker 컨테이너 운용

  • 컨테이너 확인: docker ps -a 명령어로 과거 실행 내역 및 ID 확인
  • 컨테이너 재시작: docker start [Container_ID]를 통한 오라클 서버 가동
  • 데이터 확정: 데이터 입력 및 수정 후 commit; 명령어를 통한 실제 DB 반영 필수

2. SQL 데이터 타입 및 DML

  • 주요 DML: SELECT(조회), INSERT(삽입), UPDATE(수정), DELETE(삭제)
  • 데이터 타입 요약:
    • NUMBER(n): 수치 데이터
    • CHAR(n): 고정 길이 문자 (학번, 우편번호 등)
    • VARCHAR2(n): 가변 길이 문자 (주소, 이메일 등)
    • DATE: 날짜 및 시간 정보
  • 제약 조건: Primary Key를 활용한 데이터 무결성 보장 및 중복 방지

⚠️ JSP 트러블슈팅 (에러 로그 분석)

1. HTTP 상태 500 – 내부 서버 오류

  • 발생 원인: java.lang.NumberFormatException: Cannot parse null string
  • 상세 분석: request.getParameter("admin")으로 받은 값이 null인 상태에서 Integer.parseInt()를 수행할 때 발생
  • 해결 방안:
    • 전달되는 파라미터 명칭이 Form 태그의 name 속성과 일치하는지 확인
    • null 체크 로직 추가 또는 기본값 설정 처리 필요

2. HTTP 상태 404 – 찾을 수 없음

  • 발생 원인: 요청한 경로에 파일이 없거나, 폴더 내에 기본 실행 파일인 index 파일이 부재할 때 발생

📜 JavaScript 객체 및 BOM(Browser Object Model)

1. 브라우저 내장 객체 활용

  • window 객체: 브라우저 창 제어 및 window.open()을 이용한 팝업 생성
  • setInterval / clearInterval: 특정 시간 간격으로 함수를 반복 실행하거나 중지
  • location 객체: 현재 URL 정보 확인 및 페이지 이동 제어
  • history 객체: 브라우저의 방문 기록(뒤로 가기, 앞으로 가기) 제어

2. DOM 조작 및 함수

  • setAttribute: HTML 요소의 속성값(이미지 경로 등)을 동적으로 변경
  • 함수 스코프: 변수의 유효 범위 및 람다(화살표 함수) 표현식 이해
  • 내장 함수: Math.max() 등을 활용한 수치 계산 및 객체 데이터 맵핑(map)

🛠️ 실습 메모 및 요약

  • JSP 프로젝트: web-study-08, 09를 통한 실무적인 회원 관리 시스템(DAO, DTO) 연동 실습
  • SQL 작성 팁: 스크립트 작성 후 Ctrl + Enter를 사용하여 개별 쿼리 즉시 실행
  • JS 스타일 제어: style.backgroundColor 등 자바스크립트를 이용한 실시간 UI 피드백 구현