분류 전체보기
-
CFAbsolute TimeGetCurrentSwift 2021. 1. 15. 09:48
안녕하세요 그린입니다! 이번 포스팅에서는 프로세스의 시스템 시간 (절대 시간)을 구하는 메서드인 CFAbsolute TimeGetCurrent에 대해 알아보겠습니다. 우선 해당 메서드를 가장 많이 사용할때는 원하는 프로세스의 시작과 끝의 시간을 재기 위해 저는 사용했습니다. 그럼 CFAbsolute TimeGetCurrent이 무엇인지 애플 공식 문서를 보면서 일단 알아가시죠! -. CFAbsolute TimeGetCurrent 이렇게 애플 공식문서를 보면 시스템의 절대 시간을 반환하는 메서드라고 설명이 나와있습니다. 이러한 시간을 얻기위한 TimeUtility는 많은것이 있는데 그건 밑에서 알아보겠습니다!! 아래와 같이 직접 메서드를 구현하며 시간을 담을 변수를 선언하고 절대 시간을 담는 방법으로 사용..
-
Application Life CycleiOS 2021. 1. 14. 19:24
안녕하세요. 그린입니다! 이번 포스팅에서는 iOS에서의 앱 생명주기에 대해 알아보겠습니다. 그리고 파생되어 AppDelegate와 SceneDelegate에 대해서도 알아보도록 하죠! 1. Application Life Cycle : iOS에서의 앱 생명주기는 아래와 같은 순서로 볼 수 있습니다. 1) 사용자 앱 아이콘 터치 실행 2) main() 메서드 실행 (AppDelegate 파일) 3) UIApplicationMain 메서드 호출 실행 (앱 생명주기 단계 시작 메서드) 4) UIApplication 객체 인스턴스 생성 (앱 로딩 프로세스) 5) nib / Info.plist 파일에서 부가 데이터들을 Read & Load 6) AppDelegate 객체 인스턴스 생성 > App 객체 인스턴스 연결..
-
메모리 구조 & 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..
-
OS와 ProcessCS(ComputerScience) 2021. 1. 5. 12:35
안녕하세요. 그린입니다! 이번 포스팅에서는 OS와 프로세스 그리고 간략하게 DB 및 프로세스 스케쥴링에 대해 알아보겠습니다..! 1. 운영체제 (OS) -. 운영체제의 역할 1) 시스템 하드웨어 관리 2) 시스템 서비스 제공 3) 자원관리 4) 주기억장치 관리 (단순관리 / 가상메모리) 5) 파일관리 (응용프로그램 OS 보조기억장치) -> 파일시스템을 통해 관리 2. 프로세스 : 컴퓨터에서 실행되고 있는 프로그램을 뜻한다. -. 프로세스의 상태 1) 생성: 프로세스 생성 2) 실행: CPU를 차지하여 명령어들이 실행 3) 준비: CPU 사용하진 않지만 언제든 사용할 수 있는 상태로 CPU 할당 대기 4) 대기: 입출력 및 신호 수신을 기다리는 상태 (보류 상태로도 부름) 5) 종료: 프로세스 종료 -> ..
-
인스턴스 생성 및 소멸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에..
-
고차함수와 함수형 프로그래밍Swift 2020. 12. 18. 12:10
안녕하세요. 그린입니다! 이번 포스팅에서는 고차함수와 함수형 프로그래밍에 대해 학습해보겠습니다. 고차함수.. 말만 들어도 어렵죠? 저는 처음 수학에 관한건가? 라는 생각이 들었어요 ^^; 자 그럼 고차함수부터 차근차근 알아보도록 하겠습니다! [고차함수] 고차함수는 파라미터나 반환값을 함수로 주고 받는 함수입니다. 고차함수를 활용한 대표적인 메서드는 map/filter/reduece가 있습니다. 고차함수를 잘 사용한다면 기존 반복/조건문들을 장황하게 짜는것보다 더 편하게 함수 내에서 구현이 가능합니다. 1) map: 컨테이너 내부 기존 데이터를 변형하여 새로운 컨테이너를 생성 data = numbers.map( { (number: Int) -> Int in return number * 2}) //파라미터,..