Swift
-
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..
-
온도 표현단위와 변환 방법Swift 2021. 1. 19. 19:55
안녕하세요. 그린입니다! 이번 포스팅에서는 온도 표현단위와 해당 단위들끼리 Swift에서 변환해보는 방법에 대해 알아보겠습니다😄 1. 온도의 표현단위 : 일단 온도를 나타내는 표현으로는 섭씨/화씨/켈빈 세가지로 들 수 있다. 섭씨와 화씨온도는 1기압에서 물의 끓는/어는 온도를 기준으로 정하여 사이를 등분한 온도 체계이다. 1) 섭씨: °C로 우리가 흔히 사용하는 온도 체계로 처음 제안한 천문학자인 안데르스 셀시우스의 이름을 중국어 발음으로 ‘섭이사’라고 하는데 앞글자인 ‘섭’과 존칭인 ‘씨’를 붙여 ‘섭씨온도’라 불리게 되었다. 2) 화씨: °F로 물리학자인 다니엘 가브리엘 파렌하이트가 제안을 했으며 어는 온도를 32°F, 끓는 온도를 212°F로 정하였고 그 사이를 180등분했다. 섭씨처럼 명칭은 동일..
-
CFAbsolute TimeGetCurrentSwift 2021. 1. 15. 09:48
안녕하세요 그린입니다! 이번 포스팅에서는 프로세스의 시스템 시간 (절대 시간)을 구하는 메서드인 CFAbsolute TimeGetCurrent에 대해 알아보겠습니다. 우선 해당 메서드를 가장 많이 사용할때는 원하는 프로세스의 시작과 끝의 시간을 재기 위해 저는 사용했습니다. 그럼 CFAbsolute TimeGetCurrent이 무엇인지 애플 공식 문서를 보면서 일단 알아가시죠! -. CFAbsolute TimeGetCurrent 이렇게 애플 공식문서를 보면 시스템의 절대 시간을 반환하는 메서드라고 설명이 나와있습니다. 이러한 시간을 얻기위한 TimeUtility는 많은것이 있는데 그건 밑에서 알아보겠습니다!! 아래와 같이 직접 메서드를 구현하며 시간을 담을 변수를 선언하고 절대 시간을 담는 방법으로 사용..
-
메모리 구조 & ARCSwift 2021. 1. 11. 17:56
안녕하세요. 그린입니다! 이번 포스팅에서는 메모리 구조와 ARC에 대해 알아보겠습니다..! 1. 메모리 구조 [메모리 구조 화면] 1) 코드 영역: 소스코드 기계어 형태 저장(0과 1), 컴파일 타입 결정, Read-Only 형태로 저장 2) 데이터 영역: 프로그램 시작 시 할당, 종료 시 메모리 해제, Read-Write로 지정 (실행 도중 값 변경될 수 있음) 3) 힙 영역 (1) 프로그래머가 할당/해제해주는 영역 (2) 메모리 해제 해주지 않으면 memory leak 발생 (동일 메모리 블록 중복 할당 방지 필요) - malloc, calloc 등 해제 기능 필요 (3) 런타임 시 결정되기에 데이터 크기 확실치 않을때 사용 (4) 클래스 인스턴스, 클로저 같은 참조 타입의 값은 모두 heap 영역에..
-
Concurrent ProgrammingSwift 2021. 1. 7. 19:13
안녕하세요. 그린입니다! 이번 포스팅에서는 Concurrent Programming(동시성 프로그래밍)이 무엇인지 그리고 어떻게 사용하는지에 대해 알아보려합니다. 우선, 동시성 프로그래밍을 알기전 전반적으로 알아봐야될 개념에 대해 이야기해보겠습니다. 1. Concurrent VS Parallelism -. Concurrent Programming(동시성 프로그래밍) : 여러 작업을 동시에 싱글 혹은 여러 코어(CPU)에서 나눠서 처리하는것이다. 싱글코어라면 시간 분할 방식을 이용하여 스레드를 서로 번갈아가며 제공하여 실제로 여러 프로그램을 돌리는것이 아니라 논리적인 관점에서 여러 작업들이 동시에 이뤄지는것처럼 보이게 하는 프로그래밍 (싱글코어 멀티스레딩 등..) -. Paralleism Programmi..
-
인스턴스 생성 및 소멸Swift 2020. 12. 28. 18:21
안녕하십니까. 그린입니다! 오늘 포스팅에서는 인스턴스의 생성 및 소멸에 관해 나눠보겠습니다. 지금까지 클래스나 구조체를 생성 시 이니셜라이저를 통해 기본적인 인스턴스를 생성했습니다. 초기화 되는 과정이죠. 그런데 이번 주제에서는 초기화 과정에서 초기값을 설정하고 소멸시키는걸 알아보겠습니다. 1. 인스턴스 생성 -. 이니셜라이저를 정의하여 초기화 과정을 통해 초기값을 직접 할당할 수 있습니다. 즉 이니셜라이저가 초기값을 지정하는 메서드입니다! -. init 키워드를 사용합니다. 클래스/구조체/열거형 함수 안 혹은 익스텐션으로 구현할 수 있습니다. (클래스에선 익스텐션으로 구현할 수 없습니다.) class TestClass { init() { //초기값 구현 } } 1-1) 프로퍼티 기본값 -. 클래스.구조..
-
JSON 데이터 다루기Swift 2020. 12. 23. 14:00
안녕하세요. 그린입니다! 이번 포스팅에서는 JSON 파일 데이터를 가져오고 파싱해서 사용하는 방법에 대해 포스팅해보겠습니다~! 우선 간단히 JSON이란 무엇인가 살펴보도록 하죠! [JSON] : JavaScript Object Notation의 약자로 키와 값 쌍으로 이뤄진 데이터 오브젝트를 전달하기 위해 텍스트를 사용한 개방형 표준 포맷 (key-value), value에는 모든 타입이 들어갈 수 있지만 보장되는 표현방식에는 문자열과 숫자만 들어갑니다. 컴퓨터는 어떠한 정해진 규칙을 가지고 정보를 전달한다. 기계어,XML,JSON 등이 정보전달 포맷입니다. JSON을 표현하는 방식에는 {}: 객체 (딕셔너리) []: 배열 “ “: 문자열 숫자 로 간단하게 데이터를 담을 수 있다. JSON을 Swift에..