목록분류 전체보기 (379)
나의 발자취
Cocoapods: 가장 오래되고 많이 사용하는 패키지 매니저. 대부분의 라이브러리가 지원 -Carthage: 비교적 최근에 등장한 패키지 매니저로 코코아팟 다음으로 많이 사용됨 Cocoapods 설치 sudo gem install cocoapods초기화: 프로젝트 파일이 있는 폴더로 이동해서 pod init라이브러리 설정: podfile 수정라이브러리 설치: pod install alamofirejson 데이터를 비동기 방식으로 요청을 처리해 앱의 성능을 향상 kingfisher이미지를 쉽게 다운로드하고 캐시할 수 있도록 도와주는 swift 기반의 라이브러리네트워크에서 이미지를 다운로드하고 로컬에 캐시하여 성능을 향상비동기 방식으로 이미지를 로드해 앱의 반응성을 향상
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cScNPk/btsKlvnQN7u/xcqmHhMEtSYXwFOM0LDXmk/img.png)
에러알라모파이어를 설치하고 빌드를 실행하면 아래와 같이 에러가 나타나면서 되지 않는 경우가 있다.에러 메시지를 보니, AlamofireDynamic의 파일/위치를 찾을 수 없어서 발생하는 문제이다. 해결방법Project 클릭 > Build Phases > Link Binary With Libraries에 가면 현재 아래와 같이 세 개의 라이브러리가 Required Status로 되어있을 것이다. 문제가 되는 AlamofireDynamic을 제거해주고 아래와 같은 상태로 만들어준다. 다시 빌드를 실행한다.
수업 중에 유용한 것을 알게 되어서 포스팅을 작성한다. JMESPath란?JMESPath는 JSON 데이터를 다루는 데 매우 유용한 도구이다. 간편한 문법과 강력한 기능 덕분에 API 응답 처리, 로그 분석, 데이터 변환 등 다양한 분야에서 활용할 수 있다. JSON 데이터 작업이 필요한 개발자라면 JMESPath를 적극적으로 활용해 보아야 한다. JMESPath의 주요 특징간결한 문법: JMESPath는 직관적인 문법을 제공하여 JSON 데이터를 쉽게 탐색하고 변환할 수 있다. 이를 통해 복잡한 데이터를 더 명확하게 이해할 수 있다.강력한 기능: 배열, 객체, 필터링, 정렬 등의 다양한 기능을 지원하여 복잡한 쿼리도 간편하게 작성할 수 있다.다양한 언어 지원: JMESPath는 Python, Java..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byiJ6t/btsKeBh5NFn/T7yMWXVKuurGznTV8wu9bk/img.png)
Codable이란?• Swift4 에서 도입된 Protocol• public typealias Codable = Decodable & Encodable• Decodable 과 Encodable로 구성• Encodable은 Struct, Class, Enum 등의 인스턴스를 JSON 데이터로 변경시켜줌• Decodable은 JSON 데이터를 Struct, Class, Enum 등의 데이터로 변경시켜줌 Codable Encode일단 구조체의 프로토콜을 Codable로 설정한다.import UIKitstruct Person: Codable { let name: String let age: Int}let person = Person(name: "John", age: 20)let json = try?..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rMQz8/btsKeCUMwI7/mp5nkdYIPJ3f1o4MUZlL30/img.png)
disclaimer: 방탄 팬 아니지만 제공받은 리소스가 이것 뿐으로, 저작권 때문에 모자이크함.unwind 세그 구현하기 리스트를 새로 추가하면 plist에 업데이트가 되면서, 뷰에도 나타날 것이다.문제는, 새로 추가하는 화면에서 뒤로 가기를 해야한다. 여기서 착각을 많이 하는 부분이 있는데,데이터 로드는 테이블뷰에서 하기 때문에 Unwind 관련 메서드는 테이블뷰가 있는 MainTableViewController에서 해주어야 한다.(viewWillAppear 는 하수.. 금지) MainTableViewController.swiftViewDidLoad 아래에 IBAction을 만들어준다. Main.storyboard exit에 마우스 우클릭을 해보면 방금 메인에서 만들었던 함수가 나온다. 라디오 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wuxm9/btsKcSqxz6B/TyXbtMcKemXqoIFSkZWDE1/img.png)
UIImagePickerController: UIPickerView에서 다 처리를 했지만, 보안문제로 나누어지게 되었다. UIImagePickerController & PHPickerViewController이걸 이용하려면, 권한 설정 알림창을 구현해주어야한다. 아래와 같이 Application Scene Manifest 아래에 Privacy - Camera Usage Description 옵션을 추가해준다.왜 접근하려하는지 이유를 자세히 써주지 않으면 reject 당한다. 다음으로 코드를 작성한다. UIImagePickerController()의 객체인 camera의 sourceType은 .camera만 가능하고, 나머지 기능들은 deprecated된 것을 알 수 있다. 이렇게 구현하면 에러가 나기 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dmhN0m/btsKecguGQC/JkJY172HMRhlQ8muHN2KBk/img.png)
새롭게 Property List 파일을 생성한다. 클릭해서 보면, Root 는 Dictionary로 되어있다. 이걸 Array로 바꾼다. (왜냐하면 최종적으로 보여지는 데이터 포맷은 array여야 하므로) 하위 경로에 생성될 데이터는 한 인물에 대한 정보이므로, Dictionary type으로 바꿔준다. 상세 데이터를 정의해주고, Cmd+C/ V 를 해준다. 이렇게 뷰도 만들어준다. 코코아 터치클래스 만들고 연결해주기.데이터는 plist에 담겨있다. 이제 Bundle이라는 것을 만들게 되는데, 우리가 만드는 bts.plist, image 같은 것들을 하나로 모아서 zip 파일로 만든다. 그 이후 샌드박스에다가 복사를 해서 그것을 실행을 하게 된다.그럼 우리가 만든 plist는 번들 안에 담기게 되..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Tjm5B/btsKb10C4CX/Ra2NuAKtVP7gkzESLD002K/img.png)
MongoDB?MongoDB는 스키마가 없는 NoSQL 데이터베이스로, 각 문서가 서로 다른 구조를 가질 수 있다.따라서 유저별로 각기 다른 프로필(e.g. Social Media)을 갖고 있을 때, 로그인 데이터나 이벤트 데이터 저장할때, 이벤트 조인이 필요없는 경우, 대규모 분산시스템(복잡한 트랜젝션), 실시간 데이터 분석, log data 처리 등은 몽고DB로 하면 효율적으로 관리할 수 있다. 특징 6개를 정리해 보았다. 1. 유연한 데이터 구조이를 통해 유저별로 각기 다른 프로필 정보를 저장할 수 있다. 예를 들어, 사용자 A는 소셜 미디어 정보가 포함된 프로필을 가지고, 사용자 B는 다른 유형의 정보를 가질 수 있다. 2. 이벤트 조인이 필요없는 경우MongoDB는 문서 지향 데이터베이스이기 때..