목록전체 글 (45)
개발콩블로그

안녕하세요!개발콩입니다. 오늘은 UILabel에서 특정 텍스트 변경하는 방법 대해서 소개하도록 하겠습니다. 어떤 상황에 필요할까?우리는 주로 사용자에게 UILabel에서 특정 text를 Bold처리 혹은 Highlight를 함으로써 많은 이점을 얻을 수 있습니다.가독성 향상 - 중요한 정보가 한눈에 들어온다빠른 정보 전달 - 시선을 끌어서 사용자에게 먼저 정보를 제공할 수 있다.이러한 UX적인 측면 향상을 위해서 많이 사용할 수 있는 방법인 것 같습니다. NSMutableAttributedString텍스트 일부에 대해 시각적 스타일, 하이퍼링크, 접근성 데이터 등의 속성을 변경할 수 있는 가변 문자열입니다. 사용방법guard let labelText = (UILabel).text else { re..
안녕하세요!개발콩입니다. 오늘은 Parameter packs 대해서 알아보도록 하겠습니다. Swift 5.9에서 Parameter Packs라는 개념이 도입되었습니다.왜 등장하게 되었는지, 또한 어떻게 사용하는 지에 대해 정리하기 위해서 글을 작성합니다. Parameter packs 등장이유여러 숫자에 1을 더하는 함수를 만든다고 가정을 했을 때 기존에는 overloading을 활용하여 사용할 수 있었습니다.func addOne(num: Int) -> Int { return num + 1}func addOne(num1: Int, num2: Int) -> (Int, Int) { return (num1 + 1, num2 + 1)}func addOne(num1: Int, num2: Int, num..

안녕하세요! 개발콩입니다.오늘은 MVC, MVP, MVVM 대한 간략한 정리와 제 생각을 정리하기 위해 게시글을 작성합니다. MVC Model데이터와 비즈니스 로직을 담당합니다.UI와 완전히 독립적으로 동작합니다. View사용자에게 보여지는 UI 요소입니다.사용자의 입력을 받습니다. ControllerModel과 View사이의 중재자 역할을 합니다.View로부터 사용자 입력을 받아 Model을 업데이트합니다.Model의 변경사항을 View에 반영합니다. 우리는 View의 속성과 입력, delegate, datasource, addtarget, 네트워크 통신을 모두 ViewController에 작성하는 경우가 많습니다.apple의 네이밍 ViewController에서 볼 수 있듯이 View와 Contro..
안녕하세요!개발콩입니다. 오늘은 DispatchGroup 대해서 이어서 알아보도록 하겠습니다. 이전 블로그 게시글 내용의 마지막이 비동기 코드는 작업이 끝나는 시점을 특정지을 수 없다는 것에 대해서 말씀드렸습니다.만약 여러개의 비동기 작업이 동시에 실행되고,여러 개의 비동기 작업이 모두 끝났을 경우에 특정 동작을 하고 싶을 경우에는 어떻게 할까요?이러한 작업을 도와줄 수 있는 DispatchGroup에 대해 소개해드리고자 합니다. DispatchGroup비동기 작업들에 관하여 그룹을 만들고 작업 항목의 실행이 완료되었을 때 완료 핸들러를 실행할 수 있습니다.👉 여러 비동기 작업들이 실행이 완료되었을 때 원하는 동작을 실행할 수 있도록 도와줍니다. DispatchGroup 사용방법Dispatch..
안녕하세요!개발콩입니다. 오늘은 동시성 프로그래밍에 대해서 이어서 알아보도록 하겠습니다.오늘은 GCD를 사용하여 구현할 수 있는 4가지 스레드 실행 방식에 대해 정리해보고자 합니다. GCD(Grand Central Dispatch)는 iOS에서 멀티스레드 작업을 효율적으로 처리할 수 있도록 도와주는 프레임워크입니다.GCD에서는 큐(Queue)의 종류와 작업 실행 방식에 따라 총 4가지의 경우의 수가 존재합니다. GCD를 사용하여 구현할 수 있는 4가지 경우의 수main Queue(직렬 큐) + sync(동기)main Queue(직렬 큐) + async(비동기)global Queue(동시 큐) + sync(동기)global Queue(동시 큐) + async(비동기)아래의 예시 코드를 통해 어떤식..
안녕하세요!개발콩입니다. 오늘은 동시성 프로그래밍에 대해서 알아보도록 하겠습니다.동시성 프로그래밍과 앞으로 GCD를 잘 이해하기 위해서는 사전지식이 많이 있습니다.해당 글을 통해 전체적인 흐름을 정리하고자 합니다. Core코어는 한 번에 한 가지 일만 처리할 수 있습니다.각 작업에 매우 짧은 시간을 할당하고 작업을 전환하여 여러 스레드를 번갈아 실행함으로써 동시에 작업하는 것처럼 보일 수 있습니다. (Context Switching) Program작업을 실행할 수 있는 파일입니다.하드디스크나 SSD 같은 저장 장치에 저장된 상태로 존재합니다.메모리에 올라가있지 않은 상태입니다. Process프로그램을 실행하여 운영체제에 의해 메모리(RAM)에 올라간 상태입니다.독립적인 메모리 공간을 가지며, 다른 ..

안녕하세요!개발콩입니다. 오늘은 Image Resize & DownSampling에 대해서 알아보도록 하겠습니다. iOS개발을 하면서 원본 사이즈가 큰 이미지를 표현하는 경우가 있었습니다.해당 이미지를 보여줄 때 많은 메모리가 할당되는 것을 확인했습니다.화면에 보여지는 이미지의 크기는 동일하지만 메모리가 많이 할당되는 것을 보며 최적화하는 방법을 찾고실제로 적용시킨 내용을 정리한 글 입니다. iOS에서 이미지가 차지하는 메모리이미지는 iOS에서 가장 많은 메모리를 차지하는 것들 중 하나입니다. 590KB의 filse size를 갖고 있는 이미지는2048 * 1536 * 4(Red, Green, Blue, Alpha) * 8(0-255) bit를 표현합니다.약 10MB를 차지하게 됩니다. iOS에..

안녕하세요!개발콩입니다. 오늘은 UICollectionView 동적 크기 Cell 만들기에 대해서 알아보도록 하겠습니다!! UICollectionView Cell을 동적 크기로 설정하는 방법에 대한 자료가 많이 없는 것 같습니다.사용법은 간단해서 공유해드리고자 이 글을 작성합니다! UICollectionView 동적 크기 Cell을 사용하는 예시 화면 우리는 위와 같이 글자 크기에 따라 Cell의 크기를 다르게 하고 싶은 경우가 있습니다.우리가 사용하는 방법은 UILabel은 자체적인 크기가 있기 때문에 이를 기준으로 Layout을 잡을 예정입니다! 동적 Cell 크기 적용하기CollectionView 설정하기private let colorCollectionView: UICollectionView..