본문 바로가기

개발11

[NestJS] 마이크로서비스와 하이브리드 애플리케이션 구성하기 마이크로서비스(Microservice) 아키텍처란?마이크로서비스 아키텍처는 하나의 애플리케이션을 여러개의 독립적으로 배포 가능한 작은 서비스로 나누고, 이들 사이의 결합을 느슨하게 유지하는 소프트웨어 아키텍처 방식입니다.기존의 모놀리식(Monolithic) 아키텍처와 비교했을 때, 서비스별 코드의 규모가 작고 개별적으로 배포할 수 있다는 점이 큰 장점입니다. 이러한 특성 덕분에 서비스 확장성과 유지보수에 용이하며, 최근에는 대규모 애플리케이션을 운영하는 많은 조직에서 마이크로서비스 아키텍처를 도입하는 것을 볼 수 있습니다.이번 글에서는 NestJS에서 마이크로서비스 아키텍처를 구성하는 방법을 알아보고, 각 마이크로서비스에서 API 서버와 내부 서비스간 통신을 함께 운영하는 하이브리드 애플리케이션(Hybr.. 2025. 2. 2.
일급 컬렉션, 왜 Collection만 특별취급 하나요? Java 공부를 시작하고 일급 컬렉션(First Class Collection)이라는 개념을 처음 알게되었다.일급 컬렉션의 정의와 필요성에 대해 공부하고 코드에 적용해보던 중, 일급 컬렉션의 장점이 값 객체(VO, Value Object)와 비슷하다는 생각이들었다. 그리고 왜 Collection만 "일급 컬렉션"이라는 이름을 붙이면서 특별취급을 할까? 라는 의문이 들었다. 이와 관련해 알아본 내용을 글로 정리해두려고 한다.  일급 컬렉션(First Class Collection)이란? 일급 컬렉션이란 컬렉션을 포장(wrapping)하면서 그 외 다른 멤버 변수가 없는 클래스를 의미한다.여기서 컬렉션은 데이터의 집합이나 그룹. 즉 여러개의 데이터를 담을 수 있는 자료구조를 의미하는데, Java Collec.. 2025. 1. 5.
[Java] 함수형 인터페이스(Functional Interface)를 활용해 중복 코드 줄이기 배경 우아한 테크코스 7기 프리코스의 3주차, 4주차 과제에 다음과 같은 요구사항이 있었다.사용자가 잘못된 값을 입력할 경우 예외를 발생시키고, "[ERROR]"로 시작하는 에러 메시지를 출력 후 그 부분부터 입력을 다시 받는다. 처음 구현한 코드는 사용자 입력을 받는 컨트롤러의 메서드마다 `try-catch` 구문 처리를 하고,예외가 발생했을 때 에러 메시지를 출력한 뒤 재귀호출을 하는 형태였다.public class LottoController { // ... private PurchasePrice requestPurchasePrice() { try { outputView.displayPurchasePriceRequest(); re.. 2024. 11. 24.
[번역] JUnit5 Parameterized Test 가이드 본 글은 Baeldung의 Gide to JUnit 5 Parameterized Tests를 일부 번역한 글입니다.정확한 정보는 원문을 통해 확인해주시길 바랍니다! JUnit 5 (OverView)Parameterized Test는 JUnit5의 새로운 기능 중 하나로, 하나의 테스트 메서드를 서로 다른 인자들을 이용해 여러번 실행할 수 있는 테스트 도구이다. 다음과 같은 유틸성 함수를 테스트한다고 해보자.public class Numbers { public static boolean isOdd(int number) { return number % 2 != 0; }} `@ParameterizedTest` 어노테이션을 사용해 Parameterized Test를 구현할 수 있다.@Pa.. 2024. 10. 27.