본문 바로가기

CS 지식12

멀티모듈(Multi Module)구조에 대하여 멀티 모듈(Multi Module)이란? 애플리케이션이 각각 특정 목적이나 기능을 제공하는 여러 모듈로 나누어지는 프로젝트 구조를 의미합니다. 모듈(Module)이란? 소프트웨어 개발의 모듈은 특정 기능을 수행하는 독립적인 코드 단위이며 종종 더 큰 시스템의 일부를 말합니다. 멀티 모듈은 왜 사용할까? 위 사진은 처음 소규모 앱을 만들 때 주로 사용하는 프로젝트 구조입니다. 위 구조는 처음 서비스 운영 시에는 문제가 없으나 서비스가 발전하여 기능이 점점 추가될 경우 다음과 같은 문제가 발생합니다. 확장성 문제: 계층의 가장 아랫부분인 인프라 계층부터 구현하려는 경향을 가지게 되는데, 이는 도메인과 db 엔티티의 경계를 모호게 하여 결국 도메인 모듈과 인프라 모듈이 혼재하기 되는 한계를 갖습니다. 리소스 .. 2023. 12. 15.
모노레포(monorepo) 란? 모노레포가 뭘까? 두 개 이상의 프로젝트 코드를 하나의 버전 관리 저장소(repository)에서 관리하는 방법을 말합니다. 모노레포가 왜 나왔을까? 모노레포(mono repo) 개념이 처음 등장한 이유는 여러 가지가 있지만, 대표적인 이유 중 하나는 큰 규모의 소프트웨어 개발 프로젝트에서 발생하는 문제를 해결하기 위해서입니다. 큰 규모의 프로젝트에서는 여러 개의 코드 저장소가 생성됩니다. 표면적으로 봤을 때는 큰 문제가 없으나 다음과 같은 문제점들 때문에 프로젝트 관리에 어려움이 발생할 수 있습니다. 중복되는 코드 서로 다른 패키지 의존성 서로 의존하는 프로젝트들끼리의 리팩터링 비용 코드가 저장소마다 상황이 다르기에 개발자들 사이의 협업도 어려워지는 문제 이러한 문제를 해결하기 위해 모든 프로젝트 코드.. 2023. 2. 19.
도메인 주도 설계(Domain Driven Design)란? 정의 비즈니스 도메인(Business Domain)을 중심으로 소프트웨어를 설계하고 개발하는 개발 방법론 비즈니스 도메인이란? 회사가 고객에게 제공하는 서비스를 의미합니다. (예: 아마존 - 클라우드 서비스) 왜 도메인 주도 설계가 나왔을까? 과거부터 현재까지 효과적인 소프트웨어 엔지니어링을 위해 다양한 설계 방법들이 등장했습니다. 하지만 다양한 개발 방법들이 등장함에도 불구하고 프로젝트는 여전히 종종 실패를 합니다. 프로젝트가 실패하는 이유를 찾아보면 여러 가지 이유가 있겠지만 주로 공통적으로 말하는 실패 요인은 커뮤니케이션입니다. 이러한 커뮤니케이션 문제를 해결하기 위해 등장하지 않았나 생각합니다. 어떻게 설계를 할까? 도메인 주도 설계 방식은 크게 전략적 설계와 전술적 설계로 나뉩니다. 1. 전략적.. 2022. 9. 22.
함수형 프로그래밍이란? 함수형 프로그래밍이란? 선언적 프로그래밍 스타일 중 하나며, 순수 함수 구성에 중점을 둔 프로그래밍 방식 언제 함수형 프로그래밍이 나왔을까? 첫 번째 함수형 프로그래밍 언어가 나온 시기는 첫 번째 객체지향 프로그래밍 언어라고 할 수 있는 Simula(1962), Smalltalk(1972)보다도 더 먼저인 1958년에 LISP가 등장했습니다. 왜 이전에는 함수형 프로그래밍이 주목받지 못했을까? 기존에 함수형 프로그래밍이 주목받지 못했던 이유는 배우는데 시간이 좀 걸리고 어렵다고 느껴졌기 때문이었습니다. 이러한 이유로 사람의 사고방식과 가까운 절차 지향, 객체지향 프로그래밍이 많이 사용되었습니다. 하지만 요즘 AI, IoT, 빅데이터, 블록체인 등이 떠오르면서 많은 데이터를 빠르게 병렬적으로 안정적으로 처.. 2022. 4. 28.