BE

이메일 인증 기능 구현이메일(Gmail) 인증을 통해 엔티티의 enabled 속성을 true로 바꿔줄 것이다. Gmail 설정, 앱 비밀번호 생성Gmail 들어가서 오른쪽 상단 톱니바퀴 - 모든 설정 보기 설정에 전달 및 POP/IMAP-> IMAP 사용, 자동 삭제 사용으로 바꿔준 후 변경사항 저장 구글 계정 - 앱 비밀번호앱 이름 아무거나 입력한다. 앱 이름을 입력 후 만들기를 누르면 앱 비밀번호가 나온다.앱 비밀번호 복사해두기 ! 프로젝트에서 이메일 인증 기능 구현mail 라이브러리 추가implementation 'org.springframework.boot:spring-boot-starter-mail' application.yml에 설정application.yml에 메일 설정을 해준..
Spring Security란?스프링 기반 애플리케이션의 인증(Authentication)과 인가(Authorization)를 담당하는 보안 프레임워크로그인, 접근 제어, CSRF 방어, 세션 관리, OAuth2 지원 등의 다양한 보안 기능을 제공한다.  Gradle 추가dependencies { implementation 'org.springframework.boot:spring-boot-starter-security'}  Spring Security 설정 변경 (SecurityConfig)Spring Boot 3.x부터는 SecurityFilterChain을 사용하여 보안 설정을 변경해야 한다.@Configuration@RequiredArgsConstructor@EnableWebSecurityp..
JPA에서는 테이블의 연관관계를 엔티티 간의 연관관계로 표현할 수 있다. 연관관계 매핑 종류One To One (일대일)@JoinColumn으로 외래키 이름을 설정해준다.@JoinColumn(name = "외래키 이름") ex) 사용자(User)와 프로필(Profile)은 1:1 관계@Entitypublic class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToOne @JoinColumn(name = "profile_id") // 외래 키 설정 private Profile profile;} One To Many (일대다)@OneToMany를 사용해준다.@OneT..
Lombok이란?자바에서 반복적인 보일러플레이트 코드를 줄이기 위해 사용하는 라이브러리Spring Boot에서 DTO, Entity, Service, Controller 등의 클래스에서 getter, setter, 생성자, toString() 등의 메서드를 자동으로 생성해주기 때문에 코드가 깔끔해지고 가독성이 좋아진다.  보일러플레이트란?더보기보일러플레이트란 반복적으로 작성해야 하는 코드를 의미한다.즉, 기능적으로는 중요하지 않지만 반드시 작성해야 하는 코드를 뜻한다.= 똑같거나 비슷한 코드가 반복적으로 작성되는 부분ex) getter, setter 등  Lombok 라이브러리 추가 (Gradle)dependencies { compileOnly 'org.projectlombok:lombok:1.18..
DTO란?DTO(Data Transfer Object)는 계층 간 데이터를 전달하는 데 사용되는 객체주로 컨트롤러 ↔ 서비스 ↔ 리포지토리 간 데이터를 주고받을 때 사용된다.엔티티(Entity)와 분리하여 데이터 구조를 명확하게 정의하는 데 유용하다.  DTO 생성 방법1. 단일 파일로 만들기DTO를 별도의 파일로 정의하면 가독성이 좋고 재사용성이 높아지며 유지보수가 용이하다.단점은 파일이 많아질 수 있다. -> 여러 컨트롤러/서비스에서 DTO를 사용할 때 적합하다. ARegister@Getterpublic class ARegister{ @Schema(description = "A의 값", example = "a 01") private String value; private List bs..
스프링에서는 Repository 메서드 생성 규칙을 사용하면 Jpa에서 자동으로 쿼리를 생성해준다. 메서드에 이름을 붙일 때는 첫 단어를 제외한 이후 단어들의 첫 글자를 대문자로 설정해야 JPA에서 정상적으로 인식하고 쿼리를 자동으로 만들어준다.findAll()모든 데이터를 조회한다.findAll() // SELECT * FROM 테이블; findBy()SQL문의 where 절 역할을 수행하는 구문이다.findBy 뒤에 엔티티의 필드값을 입력해서 사용한다.// SELECT * FROM 테이블 WHERE id=아이디;findById(int id)// SELECT * FROM 테이블 WHERE 변수이름 = 변수값;findByName(String name) 조건 규칙AND, OR (여러 개)조건을 여러 개 설..
JPA란?JPA(Java Persistence API)는 자바를 이용하여 ORM을 구현한 것 따라서 JPA를 구현한 회사마다 방식이 다 다르며 따라서 각 구현체마다 특정 회사의 이름으로 불린다. ex) Hibernate, TopLink, Eclipselink ORM? ORM(Object Relational Mapping)은 객체와 DB의 테이블이 매핑을 이루는 것즉, 객체가 관계형 데이터 베이스의 테이블이 되도록 매핑 시켜주는 것 ORM을 이용하면 SQL Query가 아닌 직관적인 코드(메서드)로서 DB의 데이터를 조작 가능자바 객체만 만들면 SQL을 작성하지 않아도 알아서 DB에 CRUD해준다. Spring Data JPA 스프링 부트는 JPA 중에서 Hibernate라는 구현체를 사용Spring Da..
서버 -> 클라이언트한테 데이터를 전달하는 방법1. 응답용 DTO 생성 응답용 DTO 클래스를 만들고 객체를 생성해서객체의 변수에 값을 저장하고 컨트롤러의 메소드가 returm 해주면 알아서 json 형태로 변경해준다.  응답용 DTOpublic class ResponseDto { private int id; private String name; private String message; // getter, setter 생략}@RestController@RequestMapping("/test04")public class Test04Controller { @GetMapping("ex01") public ResponseDto ex01() { Respo..
HTTP 요청 처리 - @RequestMapping컨트롤러에 @RestController와 @RequestMapping 을 붙여서 내부에 선언되는 메소드에서 사용할 공통 URL을 설정한다.@Controller@RequestMapping("/test01")public class Test01Controller { private final Test01Service test01Service; public Test01Controller(Test01Service test01Service) { this.test01Service = test01Service; }}  컨트롤러 내부에서는 각 HTTP 메소드에 맞는 어노테이션을 사용하면 된다. @GetMappingGET 요청에 대한 처리를 할 ..
프로젝트 생성File - New - Project  왼쪽 Generators 탭에서 Spring Boot 선택 후 이름과 경로를 설정해준다.   dependency를 미리 추가해주는 부분인데, 나중에 추가해줄수도 있으니 그냥 create 해줬다.     인텔리제이 무료 버전에서는 이 기능을 사용할 수 없기 때문에https://start.spring.io/여기서 프로젝트를 만들어줘야 한다 ! 폴더 구조가장 많이 사용하게 될 부분은 src 폴더와 build.gradle 파일이다.  build.gradle에 dependency 추가 spring-boot-starter-webspring-boot-starter를 뒤에 -web 을 붙여준다.dependencies { implementation 'org.spr..
셰욘
'BE' 카테고리의 글 목록 (3 Page)