Web(110)
-
Spring - JSON to Object(Object to JSON) Converting Gson !
오늘 포스팅할 내용은 웹프로그래밍에서 아주 자주 쓰이는 내용입니다. 바로 JSON->Object 혹은 Object->JSON 컨버팅하는 라이브러리 소개입니다. 우선은 스프링에서는 기본적으로 ObjectMapper라는 라이브러리를 사용하여 컨버팅 작업을 하는데, 해당 라이브러리 이외에 Gson이라는 라이브러리를 이용할 수도 있습니다.
2019.05.30 -
JPA - LazyInitializationException No Session(다중 스레드 트랜잭션,Multi Thread Transaction)
Spring boot + JPA 환경에서 개발중 멀티스레드 환경에서 JPA를 사용하면서 겪었던 문제이다. 우선 원인은 멀티 스레드 환경에서 트랜잭션의 공유가 안되는 문제였다. [상황] CompletableFuture.runAsync()를 사용하여 Multi Thread 환경에서 JPA를 사용하는 상황이었다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public Object controllerMethod(@PathVariable long id, Locale locale) { CompletableFuture.runAsync(()->{ service.method(id); },executor) .exceptionally(e->{ log.debug("CompletableFuture.runAsyn..
2019.05.29 -
Spring Security OAuth2.0 파헤치기! - 3(authorization server + resource server + client)
오늘 포스팅은 길지 않은 포스팅이 될 것같다. 오늘 포스팅할 내용은 이전 OAuth2.0 Authorization Server,Resource Server에 대하여 포스팅했던 내용에 Client 애플리케이션 소스코드를 추가한 최종 소스를 예제로 넣은 포스팅이다. 이전 포스팅들과 조금 달라진 소스가 있지만 아마 그대로 받아서 사용하면 간단한 OAuth2.0(Authorization Code Grant) 플로우를 테스트 해볼 수 있다. 혹시나 이전 포스팅을 보지 못했다면 밑 링크를 참고하자. Spring Security OAuth2.0 파헤치기!(Authorization Server) 내부 챗봇 솔루션을 개발하면서, OAuth2.0을 이용하여 자체 인증서버를 구축할 일이 생겼다. 최근에 웹 또는 앱을 보면서..
2019.05.04 -
Spring boot - Maven Multi Module project 만들기
오늘 다루어볼 포스팅 내용은 Maven Multi Module을 이용한 Spring Boot Project 만들기입니다. 우선 Maven Multi Module 프로젝트란 하나의 부모 Maven Project를 생성하고 그 밑으로 자식 Maven Module들을 가지는 구조입니다. 부모의 pom.xml에 공통적인 의존 라이브러리를 넣어주면 다른 자식 Maven Module에서는 그대로 사용이 가능합니다. 또한 JPA관련된 모든 소스코드를 common이라는 Maven Module로 만들어서 다른 Maven Module에서 사용하여 공통적인 중복코드를 줄일 수도 있습니다. 바로 예제로 들어가겠습니다. Maven Multi Project 모든 예제는 Eclipse + Mac OS 기반으로 작성되었습니다. 오늘..
2019.04.30 -
Spring Security OAuth2.0 파헤치기! - 2(Authorization Server + Resource Server)
오늘은 이전 포스팅에서 다 마치지 못했던 Authorization Server와 나머지 Resource Server,Client 애플리케이션에 대해 포스팅 할 것이다. 사실 대부분 소스설명은 생략하였다. 사실 소스 설명이라고 할건 Spring Security 포스팅에서 다루었던 클래스들이다. 이전 포스팅에서는 Authorization Server 설정과 토큰 발급까지 다루었다. 이번 포스팅은 동적 클라이언트 등록에 관한 설명으로 시작할 것이다. 다들 페이스북, 구글의 어떠한 기능을 우리의 애플리케이션에서 사용하기 위하여 앱등록을 해본 경험자들이 있을 것이다. 앱을 등록하면 ClientId와 Client Secret이라는 것을 발급받게 된다. 그것은 바로 OAuth2.0에서 나의 애플리케이션을 인증하고, ..
2019.04.29 -
Spring JPA - JPA cascade 란?!
오늘 포스팅할 내용은 간단히 JPA의 cascade 기능이다. 이전 포스팅 중에 해당 내용에 대해 포스팅한적이 있지만 조금 부족한 것같아서 다시 한번 정리할겸 글을 남긴다. 영속성 전이(cascade)란 쉽게 말해 부모 엔티티가 영속화될때, 자식 엔티티도 같이 영속화되고 부모 엔티티가 삭제 될때, 자식 엔티티도 삭제되는 등 부모의 영속성 상태가 전이되는 것을 이야기한다. 영속성전이의 종류로는 ALL, PERSIST, DETACH, REFRESH, MERGE, REMOVE등이 있다. 이름만 봐도 어디까지 영속성이 전이되는지 확 눈에 보일 것이다. 여기서는 별도로 각각을 설명하지는 않는다. 오늘의 상황 : A와 B라는 엔티티가 존재하고, 두 엔티티의 관계는 @ManyToMany 관계이다. 이 관계는 중간에 ..
2019.04.29