분류 전체보기
-
ARC 심화Swift 2021. 2. 17. 12:12
안녕하세요. 그린입니다! 이번 포스팅에서는 ARC에 대해 심화적으로 알아보겠습니다. ARC란? : Automatic Reference Counting (자동참조계수)를 뜻한다. : 다른 언어에는 없는 독창적인 것으로 자바의 가비지 컬렉션 기법과는 다름 (메모리 해제 시점에 관한 이해가 필요) 자동참조계수란? : 앱의 메모리 사용을 추적하고 관리해준다. : 인스턴스가 더이상 필요하지 않을때 클래스 인스턴스에 사용된 메모리를 자동으로 해제해준다. (참조 타입의 할당 / 해제 시점을 자동 관리) : 클래스의 인스턴스(참조 타입)에만 적용 (구조체/열거형 등 값 타입에는 적용되지 않는다) ARC 특징 1) 하나의 활성화 참조가 있다면 인스턴스는 할당 해제되지 않고 계속 존재 2) 강한참조의 할당을 nil로 정리..
-
Git 커밋 메시지 변경Git 2021. 2. 16. 05:19
안녕하세요. 그린입니다! 이번 포스팅에서는 Git 커밋 메시지를 변경하는 방법에 대해 기록해보겠습니다☺️ 다들 그런 경험이 있을거에요.. 커밋을 했는데 아..! 내가 커밋 메시지에 오타가 났다 아니면 태그를 잘못달았다 하는 경험이요ㅎㅎ 그럴때 커밋 메시지 변경 방법을 몰랐던 저는 커밋을 취소하고 다시 커밋하는 번거로운 과정을 거쳤는데요..! 이제는 전혀 그럴 필요가 없게 되었어요! 1. git commit --amend : 마지막 커밋 메시지 변경 이렇게 손쉽게 깃 명령어를 통한다면 마지막 커밋 메시지 변경이 가능합니다! 만약 푸쉬를 하였다면 git push -f를 사용하면 됩니다. 2, git rebase -i : 커밋의 base를 다시 재정의 하는 작업 (마지막 커밋이 아닌 예전 커밋을 변경할 때 사..
-
CoreDataiOS 2021. 2. 15. 17:32
안녕하세요. 그린입니다! 이번 포스팅에서는 CoreData(코어데이터)에 대해 알아보겠습니다..! 우선 코어데이터라는걸 알기전 데이터베이스에 대해 알아보고 차근차근 넘어가겠습니다☺️ 1. 데이터베이스란? : DataBase 줄여서 DB라고 흔히 부르며 데이터를 얻기 위한 기능이나 구조를 나타내는 추상적인 개념입니다. -. 데이터베이스에는 여러가지 다양한 종류들로 나눌 수 있습니다. 1) 계층형: 데이터 관계를 트리 형태로 정의하는 구조 (데이터 중복이 생길 수 있음) 2) 네트워크형: 데이터 관계를 그물 형태로 정의하는 구조 (계층형의 데이터 중복 문제는 해결되지만 복잡한 구조탓에 추후 구조 변경 시 비용이 많이듬) 3) 관계형(SQL): 행과 열로 구성된 테이블간의 관계를 나타내는 구조로 흔히 사용하는..
-
CacheCS(ComputerScience) 2021. 2. 4. 15:38
안녕하세요. 그린입니다! 이번 포스팅에서는 Cache (캐시)에 대해 알아보겠습니다.✍️ 1. 캐시란 ?? : 캐시(cache)는 데이터나 값을 미리 복사해 놓는 임시 저장소를 말한다. -. 역할 및 장점 : 기존방식으로는 데이터 접근 시간이 오래 걸리거나 값을 다시 계산하는 시간을 절약할때 사용 (시간을 줄임!), 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. -. 단점 : 업데이트를 바로바로 해주지 않기에 즉각성이 떨어짐 2. 캐시를 구분하는 기준 -. 클라이언트 / 서버 : 클라이언트와 서버의 캐시는 구분된다. 클라이언트는 클라이언트만의 local에 저장할 수 있는 캐시가 있으며, 서버는 여러 클라이언트의 요청에 대해 저장할 수 있는 캐시가 ..
-
KeyChainiOS 2021. 2. 1. 16:58
안녕하세요. 그린입니다! 이번 포스팅에서는 KeyChain 즉 키체인에 대해 알아보겠습니다😀 우선 키체인이란 무엇인가!? : 키체인은 데이터베이스에 암호화된 데이터의 작은 모음들을 저장하는 매커니즘 (열쇠다발)로 표현됩니다! 그럼 이제 키체인과 관련하여 좀 더 자세히 알아보도록하죠🧐 1. 유저 데이터를 저장하는 방법들 1) Keyed Archiver: coreData보다 덜 복잡하고 느리지만 사용이 간단하다. 저장할 데이터가 NSConfig 프로토콜을 채택해야하며 데이터를 저장할 시 키/이름으로 인코딩을하고 꺼낼때 디코딩을 이용한다. 2) CoreData: UserDefault보다 더 복잡하지만 저장된 정보에 구조가 필요할 때 유용하다. 대용량 데이터 저장에 사용되는 관계형 DB, 간단한 UI에서 자동으..
-
Type CastingSwift 2021. 1. 29. 15:12
안녕하세요. 그린입니다! 이번 포스팅에서는 Type Casting (타입 캐스팅)에 대해 학습해보겠습니다😺 Type Casting : 인스턴스 타입 확인 및 슈퍼/서브 클래스 타입같이 사용하기 위한 개념 : is / as 연산자로 구현 1) is 키워드 : 인스턴스 타입 확인 class Test { var age: UInt init (age: UInt) { self.age = age } } var green = Test(age: 100) if green.age is UInt { print(“green’s age is UInt type) } else { print(“green’s age is not UInt type) } -> 이렇게 해당 타입이 맞는지 확인해주는 개념 더 나아가 여러 클래스를 상속 받았을..
-
Protocol Oriented ProgrammingSwift 2021. 1. 28. 20:02
안녕하세요. 그린입니다! 이번 포스팅에서는 Protocol Oriented Programming (POP), 프로토콜 지향 프로그래밍에 대한 개념을 알아보겠습니다. -. 프로토콜이란? : 특정 기능을 수행하기 위한 메서드/프로퍼티/요구사항 등등의 청사진이라고 생각하면된다. : 프로토콜을 구현한것을 채택하고 준수한다고 표현한다. -. POP가 나타난 이유 : 기존에는 객체 지향 프로그래밍에서 Class 상속을 통해 기능을 구현하였다. -> 참조 타입으로 다중 스레드 환경에서 무분별 상속 시 기존 데이터가 변경되기에 불안전 -> Struct / Enum 타입은 값 타입으로 상속이 불가 -> 결국 Protocol과 Extension이 발표되어 해당 두개를 가지고 상속 기능이 생김!! -> 스위프트 버전 2.0..
-
타입 메서드Swift 2021. 1. 27. 09:49
안녕하세요. 그린입니다! 이번 포스팅에서는 타입 메서드에 대해 알아보겠습니다. # 타입 메서드 코딩을 하다보면 구조체나 클래스로 생성하였는데 다른곳에서 부르려할때 인스턴스를 만들지 않고 함수를 쓰려할때 어떻게 구현하는지 궁금했습니다. 그러다 타입 메서드에 대해 알게되었습니다!! 우선 흔히 잘 알고있는 인스턴스 메서드의 생성과 사용하는 방법에 대해 보겠습니다. -. 인스턴스 메서드 class InstanceMethod { func instanceTest() -> String { return “test” } } var instanceMethod = InstanceMethod() print(instanceMethod.instanceTest()) 이렇게 사용하는 경우가 인스턴스 메서드의 사용입니다. 즉, Ins..