본문 바로가기

전체 글56

[TIL] 20230106: Modality/Navigation 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. 모달/네비게이션 Modality/ Navigation 모달 Modality 사용자에게 일시적으로 집중을 요하는 컨텐츠를 표시할 때 사용한다. 즉, 연속성이 없고 중요한 것을 나타낼 때 사용한다. 모달로 띄운 화면이 필요하고, 이것이 중요한 경우에는 액션이 요구됨을 알려준다. 모달을 이용한 화면을 나가기 위해서는 명확한 행동이 요구된다. 가령 닫기 버튼이나 화면 스와이프 다운과 같은 것들 말이다. iOS에서 제공해주는 시스템 모달 스타일 alert activity views/share sheet action sheets 개발자가 직접 제공해주는 모달 스타일 automatic 시스템에게 스타일을 결정할 권한을 넘기는 것 iOS에.. 2023. 1. 6.
[자료구조스터디] 20230104: Linked List 본문은 야곰 아카데미 커리어 스타터 캠퍼들과의 스터디를 통해 학습한 내용을 회고한 글입니다. 연결 리스트 Linked List 연결 리스트란? 데이터와 링크로 구성된 노드를 이용하여 메모리에 저장된 순서와 상관없이 연결된 데이터 구조를 말한다. 연결 리스트에는 크게 세가지의 종류가 있다. 단일 연결 리스트(Singly linked list) : 자료 공간 1개와 다음 노드를 가리키는 포인터로 구성된 노드를 가지는 연결 리스트 이중 연결 리스트(Doubly linked list) : 앞의 노드와 뒤의 노드를 가리키는 포인터가 2개 있는 연결 리스트 순환 연결 목록(Circular linked list) : 마지막 노드와 처음 노드가 연결되어 원형 구조를 이루고 있는 연결 리스트 일반적으로 연결 리스트라고 .. 2023. 1. 6.
[TIL] 20230105: Type Casting, Singleton, 반환타입, Nil 반환 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. 타입 캐스팅 Type Casting 타입 확인하기 Checking Type 어떤 인스턴스가 특성 서브클래스 타입에 속하는지 확인하기 위해서 타입 체크 오퍼레이터(is)를 사용한다. 만약에 인스턴스가 그 서브클래스 타입에 속하면 true를 반환하고, 그렇지 않으면 false를 반환한다. class Music { var name: String init(name: String) { self.name = name } } class NothingButThieves: Music { var year: Int init(name: String, year: Int) { self.year = year super.init(name: name) }.. 2023. 1. 6.
[TIL] 20230104: KVO 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. 키-밸류 옵저빙 Key-Value Observing(KVO) KVO는 프로퍼티의 다른 오브젝트가 변경되었을 때 오브젝트가 알림 받을 수 있도록 하는 메커니즘이다. 어플리케이션의 결합측면에 있어서 중요한 요소라고 볼 수 있다. MVC 디자인 패턴을 따르는 어플리케이션의 오브젝트끼리 상호작용을 할 수 있게 만드는 모드이다. 예를 들어서, model 오브젝트를 view나 controller 레이어의 오브젝트와 같이 움직이게 할 때 KVO를 사용할 수 있다. 전형적으로는, controller 오브젝트는 model 오브젝트를 관찰하고, view 오브젝트는 controller 오브젝트나 model 오브젝트를 관찰한다. KVO를 적용하게.. 2023. 1. 4.
[TIL] 20230103: CaseIterable, 반복문을 통해 딕셔너리 key와 value 가져오기 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. for 문을 돌리고 싶어서 여러 가지 방법들을 찾아보았다. CaseIterable enum을 배열처럼 사용할 수 있는 프로토콜이다. CaseIterable 타입을 이용할 때, allCases 프로퍼티를 사용하면 그 타입의 모든 case들 컬렉션에 접근할 수 있게 된다. enum Dogs: CaseIterable { case hodoo case yulmoo case zandi } let dogList = Dogs.allCases print(dogList) //[workSpace.Dogs.hodoo, workSpace.Dogs.yulmoo, workSpace.Dogs.zandi] for dog in dogList { print(.. 2023. 1. 3.
[TIL] 20230102: MVC, Initialization, 쥬스 메이커, 연결 리스트 본문은 야곰 아카데미 커리어 스타터 캠프를 통해 학습한 내용을 회고한 글입니다. MVC & SW Architecture/Design Pattern SW Architecture와 SW Design Pattern의 개념은 어디서부터 출발했을까? 객체 지향적인 성격에서 출발 건물 짓는 방식을 SW에서 채택 두 개념은 왜 필요할까? 통일성: 모든 이해관계자들이 이해하고 소통하는 데에 있어서 기본 제공 확장성: 모델들을 잘 정의해 놓을 시 재사용이나 확장에의 용이 두 개념의 차이점? 아키텍쳐 디자인 디자인보다 근본적이고 구조적인 과정 코드 레벨의 공통성 large scale medium scale What we are building How we are building 전체적인 시스템에 관한 것 개별 모듈이나 컴.. 2023. 1. 3.