객체지향 생활체조에서 원시값을 모두 감싸라는 규칙에 관해 어떤 식으로 구현해야 할지 고민하고 있을 때 nameSpace에 관해 알아보라는 조언을 받았다. namespace란? namespace를 구글링해보면 C++의 NameSpace가 가장 많이 나온다. C++의 namespace의 개념을 간단하게 말하면 같은 것 끼리 모은 공간을 만들고, 모은 공간이 다르면 다른 것으로 치는 것이라고 생각하면 될 듯하다. 네트워크의 NAT의 개념과 비슷하게 생각하면 될 듯? swift에서는 상수를 감싸서 상수 대신 감싼 변수명을 입력하는 식으로 사용한다. 왜 사용하는가? iOS로 프로젝트를 진행하면 무수히 많은 상수를 사용합니다. 오토레이아웃을 잡을때, 애니메이션을 사용할 때, UserDefaults를 사용할 때 등등..
왜 사용하는가?프로퍼티에 접근할 때, 사람들은 공통적인 패턴으로 접근 함lazy를 통한 value initalizedThread-local stroage를 사용할 때UserDefaults등등... 어떤 프로퍼티에 접근할때 get이나 set를 사용하지만 코드가 반복될 때가 있는데 property wrapper를 통해 재사용성을 높이고 중복을 없앨 수 있음 사용법@propertyWrapper struct TwelveOrLess { private var num: Int = 0 var wrappedValue: Int { get { return num } set { num = min (newValue, 12) } } init(wrappedValue: Int) { self.wrappedValue = wrappedV..
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 경우의 수, DFS, 구현 문제. 가장 고민을 많이 했던 것은 우선순위를 적용한 계산을 어떻게 할 것인지 고민을 많이 했다. 내가 푼 방식은 연산자와 숫자를 각각 나눠서 배열에 담고, 우선순위를 for문으로 돌아서 연산자 우선순위가 높은것을 먼저 계산하고 숫자 배열에 이를 적용하고 계산한 숫자는 제거하는 방식으로 구현했다. import Foundation var solutionAnswer: Int..
주소 매핑이란? 이더넷에서 IP 패킷을 보낼 때 LAN을 통과할 때, IP 주소뿐만이 아니라 보낼 상대방의 MAC 주소가 필요하다. IP주소는 dns (www.google.com 같은 URL) 를 이용해 알 수 있지만 MAC 주소는 알지 못한다. 이때 IP주소에 대응하는 MAC 주소를 알아내는 것을 주소 매핑이라 한다. 정적 매핑 (Static mapping) 사용자가 직접 MAC 주소를 집어 넣는 것. IP 주소와 MAC 주소를 연결시키는 테이블을 생성. 동적 매핑 (Dynamic mapping) IP주소와 MAC 주소의 관계를 프로토콜을 이용하여 구하는 방식 ARP (Address Resolution Protocol) IP주소에 대응하는 MAC 주소를 구하는 프로토콜 동작 방식 해당 LAN에 IP주소..
https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 + 재귀 + 구현 문제. 오랜만에 알고리즘을 푼지라 시간이 많이 걸렸다. 주의할점은 괄호를 변경할 때 문자열을 뒤집는게 아닌 괄호를 뒤집어야 한다. ( 를 )로 뒤집는 것. 문자열과 재귀, 구현을 어느 정도 이해하고 있으면 그리 어려운 문제는 아닌듯 하다. import Foundation func checkIsBalance(_ p: String) -> Bool { let strArr = A..
iOS에서 화면에 보이는 모든 것들은 UIView를 서브클래싱 하고 있다. 이런 UIView의 생김새를 변경하거나 어떤 효과를 줄 때 layer를 통해 작업을 수행한다. cornerRadius, shdow, Animation 등 의 작업할 때 항상 layer가 등장한다. layer가 무엇이길래 UIView와 함께 자주 등장할까? UIView의 layer 공식문서에서는 렌더링에 사용되는 CoreAnimation의 layer (CALayer) 이고, view는 이 layer의 delegate라고 한다. UIView는 하나 이상의 layer를 가지고 있다고 한다. 렌더링은 무엇이고, CoreAnimation은 어떤 것이고, CALayer은 어떤 클래스이며 CALayerDelegate가 무엇이길래 UIView가..