일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swiftUI
- Clean Code
- Refactoring
- uitableview
- ios
- ribs
- 리펙토링
- Protocol
- rxswift
- UITextView
- UICollectionView
- swift documentation
- combine
- SWIFT
- 리펙터링
- 클린 코드
- map
- 리팩토링
- HIG
- tableView
- Human interface guide
- clean architecture
- collectionview
- Xcode
- 스위프트
- Observable
- RxCocoa
- uiscrollview
- 애니메이션
- MVVM
- Today
- Total
목록캡슐화 (3)
김종권의 iOS 앱 개발 알아가기
위임 숨기기 * swift에서 자주사용하는 delegate와는 다른 개념임을 주의 B안에 C인스턴스가 있고 A가 C에 접근할때, B.C로 접근하지 않고 B에서 C를 리턴하는 메소드를 만들어, 사용하는 쪽에서는 B를 모르게끔 수정하는 방법 (기대효과: 사용하는쪽에서 B를 모르는 상태이므로, B의 코드를 수정할때 사용하는쪽을 신경쓰지 않고 쉽게 수정이 가능) 모듈화 설계의 핵심은 캡슐화이며, 캡슐화는 모듈들이 시스템의 다른 부분에 대해 알아야 할 내용을 줄여주는 것 무언가를 변경해야 할 때 함께 고려해야할 모듈 수가 적어져서 코드 변경이 쉬워짐 반대 리펙토링: 중개자 제거하기 위임 숨기기 예시) 리펙토링 전) 사용하는쪽에서 person.department.manager으로 접근하므로 department가 삭..
클래스 or 구조체 추출하기 * 아래부터 편의상 구조체 추출하기도 클래스 추출하기로 명칭 클래스 안에 일부 property나 메소드를 또다른 클래스로 묶을 수 있다면 따로 그 요소들을 별도의 클래스로 만드는 것 클래스는 데이터가 추가되고, 연산이 추가되다보면 어느새 비대해지는데, 역할이 많을수록 복잡도가 증가하는데 이 것을 클래스 추출하기를 통해 해결이 가능 하나의 클래스에는 하나의 성격만 담도록 코딩하다보면 나중에 변경할때도 다른 사이드 이펙을 고려하지 않고 쉽게 수정이 가능 ex) 구조체 추출하기 struct Person { let officeAreaCode: String let officeNumber: String func getOfficeAreaCode() -> String { officeArea..
레코드란? 데이터를 저장하는것을 의미 대표적인 레코드 표현 구조는 list, dictionary, hash 3가지 캡슐화란? 클라이언트 코드에서(=사용하는쪽) 사용하는 것만 관심있고 내부에서는 어떻게 처리하고 있는지 모르게하는 방법 구현 내용 일부를 "은닉화"한다고도 불림 캡슐화하는 이유? 구현을 숨긴다는것은 클라이언트 코드에서 접근하지 못한다는 의미로, 구현부가 유연하게 변경되어도 클라이언트쪽 코드를 신경쓰지 않아도 되어 곧 개발자는 사용하는쪽을 신경쓰지 않고 구현부 하나만 신경쓸수 있는 장점이 존재 레코드 캡슐화 데이터를 저장하는 부분을 클라이언트 코드쪽에서 모르게끔 하는것 기대효과: 캡슐화되어 있으면 데이터가 변경되어도 클라이언트 코드는 영향이 가지 않기 때문에 더욱 유연한 코딩이 가능 레코드 캡슐..