목록2023/11/11 (4)
넘치게 채우기
인터페이스 분리 원칙은 아래 그림의 다이어그램에서 그 이름이 유래했다. 그림 10.1에 기술된 상황에서, 다수의 사용자가 OPS 클래스의 오퍼레이션을 사용한다. User1은 오직 op1을, User2는 오직 op2를, User3는 op3만을 사요한다고 가정해보자. 그리고 OPS가 정적 타입 언어로 작성된 클래스가로 해보자. 이 경우 User1에서는 op2와 op3를 전혀 사요하지 않음에도 User1의 소스 코드는 이 두 메서드에 의존하게 된다. 이러한 의존성으로 인해 OPS 클래스에서 op2의 소스 코드가 변경되면 User1도 다시 컴파일한 후 새로 배포해야 한다. 사실 User1과 관련된 코드는 전혀 변경되지 않았음에도 말이다. 이러한 문제는 그림 10.2에서 보는 것처럼 오퍼레이션을 인터페이스 단위로..
https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 - 코딩 테스트 공부 문제 유형 : 다이나믹 프로그래밍 문제 난이도 : Level 3 문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 당신은 코딩 테스트를 준비하기 위해 공부하려고 합니다. 코딩 테스트 문제를 풀기 위해서는 알고리즘에 대한 지식과 코드를 구현하는 능력이 필요합니다. 알고리즘에 대한 지식은 알고력, 코드를 구현하는 능력은 코딩력이라고 표현..
https://leetcode.com/problems/design-graph-with-shortest-path-calculator/description/ Design Graph With Shortest Path Calculator - LeetCode Can you solve this real interview question? Design Graph With Shortest Path Calculator - There is a directed weighted graph that consists of n nodes numbered from 0 to n - 1. The edges of the graph are initially represented by the given array edges where e l..
1988년 바바라 리스코프(Barbara Liskov)는 하위 타입(subtype)을 아래와 같이 정의했다: “여기에서 필요한 것은 다음과 같은 치환(substitution) 원칙이다. S 타입의 객체 o1 각각에 대응하는 T타입 객체 o2가 있고, T타입을 이용해서 정의한 모든 프로그램 P에서 o2의 자리에 o1을 치환하더라도 행위가 변하지 않는다면, S는 T의 하위 타입이다:" 상속을 사용하도록 가이드하기 그림 9.1과 같이 License라는 클래스가 있다고 해보자. 이 클래스는 calcFee()라는 메서드를 가지며, Billing 애플리케이션에서 이 메서드를 호출한다. License에는 PersonalLicense와 BusinessLicense라는 두 가지 ‘하위 타입’이 존재한다. 이들 두 하위 ..