본문 바로가기

Spring Boot

(9)
1. Spring Boot 프로젝트 생성 1. 초기 설정 1.1 lombok 설정 다음 URL에서 lombok을 다운로드한다. https://projectlombok.org/download cmd창에서 lombok.jar이 위치한 경로로 이동한 다음, 아래와 같이 실행시킨다. 1.2 Build Automatically 해제 STS에서 프로젝트를 생성했을 때, 프로젝트 빌드는 디폴트로 자동 빌드로 설정되어 있음. 이를 수동 빌드로 변경한다. 빌드 단축키 : Ctrl + b 2. Spring Boot 프로젝트 생성 2.1 프로젝트 생성 콘솔 출력 확인 '/' URL 에러 2.2 '/' URL Mapping 테스트 controllers 패키지를 추가하고 TestController.java를 생성. 다음과 같이 코드를 작성한다. package com...
Apache kafka AWS EC2 인바운드 규칙 설정 AWS EC2 SSH 접속 $ ssh -i ./mykafkakey.pem ubuntu@54.180.96.36 OpenJDK 설치하기 1. 인스턴스 업데이트: 우선, EC2 인스턴스의 패키지 목록을 최신 상태로 업데이트합니다. sudo apt upgrade sudo apt update 2. Java 설치 가능한 버전 확인: 사용 가능한 OpenJDK 버전을 검색합니다. 이를 통해 원하는 Java 버전을 선택할 수 있습니다. apt search openjdk 3. Java 설치: 원하는 버전의 OpenJDK를 설치합니다. 예를 들어, OpenJDK 11을 설치하고 싶다면, 다음과 같이 입력합니다. sudo apt install -y openjdk-11-jdk -y 옵션은 설..
@SessionAttributes / @ModelAttribute 웹 서비스 개발 시, 클라이언트와 서버 저장소의 이해는 필수적입니다. 클라이언트 저장소는 로컬 스토리지, 세션 스토리지, 쿠키를 포함하며, 서버 저장소는 세션, 데이터베이스, 캐시를 포함합니다. 프론트엔드와 백엔드 개발자 간의 세션에 관한 혼란을 방지하기 위해 이들의 구분이 중요합니다. HTTP는 상태를 저장하지 않는 무상태 프로토콜이며, 각 요청은 독립적으로 처리됩니다. 이러한 특성은 웹 서비스에서 사용자의 상태를 유지하는 데 제약을 주지만, 실제 웹 서비스는 로그인 상태 유지나 장바구니 정보 보존과 같이 클라이언트 상태를 유지해야 합니다. 이를 위해 세션과 쿠키를 사용하여 클라이언트의 상태를 서버가 기억할 수 있게 합니다. 세션은 서버 메모리, 데이터베이스, 또는 캐시 서버 같은 다양한 기술로 구성될..
Auto Configuration Spring Auto Configuration 스프링 부트 자동 구성은 프로젝트에 추가한 jar 종속성[dependency]을 기반으로 스프링 애플리케이션을 자동으로 구성하려고 시도합니다. 예를 들어, HSQLDB가 클래스패스에 있고 데이터베이스 연결 빈을 수동으로 구성하지 않은 경우, 스프링 부트는 인메모리 데이터베이스를 자동 구성합니다. @Configuration 클래스 중 하나에 @EnableAutoConfiguration 또는 @SpringBootApplication 어노테이션을 추가함으로써 자동 구성을 선택해야 합니다. @SpringBootApplication 또는 @EnableAutoConfiguration 어노테이션은 하나만 추가해야 합니다. 일반적으로 주요 @Configuration 클래스..
Lombok Lombok 롬복 (Lombok)은 자바 (Java) 프로그래밍 언어를 사용하는 개발자들을 위한 플러그인 라이브러리입니다. 롬복은 반복적이고 장황한 코드를 줄여주고, 자동으로 코드를 생성하여 개발자의 생산성을 향상시켜주는 데 도움을 줍니다. 롬복은 Java 언어의 불필요한 보일러플레이트 코드를 최소화하고, 코드를 간결하게 작성할 수 있게 해줍니다. 다음은 롬복의 주요 기능과 개념에 대한 상세 설명입니다: 1. 애노테이션 (Annotations): 롬복은 Java 애노테이션을 사용하여 코드를 자동으로 생성하거나 수정합니다. 롬복 애노테이션은 개발자가 작성한 클래스나 메서드에 적용됩니다. 2. Getter 및 Setter 메서드 생성: 롬복을 사용하면 클래스의 필드에 대한 Getter와 Setter 메서드를..
SLF4J SLF4J SLF4J (Simple Logging Facade for Java)는 자바 어플리케이션에서 로깅 (로그 메시지 기록)을 추상화하고 관리하는 라이브러리입니다. 로깅은 소프트웨어 디버깅, 모니터링 및 문제 해결에 중요한 역할을 하며, 어플리케이션에서 발생하는 이벤트나 상태 정보를 기록하는데 사용됩니다. SLF4J는 다음과 같은 핵심 요소로 구성됩니다: 1. 로깅 인터페이스 (Logging API): SLF4J는 자바 어플리케이션 코드에서 로그 메시지를 기록하기 위한 인터페이스를 제공합니다. 이 인터페이스는 간단하고 사용하기 쉬우며, 로깅 이벤트를 레벨에 따라 기록하고 관리하는 기능을 제공합니다. 로깅 수준에는 TRACE, DEBUG, INFO, WARN 및 ERROR와 같은 다양한 레벨이 포함됩..
@Autowired 아래 메소드는 @Autowired 어노테이션이 적용되어 있습니다. 하지만, @Autowired 어노테이션이 적용하면 컴파일러는 다음과 같은 경고를 합니다. @Autowired가 불필요하다는 경고 메시지입니다 @Autowired 어노테이션이 붙은 JdbcTacoRepository 컨스트럭터에서 컴파일 경고가 발생하는 이유는 Spring Framework에서 단일 컨스트럭터를 가진 클래스의 경우, Spring이 자동으로 해당 생성자를 사용하여 빈(Bean)을 주입하기 때문입니다. 즉, 단일 컨스트럭터가 있는 경우 Spring은 그 컨스트럭트를 자동으로 사용하여 의존성을 주입하기 때문에 @Autowired 어노테이션을 명시적으로 붙일 필요가 없습니다. 이로 인해 @Autowired 어노테이션이 Unnecess..
@Controller Controller 웹 어플리케이션에서 컨트롤러(Controller)는 사용자의 HTTP 요청을 받아들이고, 이 요청을 처리하며, 그 결과에 따라 적절한 응답을 생성하는 컴포넌트입니다. 컨트롤러는 웹 어플리케이션의 중심적인 역할을 하며, 클라이언트(웹 브라우저, 모바일 앱 등)와 상호작용하여 사용자에게 웹 페이지, 데이터, 서비스 등을 제공합니다. 여러 가지 주요 역할과 특징을 갖는 웹 어플리케이션 컨트롤러에 대한 설명은 다음과 같습니다: 1. HTTP 요청 처리: 컨트롤러는 클라이언트의 HTTP 요청을 받아들이고 해당 요청을 처리합니다. 요청은 HTTP 메서드(GET, POST, PUT, DELETE 등)와 URL 경로로 구성되며, 컨트롤러는 이 정보를 사용하여 어떤 작업을 수행할지 결정합니다. 2. ..
Stereotype Annotation 스테레오타입 어노테이션(Stereotype Annotation)은 스프링 프레임워크에서 사용되는 특별한 종류의 어노테이션입니다. 이들은 클래스, 인터페이스, 열거형(enum) 또는 어노테이션 자체에 적용될 수 있으며, 스프링 컨테이너에게 해당 컴포넌트의 역할을 알려주고, 스프링이 자동으로 관리해야 하는 빈(Bean)으로 등록하도록 합니다. 스테레오 타입 어노테이션의 주요 목적은 애플리케이션의 다양한 구성 요소를 분류하고, 그에 따라 스프링이 자동으로 관리할 수 있도록 돕는 것입니다. 이를 통해 개발자는 보일러플레이트 코드를 줄이고, 의존성 주입, 라이프사이클 관리 등 스프링의 핵심 기능을 더 쉽게 활용할 수 있습니다. 스프링에서 가장 일반적으로 사용되는 스테레오 타입 어노테이션은 다음과 같습니다: @Co..