Nsdiffabledatasourcesnapshot
✅ 스냅샷이란? 지금 컬렉션 뷰에 표시하고 싶은 섹션과 아이템의 구성을 담은 객체. → 이걸 apply() 하면 UI는 그 상태로 맞춰짐. ✅ 왜 필요한가? 기존 방식은 insert/delete/move를 직접 계산해야 했다. → 실수 많고 복잡. 스냅샷은 “최종 상태”만 정의하면 된다. → 나머지는 시스템이 diff 계산...
✅ 스냅샷이란? 지금 컬렉션 뷰에 표시하고 싶은 섹션과 아이템의 구성을 담은 객체. → 이걸 apply() 하면 UI는 그 상태로 맞춰짐. ✅ 왜 필요한가? 기존 방식은 insert/delete/move를 직접 계산해야 했다. → 실수 많고 복잡. 스냅샷은 “최종 상태”만 정의하면 된다. → 나머지는 시스템이 diff 계산...
문제 설명 PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요. ...
## 📌 함수 파라미터를 변경하고 종료후에도 유지 가능 inout 이란? 함수 내부로 들어온 매개변수의 값은 원래 상수지만 inout을 사용하면 변경이 가능하다. 그리고 함수가 종료되어도 그 변경된 값을 유지할 수 있다. inout으로 지정된 매개변수가 지정되면 함수를 호출할때 매개변수 앞에 &표시를 해야한다. 예제 코드 func...
싱글톤 패턴(Singleton Pattern): 언제, 왜, 어떻게 써야 할까 개요 싱글톤 패턴은 전역에서 동일한 인스턴스를 공유할 수 있도록 보장하는 디자인 패턴이다. 한 번 생성된 객체는 앱이 종료될 때까지 유지되며, 이후 모든 접근은 동일한 인스턴스를 참조한다. Swift, Objective-C 등에서 자주 사용되며, 설정, 네트워크 통신, ...
개요 사람인에서 온라인 멘토링을 진행하게 되어, 나도 신청해서 멘토링을 받게 되었다.\n 내가 취업을 준비하면서 놓친 것들이 있는지 알 수 있게 되었고 인사담당자분들의 입장을 조금이나마 더 알 수 있었던 계기인 것 같다. 회사가 먼저 연락주는 주니어의 특징 일 할 준비가 된 태도 [협업 시그널] 협업 시 오해를 줄이고, 필요한 정보를 정...
✅ 1. UICollectionView 개념: 스크롤 가능한 아이템 리스트를 보여주는 뷰. 레이아웃을 따로 지정해야 아이템이 보이고, 데이터소스와 델리게이트로 동작을 제어함. 예제: let layout = UICollectionViewFlowLayout() let collectionView = UICollectionView(frame: .zer...
클린 아키텍처는 의존성 방향을 바깥에서 안으로만 흐르게 강제. 핵심 비즈니스 로직을 외부 변화에 독립적으로 유지하려는 소프트웨어 설계 원칙. 계층 분리 가장 안쪽: Entities (비즈니스 규칙) 그 다음: Use Cases (애플리케이션 규칙) 바깥쪽: Interface Adapters (Contr...
의존성 역전 원칙 (Dependency Inversion Principle) 핵심 개념 구현체에 의존하지 않고, 프로토콜에 의존하기 상위 계층은 하위 계층의 구현이 아닌 프로토콜에 의존 추상화에 의존하여 결합도를 낮추고 유연성을 높임 의존성 역전의 두 가지 원칙 상위 모듈은 하위 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존...
문제 설명 마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다. 예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로...
개요 어떤 클래스의 로직을 특정 상황에 바꾸고 싶을 때, 그 로직을 별도로 분리하는 패턴. 조건문 남용 방지할 수 있음. 런타임에 객체가 사용하는 로직(함수)를 변경할 수 있음. 코드 // 프토토콜 정의 protocol AttackStrategy { func attack() } // 프로토콜을 준수하는 여러 클래스 정의 cl...