본문 바로가기
  • Where there is a will there is a way.

개발85

Iterator design pattern 흔히 개발할때 컬렉션 프레임워크를 사용해서 데이터를 처리할때 for 문을 사용했었다. 그렇게 개발하던 도중에 다음과 같은 로직이 필요했고 지난번과 같이 for 문으로 처리할 계획을 했다. 요구사항 도서관 에서 '칼의 노래'는 제거하고 나머지는 2 를 붙이는 요구사항이 왔으면 어떻게 할 것인가? List books; @Before public void setUp() throws Exception { books = new ArrayList(); Book book = new Book("해리포터"); books.add(book); Book book2 = new Book("반지의 제왕"); books.add(book2); Book book3 = new Book("헝거게임"); books.add(book3); Bo.. 2020. 5. 28.
마이크로 서비스 트랜잭션 내가 정리한 내용은 마이크로 서비스 패턴 (공)저: 크리스 리처드슨 에서 참조한 내용이다. 기존 앤터프라이즈 애플리케이션을 개발할 때 createOrder() 를 만든다고 해보자 1. 주문 가능한 소비자인지 확인 2. 주문 내역 확인 3. 소비자의 신용카드를 승인하고 4. DB 에 주문을 생성 4가지의 작업이 하나의 DB 에서 이루어 진다. 스프링 프레임워크를 사용할 경우에 우리는 흔히 @Transactional public void createOrder() { 1. 주문 가능한 소비자인지 확인 2. 주문 내역 확인 3. 소비자의 신용카드를 승인하고 4. DB 에 주문을 생성 } 로 해결할 수 있다. 이러면 ACID 가 보장된다. 하지만 , 마이크로 서비스 아키텍처는 1-> 소비자 서비스 2-> 주문 서.. 2020. 5. 24.
spring security custom filter 인증 구현 http request 에서 custom filter 를 적용하여 특정 header 에 토큰을 담고 해당 토큰이 유효하면 인증된 요청이 되게끔 구현하고 싶었다. 스프링 사이트에서 표시된 이미지다. 솔직히 스프링에 대해서 제대로 모르는 사람이 딱 이 그림을 접했을때 무슨생각이 들지 모르겠다. 위에서 중요한 핵심은 ( custom filter 를 구현할 때 ) 1. AuthenticationFilter 2. SecurityContextHolder.getContext() -> Authentication 3. AuthenticationProviders 이 3개다. security 에 filter 들이 여러개 기본적으로 구현되어 있는데 난 여기에다가 custom filter 를 추가할 계획이다. 그렇다면 어느 위.. 2020. 5. 20.
데이터 모델과 질의 언어 NoSql 등장 다양한 유형의 데이터 모델이 있고 각 데이터 모델은 사용 방법에 대한 가정을 나타낸다. 어떤 종류의 사용법은 쉽고 어떤 동작은 지원하지 않는다. 어떤 연산은 빠르지만 또 어떤 연산은 매우 느리게 작동한다. 하나의 데이터 모델만을 완전히 익히는 데도 많은 노력이 필요하다. 데이터 모델을 하나만 사용하고 내부 동작에 대한 걱정이 없을지라도 소프트웨어 작성은 그 자체로 충분히 어렵다. 그러나 데이터 모델은 그 위에서 소프트웨어가 할 수 있는 일과 할 수 없는 일에 지대한 영향을 주므로 애플리케이션에 적합한 데이터 모델을 선택하는 작업은 상당히 중요하다. !! NoSql 의 특징 오늘날 가장 많이 알려진 데이터 모델은 관계형 데이터모델 이다. 웹에서 볼 수 있는 대부분의 서비스 생산은 여전히 관계형 데이터베이스.. 2020. 5. 17.
애플리케이션 설계 ( 신뢰, 확장성, 유지보수성 ) 컴퓨터의 성능이 발달된 요즘 더이상 CPU 의 성능은 애플리케이션을 제한하는 요소에 우선순위에서 밀렸다. CPU 의 성능보다 우선적으로 고려되는 사항은 데이터의 양, 데이터의 복잡도, 데이터의 변화 속도이다. 애플리케이션을 설계 및 개발할때 서버 개발자는 다음과 같은 고민을 한다. 내부적으로 데이터를 정확하고 안전하게 유지하려면 어떻게 해야 할까? 시스템의 일부 성능이 저하되더라도 클라이언트에 일관되게 좋은 성능을 어떻게 제공할까? 부하 증가를 다루기 위해 어떻게 규모를 확장해야 할까? 어떤 api 가 좋은 서비스인가 ? 현재 읽은 책은 데이터 중심 애플리케이션이고 여기서 이야기하는 위와같은 고민은 3가지를 중점으로 다룬다. 신뢰성 ( Reliability ) 하드웨어 결함이나 소프트웨어 결함에 직면했을.. 2020. 5. 9.
java spring retrofit2 gson custom serializer 구현 spring java 서버에서 api 연동을 구현하려면 http 통신이 필요하다. http 통신을 하게 해주는 라이브러리는 restTemplate 와 retrofit2 정도를 알고 있는데, 우리는 retrofit2 를 사용하였다. retrofit2 는 gson 라이브러리를 사용하고 있다. 기본적인 설정만으로도 잘 되는게 많지만 비즈니스의 요구사항이 많아지면 당연 custom 을 피할 수 없다고 본다. retrofit2 gson dynamic serializer 구현 나는 관련 업체에 특정 필드를 dynamic 하게 exclude 해야하는 요구사항이 있었고 해당 api 를 호출할때 이 기능을 사용하고 싶었다. 우선 configuration 설정을 해준다. @Configuration @Configuratio.. 2020. 5. 7.