본문 바로가기

분류 전체보기64

Delegate Pattern (델리게이트 패턴) Delegate Pattern 이란? "객체가 자신의 책임을 다른 객체에게 위임(delegate)하는 디자인 패턴"을 의미한다. 예를 들어, 테이블뷰 또는 컬렉션 뷰를 사용할 때 어떤 액션을 취할지에 대한 책임을 뷰컨트롤러에게 UITableViewDelegate 또는 UICollectionViewDelegate를 사용하여 위임한다. 그럼 왜 굳이 "위임"이라는 것을 사용하는 것일까? 애플이 미리 구현해 놓은 UITableView 또는 UICollectionView 등의 내부 코드는 비공개이기 때문에 개발자가 이를 알 수 없고, 그렇기에 수정할 수도 없다. 위에서 예를 든 테이블의 셀을 탭했을때, 상황에 맞는 리액션을 개발자가 코드로 작성해야 한다. 하지만 개발자는 애플이 구현해 놓은 내부 코드를 수정할 .. 2024. 3. 18.
싱글톤 패턴 싱글톤 패턴에 대해 알아봄 싱글톤 패턴이란? 객체를 1개만 생성하여 공용으로 접근할 수 있도록 하는 디자인 패턴 중 하나의 유형 예를 들어 노래의 정보를 저장하는 클래스가 하나 있다고 가정해봄 그리고 제목 / 장르 / 가수를 선택할 수 있게 각각의 ViewController가 있고 이를 노래라는 클래스에 저장한다고 생각해 보면 ViewController에서 값들로 각 인스턴스의 프로퍼티에만 저장될 것임 이럴 때 사용하는 것이 바로 싱글톤 패턴임 이 클래스에서 인스턴스는 1개만 생성할 수 있도록 하고 이 후에는 접근만 가능하도록 하게 함 싱글톤 예제 // 노래 정보를 담을 클래스 생성 class MusicInfo { // static 키워드를 사용하여 타입프로퍼티 속성의 인스턴스 생성 static let .. 2023. 12. 11.
클로저는 무엇인가? 클로저란? 클로저는 코드의 블럭을 말함 1급시민으로 전달인자, 변수, 상수 등으로 저장 및 전달이 가능함 ★ 1급 시민이란? 1급 시민 또는 1급 객체라고도 함 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킴 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 경우를 말함 func 키워드를 이용해 이름을 붙여주는 함수를 클로저라고 함 다만, 클로저에는 2가지가 있음 이번에 알아볼 것은 UnNamed Closure임 let sampleClosure = { print("Hello Closure") } 기본 클로저 문법 익명 함수이기 때문에 func 키워드는 사용하지 않음 in 이라는 키워드를 기준으로 (매개변수 목록) -> 반환타입 부분은 클로저 헤드라고 함.. 2023. 12. 8.
메모리 구조 (코드, 데이터, 스택, 힙) 프로그램이 실행되기 위해서는 메모리에 실행될 프로그램이 로드되어야 함 또한, 프로그램에서 사용될 변수들을 저장할 메모리도 필요함 즉, 운영체제는 메모리에 프로그램을 실행할 수 있도록 다양한 메모리를 제공함 그 메모리는 코드 / 데이터 / 스택 / 힙 으로 구성됨 실행할 프로그램의 코드가 저장되는 영역을 말함 텍스트 영역이라고 부름 프로그램의 전역 변수와 정적 변수가 저장되는 영역을 말함 프로그램 시작과 생성되고, 프로그램 종료될 때 소멸함 데이터 영역은 data 영역과 bss 영역으로 구성됨 data 영역에는 초기화 된 데이터 저장됨 bss 영역에는 초기화 되지 않은 데이터 저장됨 초기화 된 데이터는 ROM에 저장되는데 초기화 되지 않은 데이터까지 ROM에 저장하면 공간 낭비됨 즉, RAM과 ROM에 저.. 2023. 12. 7.