본문 바로가기

마이크로서비스7

TestContainer의 docker-compose 활용했지만, 테스트가 통과하지 않았다면? - 활용 이전 글 - TestContainer 를 통해 테스트 용이성 높이기 - 입문 TestContainer 를 통해 테스트 용이성 높이기 - 입문 TestContainer TestContainers 라는 라이브러리는 테스트 코드에서 손쉽게 원하는 모듈을 테스트용도로 띄우고 내릴 수 있습니다. // add in build.gradle testImplementation 'org.testcontainers:testcontainers.. happy-coding-day.tistory.com 실제로 TestContainer 를 사용하다보면 예기치 않게 동작되는 경우가 있습니다. docker-compose 를 통해 잘되는 것을 확인하고 난 뒤, 이를 TestContainer 를 활용해 컨테이너를 띄울 경우 이슈가 발생합니.. 2022. 4. 17.
TestContainer 를 통해 테스트 용이성 높이기 - 입문 TestContainer TestContainers 라는 라이브러리는 테스트 코드에서 손쉽게 원하는 모듈을 테스트용도로 띄우고 내릴 수 있습니다. // add in build.gradle testImplementation 'org.testcontainers:testcontainers:1.16.3' 그 외에도 아래 모듈을 테스트에서 테스트만을 위한 모듈을 실행할 수 있습니다. 왜? 이 TestContainers 를 잘 알아야 하는가요? 우리가 운영하는 서비스는 많은 MicroSerivce로 이루어져 있습니다. 그리고, 여러 모듈은 각각의 의존성을 갖게됩니다. 구체적인 예시를 살펴볼게요. 위 아키텍쳐에서는 SERVICE-DISCOVERY와 CONFIGURATION-SERVER 를 활용하고 있다고 가정합니다... 2022. 4. 17.
AWS Simple Queue Service(SQS) 예제 코드로 다가가기 - #2 이전 글 - AWS Simple Queue Service(SQS) 이론적으로 다가가기 - #1 이번에는 예제코드로 SQS 를 사용하는 방법에 대해서 알아보려고 합니다. 만약에 SQS 를 스프링부트에서 사용한다는 가정하에 2가지 예제를 남겨드릴려고 합니다. 순수한 AWS-SDK 를 사용한 SQS 예제코드 awspring 에서 제공하는 SQS 예제 코드 1. 순수한 AWS-SDK 를 사용한 SQS 예제코드 공식문서 예제코드 자세한 내용은 공식문서에 잘나와있어 해당 내용을 참조하면 된다. 간단하게 몇개만 공유해보면 아래와 같습니다. @GetMapping(value = "/getQueueUrls") public ResponseEntity getQueueUrls() { ListQueuesRequest build .. 2021. 11. 20.
AWS Simple Queue Service(SQS) 이론적으로 다가가기 - #1 공식 문서 - https://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dg.pdf#welcome SQS? 왜 사용해야하는가? 대기열(Queue)을 제공하여 이를 활용해 분산 소프트웨어 시스템과 구성요소를 통합 및 분리할 수 있게 해주는 도구이다. 마이크로서비스를 구축하는 과정에서, 메세지를 전달하는 용도로 적합하다. SQS 특징 보안 server side encryption 를 제공하며, SQS 를 Publish 하고 Consume 을 할 수 있는 건 오직 권한을 가진 AMI만이 가능하다. 내구성 SQS 메세지를 안전하게 보호하기 위해 이를 여러 서버에 저장 최소 1회 전송를 보장합니다. 가용성 Amazon .. 2021. 11. 14.
Eventuate.io 간단 파헤치기 https://eventuate.io/ 요즘 일주일에 2시간이상의 시간을 들여, 학습 중인 프레임워크입니다. 해당 프로젝트의 저자는 마이크로 서비스 패턴 라는 이름의 책으로 출판되었습니다. 이 책을 발견하기 전에, 마이크로서비스에서 메세지 알고리즘을 좀 더 쉽게 쓸 수 없을까? 라는 물음표를 시작으로 Eventuate 프레임워크를 알게 되었고, 점차 MSA의 문제점을 해결하는 Eventuate에 매료되었습니다. 그럼, Eventuate는 어떤 프레임워크일까요? 모놀리식에서 MSA로 변경시 가장 문제가 되는 부분은 분산 데이터 관리 문제라고 합니다. 여기서 말하는 분산 데이터 관리 문제란? 각 마이크로 서비스에는 자체 개인 데이터베이스가 있습니다. 여러 서비스에서 데이터를 검색하는 쿼리뿐만 아니라 여러 서.. 2020. 10. 29.
오케스트레이션(orchestration)과 코레오그래피 (choreography) 배경 저에게 마이크로서비스라는 것은 익숙하지 않은 분야입니다. 그래서 마이크로 아키텍처 구축 이라는 책을 읽으며, MSA에 입문하던 중, 이전에 봤던 용어인데, 익숙하지 않아서 몰랐던 용어 2가지. 오케스트레이션과 코레오그래피에 대해서 이해해보려고 합니다. 위 2개 용어는 최근 관심가는 프레임워크 eventuate.io/을 이해하던 중에 나와서 이렇게 다시 정리해볼까 합니다. 앞서 말했던 eventuate.io/프레임워크는 약결합을 통해 Saga와 CQRS 를 해결하는 좋은 오픈소스라고 판단되, 학습중에 있습니다. 어느 정도 정되면 포스팅 하겠습니다. 위 다이어그램을 활용해 오케스트레이션과 코레오그래피를 설명하겠습니다. 오케스트레이션 오케스트라 지휘자처럼 프로세스를 안내하고 구동하는 하나의 중앙 두뇌에 .. 2020. 10. 17.
마이크로서비스란? 해당 내용은 마이크로서비스 아키텍쳐 구축 책의 내용을 일부분을 정리한 포스트입니다. 들어가기 제가 근무하는 회사에서는 여전히 모놀리틱으로 구축되어 있고, 아직도 기억이 생생합니다. 근무중인 회사에서 인턴 당시, 어떤 팀장님께서 저를 시험하듯이 이런 질문을 했던적이 있었습니다. "마이크로서비스의 반대가 무엇인지 아는가?" 모놀리틱이라고 대답해서 칭찬을 받았었는데, 지금 생각해보면- 조금 기분이 언짢은 질문이라는 생각이 든다. 지금의 회사에 근무한지 2년이 지난 시점에 단, 한번도 MSA를 접해본 적도 없고, 이해하기 위한 노력이 필요하지 않았습니다. 그러나, 점차 서비스 개발 양상이 MSA로 번지고 있고, 이제는 커다란 줄기를 형성하고 있다고 생각했습니다. 그래서 주변에 추천을 받아 마이크로서비스 아키텍쳐.. 2020. 9. 30.