[독서] 프로젝트로 배우는 자바 웹 프로그래밍

가니·2023년 8월 3일
0
post-thumbnail
💡 초심으로 돌아가 개발 기초를 되새기기 위해 작성합니다.

Java

  • 객체지향 언어
  • 하드웨어나 운영체제에 영향을 받지 않음

Servlet Container

  • Servlet과 JSP를 실행할 수 있는 환경
  • 웹 서비스의 기능 기본적으로 포함
  • 자바로 개발
  • Apache Tomcat은 웹 서버 소프트웨어 중 하나로 Servlet Container

Servlet

자바를 이용한 서버 프로그래밍 기술로 웹 환경에서 자바를 사용하기 위해 등장

자바 플랫폼에서 컴포넌트를 기반으로 하는 웹 애플리케이션을 개발할 때 사용하는 핵심 기술
(컨테이너인 톰캣에 의해 관리되는 웹 애플리케이션)

웹 애플리케이션 확장 용이, 독립적 플랫폼으로 개발 가능

  • 장점
    1. 자바 기반으로 자바 API 모두 사용 가능

    2. 하드웨어나 운영체제에 영향을 받지 않아 한 번 개발된 어플리케이션 다양한 서버 환경에서도 실행

    3. 웹 애플리케이션에서 효율적인 자료 공유 방법 제공

    4. 다양한 오픈소스 라이브러리 및 개발도구 활용 가능


    5. MVC 패턴 쉽게 적용 가능
      컨테이너와 밀접한 서버 프로그램 구현 가능

    6. MVC 패턴 적용 시 콘텐츠와 비즈니스 로직 분리 가능
      컨트롤러와 뷰가 역할 분담 → 작업 원활


HttpServlet

  • HttpServletRequest
    • 클라이언트로부터 전달되는 사용자 정보 처리를 위해 메서드 제공
  • HttpServletResponse 서버에서 클라이언트에 응답하기 위한 기능 제공
    • sendRedirect 현재 페이지 다른 페이지로 전달
      forward와 유사하나 forward는 원래 요청이 포함되어 전달되고 위는 아님

Session

❓ 세션과 쿠키의 차이 쿠키: PC에 보관 세션: 서버에 보관 → 보안에 유리, 제약사항 적음

웹 브라우저와 웹 서버가 지속적으로 클라이언트를 인식하려고 필요한 정보를 임시로 저장 (웹 애플리케이션에 최초로 접속할 때 세션 설정)

연결된 사용자마다 생성되기 때문에 서버에 연결된 각각의 사용자마다 자신만의 세션 영역이 존재하며(분리된 저장 영역) 사용자 간에 공유되지 않음

  • METHOD getId() - 각 접속에 대한 세션 고유의 ID 문자열 형태로 반환 invalidate() - 세션과 관련된 값 모두 지워지며 현재 세션 종료 getAttribute(attr) - java.lang.Object 현태로 반환 setAttribute(name, attr) - java.lang.Object 저장

JDBC (Java DataBase Connectivity)

자바프로그램에서 표준화된 방법으로 다양한 데이터베이스 접속할 수 있도록 만든 API 규격


SLF4J (Simple Loggin Framework for Java)

대표적인 로깅 프레임워크로 기존 API들의 문제점 보완
기존 로깅 프레임워크와의 호환성

기본적인 구조만을 제공하여 실제 로깅 처리(Log4J)는 다른 구현체 쓸 수 있는 범용 프레임워크
(annotation 활용해 Log4J 결합)

  • FATAL - 가장 심각한 오류 (상태 콘솔에 즉시 출력)
  • ERROR - 일반적인 오류 (상태 콘솔에 즉시 출력)
  • WARN - 오류 X / 주의 요구하는 경우 (상태 콘솔에 즉시 출력)
  • INFO - 런타임 시 관심있는 이벤트 (상태 콘솔에 즉시 출력)
  • DEBUG - 시스템 흐름과 관련된 상세정보 (로그 파일로만 출력)
  • TRACE - 가장 상세한 형태의 정보 (로그 파일로만 출력)

오류 처리

100Continue
200OK 오류 없이 전송 성공
201Created, Post 명령 실행 및 성공
400Bad Request
클라이언트의 잘못된 요청으로 처리할수 없음
403Forbidden
접근이 거부된 문서 요청
404Not found
문서를 찾을 수 없음
405Method not allowed
리소스를 허용하지 않음
406Not acceptable
허용할 수 없음
500Internal server error
내부 서버 오류 (잘못된 스크립트 실행 시)
501Not implemented
클라이언트에서 서버가 수행할 수 없는 행동 요구
502Bad gateway
서버 과부하 상태
503Service unavailable
외부 서비스가 죽었거나 현재 멈춘 상태
505HTTP version not supported
profile
멋진 개발자가 되는 그날까지, 좋았어 영차!

0개의 댓글