Spring 프레임워크로 개발을 하다 보면 프로퍼티(Properties)에 저장된 특정한 설정 값들을 불러와야 하는 경우가 있다. 많은 글 들에서 프로퍼티(Properties)를 불러오는 내용들을 설명하고 있는데, 이번에는 final 변수가 붙은 클래스에 설정 값을 불러오는 방법에 대해서 알아보고자 한다. 1. 수정자(Setter)로 클래스에 프로퍼티(Properties) 설정 값 불러오기 [ 설정값 및 프로퍼티(Properties) 클래스 ] 아주 쉬운 예시로 Properties에 다음과 같은 설정 파일들이 있다고 가정하자. spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELA..
1. AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)이란? [ AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)이란? ] 프로그래밍을 하다보면 공통적인 기능이 많이 발생한다. 이러한 공통 기능을 모든 모듈에 적용하기 위해 상속을 이용한다. 하지만 Java에서는 다중 상속이 불가능하며, 상속을 받아 공통 기능을 부여하기에는 한계가 있다. 예를 들어 우리가 개발한 API의 호출 시간을 측정하고 싶다고 하자. 이를 AOP없이 구현한다면 어떻겠는가? AOP를 적용하지 않는다면 중복 코드가 발생할 소지가 있고, 코드의 변경이 필요하면 여러 코드에 종속적으로 변경이 필요할 것이며, 핵심적인 비지니스 로직에 호출 시간 측정이라는 부수적인 로직이 추가되..
최근에 관계형 데이터베이스(Relational Database)와 NoSQL(비관계형 데이터베이스)에 이어 많은 주목을 받는 시계열 데이터베이스(TSDB, Time Series Database)가 있습니다. 이번에는 TSDB에 대해 간단히 살펴보고자 합니다. 1. 시계열 데이터베이스(TSDB, Time Series Database) 란? [ 시계열 데이터(Time Series Data) 란? ] Time-Stamped Data라고도 불리는 Time Seriese Data(시계열 데이터)는 시간에 따라 저장된 데이터를 의미한다. 시계열 데이터들은 동일한 소스로부터 시간이 지남에 따라 만들어진 데이터들로 구성되므로 시간 경과에 따른 변화를 추적하는데 용이하다. 다소 어렵게 느낄 수 있지만 Time Serie..
이번에는 클린 코더(Clean Coder)라는 책을 읽고, 중요하다고 생각되는 내용들을 정리해보도록 하겠습니다. 1. 프로의 마음가짐 [ 함부로 바라지 마라 ] 프로의 마음가짐, 프로페셔널리즘(Professionalism)이라는 용어에는 숨은 뜻이 있다. 그것은 명예와 긍징의 상징인 동시에 책임과 의무를 나타내는 것이다. 프로가 아니라면 세상을 살기 편해진다. 하는 일에 책임을 느낄 필요가 없고, 회사에 책임을 떠넘겨도 되기 때문이다. 하지만 프로는 실수하면 스스로 뒷감당을 해야 한다. [ 기능에 해를 끼치지 마라 ] 오류를 만들면 안된다. 오류를 만들면 기능에 해가 된다. 따라서 프로가 되려면 오류를 만들면 안된다. 하지만 소프트웨어는 너무 복잡해서 오류가 생길 수 밖에 없다. 그렇다고 너무 복잡하다는..
이번에는 멤버십 삭제 및 포인트 적립 API를 개발해보도록 하겠습니다. 1. 멤버십 삭제 API 구현 [ 요구사항 확인 ] 나의 멤버십 삭제 API 기능: 나의 멤버십을 삭제합니다. 요청: 사용자 식별값, 멤버십 번호 응답: X [ Repository 계층 개발 ] 이번에도 다른 API와 마찬가지로 Repository 계층부터 테스트를 작성하도록 하자. 엔티티 객체의 삭제를 위해 JPARepository는 deleteById라는 메소드를 제공하고 있다. 1개의 엔티티를 먼저 추가하고, 이 엔티티를 삭제하는 테스트 코드를 작성해보도록 하자. 멤버십 번호로 멤버십 객체를 찾기 위해 findById도 사용해야 하지만, deleteById와 유사하므로 넘어가도록 하자. @Test public void 멤버십추가..