<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RSS Feed]]></title><description><![CDATA[RSS Feed]]></description><link>http://direct.ecency.com</link><image><url>http://direct.ecency.com/logo512.png</url><title>RSS Feed</title><link>http://direct.ecency.com</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 10 Apr 2026 04:15:10 GMT</lastBuildDate><atom:link href="http://direct.ecency.com/@gunw/rss" rel="self" type="application/rss+xml"/><item><title><![CDATA[[Grammer] 26 - Custom Operators]]></title><description><![CDATA[Custom Operators : prefix, postfix, infix 중 하나를 커스텀 infix operator *+* : MultiplicationPrecedence // 우선순위 그룹 설정 extension Int { static func *+*(left: Int, right: Int) -> Int { return (left * right)]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-26-custom-operators</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-26-custom-operators</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 07:06:03 GMT</pubDate></item><item><title><![CDATA[[Grammer] 25 - Operator Methods]]></title><description><![CDATA[Operator Methods static func operator(parameters) -> ReturnType { Code } struct Position { var x : Double var y : Double } extension Position { static func ==(left: Position, right: Positon) -> Bool]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-25-operator-methods</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-25-operator-methods</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 06:26:33 GMT</pubDate></item><item><title><![CDATA[[Grammer] 23 - Bitwise Operators, 24 - Identity Operator]]></title><description><![CDATA[Bitwise Operators 메모리에 저장된 실제 비트를 다룸. 연산 속도가 빠르고 코드가 짧음. 비트 연산은 정수만 가능함.(실수 x, 문자열x) &, |, ^, ~, <<, >> a : 0 0 1 0 0 0 1 1 b : 0 0 0 1 1 0 1 0 & : 0 0 0 0 0 0 1 0 (AND) | : 0 0 1 1]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-23-bitwise-operators-24-identity-operator</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-23-bitwise-operators-24-identity-operator</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 05:54:00 GMT</pubDate></item><item><title><![CDATA[[Grammer]21 - Ternary Coditional Operator, 22 - Range Operators]]></title><description><![CDATA[Ternary Coditional Operator : //condition ? expr1 : expr2 let condition = false let result = condition ? "eat" : "sleep" Range Operators a...b : Closed Range Operator a..<b : Half-open]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-21-ternary-coditional-operator-22-range-operators</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-21-ternary-coditional-operator-22-range-operators</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 05:34:57 GMT</pubDate></item><item><title><![CDATA[[Grammer] 19 - Short-circuit Evaluation, Side Effect, 20 - Assignment Operators]]></title><description><![CDATA[Short-circuit Evaluation(단락 평가) var a = 1 var b = 2 func updateLeft() -> Bool { a += 1 return false } func updateRight() -> Bool { b += 1 return true } if updateLeft() && updateRight() {]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-19-short-circuit-evaluation-side-effect</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-19-short-circuit-evaluation-side-effect</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 04:46:48 GMT</pubDate></item><item><title><![CDATA[[Grammer] 16 - Overflow Operators, 17 - Comparison Operators, 18 - Logical Operators]]></title><description><![CDATA[Overflow Operatiors &+ : Overflow Addition Operator &- : Overflow Subtraction Operator &*: Overflow Multiplication Operator let a: Int8 = Int8.max let result = a &+ 1 // -128 let b: Int8]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-16-overflow-operators-17-comparison-operators-18-logical-operators</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-16-overflow-operators-17-comparison-operators-18-logical-operators</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 04:34:48 GMT</pubDate></item><item><title><![CDATA[[Grammer] 13 - Data Types with Memory, 14 - Operator Basics, 15 - Arithmetic Operators]]></title><description><![CDATA[Data Types(자료형) : 메모리에 저장되는 데이터의 크기를 결정. Primitive Data Types : [Interger, Floating-point, Boolean, Character, String] Compound Data Types : [Structure, Enumeration, Class, Tuple] Memory : 0(off)과 1(on)을]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-13-data-types-with-memory-14-operator-basics-15-arithmetic-operators</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-13-data-types-with-memory-14-operator-basics-15-arithmetic-operators</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 03:16:36 GMT</pubDate></item><item><title><![CDATA[[Grammer] 11 - Type Inference, Type Safety, 12 - Type Conversion, Type Aliases]]></title><description><![CDATA[Type Inference: 타입을 값을 보고 추론함. let num = 123 Type Annotation : 타입을 직접 지정함 let num: Int = 123 Type Safety : 안정성을 위해 자료형을 엄격히 구분. 모든 타입간 호환 불가. Int+Double / Int8+Int 등 모두 에러. 이러한 계산은 형변환이 필요. Type Conversion]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-11-type-inference-type-safety-12-type-conversion-type-aliases</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-11-type-inference-type-safety-12-type-conversion-type-aliases</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 02:47:33 GMT</pubDate></item><item><title><![CDATA[[Grammer] 09 - Boolean, 10 - Strings and Characters]]></title><description><![CDATA[Boolean: 참/거짓을 구분. Swift에서는 true, false 2가지만 소문자로 존재. if 조건문이나 while 반복문에 자주 사용 import UIKit let valid: true let invalid = false let hasName: Bool = true let isMember: Bool = false Strings : 문자열. "]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-09-boolean-10-strings-and-characters</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-09-boolean-10-strings-and-characters</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 02:22:30 GMT</pubDate></item><item><title><![CDATA[[Grammer] 07 - Naming Convention, 08 - Numbers]]></title><description><![CDATA[Naming Conventions(이름 정의 규칙) Camel Case : UpperCamelCase와 lowerCamelCase로 구분. UpperCamelCase : Class, Structure, Enumeration, Extension, Protocol lowerCamelCase: Variable, Constant, Function, Property,]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-07-naming-convention-08-numbers</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-07-naming-convention-08-numbers</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 02:11:00 GMT</pubDate></item><item><title><![CDATA[[Grammer] 06 - Scope]]></title><description><![CDATA[Scope (범위) : (전역 범위 / 지역 범위) 로 구분. 전역 범위 동일한 범위에 있는 변수와 상수에 접근할 수 있다. 동일한 범위 안에서는 이전에 선언되어있는 변수와 상수에만 접근할 수 있다. 지역 범위 지역 범위에서는 자신의 상위에서 선언된 변수와 상수에 접근할 수 있다. class 시작부분 바로 아래에는 선언 구역이라 변수, 상수에 접근할 수 없다.]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-06-scope</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-06-scope</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 01:55:48 GMT</pubDate></item><item><title><![CDATA[[Grammer] 05 - Variables and Constants]]></title><description><![CDATA[Variables(변수) : Keyword, Identifier, Type, Initial Value 등을 이용함. var variableName = initialValue var name = "James" var year = 2017 var swiftVersion = 4.0 var isMale = true Constants(상수) : 값을]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-05-variables-and-constants</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-05-variables-and-constants</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 01:44:24 GMT</pubDate></item><item><title><![CDATA[[Grammer] 04 - First-class Citizen, Special Characters]]></title><description><![CDATA[First-class Citizen 상수와 변수에 저장할 수 있다. 파라미터로 전달할 수 있다. 함수에서 리턴할 수 있다. Special Characters : 프로그래밍에 사용되는 특수문자들 !, ~(Tilde), `(Grave Accent), @(At Symbol), #(Sharp), $(Dollar Sign) %(persent Sign), ^(Caret),]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-04-first-class-citizen-special-characters</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-04-first-class-citizen-special-characters</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 01:30:57 GMT</pubDate></item><item><title><![CDATA[[Grammer] 03 - Compile, Link, Run]]></title><description><![CDATA[Compiler : Source Code 를 분석해 Binary Code 로 변환. 그 동작을 Compile이라 함 Link : Framwork 와 Libarary 를 연결하는 과정. Build : Compile + Link Run : Compile된 파일을 실행하는 과정.]]></description><link>http://direct.ecency.com/swift4/@gunw/grammer-03-compile-link-run</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/grammer-03-compile-link-run</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 01:24:15 GMT</pubDate></item><item><title><![CDATA[[Grammer] 02 - Literal, Identifier, Keyword]]></title><description><![CDATA[Literals: 의미가 변하지 않고 있는 그대로 사용하는 값. (ex. 숫자(1,2,3...)) integer, Floating-point, String, Boolean, nil Literals 등 다양한 리터럴이 있음. Identifiers(식별자): 구분을 위한 이름. 아래에서 x가 identifier. let x = 4 Keywords(예약어): 프로그래밍]]></description><link>http://direct.ecency.com/swift4/@gunw/programmers-02-literal-identifier-keyword</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/programmers-02-literal-identifier-keyword</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 01:17:48 GMT</pubDate></item><item><title><![CDATA[[Grammer] 01. Token, Expression, Statement]]></title><description><![CDATA[Token : Identifier, Kewords, Punctuations, Operators, Literals 연산자 등이 있음. 간단히 더 이상 쪼갤 수 없는 원자 라고 할 수 있음. Expression (표현식) : 산술 표현식, 논리 표현식 등이 있음. Statement(문장) : ';' 세미콜론이 필요없음.]]></description><link>http://direct.ecency.com/swift4/@gunw/programmers-01-token</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/programmers-01-token</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Fri, 25 Jan 2019 01:12:42 GMT</pubDate></item><item><title><![CDATA[04.Todo (date / navi)]]></title><description><![CDATA[기본 스토리보드 구성 모델파일 작성 dateFormatter를 이용한 날짜 계산 segue를 이용한 화면 전환 셀 재사용 메소드]]></description><link>http://direct.ecency.com/ios/@gunw/04-todo-date-navi</link><guid isPermaLink="true">http://direct.ecency.com/ios/@gunw/04-todo-date-navi</guid><category><![CDATA[ios]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Thu, 24 Jan 2019 06:29:27 GMT</pubDate><enclosure url="https://images.ecency.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iQXXkmYSqTp12x2rKT8zdamA3BXVMNCuLLe9wLoxCywuPXcXpXJr5H7jQeaa1HGJ956NEi5YDdQ?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[03.facebook view]]></title><description><![CDATA[페이스북처럼 테이블뷰를 스토리보드없이 생성하는 프로젝트 특이점은 각 값을 모두 Key.swift와 같이 파일을 생성하여 다 따로 만들어주는점. AppDelegate.swift에서 루트뷰컨트롤러를 설정해주는 화면 제일 중요한 셀 생성 메소드 나머지 데이터소스와 딜리게이트는 일반적인 테이블뷰 생성과 비슷하다.]]></description><link>http://direct.ecency.com/ios/@gunw/03-facebook-view</link><guid isPermaLink="true">http://direct.ecency.com/ios/@gunw/03-facebook-view</guid><category><![CDATA[ios]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Thu, 24 Jan 2019 03:08:54 GMT</pubDate><enclosure url="https://images.ecency.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iQGvPciNjEb3eW6WWsnnJMztgnXdvBSgwNT9eaH3Q5GnzLtL92tF53PM2PgzD6Yqkde6rHStZGz?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[02. StopWatch]]></title><description><![CDATA[특이점은 뷰컨트롤러안에, 뷰안에 레이블을 두었고, 아래쪽에 테이블뷰를 넣었다. StopWatch.swift 를 생성하여 NSObject를 받는 클래스를 생성 버튼 모양을 동그라미로 바꿔준다.(viewDidLoad에 작성, 모양을 1:1 aspect로 바꾸어야 원이됨.) 이후 딜리게이트 메소드도 구현한다. changeButton 메소드를 구현하여 버튼 동작을]]></description><link>http://direct.ecency.com/ios/@gunw/02-stopwatch</link><guid isPermaLink="true">http://direct.ecency.com/ios/@gunw/02-stopwatch</guid><category><![CDATA[ios]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Thu, 24 Jan 2019 02:07:57 GMT</pubDate><enclosure url="https://images.ecency.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iNpf45vZexdpvju4wMo3ZetSFu5ohxVEZERaBrhzw5M6oxzDXAXokQdC9cLmUqtZDEMTTGEMTTC?format=match&amp;mode=fit" length="0" type="false"/></item><item><title><![CDATA[Project.01 TabBar / TableView / ScrollView]]></title><description><![CDATA[탭바 컨트롤을 위해 간단하게 뷰컨트롤러 2개에 임베딩을 시킨다. 이후 Product.swift 파일을 생성하여 아래와 같이 작성한다. ProductsTableViewController 테이블뷰컨트롤러를 생성한 후 Product 배열을 프로퍼티로 생성한다. 배열에 각 셀에 들어갈 내용을 작성 후 prepare메소드를 불러와서 세그로 다음 화면으로 연결한다. 각]]></description><link>http://direct.ecency.com/swift4/@gunw/project-01-tabbar-tableview-scrollview</link><guid isPermaLink="true">http://direct.ecency.com/swift4/@gunw/project-01-tabbar-tableview-scrollview</guid><category><![CDATA[swift4]]></category><dc:creator><![CDATA[gunw]]></dc:creator><pubDate>Wed, 23 Jan 2019 06:16:00 GMT</pubDate><enclosure url="https://images.ecency.com/p/C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iPE3za91nXEz3Ecjk2KxnbyRMMfHko8RUq34WhCzLk88zqEer4SnZFW5jjVAq9mSj1bYQX71rva?format=match&amp;mode=fit" length="0" type="false"/></item></channel></rss>