ios 11

[iOS] GCD(Grand Central Dispatch) 알아보기

안녕하세요 스벅보안관입니다.날씨가 요즘 더워지고있네요,, 저는 요즘 에어컨값 아끼려고 스타벅스에서 공부를 하고 있습니다.(TMI)아무튼 이 글을 보는 여러분도 더위조심하시고 감기 조심하세요. :) 오늘은 Swift의 GCD(Grand Central Dispatch)에 대해 이야기해보려고 합니다.어찌보면 iOS 개발자 면접에 필수로 나오는 키워드인데요, 한번 확실하게 알아보려합니다 ㅎ GCD란?Grand Central Dispatch (GCD)는 Apple에서 제공하는 멀티스레딩 API입니다. 즉, GCD를 이용하면 프로그램이 동시에 여러 작업을 병렬로 실행할 수 있게 되어, 성능을 크게 향상시킬 수 있습니다. 특히 UI 작업을 처리하는 메인 스레드와 백그라운드에서 실행되는 작업을 쉽게 구분할 수 있게 해..

iOS 2024.06.24

[iOS] 일급 객체에 대해 알아보기

안녕하세요 스벅보안관입니다. 오늘은 Swift의 일급 객체(First-Class Citizen)에 대해 이야기해보려고 합니다.일급 객체라는 용어가 다소 생소할 수도 있지만, 사실 우리가 Swift에서 매일같이 다루는 것들입니다.막상 이해하면 그렇게 어렵지 않으면서 중요한?(뭔 소리야...) 개념인거같습니다.   일급 객체란?먼저, 일급 객체가 무엇인지 정의해볼까요? 일급 객체(First-Class Citizen)란 다른 객체들과 동등하게 취급되며, 다음과 같은 작업이 가능한 객체를 말합니다:변수에 할당 가능함수의 인자로 전달 가능함수의 반환 값으로 사용 가능이 세 가지 조건을 충족하면 해당 객체를 일급 객체라고 부릅니다. 간단히 말해서, 일급 객체는 프로그램 내에서 자유롭게 이동할 수 있는 객체입니다. ..

iOS 2024.06.20

[iOS] Type Casting 알아보기

안녕하세요 스벅보안관입니다.오늘은 Swift에서 자주 등장하는 타입 캐스팅(Type Casting) 에 대해 알아보려고 합니다. Swift를 사용하다 보면, 객체 간의 타입을 변환해야 하는 경우가 종종 있는데요, 이때 사용하는 것이 바로 타입 캐스팅입니다.타입 캐스팅(Type Casting)이란?타입 캐스팅은 인스턴스가 특정 클래스, 구조체, 열거형에 속하는지 확인하거나, 해당 타입으로 변환하는 것을 의미합니다. Swift는 타입 안전성을 보장하기 때문에 잘못된 타입 변환은 컴파일 시점 또는 런타임 시점에 오류로 처리됩니다. Swift에서의 타입 캐스팅은 주로 두 가지 방식으로 이루어집니다.is 연산자: 객체가 특정 타입에 속하는지 확인합니다.as 연산자: 객체를 특정 타입으로 변환합니다.이 두 연산자를..

iOS 2024.06.17

[iOS] 클로저(Closure) 알아보기

안녕하세요. 스벅 보안관입니다.이번 시간에는 클로저에 대해 알아보겠습니다. 사실 오래전에 Swift 문법 공부를 하다가 클로저에 대해 잠깐 공부를 했었는데, 너무 이해가 안되서 때려쳤습니다..ㅋㅋㅋㅋ. 그래도 어느정도 개발을 진행하다보니 클로저에 대해 이해를 많이 하게 된거같아 이렇게 클로저에 대한 블로그를 작성해보려고 합니다. 사실 개발하다보면 코드안에 나도 모르는 클로저를 사용하고 있던 경우가 많아서 어쩔 수 없이(?) 공부를 따로 하긴 해야합니다,, ㅎㅎ  클로저(Closure)란?클로저는 코드에서 독립적인 블록으로, 일급 객체로 취급됩니다.(일급 객체란 변수에 할당하거나, 함수의 인자로 전달하거나, 함수의 반환 값으로 사용할 수 있는 객체입니다. 따로 다룰 예정..) 클로저는 변수나 상수에 할당할..

iOS 2024.06.13

[iOS] 네트워크 통신 alamofire 라이브러리 알아보기

안녕하세요. 스벅 보안관입니다.이번 게시글에서는 iOS 개발에서 널리 사용되는 네트워크 라이브러리인 Alamofire에 대해 알아보겠습니다. Alamofire는 HTTP 네트워킹을 간편하게 할 수 있게 도와주는 라이브러리로, 저 역시 개발하면서 서버간 통신을 할 때 거의 필수로 사용하는거 같습니다. (사실 이거밖에 모름...ㅋㅋㅋ)Alamofire 설치 방법 1. CocoaPods 설치: 프로젝트 루트 디렉토리에서 Podfile을 열고 다음 내용을 추가합니다.pod 'Alamofire' 2. Pod 설치: 터미널에서 다음 명령어를 실행합니다.pod install 3. 프로젝트 열기: .xcworkspace 파일을 열어 프로젝트를 엽니다. Alamofire의 기능Alamofire를 사용하면 GET 요청과 ..

iOS 2024.06.10

[iOS] 지연 저장 프로퍼티(Lazy) vs 타입 프로퍼티 (Static)

안녕하세요 스벅보안관입니다. 이번 시간에는 Swift에서 자주 사용하는 지연 저장 프로퍼티(Lazy)와 타입 프로퍼티(Static)에 대해 알아보겠습니다.두 프로퍼티의 차이점과 사용 예시를 통해 어떻게 활용할 수 있는지 알아보겠습니다.  지연 저장 프로퍼티 (Lazy)Lazy 프로퍼티란?지연 저장 프로퍼티는 처음 사용될 때 초기화되는 프로퍼티입니다. 객체가 생성될 때 초기화되지 않고, 해당 프로퍼티가 실제로 호출될 때 초기화되기 때문에 불필요한 성능 낭비를 줄일 수 있습니다.사용 방법class LazyExample { lazy var lazyProperty: String = { return "꽁꽁얼어붙은 swift위로 lazy가 등장합니다." }() init() { ..

iOS 2024.06.01

[iOS] TableViewController - [2]

안녕하세요 스벅보안관입니다.지난 시간에는 TableViewController의 기본 개념과 설정에 대해 알아보았습니다. 이번 시간에는 TableViewController의 고급 기능(?)과 예제를 다루어 보겠습니다.   약간 있ability하게(있어보인다는 뜻...) 블로그를 작성하고싶은데, 작성하고싶은 개념이 너무 많아 뭔가 딱딱해지는 느낌,,,   TableViewController의 고급 기능 1. 섹션 추가 TableView는 여러 섹션을 가질 수 있습니다.각 섹션은 개별적으로 제목을 가질 수 있으며, 섹션 내의 행들을 그룹화할 수 있습니다.override func numberOfSections(in tableView: UITableView) -> Int { return sections.co..

iOS 2024.05.28

[iOS] TableViewController - [1]

안녕하세요 스벅보안관입니다.이번 시간에는 TableViewController에 대해 알아보려고 합니다.TableViewController는 iOS 앱개발을 하면서 아마 거의 필수로 사용하는 것 같습니다.개념과 중요한 요소들을 정리해보도록 하겠습니다! TableViewController란?TableViewController는 리스트 형태의 데이터를 화면에 표시하고, 사용자와 상호작용을 할 수 있게 해주는 ViewController의 한 종류입니다. iOS 개발에서 매우 자주 사용되며, 연락처 앱이나 설정 앱 등 다양한 애플리케이션에서 활용되고 있습니다. TableViewController의 구조TableViewController는 기본적으로 UITableView와 UITableViewDelegate, UI..

iOS 2024.05.24

[iOS] GestureRecognizer

안녕하세요. 스벅보안관입니다.요즘 6시반에 일어났더니 아침형인간이 되기는 커녕, 그냥 죽고싶습니다...  암튼,이번에는 iOS에서 제공하는 GestureRecognizer에 대해 설명하겠습니다. GestureRecognizerGestureRecognizer는 말 그대로 제스처에 관련된 이벤트들을 인식해주는 클래스다.간단하게 말하면 터치 이벤트와 같은 기능들을 간단하게 처리해준다. GestureRecognizer 종류1. UITapGestureRecognizer- 단일 탭 또는 다중 탭을 인식합니다- 사용 예: 버튼 클릭, 이미지 확대/축소 등. 2. UIPinchGestureRecognizer- 두 손가락을 사용한 핀치 제스처를 인식합니다.- 사용 예: 이미지 확대 및 축소 3. UIRotationGes..

iOS 2024.05.20

[iOS] 버전별 UIButton의 차이

안녕하세요. 스벅 보안관입니다.오늘은 UIButton에 대해 알아보겠습니다. iOS 15.0 이전button.setImage(UIImage(named: "image"), for: .normal)button.imageEdgeInsets = UIEdgeInsets(top: 1, left: 2, bottom: 3, right: 12) 15.0 이전에는 위와 같은 코드의 형식으로 UIButton안에 Image를 설정했습니다.하지만 이 방식은 iOS 15.0 이후부터는 지원하지 않습니다. iOS 15.0 이후iOS 15.0 이후에는 UIButton의 padding과 insets를 조절할 수 있는 3가지 옵션이 생겼습니다.titlePadding : 타이틀과 서브타이틀 간격imagePadding : 타이틀과 이미지와..

iOS 2024.05.15