[TIL] Swift 문법 옵셔널 체이닝(Optional Chaining)
·
Swift/문법
옵셔널 체이닝(Optional Chaining) 언래핑 없이 옵셔널 값의 멤버에 접근 현재 Nil일 수 있는 옵셔널인 프로퍼티, 메서드, 서브스크립트를 조회하고 호출하기 위한 프로세스 옵셔널에 값이 포함되어 있으며 프로퍼티,메서드,서브스크립트는 호출에 성공 옵셔널이 nil 이면 프로퍼티,메서드,서브스크립트 호출은 nil을 반환 여러 조회는 함꼐 연결될 수 있고 체인에 어느 부분이라도 nil이면 전체 체인은 실패 강제 언래핑 대안으로 옵셔널 체이닝(Optional Chaining as an Alternative to Forced Unwrapping) 프로퍼티,메서드,서브스크립트를 호출하려는 옵셔널 값 뒤에 물음표(?)를 배치하여 옵셔널 체이닝을 지정,값에 강제 언래핑을 하기 위해 옵셔널 값 뒤에 느낌표(!..
[TIL] Swift 문법 클래스와 구조체
·
Swift/문법
클래스와 구조체(Classes and Structures) 클래스와 구조체는 프로그램의 코드를 조직화 하기 위해 일반적으로 사용 OOP를 위한 필요 요소 클래스와 구조체의 비교 (Comparing Classes and Structures) Swift에서 클래스와 구조체는 많은 공통점이 있움. 클래스와 구조체 둘다 다음과 같은 기능이 가능. 공통점 값을 저장하기 위한 프로퍼티 정의 기능을 제공하기 위한 메소드 정의 subscript 문법을 이용해 특정 값을 접근할 수 있는 subscript정의 초기 상태를 설정할 수 있는 initializer 정의 기본 구현에서 기능 확장 특정한 종류의 표준 기능을 제공하기위 한 프로토콜 순응 프로퍼티, 메소드, 서브스크립트, 초기화, 확장 그리고 프로토콜을 참조 구조체로..
[TIL] Swift 문법 열거형(Enum)
·
Swift/문법
열거형 열거형은 관련된 값으로 이루어진 그릅을 공통의 형으로 선언해 형 안전성(type-safety)을 보장하는 방법으로 코드를 다룰 수 있게 해줌. case값이 string,character,integer,floating 값들을 사용 가능 열거형 1급 클래스 형이어서 계산된 프로퍼티를 제공하거나 초기화를 지정하거나,초기 선언을 확장해 사용 enum키워드를 사용해 열거형을 정의 enum CompassPoint { case north case south case east case west } // 콤마로 구분 가능 enum Planet { case mercury, venus, earth, mars, jupiter, saturn, uranus, neptune } Swift에서 열거형은 생성될 때 각 case..
[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] iOS App 개발자는 무엇일까
·
Swift/문법
진정한 개발자 오늘 2년차 멘토분을 우연히 만나게 되었는데 좋은 조언을 많이 해주셨다. 나중에 알고보니 정말 엄청난 분이셨다.. 86년도에 개발을 접해보셨고 그 뒤로 계속 공부하시다가 외국 대학에서 컴퓨터전공 교수님 13념 넘게 하셨다고 말씀해주셨다. 나는 iOS 개발을 공부하면서 FireBase를 이용한 소셜 미디어 앱 클론코딩을 하고 분석하고 있었는데 그 분이 들어오셔서 나에 대해 몇가지 물어보시더니 iOS 개발자가 되고 싶은지 UI 개발자가 되고 싶은지 물어보셨다. 그 말을 듣고 나는 머리가 띵하게 맞은 것 같다. 그분은 Swift를 공부하니깐 회사에 들어가기 위한 코딩테스트가 아니라 Swift Data Structure에 대해서 강의를 하루에 한시간씩 듣고 직접 다뤄보라고 하셨다. 내일 부터 내가..
[TIL] 겸손함(애플 디벨로퍼 아카데미생분들 모임)
·
Swift/문법
겸손함 Prelude 기간에 아카데미생분들과 이야기를 하며 서로의 목표와 배경에 대해 이야기 했다. 각자의 지식과 배경이 엄청나게 좋으신 분들이 많은데도 불구하고 그 누구도 자신이 어떠한 것을 잘했고 이런 것은 별거 아니라고 이야기를 한다. 그렇게 각자의 포트폴리오와 지금까지 해오신 것들을 간단하게 소개를 해봤는데,,, 모두 정말 열심히 개발, 디자인 등등 다양한 것을 하셨는데 정말 학생수준이 아니라 프로수준의 레벨이다. 너무 잘하신 분들의 이야기를 듣고 경험을 공유하면서 직접 깨닫지는 못해도 어느정도 도움이 되었고 좋은 자극제가 되었다. 진짜 잘하는 사람은 자기가 정말 낮은 사람이라고 이야기를 한다.. 나도 그런 사람이 되고 싶다
[TIL] 코딩테스트 , 리빌딩
·
Swift/문법
코딩테스트 꾸준히 하루에 한시간 이상 코테를 공부했는데 문제에 접근을 하는 방법에 대해 생각을 해봤다. 엄청 간단한 최소공배수를 구하는 문제였지만 나는 다른 규칙을 찾으려고 엉뚱한 짓을 하여 시간을 많이 잡아 먹었다. 일단 코테를 풀 때 문제의 본질을 찾는 것이 제일 중요한 것 같다. 바로 풀지말고 문제를 잘 이해하자. 리빌딩 아카데미에서 오늘 팀 활동을 하였는데 활동을 하다가 문제가 있는 것 같아 다시 처음부터 리빌딩을 하였다. 그랬더니 시간이 부족하여 좋은 결과를 내지 못하였다. 처음에 팀원들과의 소통을 잘하였지만 나중에 시간이 급하니 소통이 줄어들고 문제를 해결하기 위해 급하게 행동을 하니 좋은결과를 얻지 못한 것 같았다. 현직으로 일하셨던 팀원에게 경험을 여쭤 봤는데 충분한 기획,회의를 통하여 리..
[TIL] Swift 문법, 협업 능력
·
Swift/문법
Swift 문법 코딩 테스트 연습을 하다가 문법에 관한 것을 배웠다. for i in 0...array는 배열의 인덱스 범위를 0부터 배열의 마지막 인덱스까지 모두 포함하는 반면, for i in 0..