Jul 21, 2023

Today I Learned#5

무엇을 배웠는지 간단하게 기록합니다.
Today I Learned#5
Contents
Dependency Injection
Clean Build
Simulator
Preview View

Dependency Injection

의존성 주입이라고 하며 소프트웨어 디자인 패턴 중 하나이고, 객체 지향 프로그래밍에서 볼 수 있는 개념이다. 여기서 Dependency(의존성)은 서로 다른 객체 사이에 의존 관계가 있다는 것을 의미한다. 따라서 객체가 수정되면 의존하고 있는 다른 객체도 영향을 받게 되고 결합도가 증가해서 유연하고 확장성있는 코드를 작성할 수 없다. 그래서 의존성 주입을 통해 외부에서 객체를 생성하여 사용할 수 있도록 하는 것이 좋다.
  • 테스트 코드 작성이 간편 해진다.
  • 재활용 가능한 확장성 있는 코드 작성 가능
  • 객체와 객체 간 결합도 감소

Dependency Inversion Principle

의존 관계 역전 법칙은 S.O.L.I.D 원칙 중 하나다.
📄
구체적인 객체는 추상화 객체에 의존해야 한다.
비즈니스 로직이나 핵심 기능을 담당하는 구체적인 객체는 확장성을 고려하여 추상화 객체에 의존해야 한다는 것이다. 이러한 원칙 아래 의존성 주입을 활용하게 되면 새로운 기능을 담당하는 객체를 만들거나 다른 코드로 교체하는 것이 가능하다.

Clean Build

Xcode 프로젝트에서 빈번하게 발생하는 변경사항이 반영되지 않는 문제에 대한 해결 방법 중 하나다.
📄
이전 빌드 환경을 깨끗하게 만들고 새롭게 빌드하는 것이다.
이 작업은 빌드와 관련된 캐시와 임시 파일들을 제거하기 때문에 다음과 같은 상황일 때 사용해보는 것이 좋다.
  • 빌드 오류가 발생했을 때
  • 라이브러리 또는 프레임워크가 업데이트 되었을 때
  • 내부 소스 코드에 중요한 변경사항이 있을 때
하지만 Clean Build는 프로젝트 규모에 따라 처리하는 속도가 다르기 때문에 자주 사용하는 것은 자제하는 것이 좋다. 왜냐하면 일반적으로 Xcode에서 디버깅이나 테스트 시에는 변경된 부분만 다시 빌드하기 때문이다.

Simulator

  • Xcode 프로젝트를 시뮬레이터 환경에서 실행할 수 있도록 하는 도구
  • 실제 디바이스와 유사한 환경에서 동작
  • 레이아웃과 이벤트를 미리 볼 수 있기 때문에 디버깅이나 테스트에 용이

Preview View

  • SwiftUI 프레임워크에서 사용하는 실시간 화면 랜더링 도구
  • 프로젝트를 빌드하지 않아도 변경 사항 확인 가능
📄
차세대 Xcode 버전에서는 UIKit 프레임워크에서도 해당 기능을 지원한다.
하지만 말 그대로 미리보기 용도로 사용하는 것이기 때문에 모든 변경 사항을 추적하기 어렵다.
 
Share article