일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- preventdefault
- Pender
- Spring Batch
- Filter
- vue
- openapi3
- MFA
- Spring REST Docs
- axios
- 리액트
- Reduxpender
- tasklet
- Flyway
- AuthenticatoinProvide
- JavaScript
- T-OTP
- gradle
- OpenStack
- UsernamePasswordAuthenticationFilter
- SWAGGER
- vuejs
- Spring Security
- SpringRESTDocs
- REACT
- Crawling
- cheerio
- SpringBoot
- stopPropogation
- cloud native
- MSA
- Today
- Total
목록SpringBoot (6)
Miracle Morning, LHWN
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzjwJt/btq50Zb5Nzp/xDGcCKvn7YuSdLxpgbxVDk/img.png)
# 앞서 만들어주었던 API 에 대한 테스트 코드를 작성한다. 아래와 같이 /api/user/{id} 요청에 대한 응답 명세를 작성해주고, 실행하면 generated-snippets 하위 폴더에 각 요청/응답에 대한 snippet 들이 생성된다. // test/java/com/spring/SpringRESTDocsPractice/UserApiDocumentation.java @RunWith(SpringRunner.class) @SpringBootTest public class UserApiDocumentation { @Rule public final JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation(); @Autowired pr..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kBJNJ/btq5JErBgCW/fkmmtKFRWgklBtm3YJAMh1/img.png)
사전 세팅 및 개념 정리 # 먼저 Spring initializr 에서 기본 세팅을 한 후 프로젝트를 생성한다. Spring Web : API 를 만들기 위해 설정 Spring Data JPA : 데이터베이스에서 CRUD 를 하기 위한 설정 (ORM 도구) Validation : Bean 의 유효성 검사를 위한 설정 Spring REST Docs Lombok : 로그를 좀 더 편하게 보기 위한 설정 MySQL Driver : MySQL 를 연동하기 위한 설정 # 문서화를 위한 API 생성 : POST /api/user 조회 : GET /api/user/{id} 수정 : PUT /api/user 삭제 : DELETE /api/user/{id} # 실습 순서 프로젝트 생성 실습에 필요한 테스트 API 코..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/TSTW5/btq5HCIeVcN/edxkdzzfPkiKLxJRZ3JT71/img.png)
# 파일명을 정의할 때 역시 Flyway 가 인식할 수 있도록 명명규칙을 따라주어야 하며, 여기선 'V3__bulk_update_books.java' 로 지정하였다. 이때 경로는 src/java 하위에 바로 db/migration 경로를 생성해주었고 그 안에 java 파일을 위치한다. BaseJavaMigration 을 상속받아 migrate 함수를 Override 하여 사용해주면 된다. createStatement 를 통해 쿼리를 생성할 수 있는 객체를 만들고, SELECT 를 통해 가져온 rows 를 하나하나 while 문으로 돌려가며 UPDATE 쿼리를 날려주었다. package db.migration; import org.flywaydb.core.api.migration.BaseJavaMigrat..
API (Application Programming Interface) : 대부분 Server-Side (Back-end) 에서 제공되며, 데이터의 조작 (CRUD) 를 하기 위한 기술이다. # API 문서를 왜 만들어야 할까? '제공자' ↔ '사용자' 사용방법 공유/협의 API 버전 및 변경사항 관리 # 현업에서 운영하는 API 문서화 File (Word, Excel...) Wiki (Web) 그 외 # 기존 방식의 단점 버전 변경 등 수정에 취약 API 와 문서 상태가 다를 수 있음 (버전, 오류 등) 검증되지 못한 문서 Spring REST(Representational State Transfer) Docs RESTful 서비스에 대한 정확하고 읽기 쉬운 문서를 생성하도록 돕는 것이 목적이다. 테스..
# 이번에는 API 형태로 Flyway 를 사용해보고, 데이터의 신뢰성을 위해 실행될 때마다 (1) 초기화 Clean - (2) Migrate 의 순서로 수행할 것이다. 이때 Clean 하는 작업을 따로 Class 로 분리하여 Configuration annotation 을 지정한다. # 먼저 API 형태로 Flyway 를 사용하기 위해 데이터베이스 정보를 설정한다. // FlywayConfig.java package com.springJPAPractice.springJPAPractice.Configs; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; im..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sWHVX/btq5J1TpIrL/5Ut9Uesb00UdGI5fWgItV0/img.png)
# gradle Project 를 생성해서 Flyway 를 사용해본다. # 우선 프로젝트에 SQL 주소, user 정보 등을 설정하고 ddl-auto 가 어떤 방식으로 반영될지를 설정해준다. // /main/resources/application.properties spring.datasource.url=jdbc:mysql://localhost:3306/db_example spring.datasource.username=sa spring.datasource.password=password spring.jpa.hibernate.ddl-auto=none # 그리고 flyway 가 데이터베이스에 접근할 때 사용하는 정보를 명시해주어야 하는데 여기에서는 REAL 환경과 TEST 환경을 분리하여 작성했다. (RE..