Backend/spring 13

DTO 작성 방법 - Array 및 Object 타입

DTO(Data Transfer Object)는 애플리케이션의 계층 간 데이터를 간단히 전달하기 위해 사용되는 객체입니다. 특히 DTO는 데이터를 캡슐화하여 객체로 전달함으로써 데이터 일관성을 유지하고, 불필요한 비즈니스 로직을 생략함으로써 성능을 높일 수 있습니다. 이 글에서는 DTO의 작성 방법을 키워드 및 예제와 함께 설명하며, Array나 Object 타입의 필드가 포함된 경우의 작성법도 함께 다루겠습니다.1. DTO 작성의 기본 구성DTO는 주로 다음 요소로 구성됩니다.필드: DTO가 전달할 데이터. 주로 private 접근 제어자로 선언하여 외부 접근을 제한합니다.기본 생성자: 객체 생성 시 기본 상태로 생성할 수 있도록 빈 생성자를 추가합니다.게터/세터: 각 필드에 접근할 수 있도록 gett..

Backend/spring 2024.11.18

MyBatis 연결 (Spring DAO 작성 방법)

목차1. 매퍼 인터페이스 사용   *MyBatis Generator를 사용하여 생성하는 방법2. SqlSession 직접 사용 3. 어노테이션 기반 매퍼 0. 시작하기 전에0-1. Spring boot mybatis 의존성 추가pom.xml에 MyBatis 의존성을 추가합니다. org.mybatis.spring.boot mybatis-spring-boot-starter 3.0.6 0-2. Spring 공통 설정  0-3. MyBatis-Spring 통합 라이브러리 사용 준비MyBatis-Spring 통합은 Spring Framework와 MyBatis를 함께 사용하는 방식으로, 의존성 주입(DI) 및 트랜잭션 관리를 쉽게 할 수 있습니다.- applica..

Backend/spring 2024.10.30

Spring WebSocket

Spring WebSocket 사용 방법 1. 의존성 추가 Maven pom.xml 파일에 다음과 같이 의존성을 추가합니다: org.springframework spring-messaging Gradle build.gradle 파일에 다음과 같이 의존성을 추가합니다: implementation 'org.springframework:spring-messaging' 2. WebSocket 설정 WebSocket 엔드포인트를 등록하는 설정 클래스를 작성. WebSocketConfigurer 인터페이스를 구현하거나 @EnableWebSocket을 사용하여 WebSocket 활성화 *@EnableWebSocket을 사용하면 WebSocket 관련 빈들이 자동으로 등록됨. *WebSocketConfigurer을 i..

Backend/spring 2024.03.01

비밀번호 암호화/인증 (spring security 계정 생성)

암호화 사용자를 생성 할 때 DB에 암호화 하여 비밀번호 저장. @RequestMapping(value = "/passwordEncode", method = RequestMethod.POST) @ResponseBody public String passwordEncode(@RequestBody String password, HttpServletRequest request) { BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder(10); String hashedPassword = passwordEncoder.encode(password); return hashedPassword; } 인증 passwordEncoder.matches(presen..

Backend/spring 2023.11.06

[spring security] 3. UserDetailsService, UserDetails

UserDetailsService, UserDetails는 유저 정보를 가져와 비교하기 위해 쓰이는 인터페이스입니다. 1. UserDetailsService UserDetailsService는 Spring Security가 사용자 정보를 가져오는 역할을 담당하는 인터페이스입니다. 보통 사용자 정보는 데이터베이스나 외부 인증 소스에서 가져오는데, UserDetailsService 인터페이스 구현 시 오버라이드 되는 loadUserByUsername 메서드는 사용자 이름을 기반으로 사용자 정보를 조회하는 역할을 합니다. public interface UserDetailsService { UserDetails loadUserByUsername(String username) throws UsernameNotFo..

Backend/spring 2023.08.29

[spring security] 2. configure 작성

configure 작성 스프링 시큐리티 구성 파일을 나타내며 다음과 같은 기능을 수행합니다: PasswordEncoder 빈 설정 비밀번호 인코딩을 위한 BCryptPasswordEncoder를 빈으로 등록합니다. CorsConfigurationSource 빈 설정 CORS(Cross-Origin Resource Sharing) 설정을 구성하여 특정 출처로부터의 요청을 허용합니다. SecurityFilterConfig 클래스: SecurityConfigurerAdapter를 상속받아 커스텀한 보안 필터 설정을 구성합니다. configure(HttpSecurity http) 메서드에서 보안 관련 설정을 수행합니다. CSRF 보호를 비활성화하고, CORS 설정을 적용합니다. 특정 URL 패턴에 대한 접근 권..

Backend/spring 2023.08.27

[spring security] 1. 의존성 추가, 기본 로그인 페이지

스프링 시큐리티는 인증 (Authentication) ,권한(Authorize) 부여 및 보호 기능을 제공하는 프레임워크다. 인증(Authentication) , 인가(Authorization) 인증: 해당 사용자가 본인이 맞는지를 확인하는 절차. 인가: 인증된 사용자가 요청된 자원에 접근가능한가를 결정하는 절차 1. 의존성 추가 build.gradle 2. 기본 로그인 페이지 지정하지 않으면 기본 아이디는 user이고 비밀번호는 스프링부트를 실행할 때 마다 자동으로 생성되어 터미널에 나온다. 3. name, password 지정 application.properties에 아래와 같이 username, password를 지정할 수 있다. spring.security.user.name = 1234 spri..

Backend/spring 2023.08.20

spring boot 개발환경 설정(spring initializr)

프로젝트 기본 구조를 생성할 때 spring initializr를 이용한다. 1. Extension 설치 2. Command Palette에 Spring Initialzr을 입력 *ctrl + shift + p 를 누르고면 Command Palette가 나옵니다. 저는 gradle 프로젝트를 생성했습니다!! 위의 명령어 입력후 아래 기본 정보를 순서대로 선택하게 되어있는데 프로젝트 언어 말고는 전부 그냥 엔터쳤습니다. dependency도 뭐가 필요한지 잘 몰라서 lombok만 미리 추가했습니다. 스프링 부트 버전 프로젝트 언어 (JAVA선택) 그룹 ID Artifact ID 패키지 타입 자바버전 Dependency 3. 기본 구조 생성 완료 Artifact ID는 demo라는 폴더명 이였네요ㅎㅎ

Backend/spring 2023.08.18

[spring] @RequestParam @RequestBody 차이점

@RequestParam과 @RequestBody는 Spring Framework에서 요청 파라미터를 받는 데 사용되는 어노테이션입니다. @RequestParam 사용법: @RequestParam("paramName") 역할: URL 매개변수를 받아올 때 사용합니다. 예를 들어, ?paramName=value 형태의 URL 매개변수에서 paramName에 해당하는 값을 받아올 수 있습니다. 기본적으로는 요청의 쿼리스트링(또는 폼 데이터)에서 해당 매개변수를 찾아 값을 바인딩합니다. required 옵션을 사용하여 필수 매개변수 여부를 지정할 수 있습니다. 기본적으로는 단일 값을 받지만, List나 배열을 사용하여 여러 값을 받을 수도 있습니다. @RequestBody 사용법: @RequestBody 역할..

Backend/spring 2023.05.25

spring bean 주입 방법

스프링 프레임워크에서 의존성을 주입하는 방법은 3가지가 있습니다.Constructor Injection (생성자 주입) -> 권장Setter Injection (세터 주입)Field Injection (필드 주입)종류1.Constructor Injection (생성자 주입)클래스의 생성자를 통해 의존성을 주입합니다. 클래스에 필요한 의존성을 생성자 매개변수로 선언하고, Spring은 해당 매개변수에 맞는 Bean을 찾아 주입합니다.주입되는 Bean은 XML 또는 Java Config와 같은 설정 파일에서 정의됩니다.객체가 생성될 때 한 번만 호출됩니다. 즉, 객체가 처음 만들어질 때 필드 값을 초기화합니다.public class MyClass { private MyDependency myDepend..

Backend/spring 2023.05.10