본문 바로가기

iOS82

일반화, 추상화, 캡슐화, 은닉화, 암호화 일반화 서로 다른 개체들로부터 공통된 개념을 추출하는 것 추상화 개체들로부터 필요한(중요한) 정보, 포인트만을 추려내는 것 캡슐화 실제로 구현되는 부분을 외부에 드러나지 않도록 캡슐(Struct, Class)로 감싸 이용방법만 사용자(외부 코드)에게 알려주는 것 은닉화 내부 데이터, 내부 연산, 기능들을 외부에서 접근치 못하도록 숨기는 것 (접근제어자) 암호화 암호화 알고리즘으로 값을 조작하여 본래 값을 알아볼 수 없도록 하는 것, 데이터를 알아보기 위해 복호화가 필요 정리 내부 부품(프로퍼티)이나, 기능(메소드)을 특정 기계(타입)으로 한번 감쌈으로써(캡슐화), 기본적으로 캡슐화와 은닉화가 함께 진행되는 줄 알았지만, 내부 부품, 기능들에 대한 외부 조작, 간섭을 방지하기 위해 내부 부품, 기능들에 추.. 2022. 2. 12.
Swift) return에 대한 의문 의문점 여지껏 함수내부에 return이 어느 위치에 있든 쓰기만 하면 함수를 탈출하는 흐름제어구문(Control Transfer Statements)인줄 알았다. 흐름제어구문(Control Transfer Statements)은 맞다. 근데 공식문서를 확인해보니 이렇게 써있더라 When a return statement isn’t followed by an expression, it can be used only to return from a function or method that doesn’t return a value (that is, when the return type of the function or method is Void or ()). 그냥.. 반환할 것이 없는 함수엔 return만을 .. 2022. 2. 12.
Swift) Switch vs If else 🍎 switch란? switch는 들어오는 수(value to consider)를 보고 조건이 True인 case로 진입(점프)한다. 다른 언어같은 경우엔 각 case마다 break를 걸어 탈출하지 않는다면, 이후의 case까지 진입하지만, Swift에서의 switch는 fallthrough를 기본적으로 지원하지 않으므로, case마다 break를 걸어줄 필요가 없다. switch statements in Swift don’t fall through the bottom of each case and into the next one by default https://docs.swift.org/swift-book/LanguageGuide/ControlFlow.html#ID130 대신 fallthrough 되.. 2022. 2. 12.
Swift) Error Handling 📌 Error Handling Swift는 Error protocol을 통해 Error handling을 지원한다. 😈 Ways to handle Errors 스위프트의 에러처리 방법은 네가지가 있다. Error 발생 함수에서 해당 함수를 호출한 코드로 전파(던짐) (thorws) do-catch문으로 처리 Error를 옵셔널값으로 처리 Error가 일어나지 않을 것이라고 단정 👿 Error Represent Swift에서, Error는 Error protocol을 준수하는 타입의 값으로 표현한다. 👹 Error Protocol은 빈 프로토콜이다. Any type that declares conformance to the Error protocol can be used to represent an err.. 2022. 2. 12.
함수 전달인자명과 파라미터명 함수 기본 형태 func 함수이름(전달인자명 파라미터명: 파라미터타입) -> 반환타입 { statement } 함수이름(전달인자명: 파라미터값) 사용 함수 내부에서 전달인자를 사용할때는 파라미터명을 사용한다. func greeting(to friend: String) { print("Hello \(friend)") } 함수를 호출할 때에는 전달인자명을 사용한다. greeting(to: "Jiseong") 이유 함수를 호출할 때 함수 사용자의 입장에서 파라미터의 역할을 명확히 표현하고자 할 때 전달인자명을 지정하여 사용한다. 위 코드를 예로 들면 전달인자명 to를 사용하여 greeting을 누구한테(to) 하는지 함수명과 전달인자명이 어우러져 일맥상통하게 표현하려 사용하는 것이다. 헷갈렸던 점 argume.. 2022. 2. 12.
Swift) Optional Binding 📌 Optional Binding 변수에 값이 저장될지 아닐지를 확실할 수 없을 떄 Optional을 사용한다. Optional Binding은 Optional 타입의 변수값을 꺼내오는 방법중 하나이다. 🐶 guard guard를 사용한 옵셔널 바인딩을 알아보기전 guard부터 알아보겠다. guard 뒤에 따라붙는 코드의 실행 결과가 True일 때 guard문 밑의 코드가 실행된다. False라면 else블록 내부 코드만 실행된다. 이 내부 코드에는 자신보다 상위의 코드블록을 종료하는 코드가 반드시 들어가야한다. Ex) return, break, continue, throw 🐱 guard let guard let은 예외사항을 처리할 때 주로 쓰인다. 옵셔널을 벗겼을 때 값이 nil이면 더이상 코드를 실행.. 2022. 2. 10.