목록xcode (26)
Weekoding
⌘ 이번 포스팅은 지난 포스팅과 이어지는 포스팅이다.
최근 공부하는 프로젝트들이 Storyboard(Interface Builder)를 일절 사용하지 않고(삭제한다), Snapkit과 코드를 이용하여 UI를 만든다. " 시각적으로 뚜렷하게 보여 layout 걸기 편리할 것 같은 Storyboard를 왜 안쓰지? " 라는 생각에 현업 중인 친구에게 물어봤더니, 코드 UI가 속도면에서 효율적이고, Storyboard는 협업 시 crash가 종종 발생한다고 한다.(종종 버그가 있나보다) 익혀둘 필요가 있다고 생각해 Snapkit을 사용하기 위한 환경 설정에 대한 방법을 해보려고 한다. 이번에도 이해 가능한 부분까지 뜯어보면서 진행 해볼 것이다.ㅎ 1. StoryBoard를 제거하기 전에.. 두 가지 속성을 제거해야 한다. 이전 버전에서는 info.plist에 둘..
Xcode의 코드들을 접하다 보면 이런 코드를 보았을 것이다. DispatchQueue.main.async { self.tableView.reloadData() } 결론적으로는 'main thread에서의 비동기 실행을 위한 코드'이다. 어떤 상황에서 사용되며, DispatchQueue / .main / .async가 각각 무엇을 의미하는지 살펴보자. 또한 그 전에 프로세스, 스레드의 개념을 짚어볼 것이다. ⇢ 프로세스와 스레드 process: 실행중인 프로그램. '단위'로써의 개념을 갖고 있는 작업이라고도 할 수 있다. 보통의 프로그램들은 하나의 코드 덩어리로, 저장 장치에 저장되어 있는 정적인 상태이다. 그러나 실행되어 CPU를 할당받고 메모리에 올라가게 되면(동적인 상태가 되면) 작업으로써의 단위 ..
웹앱이 차지하는 비중이 점점 늘고 있는 추세이다. 따라서 네트워크 통신에 대한 기본적인 개념은 아주 중요할 것이다. 📂 RESTful(Representational State Transfer) API REST : 소프트 아키텍쳐의 한 양식. HTTP 프로토콜을 활용하였기 때문에, 웹의 장점을 최대한 활용할 수 있는 아키텍쳐 스타일. REST는 HTTP URL을 통해 자원을 명시하고, POST / GET / PUT / DELETE를 통해 자원에 대한 CRUD를 적용한다. Client의 요청에 따라 자원을 여러 Representation으로 나타낼 수 있는데, 대부분 JSON을 통해 주고받는다. Client에서 바로 객체로 치환 가능한 형태의 데이터 통신이 가능하여, Server와 Client의 역할을 분리..
옵셔널에 대해 좀 더 명확한 개념을 갖고자 이 글을 쓰기로 계획했다. 1. 옵셔널이란? 2. 옵셔널 사용 3. 옵셔널 추출(Optional Unwrapping) - 강제 추출(Forced Unwrapping) - 옵셔널 바인딩(Optional Binding) - 암시적 추출 옵셔널(Implicitly Unwrapped Optional) 4. 심화 - 옵셔널 뜯어보기 1. 옵셔널이란? 옵셔널(Optional): '선택적인' 이라는 뜻을 가진 단어. Swift에서 값이 있을수도, 없을수도 있음을 나타내는 표현이다. 즉, 변수/상수에 값이 nil일 수도 있다(=값이 있는 것을 보장할 수 없다) 라는 의미이다. Swift의 특징 중 하나인 '안전성'을 문법으로 담보하는 기능이다. 옵셔널 변수 또는 ..
예제로 공부를 하던 중 아래와 같은 코드를 발견했다. 3개의 버튼에 각각 그림자 효과를 넣는 코드이다. 버튼 하나씩 적용하면 총 9줄인데.. 신기하게 배열로 묶고 .forEach 메소드를 사용해 단 3줄만에 3개 버튼의 동적 처리를 끝냈다. [seriesBtn, movieBtn, categoryBtn].forEach{ $0?.layer.shadowColor = UIColor.black.cgColor $0?.layer.shadowOpacity = 1.0 $0?.layer.shadowOffset = CGSize(width: 1, height: 1) } .forEach는 내장 함수일 것 같은데,,, $0는 무엇일까? 선언이 된 곳도 없었다. 찾아보니 Closure의 단축 인자라는 것을 알게 되었다. ⌘ 클로저..