[개발] Spring boot
-
Why Use DTO (Data Transfer Object)1. 계층 간 데이터 전달을 간소화DTO는 비즈니스 로직 계층과 프레젠테이션 계층 간의 데이터 전달을 위해 사용됩니다. 복잡한 엔티티를 직접 노출하는 대신, 필요한 데이터만을 포함하는 DTO를 만들어 데이터를 간단하고 안전하게 전달할 수 있습니다. 이를 통해 계층 간의 결합도를 낮추고 유지보수성을 향상시킵니다. 2. 엔티티와의 분리JPA 엔티티는 데이터베이스와 직접 매핑되어 있습니다. 이를 직접 클라이언트에 노출하면 데이터베이스 구조 변경이 클라이언트에 영향을 줄 수 있습니다. 반면, DTO를 사용하면 데이터베이스와 비즈니스 로직의 변경을 클라이언트로부터 분리할 수 있습니다. 3. 보안 향상DTO를 통해 노출할 필드를 제한함으로써 중요..
[Spring boot] DTO(Data Transfer Object) 쓰는 이유는?Why Use DTO (Data Transfer Object)1. 계층 간 데이터 전달을 간소화DTO는 비즈니스 로직 계층과 프레젠테이션 계층 간의 데이터 전달을 위해 사용됩니다. 복잡한 엔티티를 직접 노출하는 대신, 필요한 데이터만을 포함하는 DTO를 만들어 데이터를 간단하고 안전하게 전달할 수 있습니다. 이를 통해 계층 간의 결합도를 낮추고 유지보수성을 향상시킵니다. 2. 엔티티와의 분리JPA 엔티티는 데이터베이스와 직접 매핑되어 있습니다. 이를 직접 클라이언트에 노출하면 데이터베이스 구조 변경이 클라이언트에 영향을 줄 수 있습니다. 반면, DTO를 사용하면 데이터베이스와 비즈니스 로직의 변경을 클라이언트로부터 분리할 수 있습니다. 3. 보안 향상DTO를 통해 노출할 필드를 제한함으로써 중요..
2024.09.28 -
스프링 부트 바로가기 Java and Spring Annotations and Concepts1. Spring MVC와 관련된 항목들model.addAttribute:이유: 컨트롤러에서 뷰로 데이터를 전달할 때 사용됩니다. 뷰 템플릿에서 데이터를 사용하도록 추가하는 역할을 합니다.예: model.addAttribute("attributeName", attributeValue);ResponseEntity:이유: HTTP 응답을 직접 제어하고자 할 때 사용됩니다. 상태 코드, 헤더, 응답 본문을 표현할 수 있습니다.예: return new ResponseEntity(body, HttpStatus.OK);redirect:이유: 서버 측에서 리다이렉션을 수행하기 위해 사용됩니다. 클라이언트의 브라우저에 새로운 ..
[Spring boot] 스프링 부트, JAVA 기초 코드 개념 정리스프링 부트 바로가기 Java and Spring Annotations and Concepts1. Spring MVC와 관련된 항목들model.addAttribute:이유: 컨트롤러에서 뷰로 데이터를 전달할 때 사용됩니다. 뷰 템플릿에서 데이터를 사용하도록 추가하는 역할을 합니다.예: model.addAttribute("attributeName", attributeValue);ResponseEntity:이유: HTTP 응답을 직접 제어하고자 할 때 사용됩니다. 상태 코드, 헤더, 응답 본문을 표현할 수 있습니다.예: return new ResponseEntity(body, HttpStatus.OK);redirect:이유: 서버 측에서 리다이렉션을 수행하기 위해 사용됩니다. 클라이언트의 브라우저에 새로운 ..
2024.09.28 -
Thymeleaf 공식 사이트 바로가기 Thymeleaf 실무에서 자주 사용하는 문법1. Thymeleaf 기본 문법1.1 th:text텍스트를 출력할 때 사용합니다.Default Text${message}는 컨트롤러에서 전달된 모델의 값으로 대체됩니다. 1.2 th:utextHTML 태그를 포함한 텍스트를 출력하며, HTML을 그대로 렌더링합니다. 2. 속성 대체2.1 th:href와 th:src링크와 이미지를 동적으로 설정할 때 사용합니다.Home2.2 th:classCSS 클래스를 동적으로 지정합니다.Content 3. 조건문과 반복문3.1 th:if와 th:unless조건에 따라 요소를 렌더링할 때 사용합니다.Welcome, !Please log in.3.2 th:each리스트나 배열..
[Spring boot] 실무에서 자주쓰는 타임리프(Thymeleaf) 문법 총정리(안보면 손해)Thymeleaf 공식 사이트 바로가기 Thymeleaf 실무에서 자주 사용하는 문법1. Thymeleaf 기본 문법1.1 th:text텍스트를 출력할 때 사용합니다.Default Text${message}는 컨트롤러에서 전달된 모델의 값으로 대체됩니다. 1.2 th:utextHTML 태그를 포함한 텍스트를 출력하며, HTML을 그대로 렌더링합니다. 2. 속성 대체2.1 th:href와 th:src링크와 이미지를 동적으로 설정할 때 사용합니다.Home2.2 th:classCSS 클래스를 동적으로 지정합니다.Content 3. 조건문과 반복문3.1 th:if와 th:unless조건에 따라 요소를 렌더링할 때 사용합니다.Welcome, !Please log in.3.2 th:each리스트나 배열..
2024.09.28 -
Spring boot 바로가기 1. Spring Security 관련@Configuration: 스프링 설정 클래스임을 나타내는 어노테이션입니다. XML 설정 파일을 사용하지 않고 자바 기반 설정을 할 때 사용합니다.@EnableWebSecurity: Spring Security를 활성화하고 보안 설정을 적용하기 위해 사용합니다. 보안 필터 체인을 구성하고 사용자 인증 및 권한 부여와 관련된 보안 규칙을 정의할 수 있습니다. 2. Spring Bean 등록 및 의존성 주입 관련@Bean: 메서드 수준에서 사용되며, 스프링 컨테이너에 빈(Bean)을 등록하는 역할을 합니다. 등록된 빈은 스프링 컨테이너에 의해 관리되며 필요한 곳에 의존성 주입이 가능합니다.@Service: 비즈니스 로직을 처리하는 ..
[Spring boot] 어노테이션(Annotaion)이란? 분류 및 쓰임새 총정리Spring boot 바로가기 1. Spring Security 관련@Configuration: 스프링 설정 클래스임을 나타내는 어노테이션입니다. XML 설정 파일을 사용하지 않고 자바 기반 설정을 할 때 사용합니다.@EnableWebSecurity: Spring Security를 활성화하고 보안 설정을 적용하기 위해 사용합니다. 보안 필터 체인을 구성하고 사용자 인증 및 권한 부여와 관련된 보안 규칙을 정의할 수 있습니다. 2. Spring Bean 등록 및 의존성 주입 관련@Bean: 메서드 수준에서 사용되며, 스프링 컨테이너에 빈(Bean)을 등록하는 역할을 합니다. 등록된 빈은 스프링 컨테이너에 의해 관리되며 필요한 곳에 의존성 주입이 가능합니다.@Service: 비즈니스 로직을 처리하는 ..
2024.09.28 -
요약application.properties: 애플리케이션 설정(서버 포트, DB 정보 등)을 관리하는 파일.settings.gradle: 프로젝트 이름과 모듈 구성을 정의하는 파일.src/main/java: 핵심 비즈니스 로직, 서비스, 컨트롤러, 리포지토리 등을 구현하는 Java 코드가 위치.src/main/resources/static: CSS, JS, 이미지 등의 정적 리소스를 저장하는 폴더.src/main/resources/templates: 템플릿 엔진을 사용하여 동적인 HTML 페이지를 생성할 때 사용하는 HTML 파일을 저장하는 폴더. Spring Boot 프로젝트 구조 세부 설명1. application.properties위치: src/main/resources/application.p..
[Spring boot] 스프링 부트, 핵심 폴더 역할 이해 및 설명요약application.properties: 애플리케이션 설정(서버 포트, DB 정보 등)을 관리하는 파일.settings.gradle: 프로젝트 이름과 모듈 구성을 정의하는 파일.src/main/java: 핵심 비즈니스 로직, 서비스, 컨트롤러, 리포지토리 등을 구현하는 Java 코드가 위치.src/main/resources/static: CSS, JS, 이미지 등의 정적 리소스를 저장하는 폴더.src/main/resources/templates: 템플릿 엔진을 사용하여 동적인 HTML 페이지를 생성할 때 사용하는 HTML 파일을 저장하는 폴더. Spring Boot 프로젝트 구조 세부 설명1. application.properties위치: src/main/resources/application.p..
2024.09.27 -
Spring Boot 프로젝트 구조최상위 폴더.gradle:Gradle 관련 파일과 캐시 정보를 저장하는 폴더입니다. 프로젝트 빌드 및 실행 시 필요한 Gradle 데이터가 포함되어 있습니다. .idea:IntelliJ IDEA에서 프로젝트를 관리하는 설정 파일이 포함된 폴더입니다. 다른 개발자와 프로젝트를 공유할 때 필수적이지 않으며, 프로젝트를 여는 개발 환경에 따라 다를 수 있습니다. build:프로젝트를 빌드할 때 생성되는 모든 결과물이 저장되는 폴더입니다. 컴파일된 클래스 파일, jar 파일, 리소스 파일 등이 이곳에 위치합니다. 실행 및 배포 시 자동으로 생성되므로 버전 관리에는 포함할 필요가 없습니다. gradle:Gradle 래퍼(wrapper) 설정 파일이 들어 있는 폴더입니다. 프로젝트..
[Spring boot] 스프링 부트 프로젝트 구조 이해 및 요약Spring Boot 프로젝트 구조최상위 폴더.gradle:Gradle 관련 파일과 캐시 정보를 저장하는 폴더입니다. 프로젝트 빌드 및 실행 시 필요한 Gradle 데이터가 포함되어 있습니다. .idea:IntelliJ IDEA에서 프로젝트를 관리하는 설정 파일이 포함된 폴더입니다. 다른 개발자와 프로젝트를 공유할 때 필수적이지 않으며, 프로젝트를 여는 개발 환경에 따라 다를 수 있습니다. build:프로젝트를 빌드할 때 생성되는 모든 결과물이 저장되는 폴더입니다. 컴파일된 클래스 파일, jar 파일, 리소스 파일 등이 이곳에 위치합니다. 실행 및 배포 시 자동으로 생성되므로 버전 관리에는 포함할 필요가 없습니다. gradle:Gradle 래퍼(wrapper) 설정 파일이 들어 있는 폴더입니다. 프로젝트..
2024.09.27