• 타입이란 무엇인가

스위프트는 다양한 타입을 가지고 있다.

다른 언어에서는 자료형이라고도 부르는 타입은 변수나 상수 안에 어떤 값이 들어갈지 형태를 정해 주는 일을 한다.

각 타입은 연산 공간에 할당해놓는 크기의 차이이다.

타입의 차이는 메모리의 효율화 때문에도 중요하지만, 초기 개발자가 타입을 생각하는 부분은 주로 연산 때문이다.

  • 함수란 무엇인가

같은 일을 반복하지 않게 해주는 것이 함수이다.

함수는 특정 기능을 하는 코드의 집합이다.

함수를 하나 작성 후 이 함수를 이곳저곳에서 사용할 수 있다.

  • 제어문이란 무엇인가

앱이 실행되며 일정한 상황으로 진행되는 경우는 없다.

상황별로 대응이 달라져야 하는데 이 때 제어문이 필요하다.

  • 오토레이아웃 사용법

다양한 사이즈에서 효율적으로 사용자 경험을 제공하기 위한 개념이 오토레이아웃이다.

오토레이아웃의 개념은 기본적으로 관계의 조절이다.

자신을 감싸고 있는 오브젝트 또는 자신의 상하좌우에 있는 다른 오브젝트들과 어떻게 관계하며 위치할 것인가를 지정하게 된다.

  • 참고

상위 계층의 뷰와의 오토레이아웃 설정

Leading Space to Container Margin: 객체 왼쪽과 상위 객체 왼쪽 마진 간의 거리

Trailling Space to Container Margin: 객체 오른쪽과 상위 객체 오른쪽 마진 간의 거리

Top Spacing to Container: 객체 상단과 상위 객체 상단 간의 거리

Bottom Spacing to Container: 객체 하단과 상위 객체 하단 간의 거리

Vertical Spacing to Top Layout Guide: 객체 상단과 뷰의 상위 가이드라인 간의 거리

Vertical Spacing to Bottom Layout Guide: 객체 하단과 뷰의 하단 가이드라인 간의 거리

Center Horizontally in Container: 객체와 상위 객체 간의 가로 위치 관계

Center Vertically in Container: 객체와 상위 객체 간의 세로 위치 관계

객체와 객체 사이의 오토레이아웃 설정

Horizontal Spacing: 객체와 다른 객체 간의 가로 거리

Vertical Spacing: 객체와 다른 객체 간의 세로 거리

Top: 객체와 다른 객체 간의 상단 위치 관계

Center Vertically: 객체와 다른 객체 간의 세로 위치 관계

Baseline: 객체와 다른 객체의 기본선 위치 관계

Bottom: 객체와 다른 객체 간의 하단 위치 관계

Leading: 객체와 다른 객체 간의 왼쪽 위치 관계

Center Horizontally: 객체와 다른 객체 간의 가로 가운데 거리 관계

Trailing: 객체와 다른 객체 간의 오른쪽 위치 관계

Equal Widths: 동일한 너비

Equal Heights: 동일한 높이

Aspect Ratio: 객체의 너비와 높이 간의 비율

  • 클래스란 무엇인가

객체지향이란 각 객체를 여러 속성과 메소드로 묶어 단위별로 정의하고 처리하는 것을 기반으로 하는 프로그래밍 패러다임이다.

클래스는 객체지향을 이루기 위한 기본 단위이다.

  • 프로토콜이란 무엇인가

프로토콜은 자바의 인터페이스와 유사하며 구현해야 할 메소드 또는 프로퍼티들의 형태를 미리 정의해놓은 것이다.

프로토콜의 용도는 공통된 규격을 지정할 수 있다는 것이다.

생성해야 할 요소의 이름들을 미리 명시함으로써 추후에 명시했던 이름으로 프로퍼티나 메소드들을 호출해서 사용하기 편리하다.

  • 델리게이트 패턴이란 무엇인가

프로그래밍은 각 개인마다 코드의 구성이 다르고, 적용 방식도 다르다.

그러나 개발을 진행하다 보면 나타나는 표준적인 문제들이 있고 이 문제들을 해결하기 위한 표준적인 구조들이 존재한다.

이러한 것을 ‘디자인 패턴’이라고 부른다.

어떠한 문제가 있을 때 클래스, 메소드, 프로퍼티는 이런 형태로 구성하는 것이 효율적이라는 의견들이 디자인 패턴의 의도이다.

이러한 패턴중 하나가 델리게이트 패턴이다.

델리게이트 패턴이란 모든 과정을 하나의 객체가 처리하는 것이 아니라, 일부 공통된 기능은 다른 객체에게 위임하여 처리하는 것을 말한다.

델리게이트를 어떠한 객체로 할지 지정하면 해당 기능은 지정한 델리게이트에서 처리한다.

  • 프레젠트 화면 전환

기존의 화면에 다른 화면을 덮어놓는 형태이다.

덮어쓴 화면을 걷어내면 원래 있던 화면이 나타나게 되며 화면을 덮어내라고 명령하는 곳도 나중에 나온 화면이 아닌 원래 있던 화면이 자신을 덮어쓰고 있는 화면을 제거하는 형태이다.

  • 네비게이션 컨트롤러 화면 전환

네비게이션 컨트롤러를 사용하면 네비게이션 객체가 화면의 전환을 관리한다.

객체에 뷰 컨트롤러들을 넣고 빼면 화면에 반영되는 방식이다.

타이틀 바에 현재의 위치를 표시하며 화면 간 전환하는 방식을 생각하면 된다.

네비게이션은 계층 구조에 유용하다.

네비게이션 컨트롤러를 이용한 화면전환은 네비게이션 스택을 이용한다.

가장 기본이 되는 루트 뷰 컨트롤러를 가지게 되고 그 위에 뷰 컨트롤러를 차곡차곡 쌓는 형태라고 할 수 있다.

사용자에게는 가장 위에 쌓여 있는 뷰가 보인다.

pushViewController와 popViewController 메서드를 이용해서 뷰 컨트롤러들을 넣고 뺸다.

  • 세그 화면 전환

세그는 ios의 세그 개념을 이용하는 것이다.

스토리보드의 이용으로 흐름을 파악하기 쉽고 코드의 간결화가 장점이다.