Spring Boot(10)
-
[GraphQL] Spring Boot로 Graph QL 적용하기 (2)
[ 이전 내용 보러가기 ] [ 완성 코드 보러가기 ] → Branch: gql_mutation 이전 내용에서는 CRUD(Create, Read, Update, Delete)중, "R" 에 속하는 query만 작성했으니 이번에는 CUD에 속하는 mutation을 작성하고자 한다. GraphQL에서는 하나의 EndPoint에서 2개의 Schema로 관리를 한다고 했다.(mutation, query) 여기서 query는 단순히 읽기를 뜻하는것이고, mutation은 데이터를 조작하는 역할을 한다. 먼저 이전 예제에서 조금 수정해야 하는 부분이 있다. 가짜 Database를 만들고, 이에 대해 Spring Session이 유지되는 동안 데이터를 조작하는 기능을 만들 것이다. (API를 사용하는 서버에 CUD 작..
2021.12.20 -
[GraphQL] Spring Boot로 Graph QL 적용하기 (1)
해당 글에는 Retrofit, GraphQL이 나오니 만약 이중 하나를 모른다면 이해가 어려울 수 있다. 아래 링크를 통해 먼저 알고 가도록 하자. [ Graph QL이 무엇인지 알고가기 ] [ Retrofit이 무엇인지 알고가기 ] [ 완성 코드 보러가기 ] → Branch: gql_query [ Dev Spec : Kotlin, build.gradle.kts(Kotlin), Spring Boot 2.6, JDK11 ] 이번에는 Spring Boot로 Graph QL을 적용 시켜 봤다. Database까지 연결하지는 않고, 간단하게 테스트만 하면서 경험해보는 것이라 Fake Rest API를 이용해 데이터를 받아와 Graph QL로 데이터를 보내주는 형식으로 진행하였다. 먼저 아래 의존성을 추가해주어야..
2021.12.19 -
[JDK11] An illegal reflective access operation has occurred
JDK 11로 설정된 Spring Boot 프로젝트를 실행시키면 아래와 같은 오류 메시지가 나온다. WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.esotericsoftware.reflectasm.AccessClassLoader (file:...) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) WARNING: Please consider reporting this to the maintainers of com.esoteric..
2021.12.19 -
[JWT] JWT Token 정리
JWT (Json Web Token) 다양하고 많은 프로그래밍 언어에서 지원하고 있다.(주류 언어는 대부분 지원) 자가 수용적인 특성을 지니고 있다. → 필요한 모든 정보를 자체적으로 지니고 있음 (기본정보 : 발급일자, 유효일자 등 / 전달정보 : 이를테면 로그인 정보 / 시그니쳐 : 검증을 위해 사용) 쉽게 전달 가능하다. → Header로 전달 가능하고, Header에 넣어 OAuth 적용이 가능함. QueryParams로도 넘길 수 있으나, 보안상 대부분 Header에 넣어 넘기고 있음. 언제 쓸까? 주로 로그인시, 보안이 중요한 데이터를 주고 받을 때 사용함. (예: 유저가 로그인 진행 → 서버에서 유저 정보를 기반으로 JWT Token 발급 → 유저가 서버 요청시 Token을 전달 → 서버에서..
2021.12.14 -
[JPA] deleteBy 오류 및 ResultSet 오류
프로젝트에서 생성할 거 다 생성하고, 이제 DELETE를 해줘야하는 것이 남았는데 DELETE를 진행했더니 아래와 같은 오류가 나왔다. current thread - cannot reliably process 'remove' call; nested exception is javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 이게 무슨 오류인가... 구글링을 해봤더니, deleteBy를 쓰는 repository에 @Transactional 어노테이션이 없어서 나오는 오류라고 한다. repostitory에 ..
2021.11.18 -
[Spring Boot] REST API 구축시 Local Date Time 받기
평소에 Data Class를 만들어 Request DTO, Response DTO를 구축했다. 이번에 LocalDateTime 형식으로 데이터를 받아야 하는 것이 있어서 똑같이 Data Clas DTO를 만들었는데, 잘못된 요청 값으로 계속 오류가 났다. 찾아보니, @JsonPropery 어노테이션 외에도 2개를 더 달아줘야 하는 것으로 확인됐다. 1 2 3 4 @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonProperty("dateTime") val dateTime: LocalDateTime Colored by Co..
2021.11.10