일정
KPT 회고
1. 한 주의 흐름
1) 프로젝트
- 프로젝트 명: 스파르타를 시작하며 (개인프로젝트)
- 필수 작업: UIKit, 배경화면 변경, 데이터 추가, 카드형태로 저장
1-1) 느낀점
- UIKit 프로젝트를 처음 해보는 과정에서 많은 어려움이 있었지만, 성장통이라 생각하고 낙담하지 않기로 했다.
2) 데일리미션
2. Keep
- 기존에 해봤던 내용 말고 새로운 방식으로 도전해보기
- 왜? 라는 생각을 꼭 하기
3. Problem
1) 문제
2) 원인
- UIKit Codebase 숙련도 이슈
- 경험부족
4. Try
- 질문하는걸 두려워 하지 않기
- UIKit Codebase 익히기
- 개발을 떠나서 아키텍쳐, 성능 개선 방식과 이유 고민해보기
싱글톤
싱글톤이란?
싱글톤 패턴은 어떤 클래스가 최초로 인스턴스화될 때, 해당 클래스의 인스턴스가 하나만 생성되고 어디서든 동일한 인스턴스에 접근할 수 있도록 보장하는 디자인 패턴입니다.
장점
- 장전역적인 접근성: 어디서든 동일한 인스턴스에 접근할 수 있습니다. 다른 객체들이 싱글톤 객체에 접근하여 데이터를 공유하거나 동작을 수행할 수 있습니다.
- 리소스 절약: 싱글톤 객체는 한 번 생성된 후에는 재사용되므로, 반복적인 인스턴스 생성이 필요하지 않습니다. 이를 통해 리소스 사용을 절약할 수 있습니다.
단점
- 테스트 어려움: 싱글톤 객체는 전역적으로 접근 가능하므로, 테스트 시에 의존성을 관리하기 어려울 수 있습니다. 의존성 주입(Dependency Injection) 패턴을 함께 사용하여 이를 극복할 수 있습니다.
- 상태 관리 어려움: 싱글톤 객체는 애플리케이션 전역에서 공유되므로, 상태 관리가 복잡해질 수 있습니다. 상태 변경에 대한 동기화나 상태 변화 추적 등을 신경써야 합니다.
- 상태 공유의 필요성: 해당 객체가 반드시 싱글톤 구현되어야 하는지를 고려해야 합니다. 모든 상황에서 동일한 인스턴스를 공유할 필요가 있는지를 신중하게 판단해야 합니다.
- 의존성 관리: 싱글톤 객체는 다른 객체에 대한 의존성을 가지기 쉽습니다. 이로 인해 의존성 주입(Dependency Injection) 패턴을 적절하게 활용하여 테스트 용이성과 유연성을 유지할 수 있도록 해야 합니다.
- 다중 스레드 환경: 싱글톤 객체가 다중 스레드 환경에서 안전하게 동작할 수 있도록 적절한 동기화 메커니즘을 구현해야 합니다. 동시에 여러 스레드에서 싱글톤 객체에 접근하는 경우에도 안정성을 보장해야 합니다.
- 대안 고려: 싱글톤 패턴이 필요한 경우에는 대안을 고려할 가치가 있습니다. 의존성 주입, 전역 객체 등의 대안 패턴을 고려하여 적절한 설계를 선택할 수 있습니다.
의존성, 의존성 주입
https://ios-daniel-yang.tistory.com/entry/iOSSwift-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%A3%BC%EC%9E%85-%EC%9D%98%EC%A1%B4%EC%84%B1-%EC%97%AD%EC%A0%84%EC%9D%B4%EB%9E%80#google_vignette