야곰 커리어 스타터를 시작하기 전 사전 학습할 내용 중 **이 있어 미리 정리해두기로 했다. GitHub를 사용해오긴 했지만 그저 백업용 서버 저장소 정도로만 사용했다. 물론 최근에는 개인 프로젝트만 했어서 협업의 이점을 느낄 수 없긴 했지만 단순히 commit,
= 개체를 대표하는 표현이라고 한다. 이게 무슨 소리인가???타입은 개체의 공통된 특성과 행위를 한데 모아 표현해둔 것입니다.사람으로 예를 들어보면 모든 사람은 각각 다르지만 키와 몸무게, 나이와 같은 특성을 가지고 있고 잠을 자고 생각할 수 있습니다.즉, 사람이란 타
MVC Apple : MVC 디자인 패턴 MVC 패턴은 애플리케이션의 구성요소를 구성요소를 Model-View-Controller 3가지 형태로 나눈다. 3가지의 객체가 애플리케이션과 통신 라인에서 수행하는 역할을 정의한다. 3가지 객체는 서로 분리되며 통신한다.
Key-Value Observing > 다른 개체의 프로퍼티가 변경되었을 때 바로 알림을 받을 수 있게 하는 메커니즘 MVC 패턴으로 디자인된 애플리케이션에서 뷰, 모델, 컨트롤러의 통신방식이다. 일반적으로 컨트롤러는 모델을 관찰하고, 뷰는 모델 또는 컨트롤러를 관
싱글톤 클래스 > 특정 용도로 객체를 하나만 생성하여 공용으로 사용하는 디자인 싱글톤 클래스는 애플리케이션이 요청한 횟수에 상관없이 동일한 인스턴스를 반환한다. 보통의 클래스는 원하는 만큼 인스턴스를 생성할 수 있는 반면, 싱글턴 클래스는 프로세스 당 하나의 인스턴
UIViewController 클래스는 대부분의 뷰 콘트롤러가 공통으로 가지고 있는 동작을 정의한다. UIViewController의 인스턴스를 만들기보단 하위 클래스를 만들어 필요한 프로퍼티와 메서드를 정의해서 사용하면 된다. 데이터 변화를 뷰 콘텐츠에 업데이트사용자
테스트를 왜 할까? 코드의 안정성 보장 유지 보수에 유리 스펙의 문서화 깔끔한 코드 1. 유닛 테스트(Unit Test) > 소스 코드의 특정 모듈이 의도대로 작동하는지 검증하는 절차 = 모든 함수와 메서드에 대한 테스트 케이스(Test case)를 만드는 절차
소프트웨어 시스템의 시각적 모델을 만들기 위한 언어소프트웨어 개발 시 산출물을 명세화, 시각화, 문서화할 때 사용한다.UML은 프로세스나 방법을 안내하지 않고 표현 방법만 제시한다.기능적 관점(functional view): 사용자 측면에서 본 소프트웨어의 기능을 나타
SOLID > 객체 지향 프로그래밍과 설계의 다섯가지 원칙을 첫 글자로 소개한 것 개발자가 시간이 지나도 유지보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 적용 SRP 단일 책임 원칙(Single Responsibility Principle) > 클래스
Low Level Debuger > Command-Line Debug 환경 실행중인 프로세스의 값을 변경하거나 흐름을 제어 다양한 디버깅 작업 가능 LLVM > Apple이 진행한 컴파일러에 필요한 Toolchain 개발 프로젝트 컴포넌트 재사용을 중시 모듈화가 잘
RAM 메모리 영역 코드 영역 데이터 영역 힙 영역 스택 영역 1. 코드 영역 소스 코드가 기계어 형태(0과 1로만 이뤄짐)로 저장 컴파일 타임에 결정 코드가 중간에 변경되지 않도록 Read-Only 형태로 저장 2. 데이터 영역 전역 변수, static 변수가 저
JavaScript Object Notation > 네트퉈크를 통해 데이터를 주고받기 위해 사용되는 데이터 형식 시스템 메모리에 0과 1로 적힌 데이터를 전달하거나 받고 싶을 때 다른 컴퓨터 사이에서 통용이 다를 수 있어 원형태로는 불가능하다. 0과 1로 된 객체
Table Views > 커스터마이징 가능한 행의 단일 열에 데이터를 표현하는 것 하나의 열로 보여지는데 각각의 행은 사용자가 정의할 수 있는 뷰이다. 테이블 뷰의 구성 테이블 뷰는 수직 스크롤이 되는 단일 열의 뷰로 row와 section으로 분리된다. row
Configure Cell's Content 스토리보드에서 Cell의 콘텐츠 구성하기 테이블은 디폴트로 하나의 Cell을 가지고 있는데 프로토타입 Cell의 attribute에서 값을 변경해서 추가할 수 있다. Cell의 내용과 함께 다음의 속성들도 구성해줘야 한
Accessibility Inspector Accessibility Inspector는 앱의 접근성 문제를 쉽게 찾고 진단하고 수정할 수 있는 방법을 제공한다. 접근성 문제 테스트 > Xcode Menu -> Open Developer Tool -> Accessib
동시성 컴퓨터로 영화를 틀어놓을 채로 문서도 보고 다운도 받고 동시에 여러가지 일을 처리할 수 있음 어떻게?? 컴퓨터 용어 짤 하나로 정리되는 컴퓨터 용어 😎 코어 CPU에서 실제로 일을 처리하는 부분 > 코어가 많다 == 일을 할 수 있는 녀석이 많다!
서버와 통신하기 위한 APIHTTP를 포함한 여러 프로토콜을 지원하고, 인증, 쿠키 관리, 캐시 관리 등을 지원HTTP 통신과 마찬가지로 Request, Response 구조를 가짐URL 객체를 통해 직접 통신하는 방식URLRequest 객체를 만들어 옵션을 설정하여
CollectionViewLayout의 한 종류하나 이상의 Section으로 구성하나의 Section은 Item으로 구성된 Group들로 구성Group은 Item들을 horizontal row(가로 스크롤) vertical column(세로 스크롤) 또는 사용자 지정
UIView의 init지정된 프레임으로 새로 할당된 뷰 개체를 초기화하고 반환새로운 UIVIew를 사용하려면 window 뷰 계층에 삽입해야 한다코드로 뷰 개체를 만드는 경우 init(frame: CGRect)가 UIView 클래스에 대한 이니셜라이저가 된다.Inter
셀의 콘텐츠와 스타일을 구성하는 새로운 API (iOS 13)배경 모양을 빠르게 지정할 수 있는 여러 속성이 있음ex) backgroundColor, Insets and corner radius, Custom View ..표준 레이아웃ex) Text, Image, Se
UIView Animation UIView란 > 화면의 직사각형 영역에 대한 콘텐츠를 관리하는 개체 Animate views UIView의 프로퍼티를 조절해서 애니메이션 효과를 줄 수 있다. UIView 프로퍼티 frame : 상위 뷰의 좌표를 기준으로 뷰의 위치
Operation > CGD를 객체 지향적으로 재탄생시킨 high-level의 API GCD와 차이점 GCD에서 Task라고 불렀던 코드블록을 캡슐화, 객체화(타입화) 한 것 동시성 프로그래밍과 관련된 작업들이 Operation 객체로서 만들어지게 됨 Operati
화면은 반만 띄우거나 중간에서 작게 띄우고 싶으면 어떻게 해야할까? UIPresentationController > 전환 애니메이션과 뷰컨트롤러의 표시를 관리하는 객체 UIKit은 PresentationController를 통해 뷰컨트롤러가 표시되는 시간부터 사라
frame vs bounds > frame과 bounds는 어떻게 다른걸까? UIView의 크기나 위치를 변경할 때 대충 frame과 bounds를 건드려본 경험은 많다. 하지만 둘이 어떻게 다른 것인지 제대로 알아본 적이 없어 정리해보고자 한다. 둘이 혼동되는 부
API를 통해 JSON 응답을 받을 때 만약 여러 데이터 타입을 가진 키가 있다면 디코딩이 쉽지 않다. 자주는 아니지만 불가능한 경우도 아닌데, 예를 들면 결과가 다음과 같다.value라는 key가 String, Bool, Int 등 다양한 타입을 결과로 가지고 있다.
TCA란 > The Composable Architecture > Elm이나 Redux 라이브러리의 아이디어에 기반하여 Point-Free에서 만든 상태 관리 기반 단방향 아키텍처 목적: 일관되고 이해할 수 있는 방식으로 어플리케이션을 만들기 위해 목표: Compo
SwiftUI에서 관리하는 값을 읽고 쓸 수 있는 속성 래퍼View 내부에서 사용되며 해당 프로퍼티의 값이 변경되면 값에 의존하는 뷰를 업데이트private으로 선언되어 init으로 초기화되는 것을 방지하고, 외부에서 사용되지 않음SwiftUI가 해당 속성의 값을 관리
WKWebView는 UIKit의 뷰이기 때문에 SwiftUI에서 사용하려면 UIViewRepresentable 채택해야 한다.UIKit 뷰를 SwiftUI 뷰 계층에서 사용하기 위한 wrapperSwiftUI 인터페이스에서 UIView 객체를 만들고 관리인스턴스에서 이