250204 TIL
·
TIL
에러 페이지 처리에러 페이지는 was가 보여줌▶️사용자가 에러 페이지를 만들어서 보여줄 수 있음@ControllerAdvicepublic class GlobalExceptionHandler { private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class); @ExceptionHandler(Exception.class) public ModelAndView exception(Exception e, Model model) { logger.error(e.getMessage(), e); //sout를 쓰면 시스템 성능이 낮아질수 있으므로 Logger 사용 // Sys..
250203 TIL
·
TIL
쿠키(Cookie)웹 애플리케이션에서 클라이언트(사용자의 브라우저)와 서버 간에 데이터를 저장하고 전송하는 데 사용되는 작은 데이터사용자의 상태 정보(예: 세션 ID, 마지막 방문 시간 등)를 유지쿠키는 사용자의 브라우저(클라이언트)에 저장브라우저가 이후에 서버에 요청을 보낼 때 쿠키를 함께 저장키-값 쌍으로 저장유효 기간 설정 가능특정 경로나 도메인에서만 쿠키가 유효하도록 설정클라이언트 측에서 저장되기 때문에 보안 상 이슈 있을 수 있음중요한 정보는 암호화 하거나 세션 사용HTTPS에서만 전송되도록 설정하거나, 클라이언트 스크립트(JavaScript)에서 접근하지 못하도록 설정@GetMapping("/visit")public String showVisit( @CookieValue(name ..
250124 TIL
·
TIL
status 변수 사용 @Controllerpublic class ListController { @GetMapping("/list") public String showList(Model model) { List items = Arrays.asList( "Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6", "Item 7", "Item 8", "Item 9", "Item 10" ); model.addAttribute("items", items); // 데이터를 모델에 추가 return "list"; // list.html로 이동 }} List E..
250123 TIL
·
TIL
HTTP 프로토콜클라이언트(주로 웹 브라우저)와 서버 간에 데이터를 교환하기 위해 사용하는 애플리케이션 계층 프로토콜(규약)텍스트 기반 프로토콜: 사람이 읽을 수 있는 간단한 텍스트 형식으로 요청과 응답이 이루어짐.클라이언트-서버 모델: 클라이언트가 요청(Request)을 보내면 서버가 응답(Response)을 반환.비연결성 (Stateless): 각 요청은 독립적으로 처리되며, 서버는 이전 요청의 상태를 기억하지 않음.확장성: HTTP는 다양한 확장 기능(HTTP/2, HTTP/3 등)을 통해 더 효율적으로 개선 가능.HTTP 요청(Request)클라이언트가 서버에 리소스를 요청하는 메시지1️⃣ 요청 라인(Request Line)GET /index.html HTTP/1.1 ▫️요청 메서드 (GET, P..
서블릿(Servlet), JSP(Java Server Pages), 서블릿 컨테이너 간단 정리
·
JAVA
서블릿(Servlet)자바에서 요청과 응답을 처리할 수 있는 기본적인 컴포넌트는 서블릿(Servlet)이다서블릿은 클라이언트로부터 HTTP 요청(request)을 받고 HTTP 응답(response)을 처리하는 역할을 하지만, HTML을 작성하려면 Java 코드 안에 직접 HTML 코드를 작성해야함response.getWriter().println("Hello, World!"); 유지보수가 어렵고 가독성이 떨어지며, 복잡한 UI를 개발하기에는 비효율적이다이러한 단점을 보완하기 위해 등장한 기술이 JSP(Java Server Pages)이다JSP(Java Server Pages)JSP는 HTML 태그 안에 Java 코드를 삽입할 수 있어, 페이지를 개발할 때 훨씬 더 편리하게 작업할 수 있다 He..
250122 TIL
·
TIL
Spring MVChttps://jjiyuuuuun.tistory.com/55# MVC(spring mvc)  model 1 vs model2 -1-11Spring MVC는 Spring의 핵심 기능인 의존성 주입(Dependency Injection) 활용 📌 특징▪️다양한 뷰 기술((JSP, Thymeleaf, FreeMarker 등) 지원, JSON, XML 등 데이터 반환 할 수 있어 RESTful API 구현에 적합▪️Spring의 **의존성 주입과 AOP(Aspect-Oriented Programming)**를 통해 모듈화하고 관리▪️애노테이션 기반의 설정을 통해 간단하게 컨트롤러를 구성  ex) @Controller / @RestController / @RequestMapping▪️초기 설정..
250121 TIL
·
TIL
AOP(Aspect Oriented Programming)https://jjiyuuuuun.tistory.com/55#AOP-1-10 📌AOP관련 의존성 추가dependencies {implementation 'org.springframework.boot:spring-boot-starter-aop'}   ▪️Aspect (애스펙트)공통 기능(횡단 관심사, cross-cutting concern)을 구현한 모듈▶️로깅, 트랜잭션 관리, 보안 체크 등핵심 로직과 별개로 동작하는 부가기능을 담당하는 클래스스프링 빈에 @Aspect를 명시하면 해당 빈이 Aspect로 작동한다. @Aspect@Componentpublic class LoggingAspect { // 여기에 부가기능 구현 (예: 로깅)} ▪..
250120 TIL
·
TIL
빈의 생명주기(Bean Life Cycle)  1️⃣ 빈 생성컨테이너가 빈의 인스턴스 생성싱글톤 스코프는 빈 공장(애플리케이션 컨텍스트)이 초기화 될 때 생성 2️⃣ 의존성 주입@Autowired나 XML 설정 등을 통해 의존성을 주입받음 3️⃣ 초기화 (Initialization)초기화 작업 수행@PostConstruct (JSR-250)InitializingBean 인터페이스의 afterPropertiesSet() 메서드XML 또는 Java Config에서 지정한 initMethod4️⃣ 사용빈이 사용된다. 애플리케이션의 비즈니스 로직 수행에 사용 5️⃣ 소멸 (Destruction)빈이 컨테이너에서 제거되거나 애플리케이션 종료 시 소멸 작업이 수행@PreDestroy (JSR-250)Disposab..
250117 TIL
·
TIL
IoC 컨테이너는 객체를 빈이라는것으로 관리를 한다?컨테이너에 객체(빈)를 등록하여 컨테이너가 객체를 사용하는 권한을 가진다?컨테이너 안 객체들 사이에 의존성을 주입 하여 객체들 간의 관계를 정리한다?IoC (Inversion of Control, 제어의 역전)👉🏻애플리케이션의 제어 권한을 개발자(혹은 프로그램 코드)에서 프레임워크나 컨테이너(SPRING)로 넘기는 것 Spring에서는 IoC를⭐DI (Dependency Injection)⭐ 방식을 통해 구현 Spring의 IoC 컨테이너를 이용하여 Bean을 등록하는 방법1️⃣ XML 파일을 이용한 Bean 등록2️⃣ Java Config 클래스를 이용한 Bean 등록: @Configuration과 @Bean을 사용하여 빈을 등록 ▶️외부 객체 3..
250116 TIL
·
TIL
프레임워크 vs 라이브러리프레임 워크▪️전체적인 구조와 규칙을 제공하는 틀, 개발자가 그 틀 안에서 작업하며, 프레임워크가 개발 과정을 주도함 ▪️프레임워크는 레고 세트와 비슷하다, 이미 만들어진 가이드(설명서)가 있어 그 규칙에 따라 조립,정해진 구조에 맞춰야함 🧩프레임 워크 구성요소1. Cold Spot (프레임워크 코어)▪️ 변경되지 않고 반복적으로 재사용되는 부분.▪️프레임워크가 제공하는 핵심 라이브러리와 핵심 기능, 개발자가 수정하거나 확장하지 않음. 2. Hook Point (확장 포인트)▪️ 프레임워크가 개발자에게 제공하는 확장 가능한 지점.▪️ 일반적으로 추상 클래스나 인터페이스 형태로 제공됨.▪️ 개발자는 이 부분을 구현하거나 상속받아 애플리케이션 고유의 로직을 추가할 수 있음 Spri..