목록2023/11/22 (2)
넘치게 채우기
소프트웨어 아키텍처는 선을 긋는 기술이다. 이러한 선을 경계라고 한다. 경계는 소프트웨어 요소를 서로 분리하고, 경계 한편에 있는 요소가 반대편에 있는 요소를 알지 못하도록 막는다. 이들 선 중 일부는 프로젝트 수명 중 아주 초기에, 심지어 코드가 작성되기도 전에 그어지며, 어떤 선은 매우 나중에 그어진다. 초기에 그어지는 선들은 가능한 한 오랫동안 결정을 연기시키기 위해, 그래서 이들 결정이 핵심적인 업무 로직을 오염시키지 못하게 만들려는 목적으로 쓰인다. 아키텍트의 목표는 필요한 시스템을 만들고 유지하는 데 드는 인적 자원을 최소화하는 것이라는 것을 상기하자. 그렇다면 인적 자원의 효율을 떨어뜨리는 요인은 무엇일까? 바로 결합이다. 특히 너무 일찍 내려진 결정에 따른 결합이다. 어떤 종류의 결정이 이..
https://leetcode.com/problems/diagonal-traverse-ii/description/ Diagonal Traverse II - LeetCode Can you solve this real interview question? Diagonal Traverse II - Given a 2D integer array nums, return all elements of nums in diagonal order as shown in the below images. Example 1: [https://assets.leetcode.com/uploads/2020/04/08/sample_1_1784.png] I leetcode.com leetcode - Diagonal Traverse II 문제 ..