전체 글(103)
-
LLVM 에 대해서 알아보자.
LLVM은 다양한 프로그래밍 언어를 대상으로 하는 `컴파일러` 개발 및 코드 최적화를 위한 공통 인프라를 제공하며, Swift 그리고 다른 언어(C, C++, Rust)에 대한 컴파일러와 관련된 도구를 개발하는 데 사용됩니다. - 2000년 일리노이 대학교에서 `크리스 래트너` 외 몇명이 만들기 시작했다. - LLVM은 중간코드(`intermediate`) / 이진(`binary`) 기계 코드를 구성, 최적화 및 생성하는데 사용되는 라이브러리. - 프로그래머는 사람이 읽을 수 있는 프로그래밍 언어로 코드를 작성 하지만 기계는 이 언어를 이해하지 못한다 이때 컴파일러가 기계가 코드를 실행(읽을수)있게 변환 해준다. - `intermediate` 또는 `binary machine` 코드로 내 코드를 컴파일 ..
2023.09.18 -
Cache
NSCache - 하기 이미지 링크를 활용하여 NSCache 구현 - 이미지 1: https://wallpaperaccess.com/download/europe-4k-1369012 - 이미지 2: https://wallpaperaccess.com/download/europe-4k-1318341 - UI 구성 1. 각 이미지를 URLSession을 통해 받아와서 ImageView 표시 @IBAction func ImageViewLoad(_ sender: UIButton) { switch sender { case firstImageView: getImage(firstImageView, "https://wallpaperaccess.com/download/europe-4k-1369012") case second..
2023.08.30 -
메모리 구조 와 ARC
메모리의 구조 Q. 컴퓨터의 주기억장치는 어떤어떤 영역을 가지고 있을까? 1. 스택 (Stack): 스택은 함수 호출과 관련된 정보를 저장하는 데 사용됩니다. 함수 호출 시에 호출 스택 프레임이 스택에 추가되고, 함수가 반환되면 해당 프레임이 스택에서 제거됩니다. 스택은 후입선출(LIFO) 방식으로 동작합니다. 2. 힙 (Heap): 힙은 동적으로 할당된 메모리를 저장하는 데 사용됩니다. 힙은 객체와 데이터 구조의 인스턴스, 그리고 동적으로 생성된 데이터를 저장하는 데 사용됩니다. 힙은 개발자가 메모리를 할당하고 해제하는 데 직접적인 제어를 갖습니다. 3. 데이터 영역 (Data Section): 데이터 섹션은 전역 변수와 정적 변수를 저장하는 데 사용됩니다. 프로그램 실행 전에 할당되고 프로그램 종료 ..
2023.08.30 -
Swift 의 장점에 대해서!
Objective-C 에서 넘어오면서 Swift의 특징은 Fast, Modern, Safe, Interactive 였다. 그리고 이후에는 Safe(안정성), Fast(신속성), Expressive(표현성)으로 변경되었다. Safe(안정성), Fast(빠름), Expressive(표현) - Safe 안정성 에 있어서 옵셔널 Objective-C 에서 nil 과 Null이라는 상수를 기술적으로 혼용이 가능하다. nil ->객체참조 사용, null은 그밖의 다른 포인트에 자료형 Objective-C에서는 변수나 프로퍼티에 nil 값을 할당할 수 있습니다. 이는 해당 변수가 값이 없음을 나타냅니다. 그러나 이것은 컴파일러나 런타임에서 강제적으로 체크되지 않습니다. NPE java 용어 이며, 프로그램이 실행되는..
2023.08.22 -
SOLID
🔥 SOLID SOLID 원칙을 지킴으로써 유지보수가 쉽고, 유연하고, 확장이 쉬운 소프트웨어를 만들 수 있습니다. 약어 - 개념 | S | SRP | 단일 책임 원칙(Single Responsibility Principle) : 한 클래스는 하나의 책임만 가져야 한다. | | O | OCP | 개방-폐쇄 원칙(Open/Closed Principle) : 소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야한다. | | L | LSP | 리스코프 치환 원칙(Liskov Substitution Principle) : 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야한다. | | I | ISP | 인터페이스 분리 원칙(Interface Segregation ..
2023.08.22