[TIL] Swift 문법 클로저(Closures)
·
Swift/문법
클로저 💡 클로저는 코드 블록(중괄호{} 에 둘러싸인 코드)으로, 독립적인 기능을 수행하는 함수와 비슷한 역할 함수와 마찬가지로 입력 매개변수와 반환 값이 있을 수도 있음,다른 함수에 전달 할수 있고 함수 내부에서 선언하여 사용 가능.클로저를 사용하여 함수의 매개변수로 전달가능 클로저의 일반적인 사용 사례 : 비동기적으로 실행되는 코드에서 콜백함수로 사용 클로저는 어떤 상수나 변수의 참조를 캡처해 저장, Swift는 이 캡처와 관련한 모든 메모리를 알아서 처리 클로저 포현(Closure Expressions) 인라인 클로저를 명확하게 표현하는 방법으로 문법에 초점이 맞춰짐. 코드의 명확성과 의도를 잃지 않으면서도 축약해 사용할 수 있음으로 문법의 최적화 방법 제공 정렬 메소드(The Sorted Meth..
[TIL] Swift 문법(함수 Functions)
·
Swift/문법
함수 정의와 호출 함수를 선언할때는 가장 앞에 func 키워드를 붙이고 (person:String) 파라미터와 형 그리고 → String 형태로 정의함 func example(person:String) -> String { let greeting = "Hello," + person + "!" return greeting } 정의한 함수에 인자 값을 넣어 호출한 예시 print(example(person: "Bulmang")) // Print "Hello, Bulmang!" 위 함수에서 메세지를 결합하는 부분과 반환하는 부분을 합쳐서 더 짧게 만들 수 있음 func shortExample(person: String) -> String { return "Hello again, " + person + "!" ..
[TIL] Swift 제어문
·
Swift/문법
For-In 문(For-In Loops) for-in문는 배열,숫자,문자열을 순서대로 순회하기 위해 사용 let name = ['Bulmang','Jun','Malty','Nova','Jay'] for name in names { print("Hello, \\(name)!") } Dictionary에서 반환된 키값쌍으로 구성된 튜플을 순회하며 제어 가능 let number = ['Bulmang':25,'Jun':27,'Malty':29,'Nova':23,'Jay':29] for (name,age) in nubmer { print("\\(name) : \\(legCount)") }ㅓ Dictionary에 담긴 내용은 정렬이 되지 않은 상태, 사전에 넣었던 순서대로 순회되지 않음.아래와 같이 숫자 범위를 지..
[TIL] Swift 문법(문자열과 문자)
·
Swift/문법
💡 Swift의 String은 Foundation 프레임워크의 NSString이 bridge된 타입이기 때문에 NSString의 메소드를 String에서 캐스팅 없이 사용 가능합니다. 내가 이 글을 읽었을 때 이해한것은 Foundation안에 NSString이 있어서 String을 사용할 수 있다. 정확히 이해하기 위해 검색을 해봤다. bridge : Objective-C 간의 상호 운용성을 위해 제공되는 기술로, Swift 코드와 Objective-C 코드 간의 상호작용을 가능하게 한다. Swift는 Foundation 프레임워크와의 높은 상호 운용성을 지원하기 위해, **String**과 NSString 사이의 자동적인 타입 변환을 제공합니다. 따라서 **String**에서 **NSString**의 ..
[TIL] 점근적 분석 & 사업계획서
·
Swift/문법
점근적 분석 서비스 개발에서 원하는 정보를 신속하게 찾는일은 매우 중요 어떤 데이터 구조, 알고리즘도 모든 비즈니스 상황에서 최적의 성능을 제공하지 못함 알고리즘이 최적의 성능을 낼 수 있는지 확인하기 위해 실행속도를 측정 알고리즘의 실행 비용 or 복잡성의 측정에 대한 이야기를 꺼낼 때는 입력값이 상당히 큰 규모를 의미 점근적 분석을 통해 아래의 답을 얻을 수 있다. (데이터가 폭주하는) 최악의 상황이라면, 얼마만큼의 저장 공간이 필요한가? 알고리즘이 특정 규모의 입력값을 처리하는 데 걸리는 시간은 얼마인가? 과연 그 문제를 해결할 수 있는가? 예 숫자 목록을 정렬하는 함수의 실행 시간 분석, 입력 데이터 크기에 따라 함수의 실행시간이 얼마나 길어져야할지 알아야 한다. 정렬 알고리즘의 성능을 비교하기 ..
[TIL] 기본 연산자(Basic Operators) & 데이터 구조
·
Swift/문법
Swift에서는 통상적으로 산술연산자, 논리연사자 a.. b) 작다 (a = b) 작거나 같다 (a
[TIL] Switch문, 삼항연산자, 데이터구조
·
Swift/문법
Switch와 if 사용하는 이유 switch문장은 완전하다, 즉 이 문장은 case 체크 할 수 있는 모든 값의 블록 또는 사용자가 가지고 있어야 한다. default, if, else if는 놓칠 수 있다. 여러 개의 가능한 결과에 대한 값을 확인하려면 해당 값은 한번만 읽히지만 if는 여러번 읽는다. 함수 호출의 일부는 속도가 느려질 수 있기 때문에 함수 호출을 사용하기 시작할때 기능이 중요하다. 다루기 어려운 고도의 패턴 매칭을 가능하게 한다. 추가로 3개이상의 동일한 값을 체크하고 싶다면 사용하기도 한다. Switch 문장은 처음에 확인해야 할 어떤 값이 필요하다. default: 모든 case 값이 일치하지 않을 때 실행되는 코드 블록이다. 코드 예시 int num = 3; String res..
[TIL] Swift 문법(contains, allSatisfy)
·
Swift/문법
코딩테스트를 보다가 배열 메서드를 찾았다. contains, allSatisfy인데 아주 유용한 메서드이다 contains() Swift의 contains() 메서드는 어떤 값이 지정한 범위에 포함되어 있는지 여부를 확인할 수 있는 메서드 contains() 메서드는 두 개의 매개변수를 받습니다. 첫 번째 매개변수는 범위를 나타내는 Range 또는 ClosedRange 타입의 인스턴스이며, 두 번째 매개변수는 확인하고자 하는 값입니다. Range는 시작값과 끝값을 포함하지 않는 범위를 나타내고, ClosedRange는 시작값과 끝값을 포함하는 범위를 나타냅니다. 예를 들어, 다음 코드에서 contains() 메서드를 사용하여 1...10 범위에 5와 15가 포함되어 있는지 여부를 확인할 수 있습니다 le..
[Swift] 기본 문법 정리
·
Swift/정리
이름짓기 규칙 기본적으로 카멜 케이스 사용 Lower Camel Case: fuction,method,variable.constant Upper Camel Case: type(class,struct,enum,extension) 콘솔 출력 print 단순히 문자열 출력 dump 인스턴스의 자세한 설명(description property)까지 출력 문자열 보간법 String Interpolation 프로그램 실행 중 문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용한다. \( ) import Swift let age: Int = 10 "안녕하세요 저는\\(age + 5)살입니다!" Any, AnyObject, nil Any Swift의 모든 타입을 지칭하는 키워드 어떤 타입도 수용 가능합니다..
[TIL] iOS App 개발자는 무엇일까
·
Swift/문법
진정한 개발자 오늘 2년차 멘토분을 우연히 만나게 되었는데 좋은 조언을 많이 해주셨다. 나중에 알고보니 정말 엄청난 분이셨다.. 86년도에 개발을 접해보셨고 그 뒤로 계속 공부하시다가 외국 대학에서 컴퓨터전공 교수님 13념 넘게 하셨다고 말씀해주셨다. 나는 iOS 개발을 공부하면서 FireBase를 이용한 소셜 미디어 앱 클론코딩을 하고 분석하고 있었는데 그 분이 들어오셔서 나에 대해 몇가지 물어보시더니 iOS 개발자가 되고 싶은지 UI 개발자가 되고 싶은지 물어보셨다. 그 말을 듣고 나는 머리가 띵하게 맞은 것 같다. 그분은 Swift를 공부하니깐 회사에 들어가기 위한 코딩테스트가 아니라 Swift Data Structure에 대해서 강의를 하루에 한시간씩 듣고 직접 다뤄보라고 하셨다. 내일 부터 내가..
[Swift] 첫 iOS 앱 개발자를 위한 가이드 from Lingo
·
Swift/정리
Intro 안녕하세요 bulmang입니다~! 오늘은 Lingo가 설명해주신 내용을 따로 정리하여 공유하고자 합니다! 내용은 iOS 개발이 처음이신 분들을 위한 내용으로 한번 참고 하시면 좋을 것 같습니다. apple은 생각보다 다양한 사이트를 가지고 있습니다. https://www.apple.com/education/ Education Apple technology and resources empower every kind of educator and student to learn, create, and define their own success. www.apple.com https://www.apple.com/swift/ Swift - Apple Swift is everywhere. And now i..
[TIL] 겸손함(애플 디벨로퍼 아카데미생분들 모임)
·
Swift/문법
겸손함 Prelude 기간에 아카데미생분들과 이야기를 하며 서로의 목표와 배경에 대해 이야기 했다. 각자의 지식과 배경이 엄청나게 좋으신 분들이 많은데도 불구하고 그 누구도 자신이 어떠한 것을 잘했고 이런 것은 별거 아니라고 이야기를 한다. 그렇게 각자의 포트폴리오와 지금까지 해오신 것들을 간단하게 소개를 해봤는데,,, 모두 정말 열심히 개발, 디자인 등등 다양한 것을 하셨는데 정말 학생수준이 아니라 프로수준의 레벨이다. 너무 잘하신 분들의 이야기를 듣고 경험을 공유하면서 직접 깨닫지는 못해도 어느정도 도움이 되었고 좋은 자극제가 되었다. 진짜 잘하는 사람은 자기가 정말 낮은 사람이라고 이야기를 한다.. 나도 그런 사람이 되고 싶다
[TIL] 코딩테스트 , 리빌딩
·
Swift/문법
코딩테스트 꾸준히 하루에 한시간 이상 코테를 공부했는데 문제에 접근을 하는 방법에 대해 생각을 해봤다. 엄청 간단한 최소공배수를 구하는 문제였지만 나는 다른 규칙을 찾으려고 엉뚱한 짓을 하여 시간을 많이 잡아 먹었다. 일단 코테를 풀 때 문제의 본질을 찾는 것이 제일 중요한 것 같다. 바로 풀지말고 문제를 잘 이해하자. 리빌딩 아카데미에서 오늘 팀 활동을 하였는데 활동을 하다가 문제가 있는 것 같아 다시 처음부터 리빌딩을 하였다. 그랬더니 시간이 부족하여 좋은 결과를 내지 못하였다. 처음에 팀원들과의 소통을 잘하였지만 나중에 시간이 급하니 소통이 줄어들고 문제를 해결하기 위해 급하게 행동을 하니 좋은결과를 얻지 못한 것 같았다. 현직으로 일하셨던 팀원에게 경험을 여쭤 봤는데 충분한 기획,회의를 통하여 리..
[TIL] Swift 문법, 협업 능력
·
Swift/문법
Swift 문법 코딩 테스트 연습을 하다가 문법에 관한 것을 배웠다. for i in 0...array는 배열의 인덱스 범위를 0부터 배열의 마지막 인덱스까지 모두 포함하는 반면, for i in 0..
[Swift] Swift에서 사용되는 디자인 패턴(pattern)과 예제 코드
·
Swift/정리
안녕하세요 bulmang입니다. Swift 패턴에 대해 알아보고 정리해봤습니다, 틀린 부분이 있으면 알려주시면 감사하겠습니다. Swift에서 패턴은 코드에서 반복되는 공통적인 구조를 식별하는 방법입니다. 패턴은 코드를 작성할 때 일관성 있게 사용하므로 코드의 가독성과 유지보수성을 향상시키는 데 도움이 됩니다. Decorator 패턴 Decorator 패턴은 객체의 기능을 동적으로 확장하는 방법입니다. 이 패턴은 객체를 래핑하고, 래핑된 객체와 동일한 인터페이스를 제공하여 기능을 추가하거나 수정합니다. 이 패턴은 객체의 변경이나 확장을 클래스의 서브 클래스 생성을 통해 하지 않고, 런타임에 유연하게 처리할 수 있습니다. 예를 들어, 다음은 커피에 시럽을 추가하는 예제 코드입니다. protocol Coffe..