본문 바로가기

Happyer16

(214)
JPA 1차 캐시 - Database와 동기화가 되지 않은 데이터를 읽는 문제 문제 Data Data` Data Service 1 => => Data 수정 Service 2 => Data 조회 ( 캐시에 남음 ) => Data 조회하려 했지만 수정된 데이터가 아니라 캐시에 남은 Data를 조회함 수정된 Data가 검색되는게 아니라 JPA 1차캐시에 남아 있는 기존 Data를 Service 2에서 검색하는 문제였다. 스프링 마이크로서비스를 개발하면서 이런 일이 많을 것 같은데 어떠한 해결방법이 있을까? 해결방법 1. flush() Service2에서 Data를 조회하기 전에 flush()를 호출하여 Database와 1차 캐시를 동기화해주는 방법 하지만 성능상 이슈?
13장. 웹애플리케이션과 영속성 관리 JPA를 이용하여 Spring 개발을 하다보면, LazyInitializationException 같은 예외를 겪어 봤을 것이다. 나도 JPA의 내부동작방식을 이해하지 못하고 있었기에 어떤 문제인지 파악을 하지 못하였다. 그래서 13장. 웹 어플리케이션과 영속성 관리를 읽게 되었다. 트랜잭션 범위의 영속성 컨텍스트 ( persistence context in transaction scope ) 스프링 컨테이너의 기본 전략 스프링 컨테이너는 트랜잭션 범위의 영속성 컨텍스트 전략을 기본으로 사용 한다. 즉, 트랜잭션이 시작될 때 영속성 컨텍스트를 생성하고 트랜잭션이 끝날 때 영속성 컨텍스트를 종료한다. 그리고 같은 트랜잭션 안에서는 항상 같은 영속성 컨텍스트에 접근한다. @Transactional 어노테이션..
Spring annotation - @Service,@Controller,@Component 차이 Spring Documentation Spring 문서를 보면 역할에 맞게 쓰라고 되어 있는데 무엇이 차이인지 정확히 모르겠다. 그래서 조금 더 자료를 찾아봤다. @Component Spring에서 관리되는 객체임을 표시하기 위해 사용하는 가장 기본적인 annotation이다. 즉, scan-auto-detection과 dependency injection을 사용하기 위해서 사용되는 가장 기본 어노테이션이다. @Controller Web MVC 코드에 사용되는 어노테이션이다. @RequestMapping 어노테이션을 해당 어노테이션 밑에서만 사용할 수 있다. @Repository 다 알고 있듯이 data repository를 나타내는 어노테이션이다. @Repository는 플랫폼 특정 exception을..
Adyen 3D Secure 2 통합하기 3D Secure 2 with your Classic integration API를 이용한 통합 방법이다. /payments : https://docs.adyen.com/api-explorer/#/PaymentSetupAndVerificationService/v41/payments 1. 인증 절차를 진행하기 위해서 3D Secure 2 Object가 담긴 Payment Request를 제출한다. ResultCode로 다음 절차 진행 2.
Spring DataIntegrityViolationException 에러 org.springframework.dao.DataIntegrityViolationException 에러는 lower level persistence exception과 관련된 것이다. Hibernate와 관련된 exception 1. ConstraintViolationException 2. PropertyValueException 3. DataException : sql문이 잘못되거나 data가 잘못된 경우이다. JPA와 관련된 exception javax.persistence.EntityExistsException. https://www.baeldung.com/spring-dataIntegrityviolationexception
Docker Image 가볍게 만들기 1. Layer를 적게 사용하자 먼저 같은 내용이지만 두가지 버전의 Dockerfile을 살펴보자 FROM ubuntu:14.04 RUN apt-get update -y # Install packages RUN apt-get install -y curl RUN apt-get install -y postgresql RUN apt-get install -y postgresql-client # Remove apt cache to make the image smaller RUN rm -rf /var/lib/apt/lists/* CMD bash FROM ubuntu:14.04 RUN apt-get update -y && \ apt-get install -y curl postgresql postgresql-clie..
백앤드 개발자 면접 준비 리스트 1. Spring 빈관리 2. Spring이란? 3. 마이크로서비스란? 4. 도커란? 5. 회사에서 개발한 마이크로서비스 아키텍처에 대하여 6. Spring AOP란? 7. Spring 서비스 추상화란? 8. 서비스 장애 대응? 9. API 게이트웨이? 10. 객체지향이란? 11. SOLID 법칙 12. 캡슐화에 대하여? 1. 스프링 트랜잭션 어떻게? 2. 스프링 DI 어떻게? 3. POJO 무엇? 4. 스프링 무엇? 5. 테스트 코드 -> 원칙 / 어떻게 짜냐 / @어노테이션 어떤거? / Mockito 왜씀? 뭐냐? 6. 마이크로서비스에 대한 질문 7. OOP란 8. 단일책임원칙이란? 9. 커뮤니케이션 어떻게? 10. 개발자와 충돌이 일어놨을때? 11. 개발자로서의 소신? 12. JPA란?
0. Adyen 개요 온라인 결제웹사이트나 모바일 앱에서 adyen 온라인 결제 솔루션을 사용할 수 있다. 카드,지갑, key 로컬 결제 방법을 이용하여 지불할 수 있다. adyen 솔루션을 이용하면 고객들이 선호하는 결제수단을 선택할 수 있다. adyen 솔루션을 적용하면, 아래와 같은 것을 할 수 있다. 결제가 이루어지는 고객의 국가코드, 통화, 플랫폼과 같은 결제 내역을 기반으로 다양한 결제 수단을 제공할 수 있다. 사용자의 요구사항에 맞게 통합하는 방법을 선택할 수 있다. 적용이 완료되면, 아래와 같은 것들도 추가로 할 수 있다.반복 결제를 하는 고객의 상세정보를 토큰화 할 수 있다. 3D Secure를 이용하여 메이저 카드 결제를 인증할 수 있다.adyen에서 제공하는 다른 기능들을 사용하여 수익을 최적화하고 사기를..
맥이 비싸서 윈도우로 개발할때 ㅠㅠ oh-my-zsh ( terminal 편하게 쓰기 )https://evdokimovm.github.io/windows/zsh/shell/syntax/highlighting/ohmyzsh/hyper/terminal/2017/02/24/how-to-install-zsh-and-oh-my-zsh-on-windows-10.htmlhyper에서 docker 설치https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04#step-8-%E2%80%94-pushing-docker-images-to-a-docker-repository
Lombok 사용하기 Intellij에 설정하기 : http://blog.egstep.com/java/2018/01/12/intellij-lombok/get/set 함수 너무 많아..