본문 바로가기

JavaScript12

[SOLID] 3. LSP(Liskov Substitution Principle) - 리스코프 치환 원칙 이번 글에서는 SOLID 원칙의 L에 해당하는 LSP에 대해 정리해보겠습니다. LSP(Liskov Substitution Principle) LSP는 리스코프 치환 원칙의 줄임말입니다. 리스코프 치환 원칙이란 상위 타입의 객체를 하위 타입의 객체로 치환해도 코드가 문제없이 동작해야 한다는 원칙입니다. 다시 말하면 하위 타입의 객체가 상위 타입의 객체의 모든 동작을 포함하고 있어야 한다는 의미입니다. LSP를 위반하는 예시 코드를 보겠습니다. class Rectangle { private width: number; private height: number; constructor(width: number, height: number) { this.width = width; this.height = heigh.. 2021. 10. 11.
[SOLID] 2. OCP(Open Close Principle) - 개방 폐쇄 원칙 이번 글에서는 SOLID 원칙의 O에 해당하는 OCP에 대해 정리해보겠습니다. OCP(Open Close Principle) OCP는 Open Close Principle의 줄임말입니다. 한글로는 개방 폐쇄 원칙이라고 부릅니다. 개방 폐쇄 원칙이란 확장에는 열려있고 변경에는 닫혀있다는 뜻입니다. 이렇게만 들으면 무슨 말인지 감이 잡히지 않습니다. 여기서 말하는 확장이란 새로운 기능이 추가됨을 의미합니다. 확장에는 열려있고 변경에는 닫혀있다는 말은 새로운 기능이 추가되어야 할 때 기존 코드의 변경 없이 새로운 코드를 쉽게 추가할 수 있어야 한다는 의미입니다. OCP를 위반하는 typescript 코드를 살펴보겠습니다. interface Excel {} class StatisticsController { p.. 2021. 10. 5.
[SOLID] 1. SRP(Single Responsibility Principle) - 단일 책임 원칙 이번 글에서는 SOLID 원칙의 S에 해당하는 SRP에 대해 정리해보겠습니다. SRP(Single Responsibility Principle) SRP는 Single Responsibility Principle의 줄임말입니다. 한글로 번역하면 단일 책임 원칙입니다. 언뜻 보면 하나의 클래스가 하나의 역할만 해야 한다는 뜻으로 이해하기 쉽습니다. 하지만 이 말의 진짜 의미는 하나의 클래스는 하나의 액터만을 담당해야한다는 의미입니다. 여기서 액터란 클래스를 변화시킬 수 있는 주체를 의미합니다. 예시 코드를 보며 더 자세히 알아보겠습니다. 예시 코드는 javascript 코드입니다. class Employee { name; positon; constructor(name, position) { this.name.. 2021. 9. 9.
[Leetcode / Javascript] 15. 3Sum 문제는 다음과 같습니다. 숫자의 배열이 주어지고 배열의 원소 중 3개를 더해서 0이 만들어지는 조합을 찾는 문제입니다. 문제 해결방법은 다음과 같습니다. nums 배열을 정렬한 후 제일 앞 원소를 조합의 첫 번째 숫자로 지정합니다. 그리고 그 뒤에 있는 숫자들 중 조건을 만족하는 나머지 2개의 숫자를 찾습니다. nums 배열을 순회하면서 이 과정을 반복합니다. 즉, 3개의 숫자 중 가장 작은 수를 하나 뽑고 나머지 숫자의 조합을 찾는 방법입니다. nums 배열이 정렬되어 있기 때문에 첫 번째 숫자가 0보다 크다면 합이 0이 될 수 없기 때문에 순회를 종료합니다. 나머지 숫자에서 2개를 찾는 방법은 다음과 같습니다. 첫 번째 숫자 바로 다음 숫자의 index를 lo로 지정하고 가장 마지막 index를 hi.. 2021. 6. 23.