본문 바로가기

CS 지식/개발 방법론3

모노레포(monorepo) 란? 모노레포가 뭘까? 두 개 이상의 프로젝트 코드를 하나의 버전 관리 저장소(repository)에서 관리하는 방법을 말합니다. 모노레포가 왜 나왔을까? 모노레포(mono repo) 개념이 처음 등장한 이유는 여러 가지가 있지만, 대표적인 이유 중 하나는 큰 규모의 소프트웨어 개발 프로젝트에서 발생하는 문제를 해결하기 위해서입니다. 큰 규모의 프로젝트에서는 여러 개의 코드 저장소가 생성됩니다. 표면적으로 봤을 때는 큰 문제가 없으나 다음과 같은 문제점들 때문에 프로젝트 관리에 어려움이 발생할 수 있습니다. 중복되는 코드 서로 다른 패키지 의존성 서로 의존하는 프로젝트들끼리의 리팩터링 비용 코드가 저장소마다 상황이 다르기에 개발자들 사이의 협업도 어려워지는 문제 이러한 문제를 해결하기 위해 모든 프로젝트 코드.. 2023. 2. 19.
함수형 프로그래밍이란? 함수형 프로그래밍이란? 선언적 프로그래밍 스타일 중 하나며, 순수 함수 구성에 중점을 둔 프로그래밍 방식 언제 함수형 프로그래밍이 나왔을까? 첫 번째 함수형 프로그래밍 언어가 나온 시기는 첫 번째 객체지향 프로그래밍 언어라고 할 수 있는 Simula(1962), Smalltalk(1972)보다도 더 먼저인 1958년에 LISP가 등장했습니다. 왜 이전에는 함수형 프로그래밍이 주목받지 못했을까? 기존에 함수형 프로그래밍이 주목받지 못했던 이유는 배우는데 시간이 좀 걸리고 어렵다고 느껴졌기 때문이었습니다. 이러한 이유로 사람의 사고방식과 가까운 절차 지향, 객체지향 프로그래밍이 많이 사용되었습니다. 하지만 요즘 AI, IoT, 빅데이터, 블록체인 등이 떠오르면서 많은 데이터를 빠르게 병렬적으로 안정적으로 처.. 2022. 4. 28.
TDD(Test Driven Development)란? 정의 새로운 기능을 구현하기 전에 단위 테스트를 수행하여 소프트웨어를 개발하는 방식 어떻게 TDD가 생겨났을까? 소프트웨어 개발 프로세스는 항상 변화하고 있습니다. 그에 따라 소프트웨어 품질을 높이는 새로운 방법이 등장하는데, 그중 한 가지 방법으로 TDD(테스트 주도 개발)가 생겨났습니다. 테스트 주도 개발을 사용해야 하는 이유는 뭘까? 개인적인 생각에는 가장 중요한 이점은 코드의 전반적인 품질이 향상된다는 것입니다. 코드의 유지 관리 가능성을 향상할 뿐만 아니라 "생각지 못한 버그의 수"를 줄여줍니다. 새로운 기능 구현시 새로운 문제가 어디에서 오는지 알 수 없으면 정말 시간이 많이 걸린다는 것을 경험했습니다. 따라서 TDD를 사용하면 코드를 더 작은 단계로 확장할 수도 있으며, 새 기능을 작동하게 .. 2021. 11. 2.