Logback 아키텍처

Logback 아키텍처 Logback 아키텍처는 다른 환경에도 적용할 수 있도록 아주 일반적으로 설계되어 있다. logback 아키텍처는 logback-core : 다른 두 모듈의 기본이다. logback-classic : logback-core를 extend 하였다. log4j을 개선한 것이다. SLF4J API를 기본적으로 구현하여  JDK 1.4에 소개된 log4j 또는 java.util.logging과 같은 다른 로깅 시스템과 로그백간에 쉽게 전환을 할 수 있다. logback-access : 서블릿 컨테이노와 통합되어 HTTP-access 로그 ...

Read More

스프링 클라우드 – 마이크로서비스간 통신이란 (Ribbon)

마이크로서비스간 통신에 대해 알아보자 지난 포스팅에서 서비스 발견(Service discovery)와 설정 서버(configuration Server)에 대해 알아보았다. 하지만, 이 두 설정은 단지 어플리케이션을 독립적이고 standalone하게 관리 할 수 있도록 도와주는 역할이다.  이제 내부 마이크로서비스간 통신을 위해 HTTP 클라이언트와 클라이언트 사이드 로드밸런서를 살펴보아야 한다. 스프링 클라우드 마이크로서비스간 통신에서 다루는 내용 서비스 발견을 사용하는 경우와 사용하지 않는 경우에 RestTemplate 사용해보기 Ribbon Client 커스터마이징 ...

Read More

AWS DynamoDB – AWS SDK for Java를 사용하여 CRUDRepository 설정하기 (복합 키 사용 Entity)

  이전 포스팅에서 AWS SDK for Java 설정을 완료 하셨다면 이제 실제로 DynamoDB를 Java를 사용하여 다루어 보겠습니다. 테이블 설계가 완료 되었다면 어떤 Entity를 사용할 지 정하셨겠죠? 대부분 PartitionKey 하나만을 사용하는 Entity가 아니라 PartitionKey + SortKey 인 CompositeKey를 사용하실 것으로 생각합니다.   Entity 설정   Case : Single PrimaryKey  [crayon-5ba54cd5f1f93229602820/]   PartitonKey 하나만을 사용하는 Entity의 설정은 간단합니다. 위와 같이 사용하는 Table 이름과 PK를 잘 설정해주고, 추가할 Attribute들을 정의한 ...

Read More

(Honey Tip) Spring Boot – 사용자 Class를 Bean 객체로 간단하게 설정하기

제가 구현한 Class를 Bean객체로 사용하고싶었지만 해당 Class의 field 1을 Autowired로 가지고, field 2를 Instance화 하여 init 하는데에 또 다른 Bean Class의 Instance 객체가 필요한 특수한 상황이라 쉽지 않았습니다. 구글링을 통해 Config Class를 사용하는 예제를 보고 이것저것 해보았지만 제대로 동작하지 않았었는데 간단하게 설정하는 방법을 소개 해드립니다!  글로 어떤 상황인지 이해가 잘 안 되셨을테니 바로 코드를 보겠습니다. [crayon-5ba54cd5edf02084378100/] 먼저 Bean으로 등록하고 싶은 ...

Read More

AWS DynamoDB – 사용자 비즈니스에 맞는 스키마 설계 (기본)

먼저 설계에 앞서 알아야할 부분을 말씀드리자면 DynamoDB는 NoSQL이고, RDBMS와 NoSQL 설계는 다릅니다. DynamoDB의 경우, 대답해야 할 질문을 알기 전까지는 스키마 설계를 시작할 수 없습니다. 사전에 비즈니스 문제와 애플리케이션 사용 사례를 이해해야 합니다. DynamoDB 애플리케이션에서는 가능한 적은 수의 테이블을 유지해야 합니다. 대부분의 잘 설계된 애플리케이션은 단 하나의 테이블만 요구합니다. 저희 팀이 DynamoDB를 적용하며 스키마 설계단계에서 가장 많은 시행착오를 겪었던 부분이 RDBMS를 설계하던 ...

Read More

Clean Code – Class

클래스 이름은 클래스의 책임을 기술해야 한다. 만약, 클래스 이름을 짓기가 애매하다면 내가 클래스에 너무나도 많은 기능을 넣고 있다는 것이다. EX : Manager, Processor등과 같이 모호한 단어가 좋지 않은 예이다. 클래스 메서드가 클래스 인스턴스 변수를 더 많이 사용하도록 짜라. 단지, 인스턴스 변수가 많아야 한다는 소리가 아니다. 모든 인스턴스 변수를 각 클래스 메소드마다 쓰면 좋다. => ...

Read More