본문 바로가기

코드스피츠 2강 오브젝트 - 2회차(1) 책 오브젝트 13장를 기반으로 하는 코드스피츠 강의 오브젝트2 - 2회차 (1) 를 정리한 내용입니다. 1. 코드스피츠 2강 오브젝트 - 1회차 2. 코드스피츠 2강 오브젝트 - 2회차(1) 3.코드스피츠 2강 오브젝트 - 2회차(2) 4.코드스피츠 2강 오브젝트 - 3회차 5.코드스피츠 2강 오브젝트 - 4회차 6.코드스피츠 2강 오브젝트 - 5회차 7.코드스피츠 2강 오브젝트 - 6회차 (Final) 계약 (Contract) 프로그램에서는 메시지를 통해서 계약을 성립하게 된다.  전달받은 메시지의 규격을 지키고 있어야 한다. (precondition) Receiver 가 메시지를 검증하는 것을 기본적으로 정책으로 삼고있다. 전달할 메시지의 규격 (postcondition) Receiver 가 값을 .. 더보기
[Swift] Leetcode 209. Minimum Size Subarray Sum 209. Minimum Size Subarray Sum Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn't one, return 0 instead. Example: Input: s = 7, nums = [2,3,1,2,4,3] Output: 2 Explanation: the subarray [4,3] has the minimal length under the problem constraint. Coding! Using Binary search func minSubArrayLen(_ s: In.. 더보기
코드스피츠 1강 오브젝트 6회차 책 오브젝트를 기반으로 하는 코드스피츠 강의 오브젝트 - 6회차 를 정리한 내용입니다. 1.코드스피츠 1강 오브젝트 1회차 (1) 2.코드스피츠 1강 오브젝트 1회차 (2) 3.코드스피츠 1강 오브젝트 2회차 4.코드스피츠 1강 오브젝트 3회차 5. 코드스피츠 1강 오브젝트 4회차 6. 코드스피츠 1강 오브젝트 5회차 7. 코드스피츠 1강 오브젝트 6회차 합성과 의존성 디자인 패턴으로 가장 쉽게 합성과 상속의 차이점을 알아보는 방법은 Template method, strategy 각 패턴이 문제를 해결하는 방식을 알아보는 것이다. 객체망을 구성하면서 객체간의 의존성이 생긴다는 것이다. 의존성을 적절하게 맺는 방법은 양방향 참조가 되지 않도록 하는 것이다. Template method pattern 일반적.. 더보기
코드스피츠 1강 오브젝트 5회차 책 오브젝트를 기반으로 하는 코드스피츠 강의 오브젝트 - 5회차 를 정리한 내용입니다. 1.코드스피츠 1강 오브젝트 1회차 (1) 2.코드스피츠 1강 오브젝트 1회차 (2) 3.코드스피츠 1강 오브젝트 2회차 4.코드스피츠 1강 오브젝트 3회차 5. 코드스피츠 1강 오브젝트 4회차 6. 코드스피츠 1강 오브젝트 5회차 7. 코드스피츠 1강 오브젝트 6회차 들어가기전 책의 6장에서 배운 내용을 정리해보자. 디미터의 법칙: 협력이라는 컨텍스트 안에서 객체보다 메시지를 먼저 결정하면 두 객체 사이의 구조적인 결합도를 낮출 수 있다. a().b().c() 헐리우드 원칙(묻지 말고 시켜라): 클라이언트 관점에서 메시지를 선택하기 때문에 필요한 정보를 물을 필요 없이 원하는 것을 표현한 메시지를 전송하면 된다. i.. 더보기
코드스피츠 1강 오브젝트 4회차 책 오브젝트를 기반으로 하는 코드스피츠 강의 오브젝트 - 4회차 를 정리한 내용입니다. 1.코드스피츠 1강 오브젝트 1회차 (1) 2.코드스피츠 1강 오브젝트 1회차 (2) 3.코드스피츠 1강 오브젝트 2회차 4.코드스피츠 1강 오브젝트 3회차 5. 코드스피츠 1강 오브젝트 4회차 6. 코드스피츠 1강 오브젝트 5회차 7. 코드스피츠 1강 오브젝트 6회차 객체 지향 설계에 실패하는 이유: 디미터, 헐리우드 원칙 위반 객체는 자신 스스로 상태를 관리하기 때문에 묻게 되면 필연적으로 영향을 받는다. SOLID 원칙 중 OCP, LSP 와 연관이 깊다. OCP, LSP 원칙을 지킬려면 헐리우드 원칙을 사용할 수 밖에 없다. 리스코프 치환원칙 자신형을 부모형으로 안전하게 대체할 수 있다. a, b, c 함수의 .. 더보기
코드스피츠 1강 오브젝트 3회차 책 오브젝트를 기반으로 하는 코드스피츠 강의 오브젝트 - 3회차 를 정리한 내용입니다. 1.코드스피츠 1강 오브젝트 1회차 (1) 2.코드스피츠 1강 오브젝트 1회차 (2) 3.코드스피츠 1강 오브젝트 2회차 4.코드스피츠 1강 오브젝트 3회차 5. 코드스피츠 1강 오브젝트 4회차 6. 코드스피츠 1강 오브젝트 5회차 7. 코드스피츠 1강 오브젝트 6회차 객체간 통신 나의 데이터는 "돈" 이지만 협력의 메시지로 전달될 때는 "급여지급", "용돈 주기" 의 다양한 양상으로 나타난다. 돈(속성) == 캡슐화된 데이터 은닉 (interface) == 아빠, 사장 책임(메소드) == 급여지급, 용돈 주기 돈(속성) == 캡슐화된 데이터 은닉 (interface) == 아들, 사원 책임(메소드) == 월급받기, .. 더보기
코드스피츠 1강 오브젝트 2회차 책 오브젝트를 기반으로 하는 코드스피츠 강의 오브젝트 - 2회차 를 정리한 내용입니다. 1.코드스피츠 1강 오브젝트 1회차 (1) 2.코드스피츠 1강 오브젝트 1회차 (2) 3.코드스피츠 1강 오브젝트 2회차 4.코드스피츠 1강 오브젝트 3회차 5. 코드스피츠 1강 오브젝트 4회차 6. 코드스피츠 1강 오브젝트 5회차 7. 코드스피츠 1강 오브젝트 6회차 이 포스트는 Java 예제를 Swift 예제로 바꿔서 다루고 있습니다. Type 데이터 타입은 메모리에서 얼만큼 차지하는 길이이다. (Bool, Int, Long ...) 하지만 객체지향의 타입 다르다! 객체지향의 Types Role: Type을 통해 역할을 묘사함 Responsibility: 알고리즘을 Type으로 표현 Message: 형을 통해 메시.. 더보기
iOS Continuous CI / CD 구축해보자! - Overview 이 포스팅은 "iOS Continuous CI / CD 구축해보자!"의 Series 중 일부입니다. 1. iOS Continuous CI / CD 구축해보자! - Overview 2. iOS Continuous CI / CD 구축해보자! - XCConfig 3. iOS Continuous CI / CD 구축해보자! - Travis CI (준비중) 4. iOS Continuous CI / CD 구축해보자! - Fastlane (준비중) 5. iOS Continuous CI / CD 구축해보자! - Codecov (준비중) Continuous Integration, Continuous Delivery, Continuous Deployment? 아래 그림은 CI / CD 의 단계를 잘 설명되어 있는 그림입니.. 더보기