전체 글
-
MVC 패턴iOS 2019. 8. 7. 23:50
요약 Model - View - Controller 의 약자. 모델은 데이터, 뷰는 뷰, 컨트롤러는 둘의 연결. 모델과 뷰는 완전독립, C → M, V 는 가능. M → C 또는 V → C 는 바람직하지 않음. 노티, 딜리게이트 등을 이용함. 장점: 각각의 역할을 독립시켜 생산성이 높다. 단점: 모델의 네트워크 처리, 뷰의 라이프 사이클 등이 컨트롤러에 집중되서 controller 의 크기가 커질 수 있음. MVC 패턴이란 애플에서 iOS를 개발할 때 권장하는 아키텍처 모델이다. 아키텍처 모델은 프로그램의 유지보수를 쉽게, 단위 테스트를 할 수 있게 하는 것을 목표로 둔다. 최근에는 MVC 의 문제점을 극복하기 위해 MVC-N, MVVM, MVP 등 여러 모델들이 나오고 있지만, 먼저 기본이 되는 MVC..
-
iOS)BoostCourse) PTJ2 SignUpiOS 2019. 8. 1. 02:54
부스트코스 PTJ1을 진행하면서 배운 내용과 리뷰받은 내용을 정리해보고자 합니다. 스스로 공부하며 이해한 내용을 적은 것으로 내용에 오류가 있을 수 있습니다. 오류 또는 수정이 필요한 부분은 댓글로 남겨주시면 정말 감사하겠습니다! Contents Delegation UIImagePickerControllerDelegate imageView Clickable dismiss Singleton Delegation Delegation 은 클래스 또는 구조체가 자신의 일부 역할을 다른 유형의 객체에게 양도 또는 위임할 수 있도록 하는 디자인 패턴이다. delegate 란 사전적 의미로 위임, 대리(자), 위임하다 등의 뜻을 갖고 있다. 사전적 의미에서 추측해볼 수 있듯이 하나의 객체가 다른 객체를 대신해서 어떠한..
-
Swift) 배열의 중복체크Swift 2019. 7. 25. 01:26
두 배열에서 공통된 원소가 있는지, 확인하려면 어떻게 해야할까? 또 중복되는 원소를 제거하려면 어떻게 해야할까? 저같은 초보는 간단해보이는 이 질문의 답을 swift 에서 하기가 참 어려웠습니다.. 그래서 같이 한번 알아볼까해요! 저는 두 가지 방법을 소개해드릴까 합니다. 인덱스를 찾아 두 배열에서 중복 요소들을 제거 중복 요소들을 필터링해서 새로운 두 배열을 만듦 본격적으로 들어가기에 앞서 기본적으로 알아야 할 함수를 먼저 알아보고 가죠! 요소 확인 contains(element: ) 내가 원하는 원소가 있는지 확인하려면 어떻게 해야할까요? 네 배열의 contains(element: ) 함수를 사용하면 됩니다! 하지만 이 아이는 조금 아쉬워요.. 바로 리턴값이 Bool 이라는 것이죠. 네 포함하는지 안..
-
Swift) 소수점 다루기Swift 2019. 7. 22. 22:01
Swift 에서 소수점을 조작하려면 어떻게 해야할까요? 매번 헷갈리는 이 녀석들 제대로 한번 알아보죠! 이번 포스팅의 목표는 이녀석을 풀어보는겁니다! 어려운 문제는 아니지만 이번 포스팅을 다 읽고 저 문제를 수월하게 푸신다면 제 목표는 성공이겠네요 :D Swift 에서 대표적인 소수점 관련 함수 3개가 있습니다. ceil() 소수점 이하를 모두 버리고 정수부에 +1 을 해줍니다. floor() 소수점 이하를 모두 버립니다. round() 소수점 이하를 반올림합니다. 0.5 이상은 1로 올리고 미만은 버립니다. 위 함수들은 Foundation 를 import 해줘야 합니다. 활용 여기까진 알겠는데 한 가지 궁금한 점이 있으실겁니다. 그럼 특정 소수점까지에 대해 적용하고 싶으면 어떻게 하지? 제가 알기론 따..
-
iOS) BoostCourse) PTJ1 MusicPlayeriOS 2019. 7. 14. 16:13
MusicPlayer 부스트코스 PTJ1을 진행하면서 배운 내용과 리뷰받은 내용을 정리해보고자 합니다. 스스로 공부하며 이해한 내용을 적은 것으로 내용에 오류가 있을 수 있습니다. 오류 또는 수정이 필요한 부분은 댓글로 남겨주시면 정말 감사하겠습니다! Contents AVFoundation AVAudioPlayer Timer @escaping [unowned self] truncatingRemainder Optional과 예외처리 PTJ1을 공부하면서 새롭게 배운 내용들을 정리해보고자 합니다! 사실 구현 자체는 부스트코스의 PTJ1을 성실하게 들었다면 모두 쉽게 할 수 있는 내용이므로 구현 자체가 아닌 그 안의 숨은 내용들을 공부하고자 합니다. 기능 구현보다는 그 외의 내용들이 더 주가 될 수도 있겠네요..
-
iOS) Core Data document 뿌시기 - 1iOS 2019. 7. 4. 00:19
Core Data document 뿌시기 - 1 Core Data라는 그녀석, 저는 왜 이렇게 어렵게만 느껴질까요. 이 자료 저 자료 각자 방식이 조금씩 다르고 내 앱에 맞춰 사용하기가 어렵게 느껴지네요.. 이럴땐 역시 공식 문서를 보는게 답이겠죠?! 이녀석 한번 같이 정복해보자구요! 도큐먼트를 보고 혼자 찾아보고 공부한 내용으로 오역 또는 오류가 있을 수 있습니다. 혹시 문제가 있는 부분은 댓글로 남겨주시면 감사하겠습니다!! 우선 Core Data가 뭔지 어떤 기능들이 있는지부터 살펴봐야겠죠? Overview Core Data는 오프라인 사용을 위해 앱의 데이터를 영구적으로 저장하기 위해 사용되며, 임시 데이터를 캐시에 저장하고 undo 기능을 추가할 수 있습니다. 데이터 모델 편집기를 통해서 데이터의..
-
Algorithm) 숫자 하나씩 확인하기Algorithm 2019. 7. 3. 14:49
17037300 와 같이 큰 수를 한 글자씩 확인해야 할 경우가 있습니다. 예를들어 다음과 같은 문제를 풀 경우가 되겠네요. 어려운 문제는 아니지만 꽤나 자주 등장하기 때문에 한번 짚고 넘어가고 싶어 포스팅을 하게 되었습니다 :D 1. 문자열로 바꿔서 하나씩 탐색 제 경우에 가장먼저 떠오른 생각은 문자열로 바꿔서 하나씩 탐색 하기였습니다. 이러한 방식으로 위 문제를 풀면 let numString = String(a*b*c) var numbers = [Int](repeating: 0, count: 10) for s in numString { if let n = Int(String(s)) { numbers[n] += 1 } } 다음과 같이 풀 수 있겠네요. 이러한 방식은 Swift와 같이 형변환이 까다로운 ..
-
Swift) 스위프트에서 '모든 것은 객체다'Swift 2019. 7. 2. 15:50
안녕하세요. 삼쓰 입니다. 오늘부터 Swift의 기본 개념을 제대로 잡아볼까해요. 요즘 개발하는데 기초적인 개념이 너무 부실하다는 느낌이 많이 드네요. 기초가 탄탄해야 높게 쌓을 수 있겠죠?! OReilly 에서 나온 Programming iOS 책을 기본으로해서 하나씩 하나씩 정리해 나가려고 합니다. 현재는 12까지 나온 것 같은데 저는 9 한글판을 많이 참고할 것 같아요. 기본적인 개념은 거의 같을테니 빠르게 정리하고 이후 최신버전과 비교하면서 정리해나갈 예정입니다! 혹 문제가 있거나 수정이 필요한 부분은 댓글로 남겨주시면 감사하겠습니다 :D 스위프트에서 '모든 것은 객체다' 스위프트는 애플이 14년도에 발표한 비교적 최신 언어입니다. 모든 것이 객체라는 철학은 현대 객체 기반 프로그래밍 언어의 두드..