본문 바로가기
728x90
반응형

Development/Java67

[OAuth] Oauth의 간략한 흐름. Oauth 2.0 에 대해서 공부를 하다가 용어에 대한 명확한 이해가 필요해서 정리를 했다. Access Token : 보호된 리소스에 일정 기간동안 접근할 수 있는 권한을 가진 문자열- Scope : Token 소유자가 접근할수 있는 보호된 리소스 셋 Client : Resource를 이용하려고 하는 Web 이나 App. Resource Sever : 실제 정보를 가지고 있는 대상. Resource Owner : Resource 에 대한 소유자. Access Token 을 얻는 절차는 아래처럼 설명할 수 있다. Resource Owner Client Resource Server 1. Client 에게 정보 요청 2. Resource Server 에 있는 Resource Owner의 정보를 접근 할수 있.. 2017. 7. 4.
[Spring Security]간단 Spring Security Spring Security 를 적용하는 내용을 처음부터 차근차근 정리를 해보려고 한다. 목표는 Spring Security 를 공부하면서 각각의 기능들을 적용해보는것이다. 진행하다보면 Spring Security 뿐만 아니라 다른 내용들도 점점 추가될것 같다. 다 만들고 나서는 git에 소스를 공유할 생각이다. ^^;; 언제가 될지는 잘 모르겠다. 환경 : java 1.8, Spring Boot 1.5.3 Release, Maria DB, JPA, gradle build.gradle12345678910111213141516171819202122232425262728293031323334buildscript { ext { springBootVersion = '1.5.3.RELEASE' } reposito.. 2017. 6. 27.
[Spring]Controller Test 하기 테스트케이스를 만들어서 작업을 하면 소스코드가 수정될 경우 코드를 테스트 해보기가 참 수월하다. 그런데 이 테스트 케이스 작성하는게 생각보다 만만치는 않다. 실제 DB 를 읽어서 테스트를 해야 하는지. 아니면 Mock 객체를 정의를 해서 사용을 해야 하는지. 실제 DB 를 사용할 경우 저장된 data 가 변경이 되어서 구현했을 당시 테스트 케이스는 Pass였지만 나중에 빌드 시점에 테스트 케이스가 실행될 경우에 Fail 이 나면 어떻게 할것인지. 생각해보면 그냥 서비스 구현해서 화면 띄우고 버튼 눌러서 테스트 하는것이 더 편할지도 모른다는 생각이 들기도 한다. 작성할 때마나 서비스 테스트, repository테스트, 컨트롤러 테스트에 대해서 구글링 하면서 작성을 하다보니 뭔가 남는게 없는것 같아서 샘플을.. 2017. 6. 12.
[Spring]Jasypt 를 이용한 properties 암호화 프로젝트 내부에는 설정파일들이 많이 있다. 대표적인 항목이 DB 접속 정보가 있다. 그런데 이 접속정보에는 ID, PASSWORD 가 항상 존재 한다. ID는 상관이 없지만 PASSWORD 정보가 파일 내부에 평문으로 적혀있으면 외부에 노출될 위험이 있다. 그래서 암호화를 해야 한다. Jasypt를 이용하면 이런 항목들을 쉽게 암호화 할 수 있다. 먼저 라이브러리를 다운로드 받는다. http://www.jasypt.org/download.html 사이트에 들어가보면 상단에 DOWNLOAD JASYPT 라는 링크가 있다. 그 걸 누르면 라이브러리를 다운로드 받을 수 있다. 이 글을 쓰는 시점의 버전은 1.9.2 이다. 다운로드 한다음 사용 방법은 간단하다. 압축을 푼후에 bin 폴더로 이동한다. 그리고 콘.. 2017. 4. 25.
[SpringCloud]Spring Config.. myapplication 이라는 이름을 가지고 있고 sample 이라는 profile을 설정했을경우 우선순위는 다음과 같다. 1. myapplication-sample.yml2. myapplication.yml3. myapplication.properties 2016. 1. 26.
spring Cache @Cacheable캐시할 메서드를 지정한다. 위 어노테이션을 사용한 메서드는 결과를 캐시에 저장하기 때문에 뒤이은 호출에서는 실제로 메서드를 실행하지 않고 캐시에 저장된 값을 반환한다. @CachePut메서드 실행에 영향을 주지 않고 캐시를 갱신해야 하는 경우.메서드를 항상 실행하고 그 결과를 캐시에 보관 한다. @CacheEvict캐시에 데이터를 제거하는 트리거로 동작하는 메서드 이다. 2015. 12. 5.
Spring propagation MANDATORYSupport a current transaction, throw an exception if none exists.시작된 트랜잭션이 있으면 support, 없으면 예외 발생 NESTEDExecute within a nested transaction if a current transaction exists, behave like PROPAGATION_REQUIRED else.시작된 트랜잭션이 있으면 중첩해서 트랜잭션을 실행한다. NEVERExecute non-transactionally, throw an exception if a transaction exists.트랜잭션이 있으면 예외 발생 NOT_SUPPORTEDExecute non-transactionally, suspend the .. 2015. 12. 1.
[JPA]Persistence Context Persistence Context 특징- 1차 캐시- 동일성 보장- 트랜잭션을 지원하는 쓰기 지연 (transaction write-behind)- 변경감지(dirty checking)- 지연로딩 조회- 조회시에 1차캐시에서 식별자 값으로 entity 조회. 없으면 DB에서 조회 등록- persist 를 실행하면 1차 캐시에 저장 되고 transaction writer-behind에 쿼리를 저장해둔다.- commit 시점에 transaction writer-behind에 있는 쿼리를 실행함. 수정 - 1차 캐시에 Entity가 저장될 시점에 최초상태의 스냅샷을 같이 저장한다. - transaction writer-behind 에서 flush 시점에 스냅샷과 entity를 비교해서 변경된 entity를 .. 2015. 8. 25.
[JPA]Entity 생명주기 1. new/transient : persistence context와 무관2. managed : persistence context에 저장된 상태3. detached : persistence context에 저장되었다가 분리된 상태4. removed : 삭제된 상태 2015. 8. 12.
728x90
반응형