https://developer.apple.com/documentation/xcode/improving-the-speed-of-incremental-builds Improving the Speed of Incremental Builds Xcode 빌드 시스템에 프로젝트의 타겟 관련 의존성을 알고 각 빌드 주기 동안 컴파일러 작업량을 줄입니다. Overview Xcode 빌드 시스템은 타겟의 코드 컴파일 및 링크를 관리합니다. 일반적인 유형의 대상에는 앱, 앱 extension, 프레임워크, 라이브러리 및 테스트 제품군이 포함됩니다. 단순 프로젝트에는 빌드하려는 앱과 같이 하나의 대상만 포함될 수 있습니다. 보다 복잡한 프로젝트에는 개인 프레임워크 및 해당 프레임워크에 의존하는 앱과 같이 상호 의존성이 있..
Summary of 'Clean code' by Robert C. Martin https://gist.github.com/wojteklu/73c6914cc446146b8b533c0988cf8d29 기본 규칙 스탠다드 컨벤션을 지켜라. 간단함을 유지하라. 간단할수록 좋다. 복잡도를 최대한 줄여라. 보이스카우트 규칙. 캠프장을 발견했을 때보다 더 깨끗하게 하고 떠나라 근본적인 원인을 찾아라. 항상 문제의 근본을 찾아라. 디자인 규칙 설정 가능한 데이터를 높은 수준으로 유지하라. if/else나 switch/case 대신 다형성을 선호하라. 다중 스레드 코드를 분리하라. 과도한 설정가능함 배제라. 의존성 주입을 사용하라. 디미터의 법칙을 따르라. 클래스는 직접적인 종속성만 알아야 한다. 이해가능성 팁 일관성을..
SOLID? 객체 지향 프로그래밍 및 설계의 다섯가지 기본 원칙 왜? 유지 보수와 확장이 쉬운 시스템을 만들고자 SRP, Single Responsibility Principle 단일 책임 원칙 객체는 단 하나의 책임만 가져야 한다. 클래스는 그 책임을 완전히 캡슐화해야 한다. 책임 - 변경하려는 이유 예) 보고서를 편집하고 출력하는 모듈 이 모듈은 두 가지 이유로 변경될 수 있다. 1. 보고서의 내용 (실질적) 2. 보고서의 형식 (꾸미기) 따라서 분리된 클래스나 모듈로 나누어야 한다. 다른 시기에 다른 이유로 변경되어야 하는 두 가지를 묶는 것은 나쁜 설계일 수 있다. OCP, Open-Closed Principle 개방-폐쇄 원칙 확장에 대해 열려 있어야 하고, 수정에 대해서 닫혀 있어야 한다. 개..