프로젝트에서 자동화 파이프라인을 구성하는 도중 여러 환경에서 기능 테스트를 진행해보고, 프로덕션 환경에서 통합 테스트를 진행해 보기 위해 Git Actions을 학습했습니다.
논리적인 구조로 매핑된 파일을 폴더 구조로 구성된 ZIP 파일로 반환할 필요가 있었고, 논리적인 구조를 어떻게 물리적인 폴더 구조로 매핑할지, ZIP 파일을 어떻게 생성하고 전달할지 고민했습니다.
reactive libraries는 전통적인 비동기식 접근 방식의 단점을 해결하는 동시에 아래의 특징을 제공한다.
Blocking 은 자원을 점유한 상태로 멈추면서 처리량을 떨어뜨리는 효율적이지 못한 상황을 말한다. Reactive Programming은 Non-blocking하게 작업을 효율적으로 처리할 수 있다.
프로젝트를 진행하면서 프로그래밍 패러다임을 변경하는 일은 많은 리소스를 소모할만큼 의미있는 변화였는가를 고민했다.
Reactive programming은 비동기로 동작해 데이터 스트림과 변화를 전달하며 데이터 흐름을 쉽게 표현한다.
Spring 6.0 부터 기본 경로 분석 클래스인 PathPatternParser의 동작과정을 정리했습니다.
작성한 코드 외적인 상황에서 문제 원인 파악은 정말 어렵지만, Integration Test 코드 덕분에 문제 상황을 인지할 수 있었던 경험을 기술했습니다.
동시성 제어를 `Transcation`으로만 계좌 이체를 구현하는 중에 `TOTAL` 만큼 이체 요청을 보낼 때, `N` 개씩 동시에 요청을 하는 경우 `TOTAL⁒N`개 만 처리된 문제가 발생했습니다.
`Test Driven Development`를 깊게 이해하기 위해서는`Self Testing Code`를 알아야 했고, 그 차이를 이해할 필요가 있었습니다.
MST는 모든 정점을 포함하면서 순환하지 않는 트리 중 간선의 합이 가장 작은 트리를 의미합니다.