본문 바로가기

전체 글139

Linked List와 Array, 그리고 Swift에서의 Array. Linked List 여러 구조체 인스턴스를 Chain처럼 줄줄이 포인터로 연결한 자료구조(선형, 일차원 형태) 연결에 사용된 포인터 숫자가 한개이고 자기 다음을 가리키는 것이 특징 구현하기(c++) Node는 데이터를 담기위한 컨테이너가 됨. (next)포인터를 이용해서 다른 노드를 포인팅함. nullptr를 가진 노드가 마지막 노드가 됨. #include // 노드 구조체 정의 struct Node { int data; Node* next; Node(int data) : data(data), next(nullptr) {} }; // 단일 연결 리스트 클래스 정의 class SingleLinkedList { public: Node* head; SingleLinkedList() : head(nullptr.. 2023. 4. 26.
[iOS] Compositional Layout & Sticky Header를 적용하면서(UIKit) 새로운 사이드 프로젝트의 MainPage의 뷰를 맡아서 구현해보려고 합니다. UIKit으로 구현해야할 뷰의 대략적인 모습은 아래와 같습니다. 가로 방향의 카드 리스트 형태의 뷰, 세로방향의 판매품목 리스트 형태의 뷰, 가로 방향의 유저 프로필 리스트 등의 다양한 특징을 가진 셀들이 하나의 리스트 뷰 안에 들어가야합니다. 또한 중간에 Sticky Header형태의 탭바가 들어가 있어서 해당 섹션의 리스트가 보일때 탭바는 스크롤시 사라지지 않고 상단에 유지되어야합니다. 처음엔 UIKit으로 구현하게 된다면 NestedScrollView로서 UITableView를 사용하였고 그 안에 각각의 셀의 뷰에 UICollectionView, TableView를 배치하여 구현하였습니다. 하지만 일반 TableView와 .. 2023. 3. 10.
[Error] Compiling for iOS 8.0, but module 'RxTest' has a minimum deployment target of iOS 9.0 https://stackoverflow.com/questions/66766825/compiling-for-ios-9-0-but-module-bsgridcollectionviewlayout-has-a-minimum-dep Compiling for iOS 9.0, but module 'BSGridCollectionViewLayout' has a minimum deployment target of iOS 10.0 I'm trying to build flutter app on IOS and i get this error: Compiling for iOS 9.0, but module 'BSGridCollectionViewLayout' has a minimum deployment target of iOS 10.0 .. 2023. 3. 7.
[SwiftUI] FileImporter 권한 요청 아래와 같은 코드로 파일을 import하여 csv파일의 데이터를 단어장으로 가져오려고 하였다. 하지만 아래와 같은 에러가 발생하게 된다. The file “TestCSVFiles.csv” couldn’t be opened because you don’t have permission to view it. 권한이 없다는 문제였으며 아래 함수를 사용하여 권한 접근 문제를 해결할 수 있다. let fileURL = URL(fileURLWithPath: "/path/to/file") if fileURL.startAccessingSecurityScopedResource() { // Access the file // ... fileURL.stopAccessingSecurityScopedResource() } else.. 2023. 2. 9.
[iOS] Swinject를 적용해보면서... - 의존성 주입 Dependency Injection, Inversion 한창 Android를 공부할 당시 DI 라이브러리로 Hilt와 Koin 중에 무엇을 쓸지 고민했던 기억이 납니다. 제 사견으로 iOS에서는 보편적으로 쓰이고 유명한 DI라이브러리는 잘 못들어본 것 같습니다. 안드로이드가 상대적으로 자료가 더 많아서 그럴수도 있겠지만요. 그동안 싱글톤으로 DI Provider를 만들어서 처리해왔는데 이참에 알아보려합니다. 나름대로 주변 개발자 or 팔로우한 개발자 or 검색을 통해 알바본 바로는 Swinject가 많이 보이더군요. https://github.com/Swinject/Swinject GitHub - Swinject/Swinject: Dependency injection framework for Swift with iOS/macOS/Linux Dependency.. 2023. 1. 15.
[iOS] Swift retain Cycle 순환참조, weak, strong, unowned 궁금증 : unowned self, weak self 안 붙이면...? 동적으로 메모리를 할당할 때 (객체) 힙영역에 생성되고 필요 없을 경우 소거됩니다. 언어별 메모리 관리 방식 JAVA 자바는 가비지컬렉터를 이용해서 자동적으로 이 메모리를 관리하게 됩니다. 편리하지만 수시로 돌아가다보니 퍼포먼스에 영향을 줄 수 있습니다. C, C++ 직접 메모리 할당, 해제해주어야 함 Swift ARC (자동 참조 관리) 자동참조계수를 통해 추적하고 메모리 관리. 필요없는 인스턴스 메모리를 자동적으로 해제. (Count가 0이 되면 해제됨.) 자동참조 계수에 대한 예제 view변수에 MyView 인스턴스를 초기화 하였습니다. 이때 view는 Strong reference, 강한 참조를 가지며 MyView 인스턴스의 .. 2023. 1. 12.
[Git] 2022년을 돌아보면서... 협업 시 주의해야할 점. 작년 여름까지만 해도 두명에서 세명정도의 작은 그룹에서만 git을 사용해왔습니다. git브랜치 전략 수립, Commit Convention 정하기, 작업이 끝난 브랜치는 상의 후 정리하기 등등 여러 시행착오 끝에 자연스럽게 루틴이 형성되어 있었습니다. 기업마다 다양한 방법이 있겠지만 어떤 방법이든 적응할 수 있다고 생각했죠. 22년 하반기부터 지금까지는 git을 활용하여 훨씬 많은사람들과 협업을 해볼 수 있었습니다. 4명부터 5명, 8명, 그리고 30명 가량의 사람들이 함께 참여하는 프로젝트까지... 프로토 타입 수준의 iOS앱부터 실제 앱스토어에 출시하는 앱까지 10개 정도의 프로젝트를 경험해보았던 것 같습니다. 훨씬 많은 사람들과의 협업을 하면서 다짐하였던 주의해야할 점들을 몇가지 적어보려합니다. 1.. 2023. 1. 8.
728x90