분류 전체보기
-
Moebius Architecture - Phase 2Laboratory/Moebius 2020. 11. 12. 08:38
안녕하세요. Phase 1을 작성하고 나서 4개월이 지나서야 다시 Moebius project 관련 글을 작성하게 됐습니다. ^^; 이번에 다룰 내용은 프로젝트를 확장해나가면서 구체적으로 어떻게 컴포넌트들을 분리했는지에 대한 것들입니다. 그리고 Monolithic Architecture와 흔히 사용하고 있는 MSA, 즉 Microservice Architecture에 대해서도 간략하게 다뤄보도록 하겠습니다. 지난 Phase 1에서 구성했던 Architecture에서, 한 컴포넌트에서 너무 많은 역할을 담당하고 있어서 문제가 될 수 있다는 점을 지적했었다. 그래서 단일 컴포넌트를 다중 컴포넌트로 우선순위에 따라 분리를 해나가야 하는데, Phase 2에서는 가장 변화가 많은 부분을 별도 컴포넌트로 분리하기로..
-
Moebius Architecture - Phase 1Laboratory/Moebius 2020. 7. 18. 01:45
안녕하세요. Moebius 소개글을 작성한 지 3개월이 지나서야 드디어 실질적인 첫 글로, 아키텍처에 대해서 글을 써보려고 합니다. 단순히 아키텍쳐를 소개하는 것을 넘어서서, Software Architecture를 구성하는 방법에 대한 내용도 다뤄 볼 예정입니다. 글을 쓰고 있는 이 시점을 기준으로, Moebius의 아키텍처는 여러 단계에 걸쳐서 조금씩 개선, 확장되어 왔습니다. 그래서 하나의 글로 쓰기에는 다룰 분량이 많아, 다작으로 나눠서 작성할 예정입니다. 이제 시작해보겠습니다. ^^; Moebius를 시작했을 때, 소개글에서 잠깐 언급했지만 처음에는 첫 서비스(비지니스) 모델인 암호화폐 투자 보조에 집중한 플랫폼을 만들고자 했다. 그래서 거창하게 생각할 것 없이 거래소 하나만 대상으로 잡고 Po..
-
IntroductionLaboratory/Moebius 2020. 4. 11. 16:43
안녕하세요. 오래전부터 여러가지 크고 작은 프로젝트들을 진행하면서, 프로젝트를 통해 익히게 된 것들을 공유하고 싶었는데요. 그래서 2018년 11월부터 시작한 프로젝트인 Moebius로 첫 삽을 뜨기로 했습니다. 실은 이 폴더를 만들어 놓은지도 한참 됐는데 이제서야 첫 포스팅을 하게 됐네요. ㅠㅠ 편의상 프로젝트 관련 글에서 높임말은 생략하도록 하겠습니다. 그럼 시작하겠습니다. ^^; 처음에 관광 스타트업에서 백엔드 프로그래머로 일할 때가 생각난다. 무려 5년전인데, 나는 그때 네이티브 모바일 어플리케이션의 백엔드 서버를 개발하고 있었다. 트래픽은 별로 나오지 않았지만, 그래도 직접 ERD를 만들어보고, 상용 Restful API 서버 만들어 볼 수 있는 귀중한 경험이었다. 그곳에서 약 1년의 시간이 흐..
-
Lombok Builder, Jackson을 이용하여 Json data 받아오기 (Get Json data using Lombok Builder, Jackson)Library/Backend 2020. 4. 11. 14:48
안녕하세요. 이번 시간에는 Spring 기반 Web application에서 흔히 사용하는 Lombok 및 Jackson을 이용해서, Builder 기반 Json Data를 받는 방법에 대해 간략하게 공유하고자 합니다. 우선 Json data를 받는다는 것은 무엇을 의미할까요? Json data를 받는다는 것은 특정 Data source를 통해 Json으로 된 형태의 Data를 받고, 그 받은 Data를 내 Application에서 정의해놓은 특정 Data class로 인식시키는 것(이를 Deserialize라고 하죠)을 의미합니다. Data source에는 여러가지가 있는데, Web application에서는 흔히 HTTP 기반의 API가 일반적이라고 볼 수 있겠습니다. 그럼 코드를 살펴보도록 하죠. ..
-
Amazon quick start를 이용해 30분만에 Mongodb 구성하기 (Construct Mongodb through Amazon quick start in 30 minutes)Library/Data 2019. 9. 14. 18:44
안녕하세요. 이번 시간에는 AWS에서 무료로 제공되는 서비스인 amazon quick start를 이용하여 mongodb를 구성한 경험을 공유하고 합니다. 현재 이보다 더 편하게 사용할 수 있는 Mongodb atlas라는 DaaS 서비스가 있긴 하지만, 비용적인 문제와 mongodb가 실행되고 있는 instance로의 직접 접근이 제한되어 있습니다. 그래서 적당한 선(?)에서 개발자가 튜닝할 수 있는 환경을 구성할 순 없을까, 찾아보다가 이렇게 amazon quick start를 통해 무려 30분(사실 configuration setting 때문에 실 사용까지는 훨씬 오래 걸렸습니다만... 일단 뜨는 시간은 15분 ^^;) 만에 구성할 수 있었습니다. 1. 먼저 https://docs.aws.amazo..
-
Reactive stream을 이용하여 Non blocking 이메일 서비스 구현하기 (Implement Non blocking email service using Reactive stream)Library/Backend 2019. 8. 25. 22:50
안녕하세요. Backend library 첫 게시물로, Reactive stream을 이용하여 Blocking email service를 Non blocking email service로 개선한 사례를 공유해보고자 합니다. 문제의 시작 개인적으로 진행중인 한 프로젝트에서, 이메일 인증 기능이 있는 회원 가입을 구현하고 있었습니다. 폼을 모두 작성하고, 가입 요청하는 단계에서 평균 5초간 지연이 발생했습니다. 5초는 사용자가 느끼기에 굉장히 긴 시간입니다. (버튼을 누르고 5초동안 아무것도 못하고 기다린다고 상상해보세요.) 그래서 반드시 해결해야 하는 문제라 판단하고, 어디가 문제인지 로그를 남기면서 파악해보기 시작했습니다. 그 결과, 회원 가입 과정에서 인증용 이메일을 발송하는 곳에서 병목이 발생한다는 ..