분류 전체보기
-
인스턴스 생성 및 소멸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}) //파라미터,..
-
단위테스트와 TDDiOS 2020. 12. 15. 10:47
안녕하세요. 그린입니다! 이번 포스팅에서는 코드에 대한 단위테스트와 TDD에 대해 알아보겠습니다. 우선 단위테스트와 TDD의 개념은 모든 언어를 통해 개발을 진행하며 나올 수 있는 개념입니다. 그렇지만 저희는 iOS를 학습하고 있기에 기본적으로 단위테스트와 TDD가 어떤것인지 먼저 파악한다음 Xcode에서 어떻게 생성하고 어떤 코드를 써서 테스트를 진행하는지 알아보겠습니다~! [단위테스트] 단위테스트는 말 그대로 코드의 테스트를 단위별로 쪼개 테스트를 작게 진행하는 방법론 중 하나입니다. 효율적인 테스트를 하기 위해서는 5가지의 조건이 있습니다. 앞글자를 따서 FIRST라고 합니다. 1) Fast: 빠름, 테스트는 빨라야한다. 2) Independent: 독립적, 테스트 코드는 독립적이여야한다. 3) R..
-
제네릭Swift 2020. 12. 13. 16:54
안녕하세요. 그린입니다! 이번 포스팅에서는 제네릭에 대해 알아보겠습니다. 제네릭은 스위프트 언어로 사용 할 수 있는 아주 중요한 기능입니다..!! 제네릭을 이용하면 코드의 중복을 줄여주고 구현한 기능/타입을 재사용할 수 있습니다 (한번만 구현하면 됩니다~!!) 1. 제네릭 선언 및 사용 -. 메서드 이름 뒤 () 기호를 붙여 표시 -> func generic (value: T) -> T { } func ++ (frontNumber: T, backNumber: T) -> T { return frontNumber + backNumber } * BinaryInteger 프로토콜로 타입을 좀 더 명확히 주어 정수 타입 모두 해당 될 수 있도록 설정 2. 제네릭 함수 -. 함수 메서드를 제네릭으로 선언하면 위에서..
-
자료구조와 알고리즘CS(ComputerScience) 2020. 12. 8. 16:15
안녕하세요. 그린입니다! 이번 포스팅에서는 자료구조와 알고리즘에 대한 개념에 대해 포스팅해보겠습니다. 컴퓨터 기본지식이자 좀 어려우면서 가장 중요하다고도 할 수 있는 자료구조와 알고리즘! 말하자면 한도 끝도 없을것이고 많은 부분이 있지만 이번 포스팅에서는 조금 간단하게 개념만 짚고 넘어가겠습니다^^ [용어 정리] -. 알고리즘: 문제해결을 위한 절차/방법의 모음 (순차적인 방법) -. 자료구조: 자료를 효율적으로 이용할 수 있는 방법론 (데이터를 최적화하여 재조립하는 느낌, 데이터 구조적표현, data structer) [자료구조의 종류] -. 원시구조 / 선형구조 / 비선형구조 / 물리구조 / 추상적 구조 :원시구조란, 자료(정수,실수 등..)를 쪼개거나 조합하여 만들어놓음 [자료구조의 활용] 1. 배..
-
AppDelegate & SceneDelegateiOS 2020. 12. 7. 09:50
안녕하세요. 그린입니다! 오늘 포스팅에서는 Xcode로 애플리케이션을 만들때 좌측 Project Navigator에서 AppDelegate.swift와 SceneDelegate.swift 파일을 다뤄보겠습니다. 두 파일은 애플리케이션이 만들어지고 구동될때 꼭 필수적인 파일로 기본적으로 세팅이 되어있어 크게 건드시는일이 없었을겁니다. 그런데 이번 프로젝트를 하다보니 iOS 버전이 사용자 마다 다를경우 만약 iOS 버전에 따라 사용하지 못하는 프로토콜이나 어떠한 기능이 있다라고한다면 조정해주는 방법에 대해 안내하겠습니다. iOS 13 버전 이전에는 AppDelegate 파일 안에서 뷰 싸이클을 구동해주고 나타내주는 그러한 메서드들의 구현이 다 이뤄져있었습니다. 그런데 iOS 13 이후 부터는 따로 Scene..
-
SOLIDCS(ComputerScience) 2020. 12. 3. 17:05
안녕하세요. 그린입니다! 오늘은 SOLID에 대해 학습한 부분을 공유해보며 생각을 정리해보겠습니다..! SOLID가 뭘까요 도대체?? 스위프트는 객체지향 언어인건 다들 아실겁니다. SOLID를 개괄적으로 정리하자면 객체지향프로그래밍을 위한 5가지 원칙!! 이라고 표현할 수 있습니다. SOLID는 어떻게보면 프로그래밍을 하기위한 디자인 패턴과 같이 어떠한 약속? 이라고 생각됩니다. 누구나 보기 편하고 단순하며 확장성이 있는 프로그래밍을 하는것이 중요하다고 모든 프로그래머들은 생각합니다. 그렇기 위해서 디자인 패턴이던 MVC 모델이던 있다고 생각들죠? 그런것과 SOLID의 관념은 유사하다고 생각듭니다. 그러면 이제 SOLID가 5가지 원칙이라면 어떤 5가지를 나타내는지 이제 알아보겠습니다~! 1. SRP (..