일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트 자료구조
- IOS
- 힛잇
- jest
- 비동기
- javascript
- 스위프트
- 이종호
- Hitit
- 계명대
- 자스민
- 스벨트
- TDD
- Svelte
- 호키도키
- data structure
- queue
- hokidoki
- 리액트
- 자바스크립트
- hokeys
- 리액트 예제
- 자료구조
- 계명대 이종호
- 개발
- react
- SWIFT
- 호키스
- 개발자
- HTML
- Today
- Total
목록Solid (4)
Dog foot print
서론 지난 포스팅에 이어 마지막 DIP 에 대해서 포스팅 하겠습니다. DIP :(Dependency Inversion Principle) 의존관계 역전 원칙 의존성 역전 원칙에서 말하는 "유연성이 극대화된 시스템"이란 소스코드가 추상에 의존하며 구체에는 의존하지 않는 시스템을 의미한다. 추상 인터페이스에 변경이 생기면 이를 구체화한 구현체들도 따라서 수정해야 한다. 반대로 구체적인 구현체에 변경이 생기더라도 그 구현체가 구현하는 인터페이스는 항상 변경될 필요가 없다. 따라서 인터페이스는 구현체보다 변동성이 낮다. 즉 안정된 소프트웨어 아키텍처란 변동성이 큰 구현체에 의존하는 일은 지양하고, 안정된 추상 인터페이스를 선호하는 아키텍처라는 뜻이다. 이 원칙을 구체적인 코딩 실천법으로 요약 하면 다음과 같다...
서론 지난 포스팅에 이어 오늘은 [i]에 대해서 포스팅 하도록 하겠습니다. ISP (Interface Segregation Principal) : 인터페이스 분리 원칙 인터페이스 분리 원칙은 어떤 인터페이스로부터 상속받아 클래스를 정의 할 때, 사용하지 않는 메서드까지 상속 받지 말고 새로운 인터페이스를 생성하여 기존 상속하려던 인터페이스를 새롭게 확장하여 상속 받아야 한다는 분리원칙이다. 다음의 클래스다이어그램을 보도록 하자 . 위의 클래스 다이어그램에서 파리,벌,사슴벌레 클래스는 곤충 인터페이스를 상속받는다. 이 경우 파리 클래스에서는 독을 뿜다. 라는 메서드가 필요없으며, 벌 클래스와 사슴벌레 클래스에서는 각각 뿔을 움직인다, 독을 뿜다라는 메서드가 필요없음에도 곤충인터페이스를 상속 받았기 때문에 ..
서론 지난 포스팅에 이어 SOLID 원칙 중 [L]에 대해서 포스팅을 이어나가보도록 하겠다. LSP(Liskov substitution Principle) : 리스코프 치환 법칙 리스코프는 하위타입에 대해서 다음과 같이 정의하였다. "S타입의 객체 o1 각각에 대응하는 T타입 객체 o2가 있고, T타입을 이용해서 정의한 모든 프로그램 P에서 o2의 자리에 o1을 치환하더라도 P의 행위가 변하지 않는다면,S는 T의 하위 타입이다. " 리스코프의 말이 어렵게 느껴지는 것이 당연하다. 이를 조금 더 쉽게 풀어 설명하면, 다음과 같다. "부모 A로부터 상속받은 자식 B가 존재할 때 부모 A는 자식 B로 타입을 치환하여도 프로그램에서 행위는 변하지 않는다. " 어찌 보면 당연한 소리이다. 부모 A로부터 만들어진 ..
서론 로버트 C 마틴의 Clean Architecture 의 책을 읽는 중, SOLID원칙이 등장하여, 이를 정리하고자 글을 써본다. 재미있는 부분이라 함은 SOLID 원칙의 SOLID는 기존에 존재하던 5가지의 원칙의 이름을 2000년대 초반 마이클 페더스(레거시 코드 활용전략 저자)가 로버트 C마틴에게 앞 글자만 따서 재배열하여 SOLID라는 이름이 탄생한 것이다. SOLID SOLID 원칙은 함수와 데이터 구조를 클래스로 배치하는 방법, 그리고 이들 클래스를 서로 결합하는 방법을 설명해준다. (절대 객체지향프로그래밍 패러다임에 국한되지 않는다.) SOLID원칙의 목적은 다음과 같다. (클래스의 역할이 아닌 삽입과 삭제)변경에 유연하다. (프로그래머가) 이해하기 쉽다. 많은 소프트웨어 시스템에 사용될..