Query Service 성능 개선기 두 번째 이야기

Photo by Clay Banks on Unsplash

두 번째 Query Service 성능 개선기를 작성하게 되었다. 첫 번째에서 문제가 다 해결된게 아니냐 싶을 수도 있지만 슬프게도 다 해결된 것은 아니었다. 여전히 DB의 사용률에 따라 조회 시간의 차이가 롤러코스터급으로 들쭉날쭉 했고 이를 반드시 해결해야 서비스 릴리즈를 할 수 있었다. 또한 DB에 엄청난 속도로 데이터가 쌓이고 있었기 때문에 이런 상황에도 전혀 무관하게 일정한 조회 시간을… 더 보기 »Query Service 성능 개선기 두 번째 이야기

Query Service 성능 개선기 첫 번째 이야기

Photo by Annie Spratt on Unsplash

작년 4분기부터 올해 초까지 현재 근무하고 있는 회사에서 제공하고 있는 Saas 솔루션의 대시보드 개발을 맡았다. Spring Boot와 JPA를 이용하였고 현재는 베타버전이 거의 완성되었다. 개발 막바지에 Query Service의 성능과 관련된 이슈를 경험하여 글로 남기려고 한다. 이번 포스팅에서는 성능을 개선해야하는 Query Service가 어떤 서비스인지 컨텍스트에서 간단히 설명하고 어떤 문제가 있었으며 그것을 소프트웨어 레벨에서 어떻게 해결하려고 했는지를 써보려고한다.… 더 보기 »Query Service 성능 개선기 첫 번째 이야기

EBI 아키텍쳐에 대해서

Photo by Museums Victoria on Unsplash

Entity-Boundary-Interactor(EBI) 아키텍쳐는 Robert C. Martin의 Clean Architecture에서 언급되었다. 그런데 사실 EBI 아키텍쳐는 1992년 Ivar Jacobson의 Object-Oriented Software Engineering: A use case driven approach에서 먼저 등장하였다.

EBI 아키텍쳐의 목표는 결국 서로 다른 타입의 객체들이 각자의 책임을 캡슐화를 함으로써 시스템에 변화가 필요할 때 그 변화가 시스템 전체에서 일어나지 않고 특정 부분에서만 바꿈으로써 문제가 해결될 수 있도록 하는 것이다.

개발 회고: 테스트와 코드 리뷰에 대해서

  • 회고

프로덕트 사이클이 한 번 끝나면서 이번 사이클에서 부족했던 부분을 회고해보려고 한다. 그리고 어떻게 하면 개선할 수 있을지 대해서 정리해보려고 한다. 테스트 다양한 상황 테스트 여기서 말하는 테스트란 코드로 작성된 유닛테스트, 통합테스트를 말하는 것이 아니다. 유닛테스트와 통합테스트는 당연하게 작성해야한다고 마인드를 가져야한다. 그런데 시간 문제 때문에 모든 상황에 대해서 테스트 코드를 짜는 것은 상당히 힘들다. 그래서 핵심… 더 보기 »개발 회고: 테스트와 코드 리뷰에 대해서

왜 JSON-RPC를 사용할까?

Photo by Walter Lee Olivares de la Cruz on Unsplash

Intro 최근에 web3.js 코드를 살펴볼 일이 있었는데 이 때 JSON-RPC를 처음 접했다. 그리고 JSON-RPC 공식 홈페이지에서 JSON-RPC 2.0 스펙을 보았는데 가장 먼저 든 생각은 ‘왜 이걸 쓸까?’ 였다. 그래서 이번 포스트에서는 JSON-RPC가 어떤 것이고 어떤 장점이 있는지 정리하려고 한다. 우선 JSON-RPC가 등장한 시기를 살펴보면 2000년을 시작으로 REST 방식이 등장하고 2000년대 중순에 JSON-RPC 등장했고 마지막으로 2015년에… 더 보기 »왜 JSON-RPC를 사용할까?

Kubernetes CRD와 Operator에 대해서

Photo by Spencer Davis on Unsplash

최근에 Kubernetes를 통해서 프로젝트를 진행했었다. Kubernetes의 기본적인 사용법과 어떻게 쓰는지는 시간이 지나면서 자연스레 익혀지지만 Kubernetes의 전체적인 철학이나 어떻게 Kubernetes가 동작하는지 원리에 대해서 개념이 머리에 명확하지 않은 것 같아서 시간을 내어 따로 정리해보려고 한다. 그 중에서도 CRD와 Operator 위주로 정리해보려고 하는데 이 두 개의 개념이 Kubernetes의 전반적인 개념과 동작 원리를 가장 잘 보여준다고 생각하기 때문이다. updated… 더 보기 »Kubernetes CRD와 Operator에 대해서

What is gRPC?

Photo by Hayden Scott on Unsplash

Intro grpc를 이용하여 몇 개의 프로젝트를 했음에도 불구하고 아직 gRPC가 어떤 것인지 명확하게 머리 속에 자리잡지 않은 것 같아서 gRPC 개념에 대해서 정리해보려고한다. gRPC의 개념에 대해서 한 문장으로 정리하자면 HTTP/2 기반의 RPC 프로토콜이라고 할 수 있다. 그래서 이 개념에 대해서 이해하기 위해서는 RPC와 HTTP/2 프로토콜 대해서 먼저 알아야한다. RPC RPC는 Remote Procedure Call의 약자로 의미… 더 보기 »What is gRPC?

About RSA Algorithm

Overview RSA는 기본적으로 public key cryptosystem이다. 1977년 Rivest, Shamir 그리고 Adleman에 의해서 만들어졌다. 다른 public key cryptosystem과 마찬가지로 RSA도 trapdoor function에 크게 의존하고 있는데 RSA도 마찬가지로 trapdoor function 중의 하나인 integer factorization problem을 이용해서 안전성을 확보하고 있다. trapdoor function은 간단히 말하면 위의 그림과 같이 x를 가지고 f(x)를 구하는 것은 쉽지만 f(x)를 알고 있을 때 x를… 더 보기 »About RSA Algorithm