Tech Insights(12)
-
싱글톤 패턴이란? Node.js와 함께 배우는 구현과 활용법
싱글톤 패턴이란?싱글톤 패턴(Singleton Pattern)은 특정 클래스의 인스턴스를 하나만 생성하고, 이를 전역적으로 공유하는 디자인 패턴입니다. 이를 통해 불필요한 객체 생성을 방지하고, 시스템 자원을 효율적으로 사용할 수 있습니다.싱글톤 패턴의 특징유일한 인스턴스 유지: 애플리케이션 전반에서 단 하나의 객체만 유지됩니다.전역 접근 가능: 인스턴스를 여러 곳에서 공유하여 동일한 데이터를 사용할 수 있습니다.메모리 절약: 동일한 객체를 여러 번 생성하는 비용을 줄일 수 있습니다.싱글톤 패턴이 사용되는 경우사용 사례설명로깅 시스템모든 모듈에서 동일한 로깅 인스턴스를 사용환경 설정(Config)어플리케이션 설정 값을 싱글톤 객체에서 관리이벤트 버스이벤트 리스너를 관리하는 객체를 싱글톤으로 유지싱글톤 패..
2025.02.03 -
Monorepo vs Polyrepo: 무엇이 더 나을까?
소프트웨어 개발에서 코드 저장소(Repository)를 어떻게 관리할 것인가는 매우 중요한 결정인데요. 일반적으로 Monorepo(모노레포)와 Polyrepo(폴리레포) 두 가지 방식이 있습니다.Monorepo: 하나의 리포지토리에 모든 프로젝트 코드를 관리하는 방식Polyrepo: 서비스 또는 모듈별로 개별 리포지토리를 운영하는 방식이 글에서는 각 방식의 장단점, 문제점 및 해결 방안, 그리고 실제 사례를 통해 어떤 경우에 Monorepo가 좋고, 어떤 경우에 Polyrepo가 더 나은지 알아보겠습니다.Monorepo란?Monorepo의 장점1. 코드 일관성과 재사용성Google은 모든 프로젝트를 하나의 Monorepo에서 운영하며, 공통 모듈을 쉽게 공유하고 유지보수합니다. Google은 내부적으로 ..
2025.01.30 -
MSA vs 모놀리틱: 무엇이 더 나을까?
소프트웨어 아키텍처 설계에서 MSA(Microservices Architecture)와 모놀리틱 아키텍처는 '한쪽이 정답'일 수 없는 대립 구도를 이루고 있습니다. 그렇다면, 두 방식 중 무엇이 진짜로 더 나을까요? 이 글에서는 두 아키텍처의 장점과 단점, 현실에서의 적용 사례, 그리고 이를 기반으로 브레인스토밍을 통해 현실적인 접근 방향에 대해 고민해봤습니다.1. MSA와 모놀리틱 아키텍처 개요MSA(Microservices Architecture)MSA는 애플리케이션을 작은 독립적 서비스들의 집합으로 분리하는 아키텍처입니다. 각 서비스는 독립적으로 배포, 확장, 관리할 수 있으며, 주로 REST API, gRPC 같은 통신 프로토콜을 사용해 상호작용합니다.모놀리틱 아키텍처모놀리틱 아키텍처는 애플리케이..
2025.01.25 -
개발자로서의 권고사직 경험과 그 후의 이야기
"삶은 뜻대로 흘러가지 않는다."라는 말을 실감하게 되는 순간이 있죠. 최근 저는 그런 순간을 맞이했습니다. 2022년 3월부터 근무했던 회사에서 권고사직 통보를 받았습니다. 예상치 못했던 상황이지만, 한편으로는 "이게 내게 어떤 의미일까?"를 생각해보는 계기가 되었습니다.이 글에서는 권고사직 후 느낀 점과 앞으로의 계획을 공유해보려고 합니다. 혹시 비슷한 상황을 겪고 계신 분들에게 작은 위로와 동기부여가 되길 바랍니다.1. 권고사직을 마주한 첫 느낌솔직히 말하자면, 처음에는 '섭섭하다'는 감정이 가장 컸습니다. 팀과 회사의 상황을 이해하지 못한 건 아니었지만, 막상 이런 통보를 받으니 멘탈이 잠깐 흔들리더군요."내가 잘못한 건가?"라는 생각이 스쳐갔지만, 곧 이게 단지 나의 잘못은 아니란 걸 깨달았습니..
2022.09.02 -
"Invalid Date" 오류 해결: PR을 통한 오픈소스 기여
Day.js는 날짜와 시간을 다루는 경량 라이브러리로 많은 개발자들 사이에서 인기 있는 도구입니다. 그러나 가벼운 라이브러리라고 해서 모든 것이 항상 완벽하게 작동하는 것은 아니죠. 특히, 여러 플러그인을 함께 사용할 때 예상치 못한 문제가 발생할 수 있습니다. 이번 글에서는 Day.js에서 발생한 "Invalid Date" 오류를 어떻게 발견하고 해결했는지, 그리고 그 해결 방법을 GitHub PR #1566을 통해 오픈소스에 기여한 과정을 공유하고자 합니다.1. 문제의 시작: "Invalid Date" 오류Day.js의 advancedFormat 플러그인과 timezone, utc 플러그인을 함께 사용할 때 "Invalid Date" 오류가 발생하는 문제를 겪게 되었습니다. 유효하지 않은 날짜(nul..
2021.07.12 -
Jest의 `expect` 함수 사용법: JavaScript 테스트의 핵심
Jest는 JavaScript에서 매우 인기 있는 테스트 프레임워크입니다. Jest를 사용하면 코드의 동작을 정확하게 검증할 수 있는 강력한 테스트 환경을 만들 수 있습니다. 그중에서 핵심적인 역할을 하는 것이 바로 expect 함수입니다. expect 함수는 테스트에서 값을 검증할 때 사용되며, 다양한 매처(matcher)를 통해 값이 예상대로 동작하는지 확인할 수 있습니다.이번 글에서는 Jest의 expect 함수 사용법과 함께, 자주 사용되는 매처들에 대해 알아보겠습니다.1. expect 함수란?expect 함수는 Jest에서 제공하는 핵심 API로, 테스트하려는 값을 전달하고, 해당 값이 예상되는 결과와 일치하는지 검증하는 역할을 합니다. 간단히 말해, "이 값이 내가 원하는 값일까?"를 물어보는..
2021.07.03