본문 바로가기

전체 글44

[iOS] About DI, DIP 이번 글에서는 DI와 DIP에 대해서 정리해보고자 합니다. Dependency Injection & Dependency Inversion Principal결합도를 느슨하게 되도록하고 의존관계 역전 원칙과 단일 책임 원칙을 따르도록 클라이언트 생성에 대한 의존성을 클라이언트의 행위로 부터 분리하는 것기존의 의존성을 개선해 의존성을 외부에서 주입하려고 함DI: collection of Patterns, TechniquesDIP: Guidline on how to create loosly coupled and easy to maintain software여기까지 키워드들에 대해서 간단히 적어봤구요, 좀 더 들어가보겠습니다. 우선..의존한다?라는 의미부터 풀어보죠. A가 B에 의존한다는 것은? B의 상태에 따라.. 2024. 9. 26.
[iOS] About Realm Swift에서 데이터를 저장하는 방식은 UserDefaults, CoreData, Realm 등이 있습니다. 우선, UserDefaults는 간단한 String, Int 등의 단일 데이터 저장에 적합하지만, 객체 형태로 여러 데이터를 저장하거나 관리하는 데는 한계가 있습니다. 반면, CoreData는 객체로 데이터를 저장할 수 있어 복잡한 데이터 관리가 가능하지만, Xcode를 통해 Entity를 생성하고 데이터를 읽거나 추가, 수정하는 과정이 다소 복잡하며 초기 설정이 번거롭습니다. 또한, 스레드 관리와 데이터 관계 설정이 필요해 개발 과정에서 추가적인 구현과 관리가 요구됩니다.이러한 이유로 저는 보다 간단하면서도 효율적인 데이터 관리를 위해 Realm을 선택하였습니다. 이제, Realm의 특징과 장점.. 2024. 9. 25.
[iOS] About 메모리 구조 이번엔 메모리 구조에 대해 살펴보고 흐름 살려서 다음 포스팅엔 ARC가 목표.!! 입니다. 레쓰고!! 자 우선메모리의 역할프로세스가 실행될 때, 필요한 데이터와 프로그램 코드를 저장하는 공간 메모리 계층구조메모리 계층 구조를 속도 순서대로 정렬해보겠습니다!- 레지스터: CPU 내부에 위치하며, CPU가 직접 접근하는 데이터 및 명령어를 저장- 캐시: CPU와 주기억장치 사이에 위치해, 자주 사용되는 데이터에 빠르게 접근 가능하게 해줌- RAM(주기억장치): 프로세스가 실행되는 동안 데이터, 프로그램 저장, 휘발성- 보조기억장치: 하드드라이브, SSD, 외부저장장치 등 데이터 영구적으로 저장, 속도는 느리지만 저장용량 큼  메모리 구조프로세스가 실행되면 OS에서는 메모리 공간을 할당해주는데요, 그 구조를 .. 2024. 9. 21.
[iOS] About StateObject, ObservedObject 이번 글에서도 좀 헷갈리는 친구들에 대해 정리해볼까 합니다.우리가 SwiftUI에서 MVVM구조로 코드를 짤 때, ViewModel 설정시, ObservableObject를 채택해줍니다.그다음, View에서 viewmodel이라는 인스턴스를 생성할 때, @ObservedObject 혹은 @StateObject를 붙여주어, viewmode이라는 개체내의  @Published로 선언된 프러퍼티가 변경되면 자동으로 UI를 업데이트 시켜줍니다.  그렇다면 차이점은...? 우선 눈으로 보는게 이해하는게 빠르기때문에..!@ObservedObject우선 @ObservedObjct 부터 확인해보면 상위뷰 변화 > 하위뷰 변화 > 상위뷰 변화 순서대로 변화를 주게 되면마지막 상위뷰 변화 때, 하위뷰의 값이 초기화 되는것.. 2024. 9. 18.
[iOS] About ObservedResults, ObservedRealmObject 이번 게시글에서는 제목처럼 ObservedResults, ObservedRealmObject에 대해 공부한 것을 주저리 주저리 풀어보려고 합니다. SwiftUI와 Realm을 활용하여 출시앱을 만드려고 하다보니 이 두  property wrapper에대해 알아야만 했는데요..!ObservedResults쉽게 이야기하면 복수객체에 대해 접근하여 정보를 핸들링할 때, 이 프로퍼티를 사용하면 됩니다...?복수객체...?램스튜디오에 들어갔을 때 하나의 클래스명 안에 구성되어있는 요소들이 하나씩 있을텐데요, 이 요소전부 다를 가져올 때 ObservedResults라는 프로퍼티래퍼를 사용합니다.다시말해, Realm 객체 모음을 관찰하는 것이고, 더 쉽게 생각하면 저기 보이는 모든 행을 다 가져와서 쓸거야~ 라는 거.. 2024. 9. 16.
[개인 프로젝트] Share.D 회고 ⭐️  프로젝트 소개👉 선물을 고민하는 사용자들에게 다양한 추천 카테고리 제공👉 선물에 대해 다른 사용자들과 의견을 교환할 수 있는 커뮤니티 기능👉 결제까지 지원해 사용자의 선물 선택 과정에서 발생하는 고민과 불편함 최소화 개발 기간: 2024.08.14 ~ 2024.09.01 (약 2주)  ⭐️  기획 단계 🤔 주제 선정개인 프로젝트를 진행할 때, 제 생활과 밀접하게 연결된 주제를 선택해 실생활에 유용한 방향으로 기획하고자 했습니다.특히, 선물을 고르는 일이 늘 어려웠던 저는 매년 기념일마다 같은 고민을 반복해왔습니다.이러한 고민을 덜어주는 동시에, 비슷한 고민을 가진 사람들끼리 소통할 수 있는 기회를 제공하면 좋겠다는 생각에서 이 주제를 선택하게 되었습니다. 📏 공수 산정工數(공수): 일정한.. 2024. 9. 11.