목록프로그래밍👩🏻💻/기타 (11)
suyeonme
마이크로서비스(Mocroservice)란? 마이크로서비스는 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 소프트웨어 아키텍쳐이다. 마틴파울러는 아래와 같이 마이크로서비스를 정의했다. 해당 내용은 여기서 확인할 수 있다. The term "Microservice Architecture" has sprung up over the last few years to describe a particular way of designing software applications as suites of independently deployable services. While there is no precise definition of this architectural style, there are ce..
단위 테스트(Unit Test) 단위 테스트는 단일 클래스나 메서드처럼 범위가 상대적으로 좁은 테스트를 뜻한다. 단위 테스트 장점 단위 테스트는 빠르고 결정적(deterministic)이여서 개발자들이 수시로 수행하며 피드백을 즉각 얻을 수 있다. 대상 코드와 동시에 작성할 수 있을만큼 작성하기 쉽다. 빠르게 작성할 수 있으므로 테스트 커버리지를 높이기 좋다. 테스트는 개념적으로 간단하고 시스템의 특정 부분에 집중하므로 실패시 원인 파악이 쉽다. 대상 시스템의 사용법과 의도한 동작 방식을 알려주는 문서자료 역할을 한다. 단위 테스트를 수행해야하는 시점 순수 리팩터링 새로운 기능 추가 버그 수정 코드의 행위 변경 좋은 단위 테스트를 작성하는 원칙 공개 API를 이용해 테스트하자 내부 구현을 위한 코드가 아..
구글 엔지니어는 이렇게 일한다 책의 21장 "의존성 관리" 챕터를 읽고 정리한 내용입니다. Semantic Versioning(SemVer)이란? Semantic Versioning은 오늘날 의존성 네트워크를 관리하는 가장 대표적인 방법으로, 의존성의 버전을 표기하는 보편적 방식이다. 버전은 숫자 세개로 표현한다. 예를 들어, library ≥ 1.5는 1.5나 1.5.1 혹은 1.6이상을 포괄한다는 의미이다. MAJOR: API가 변경되어 의존성을 이용하던 기존 코드를 깨뜨릴 수 있음 MINOR: 순수한 기능추가만 있음(기존 코드를 깨뜨리지 않음) PATCH: API에 영향을 주지 않는 내부 구현 개선과 버그 수정 Semantic Versioning(SemVer)의 한계 변경이 얼마나 위험할지를 사람이..