DataSource로 DB 이중화를 해볼 것이다. DB를 Master, Slave 구조로 설계하여Master DB는 쓰기 (Innsert, Update, Delete) 작업을 수행하고, Slave DB는 읽기(Select) 작업을 수행해서 성능을 향상시키는 방법이다. build.gradle에 라이브러리 추가jpa를 추가해주고, mariadb를 사용할 것이기 때문에 mariadb client 라이브러리를 추가해준다.implementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.mariadb.jdbc:mariadb-java-client' application.yml에 설정 추가application에 dat..
분류 전체보기

Swagger란? Swagger는 RESTful API를 설계, 문서화, 그리고 테스트할 수 있도록 도와주는 오픈 소스 프레임워크API의 설계 및 관리에 널리 사용된다. 공식 사이트 : https://swagger.io/ API Documentation & Design Tools for Teams | SwaggerSwagger and OpenAPI go hand‑in‑hand. Swagger offers powerful and easy to use tools to take full advantage of the OpenAPI Specification. See how we do itswagger.io Swagger API 사용하기build.gradle에 추가implementation 'org.springd..

이메일 인증 기능 구현이메일(Gmail) 인증을 통해 엔티티의 enabled 속성을 true로 바꿔줄 것이다. Gmail 설정, 앱 비밀번호 생성Gmail 들어가서 오른쪽 상단 톱니바퀴 - 모든 설정 보기 설정에 전달 및 POP/IMAP-> IMAP 사용, 자동 삭제 사용으로 바꿔준 후 변경사항 저장 구글 계정 - 앱 비밀번호앱 이름 아무거나 입력한다. 앱 이름을 입력 후 만들기를 누르면 앱 비밀번호가 나온다.앱 비밀번호 복사해두기 ! 프로젝트에서 이메일 인증 기능 구현mail 라이브러리 추가implementation 'org.springframework.boot:spring-boot-starter-mail' application.yml에 설정application.yml에 메일 설정을 해준..
2.10 ~ 2. 14이번 주에 배운 내용월요일에는 swagger 설정하는 법과 datasource로 DB 이중화하는 법, 그리고 페이지네이션에 대해서 배웠다.프론트엔드 역할로 프로젝트 구현을 할 때 백엔드 분들이 준 스웨거 URL로 접속해서 그걸 보면서 프론트에서 데이터를 받아왔었는데, 내가 직접 스웨거 API를 사용해서 명세서를 작성하니까 뭔가 신기했다...! datasource를 통해서 마스터와 슬레이브 DB 서버를 만들어서 이중화하는 법도 배웠다. DB를 배울 때 마스터 슬레이브로 읽는 작업만 할 때는 슬레이브 서버 사용하고, 쓰기 작업을 할 때는 마스터 서버를 사용하고 이런 것들을 배웠었는데 실제로 datasource를 사용해서 get 작업과 post 작업에서 적용하는 과정을 배웠다.페이지네이션..

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..
2.3 ~ 2.7 정말 너무 추웠던 이번 주,,,추우니까 아침에 전기장판 밖으로 나오고 싶지가 않아서 일어나는 게 넘 힘들었다 😅그리고 연휴에 일주일 동안 쉬다가 다시 평일 9시부터 6시까지 수업을 들으려니까 평소보다 더 피곤했던 것 같다어쨌든 넘 피곤했던 한 주 그리고 이번 주부터 드디어 스프링을 시작했다. 새로운 걸 배우면서 설레면서도 교육을 벌써 절반 가까이 했다는 게 와닿아서 시간이 넘 빨리 가는 것 같아 조급한 마음이 든다.할 게 왜 이리 많은 건지 ㅜ ㅜㅠ 이번 주에 배운 내용이번 주 월요일에는 알고리즘을 배웠고, 화요일부터 스프링을 배웠다 !! 사실 스프링을 배우고 싶어 이 부트캠프에 지원했었는데 드디어 배우기 시작했다 ! 스프링과 스프링 부트에 대해서 배우고, 스프링 부트 프로젝트를 만들..
스프링에서는 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 (여러 개)조건을 여러 개 설..