iOS의 대부분의 앱을 살펴보면 하단에 여러 탭들이 있고, 해당 탭을 누르면 새로운 화면이 나오는 구조가 많다. 이렇게 자주 사용되는 구조의 핵심인 UITabBarController를 살펴보자. UITabBarController UITabBarController란, Container View Controller로서 수평적인 관계의 여러 화면에 바로 접근할 수 있도록 하는 Tab Bar를 제공하는 View Controller이다. Container View Controller 란? 직접적으로 콘텐츠를 표시하지 않으면서 다른 View Controller를 유기적인 관계로 제어하는 View Controller. 대표적으로 Navigation Controller, Split View Controller, Pag..
iOS 프로젝트를 할 때 다른 개발자 분과 협업해야 하는 상황이 있었다. 다른 개발자 분과 나는 도메인을 나눠서 구현 범위를 정하기로 했는데, 여기서 문제는 Storyboard를 어떻게 나눠서 관리할지 정하는 것이었다. 도메인은 탭을 기준으로 확실하게 분리했다. 가령 나는 홈 화면, 지도 화면, 더보기 화면이라면 다른 개발자 분은 상태 화면, 일정 화면 이런 식으로 말이다. Storyboard도 이에 맞춰서 분리하기로 했다. 여기서 사용하게 된 것이 바로 Storyboard Reference. Storyboard Reference란 무엇인지 살펴보자. Storyboard Reference Object Library에서 Storyboard Reference를 찾아봤다. Storyboard reference..
Q. Swift에서 Structure와 Class의 차이는 무엇이고 언제 써야 하는가? 우선 Structure와 Class는 데이터를 용도에 맞게 묶어서 표현하고자 할 때 사용하는 문법이다. (사용자 정의 Data Type) 이 둘은 Property(프로퍼티 - 값)와 Method(메소드 - 기능)를 가진다. Swift에서 Structure와 Class는 모습과 문법이 거의 흡사하다. 둘의 가장 큰 차이점을 먼저 말하자면, Structure는 값 타입(Value Types)인 반면, Class는 참조 타입(Reference Types)이다. 참고) 일부 프로그래밍 언어에서는 소스 파일 하나 당 하나의 Structure 또는 Class만 선언하고 구현할 수 있지만, Swift에서는 별도의 제약사항이 없다...
from collections import deque n, m = map(int, input().split()) graph = [] result = 0 queue = deque() dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] for i in range(n): graph.append(list(map(int, input()))) # 첫번째: 큐에 삽입하고 방문처리하기 # 두번째부터: 큐에 있는 것 하나 빼서 방문하지 않은 것 있으면, 🖐🏼모두🖐🏼 큐에 넣고 방문처리하기 def bfs(x, y): queue.append((x, y)) while queue: x, y = queue.popleft() for i in range(4): # 여기서는 탐색 대상이 상, 하, 좌, 우 였던 것임 ..