본문 바로가기

전체 글131

면접스터디 : GC(Garbage Collection)와 ARC Swift에서 ARC로 메모리를 관리하듯이, 다른 언어들도 메모리를 관리해주는 관리 모델이 있는데 대표적인 것이 GC(Garbage Collection)이다. ARC -메모리 영역 중 heap 영역은 동적인 관리가 필요하다. 따라서 필요가 없는 메모리는 적절한 때에 소멸시켜주어야 하는데 이 메모리 관리를 ARC(Auto Reference Counting) 도구를 이용해서 한다. -ARC는 heap 영역에 참조형 자료들이 얼마나 참조되고 있는지 참조횟수로 Count 하고, 참조횟수가 0이 될 때, 메모리가 해제되는 형식이다. -참조횟수가 0이 된다는 것 = 클래스의 인스턴스가 더 이상 필요하지 않을 때 -컴파일 단계에서 코드 분석을 통해 언제 참조되고(retain), 언제 해제 되는지(release)에 대.. 2023. 1. 10.
With Calendar 프로젝트를 하면서 With Calendar 간단소개 -나의 일정, 기억하고 싶은 메모 등을 기록하는 스케쥴 서비스 어플 -개발자 공부를 하면서 "기억보다 기록" 해야한다는 말을 몸소 깨닫고 실천에 옮길 수 있도록 도와주는 앱을 만들면 좋지 않을까 라는 생각에 프로젝트를 시작했다. 주요 기능 1. 달력 2. 공유 달력 3. 간단 메모 1-1 달력기능 안에 구체적인 기능들 1. 달력 -라이브러리를 사용하지 않고 Swift에서 제공하는 Date, Calendar 등을 이용해서 달력을 만듬. 2. 달력 안에 기록한 일정을 보여주는 기능으로 하루 일정과 기간 일정 -솔직히 이 기능이 제일 까다로웠음. -달력을 컬렉션뷰로 구성했고, 각 컬렉션 셀 안에 테이블 뷰가 있음. 컬렉션 셀마다 2022-01-30 이런식으로 날짜 데이터가 들.. 2023. 1. 9.
면접스터디 : 프로세스와 스레드 면접 단골 질문이라고 하는 "프로세스와 스레드에 관하여" 이 질문의 의도는 운영체제가 시스템 자원을 어떤 단위로 할당해주고, 프로세스 내에서 스레드는 이 자원을 어떻게 활용하는 지라고 생각한다. 1. 프로세스 -사전적인 의미로는 "운영체제로부터 할당받는 시스템 자원의 작업 단위", "메모리에 올라와 실행되고 있는 프로그램의 인스턴스" 라고 한다. -먼저 프로그램이란 운영체제로부터 아직 시스템 자원을 할당받지 못한 정적인 상태의 코드 덩어리 라고 할 수 있다. 이 프로그램이 실행하는 순간 운영체제가 시스템 자원을 할당해주고 메모리에 올라가게 되는데 이 상태를 프로세스라고 하는 것이다. 단점 1. 프로세스는 독립적인 메모리 영역(code, data, heap, stack)을 할당 받는다. 그래서 프로세스끼리.. 2023. 1. 6.
면접스터디 : Class의 성능을 향상시킬 수 있는 방법들을 나열 Class의 성능 향상에 도움을 주는 방법들 1. 서브클래싱이 필요하지 않은 Class라면 Class 선언 시 앞에 final 을 붙여준다. -final을 붙여주면 Class의 성능이 향상된다고 하는데, 이 이유는 Swift의 Dispatch에 대해 알아야 이해가 가능하다. -Dispatch는 GCD가 사용하는 Queue인 DispatchQueue와 다른 개념으로 "프로그램이 어떤 메소드를 호출할 것인지 결정하고, 그 메소드를 실행하는 매커니즘" 을 뜻한다. Dispatch에는 Static Dispatch와 Dynamic Dispatch가 있다. 1. Static Dispatch -컴파일 타임에 호출될 메소드를 결정하여 런타임 때 실행한다. -컴파일 타임에 컴파일러가 메소드가 작성된 코드 위치를 파악한 .. 2022. 12. 28.
With Calendar 개인정보 처리방침 ('https://iosjiho.tistory.com/'이하 'With Calendar')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2022년 12월 24부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://iosjiho.tistory.com/'이하 'With Calendar')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 .. 2022. 12. 24.
면접스터디 : Copy-on-Write CoW : Copy on Write -컴퓨터 프로그래밍에서 복사 동작을 할 때 복사본과 원본이 수정되지 않을 경우 새 리소스를 만들지 않고 원본 리소스를 공유하고, 복사본이나 원본에서 첫 수정이 일어났을 때만 새 리소스를 만드는 관리 기법이다. -우리가 사용하는 Swift에서는 CoW작업이 Collection Type(Array, Dictionary, Set)을 복사해서 사용할 때 실행된다. -미리 알고가야 할 점은 Swift에서는 Reference Type(클래스)과 Value Type(구조체, 열거형 등)이 있다. 이 중 Value Type은 copy semantic을 가지고 있어 만약 Value Type의 값을 다른 변수에 넣었을 때, 해당 값의 데이터가 복사되어 2개의 서로 다른 메모리 주소로 저.. 2022. 12. 22.