Medium 8

7가지 아키텍처 디자인 패턴 - 면접전에 알았으면 좋았을 것들

해당 포스트는 미디엄의 아티클을 번역한 내용이다. 이 블로그에 방문하셨다면 모던 아키텍처 디자인 패턴이 무엇인지 알고 있을거라 생각됩니다. 그러나 경험이 부족한 몇몇 친구들을 위해 아키텍처 디자인 패턴을 어플리케이션을 확장할 수 있도록 설계하는 방식이라고 생각하면 됩니다. 아키텍처 디자인 패턴은 간단히 말해 High Level Design 을 위한 디자인 패턴입니다. 현대의 문제에는 현대적인 해결책이 필요합니다. 어플리케이션이 기업 혹은 인터넷 수준의 사용자를 대상으로 하려면 확장성, 가용성, 보안성, 복원력을 갖춰야 합니다. 의심할 여지 없이 모든 메이저 리그 기업들은 이러한 어려움을 파악하고 해결할 수 있는 개발자를 찾고 있습니다. 이제 문제는 개발자가 이러한 문제를 어떻게 해결할 수 있을까요? 한 ..

Medium 2023.11.06

Spring Boot3 with QueryDSL - Part2

해당 포스트는 Meduim 의 아티클을 번역한 내용이다. 개요 이 글에서는 Spring Boot3 어플리케이션에서 QueryDSL을 설정하고 활용하는 방법을 설명합니다. Set up Dependency 메이븐 pom.xml 에 종속성을 추가하는 것부터 시작해 보겠습니다. Spring Boot 3 는 Jakarta EE 를 사용합니다. 따라서 querydsl-* 디펜던시에 jakarta 식별자를 추가해야 합니다. 또한, Spring Boot Starter Parent 에 querydsl.version 이 포함되어 있으므로 QueryDSL 버전에 대한 직접적인 사용이 가능합니다. 4.0.0 org.springframework.boot spring-boot-starter-parent 3.1.4 io.jay s..

Medium 2023.11.06

Spring Boot3 with QueryDSL - Part1

해당 포스트는 Meduim 의 아티클을 번역한 내용이다. 개요 이전 프로젝트에서 다음과 같은 이유로 Spring Data JPA 를 이용하여 data access layer 를 구현했습니다. 즉시 사용가능한 CRUD 작업 제공 손쉬운 사용자 정의 쿼리 생성 페이징과 정렬 지원 data access layer에 대한 쉬운 단위테스트 작성 클라이언트는 관계형 데이터베이스를 사용하고 있다고 말했으며, 어플리케이션 도메인은 집계 루트를 통해서만 액세스되도록 Bounded Context 개념을 구현하고자 했습니다. 이를 위해 JPA 연관 관계인 @OneToMany, @ManyToOne 등이 사용되었습니다. 모든 것은 클라이언트가 각 관련 자식 테이블 행 수를 표시해야 하는 기능을 요청하기 전까지 문제없이 작동했습..

Medium 2023.11.03

Retry 와 Fallback 메카니즘을 활용한 스프링 마이크로서비스 회복탄력성

해당 포스트는 Meduim 의 아티클 "Spring Microservices Resilience with Retry and Fallback Mechanisms" 을 번역한 내용이다. [ 원문 ] 개요 마이크로서비스 아키텍처 스타일과 같은 분산 시스템 환경에서 서비스 복원력을 보장하는 것은 중요합니다. Spring F/W을 기반으로 구축된 Spring Cloud는 탄력적인 마이크로서비스를 구축하는데 도움이 되는 여러 도구와 기능을 제공합니다. 그 중에서도 Retry 와 Fallback 메커니즘은 실패를 우아하게 처리할 수 있는 강력한 시스템을 구현하는 중요한 구성 요소입니다. 이 글에서는 이러한 메커니즘을 스프링 마이크로서비스와 함께 효과적으로 사용할 수 있는 방법에 대해 소개합니다. 마이크로서비스에서 복..

Medium 2023.10.26

소프트웨어 엔지니어가 알아야 할 12가지 소프트웨어 아키텍처 스타일

해당 포스트는 Meduim 의 아티클 "12 Software Architecture Styles Software Enginners Should Know" 을 번역한 내용이다. [ 원문 ] 소프트웨어 아키텍처란? 소프트웨어 아키텍처는 소프트웨어 시스템의 상위 수준 구조와 구성을 정의하는 프로세스입니다. 여기에는 올바른 구성 요소를 식별 및 선택하고, 상호작용하는 방법을 결정하고, 특정 목표를 달성하기 위해 구성하는 방법을 결정하는 작업을 포함합니다. 소프트웨어 아키텍처의 목표는 유지보수성, 확장성, 보안 안정성 및 시간이 지남에 따른 사용자와 조직의 요구사항을 충족할 수 있는 시스템을 만드는 것 입니다. 소프트웨어 아키텍처가 필요한 이유는 무엇인가? 견고한 아키텍처는 사용자와 이해관계자의 요구사항을 충족하..

Medium 2023.10.23

스프링 마이크로서비스와 사이드카 패턴

해당 포스트는 Meduim 의 아티클 "Spring Microservices and Sidecar Pattern" 을 번역한 내용이다. [ 원문 ] 지난 몇 년 동안 마이크로 서비스는 소프트웨어 아키텍처의 선두에 있었습니다. 그 이유는 분명합니다. 마이크로 서비스는 모듈성, 확장성 및 전체 시스템에 영향을 주지 않고 개별 구성 요소를 유지 관리 및 배포할 수 있습니다. 마이크로 서비스 패턴을 Spring Boot와 같은 프레임워크와 Sidecar 같은 패턴을 결합하면 더욱 강력해 집니다. 이 글에서는 Spring 마이크로 서비스의 본질을 이해하고 Sidecar 패턴을 어떻게 보완하는지 알아보겠습니다. Spring Microservices 소개 일반적으로 마이크로 서비스는 소프트웨어 디자인 패턴을 나타내며..

Medium 2023.10.19

Spring Boot3 마이그레이션

해당 포스트는 Meduim 의 아티클 "Spring Boot3 Migration" 을 번역한 내용이다. [ 원문 ] Spring Boot3 마이그레이션 준비 Spring-boot 2의 마지막 버전인 2.7.x 지원종료(2023년 11월 18일)가 다가오고 있어, Spring Boot 3 으로 마이그레이션하기 시작했고, 그동안 마주친 중요한 문제들을 기록했다. Java 17 Jakarta EE Kafka OpenAPI Spring Security 수 많은 마이그레이션 가이드가 존재하지만, 다음의 두 문서에서 시작하는것을 추천한다. Preparing for Spring Boot 3.0 Spring Boot 2.0 was the first release in the 2.x line and was publish..

Medium 2023.10.17

Java Records: 언제 그리고 왜 사용해야 하나?

해당 포스트는 Meduim 의 아티클 "Java Records: When & Why to use them" 을 번역한 내용이다. [ 원문 ] 자바 프로그램에서 길고 지루한 코드를 작성하는 것에 피로감을 느낄 수 있다. 다행스럽게도 Java Records 라는 새로운 멋진 기능이 있어 코드를 더 간결하고 가독성 높게 만들어 줄 수 있다. 이 아티클에서는 Java Records 를 사용하는 방법을 보여주고, 작동 방식을 이해하는데 도움이 되는 몇 가지 예제를 제공할 것이다. 또한, 언제 일반 클래스 대신에 Records 를 사용하는게 좋은지에 대해서도 설명하겠다. Records 는 주로 데이터를 저장하거나 어떤 동작을 정의하지 않는 상황에서 선택하는것이 좋다. 왜 Records 가 데이터를 저장하기에 좋은가..

Medium 2023.10.16