목록Server/Spring (24)
새발블로그
필터(Filter)는 왜 필요할까?1. 공통 작업을 반복하지 않기 위해모든 서블릿이나 JSP에서 공통으로 해야 하는 작업을 매번 작성하면 코드가 중복되고 유지보수가 어려움클라이언트가 보낸 데이터가 한글인데 UTF-8 인코딩을 안 하면 글자가 깨진다.그래서 모든 서블릿에 아래 코드를 넣어야한다.request.setCharacterEncoding("UTF-8");이렇게 매번 넣지 말고, 필터를 이용해서 한 곳에서 공통 처리하는 것이 훨씬 편함2. 요청(Request) 또는 응답(Response)을 가로채서 처리할 수 있기 때문필터는 서블릿이 실행되기 전 또는 후에 개입할 수 있다.필터 목적설명인코딩 설정요청(request)의 문자 인코딩을 UTF-8로 통일로그인 체크로그인하지 않은 사용자가 보호된 페이지에 ..
CORS (Cross-Origin Resource Sharing)1. CORS란?웹 브라우저가 서버 간 자원 공유를 제어하기 위한 보안 메커니즘기본적으로 동일 출처 정책(SOP, Same-Origin Policy) 때문에 다른 도메인에서 리소스를 요청하면 차단됨CORS는 서버가 클라이언트의 요청을 받아들이도록 명시적으로 허용하는 방법2. 출처(Origin) 정의출처는 다음 3가지 요소가 모두 동일해야 함프로토콜 (http, https)도메인 (example.com)포트 번호 (80, 443 등)예)http://example.com:80 과 https://example.com:80 → 다른 출처http://example.com:80 과 http://api.example.com:80 → 다른 출처3. COR..
1. 쿠키(Cookie) / 세션(Session) / 로컬스토리지(LocalStorage) 공통점모두 클라이언트의 정보를 저장하는 웹 저장 기술사용 목적: 로그인 상태 유지, 사용자 정보 기억, 장바구니, 설정 저장 등쿠키 (Cookie)항목내용저장 위치클라이언트(브라우저)에 저장저장 방식name=value 쌍으로 텍스트 형태자동 전송 여부브라우저가 자동으로 서버에 전송유효기간기본적으로 브라우저 종료 시 삭제, expires 속성 지정 가능용량 제한약 4KB보안Secure, HttpOnly, SameSite 설정으로 보호 가능 HTTP 요청 시마다 서버에 쿠키가 자동 포함됨로그인 유지, 방문자 트래킹에 자주 사용보안 민감 정보 저장은 X (평문 저장됨)document.cookie = "token=abcd..
JSP & 서블릿 기본 정리1. JSP 구성 요소 - Scripting Elements요소형식특징위치Scriptlet일반 자바 코드 작성_jspService() 내부Expression출력, out.print() 자동 호출_jspService() 내부Declaration멤버 변수/메서드 선언_jspService() 외부 2. JSP 내장 객체 (JSP 파일 안에서 자동 사용 가능)이름타입설명requestHttpServletRequest클라이언트 요청 정보responseHttpServletResponse클라이언트 응답 처리sessionHttpSession사용자 세션applicationServletContext애플리케이션 전체 범위 객체configServletConfig서블릿 설정 정보outJspWriter출..
1. JSP(JavaServer Pages)란?서버 측에서 실행되는 HTML 기반 페이지HTML에 Java 코드를 삽입하여 동적 웹 페이지를 생성최초 요청 시 Servlet(.java)으로 변환되고, 컴파일되어 실행됨2. JSP vs ASP구분JSP (JavaServer Pages) ASP (Active Server Pages)플랫폼Java 기반Microsoft 기반실행 환경톰캣 등 WASIIS 웹 서버확장자.jsp.asp언어JavaVBScript / JScript 등3. JSP 파일 구성 요소1. HTML 요소일반적인 HTML 코드 (정적 컨텐츠)2. JSP 요소2-1. Scripting Element (스크립팅 요소)JSP 파일이 Servlet으로 변환될 때 Java 코드로 포함됨구분형식설명위치Scr..
1. 톰캣(Tomcat)이란?톰캣이란?Servlet/JSP를 실행해주는 WAS (Web Application Server)Apache Software Foundation에서 제공하는 Java 기반 오픈소스 WASHTTP 요청을 받아 Java Servlet을 통해 동적 웹 페이지 생성(정적 자원도 처리 가능하지만 주로 동적 처리용으로 사용)톰캣의 역할 예시사용자가 웹 브라우저에서 http://localhost:8080/demo/hello-servlet 요청 시,톰캣이 요청을 수신/demo 웹 어플리케이션을 찾음/hello-servlet이라는 URL 매핑을 가진 서블릿(@WebServlet) 실행서블릿이 응답 생성 후 반환 → 브라우저에 표시됨2. 서블릿(Servlet) 개념정의자바 기반의 서버 측 웹 애플..
1. SLF4J (Simple Logging Facade for Java)다양한 로깅 프레임워크(Logback, Log4j, JUL 등)를 추상화하여 일관된 인터페이스 제공로깅 퍼사드(Facade) 역할 수행SLF4J를 사용하는 이유로깅 구현체(Logback, Log4j 등) 교체 시 코드 수정 없음여러 라이브러리가 각자 다른 로깅 프레임워크를 쓸 때 통합 가능인터페이스에만 의존 → 유지보수와 테스트 용이SLF4J 구성 모듈모듈설명API (Facade)로깅 인터페이스 제공 (Logger, LoggerFactory)Binding로깅 구현체와 SLF4J를 연결하는 어댑터 (예: slf4j-logback-classic)Bridging기존 로깅 API 호출을 SLF4J로 리다이렉트 (예: jul-to-slf4j..
1. 빌드 (Build)빌드란?소스코드 → 실행 가능한 프로그램으로 변환하는 과정주로 컴파일, 의존성 관리, 리소스 처리, 패키징, 사인, 최적화 등이 포함됨빌드 과정컴파일 (Compile): 소스코드를 실행 가능한 코드로 변환의존성 관리 (Dependency Management): 필요한 외부 라이브러리 자동 다운로드리소스 처리: 앱에 필요한 이미지, XML, 문자열 등 처리패키징 (Packaging): 모든 파일을 하나의 실행 파일로 묶음사인 (Signing): 앱에 디지털 서명하여 보안 보장최적화: 코드 난독화, 불필요한 코드 제거 등2. 빌드 도구: GradleGradle 빌드 과정Gradle은 여러 태스크로 빌드를 진행하며, 순차적으로 실행됨순서Task 설명1clean이전 빌드 결과 삭제 (bu..