![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/FQdoa/btreB8pBziw/dSxCJPIVHVgOSVjVWZMAwK/img.png)
최근에 관계형 데이터베이스(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)이라는 용어에는 숨은 뜻이 있다. 그것은 명예와 긍징의 상징인 동시에 책임과 의무를 나타내는 것이다. 프로가 아니라면 세상을 살기 편해진다. 하는 일에 책임을 느낄 필요가 없고, 회사에 책임을 떠넘겨도 되기 때문이다. 하지만 프로는 실수하면 스스로 뒷감당을 해야 한다. [ 기능에 해를 끼치지 마라 ] 오류를 만들면 안된다. 오류를 만들면 기능에 해가 된다. 따라서 프로가 되려면 오류를 만들면 안된다. 하지만 소프트웨어는 너무 복잡해서 오류가 생길 수 밖에 없다. 그렇다고 너무 복잡하다는..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pMVgc/btrcNMhZ17M/BYQ7aSErNPs1x6Krf0kRkK/img.png)
이번에는 멤버십 삭제 및 포인트 적립 API를 개발해보도록 하겠습니다. 1. 멤버십 삭제 API 구현 [ 요구사항 확인 ] 나의 멤버십 삭제 API 기능: 나의 멤버십을 삭제합니다. 요청: 사용자 식별값, 멤버십 번호 응답: X [ Repository 계층 개발 ] 이번에도 다른 API와 마찬가지로 Repository 계층부터 테스트를 작성하도록 하자. 엔티티 객체의 삭제를 위해 JPARepository는 deleteById라는 메소드를 제공하고 있다. 1개의 엔티티를 먼저 추가하고, 이 엔티티를 삭제하는 테스트 코드를 작성해보도록 하자. 멤버십 번호로 멤버십 객체를 찾기 위해 findById도 사용해야 하지만, deleteById와 유사하므로 넘어가도록 하자. @Test public void 멤버십추가..
이번에는 멤버십 전체/상세 조회 관련 API를 개발해보도록 하겠습니다. 1. 멤버십 전체 조회 API 구현 [ 요구사항 확인 ] 나의 멤버십 전체 조회 API 기능: 내가 가진 모든 멤버십을 조회합니다. 요청: 사용자 식별값 응답: {멤버십 ID, 멤버십 이름, 포인트, 가입 일시}의 멤버십 리스트 [ Repository 계층 개발 ] 이전에 멤버십 등록 API를 개발할 때와 마찬가지로, 이번에도 먼저 구현할 계층은 Repository 계층이다. 또한 TDD 기반으로 개발을 하고 있으므로, 이번에도 역시 사용자 식별값으로 멤버십 정보 목록을 DB에서 조회하는 Repository에 대한 테스트 코드를 먼저 작성해보도록 하자. 이번에는 데이터가 없는 경우와 데이터가 있는 경우를 한번에 작성하도록 하자. @T..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cwuZTl/btrcqxGQGIj/Xrc1XkbZGp7RpM6K3ju9UK/img.png)
이번에는 TDD로 멤버십 등록 API를 구현해보도록 하겠습니다. 첫 API를 개발하는 것이므로 다른 로직에서 사용되는 공통 로직들도 많이 있어서 작업이 적지는 않을 것 같은데, 열심히 첫 API를 개발해보도록 하겠습니다. 1. 멤버십 등록 API 구현 [ 요구사항 확인 ] 나의 멤버십 등록 API 기능: 나의 멤버십을 등록합니다. 요청: 사용자 식별값, 멤버십 이름, 포인트 응답: 멤버십 ID, 멤버십 이름 [ Repository 계층 개발 ] 앞선 포스팅에서 살펴봤던 것처럼 Repository의 메소드 중에서 멤버십을 DB에 추가하는 테스트 코드를 먼저 작성해보고자 한다. MembershipRepository에 대한 테스트 클래스를 작성하면 다음과 같다. public class MembershipRep..