apple 7

[Swift] Custom String Interpolation: 문자열 보간법 확장

1. 개요Swift에서 문자열을 다룰 때 자주 사용되는 기능 중 하나가 문자열 보간법(String Interpolation)입니다. 이는 Hello, \(name)!과 같은 방식으로 변수를 문자열에 삽입하는 기능입니다. 하지만 기본 제공되는 보간법 외에도 Custom String Interpolation(사용자 정의 문자열 보간법)을 활용하면 보다 강력하고 유연한 문자열 포맷팅이 가능합니다.이 글에서는 Swift의 Custom String Interpolation을 이해하고 활용하는 방법을 예제와 함께 설명하겠습니다.2. 문자열 보간법기본적으로 Swift의 문자열 보간법은 \() 구문을 사용하여 변수를 문자열 안에 포함할 수 있도록 해줍니다. 예제를 살펴보겠습니다.let name = "Alice"let ..

[Swift] ABI(Application Binary Interface) 안정성

1. ABI(Application Binary Interface)란?개념 및 정의ABI(Application Binary Interface)는 컴파일된 바이너리 코드 간의 인터페이스를 정의하는 규칙 집합이다. 이는 운영체제, 하드웨어 아키텍처, 프로그래밍 언어에 따라 달라질 수 있으며, 주로 함수 호출 규약, 데이터 타입의 크기 및 메모리 배치, 심볼 링킹 규칙 등을 포함한다.API와 ABI의 차이점많은 개발자가 API(Application Programming Interface)와 ABI를 혼동하는 경우가 많다. API는 소스 코드 레벨에서 함수, 클래스 등의 사용 방법을 정의하는 반면, ABI는 바이너리 코드 레벨에서 프로그램이 실행되는 환경에서의 규약을 정의한다.API: 소스 코드가 특정 라이브러리..

[Swift] Swift6의 주요 내용

Swift6는 Swift 언어의 최신 버전으로, 성능 향상과 개발자 경험 개선을 목표로 많은 변화가 포함되어 있다.이번 글에서는 Swift6의 주요 변경 사항과 새로운 기능에 대해 살펴본다.1. 동시성(Concurrency) 모델 개선Swift 5.5부터 도입된 async/await 및 actor 모델이 Swift6에서 더욱 강화되었다. 특히, 동시성 관련 코드의 안정성을 높이기 위해 다음과 같은 개선이 이루어졌다.Strict Concurrency Checking: 동시성 관련 오류를 컴파일 타임에서 더욱 정확하게 감지할 수 있도록 개선됨.Actor 강화: actor 간의 메시지 전달 방식이 최적화되어 성능이 향상됨.Isolation 모델 개선: 동시성 안전성을 높이기 위해 기존의 전역 상태 접근을 더욱..

클라이언트 2025.02.15

Mysteries of AutoLayout

이번 포스트에서는 WWDC 2015에 소개된 Mysteries of AutoLayout Part.2에 대한 내용을 간략하게 정리해보고자 합니다. Mystery #7. Layout Cycle Application Run Loop : Application이 계속 반복적으로 실행됩니다. Constraints Change : 제약조건에 변화가 생기면 변화된 제약조건이 적용될 때까지 Calculated Layout이 정의됩니다. Deferred Layout Pass : 위에서 언급된 레이아웃이 최종 변경될 때까지 Deferred Layout Pass가 예약됩니다. 모든 Layout Pass가 되돌아 오게 되면, 뷰의 Hierarchy를 거쳐 뷰의 모든 프레임을 업데이트하게 됩니다. Constraints Chang..

클라이언트 2021.03.01

[iOS] 안전한 데이터 저장, Keychain 사용하기

이번 포스트에서는 Keychain을 사용하여 안전하게 데이터를 저장하고 불러오는 방법에 대해 살펴보고자 합니다. Keychain은 디바이스 안에 암호화된 데이터 저장 공간을 의미합니다. 사용자는 암호화된 공간에 데이터를 안전하게 보관할 수 있습니다. Keychain에 저장할 수 있는 데이터는 다양한 데이터가 포함될 수 있습니다. 사용자 계정 정보를 비롯하여 결제 지불 정보, 사용자 개인 정보 등 민감한 데이터를 모두 저장할 수 있습니다. 현재까지 Keychain 영역이 외부 침입자에 의해 뚫렸다는 소식이 없었을 만큼 안전한 공간입니다. Keychain Service는 Keychain Service API를 통해 데이터를 암호화할 후 Keychain에 저장하게 됩니다. 아래 그림을 살펴보면 이해에 도움이 ..

클라이언트 2020.08.17

Keychain을 사용한 민감 정보 처리

이번 포스트에서는 비밀번호, 주민번호 등 민감 정보를 안전하게 처리할 수 있는 Keychain에 대해서 살펴보도록 하겠습니다. 우리는 기존에 데이터를 기기에 저장해두기 위해 UserDefaults를 사용하였었는데 이는 단순 데이터를 저장하기에는 문제가 없으나 비밀번호, 인증서, 개인 정보 등 민감한 정보를 저장하기에는 base-64로 인코딩해서 저장하는 것으로 충분하지 않는가? 라고 생각할 수 있겠지만 이는 보안 상 결코 안전하지 않습니다. 1. KeyChain 이란? 컴퓨터 사용자는 종종 안전하게 보관해야하는 작은 비밀을 가지고 있습니다. 예를 들어, 대부분의 사람들은 수많은 온라인 계정을 관리합니다. 각각에 대해 복잡하고 고유한 암호 (Unique Passwords)를 기억하는 것은 불가능하지만 암호..

클라이언트 2019.12.07

[APP] Notissu - 숭실의 모든 공지사항

2019년 11월 15일 Notissu 앱 출시 심사를 올렸다. 우리 학교의 모든 학부의 공지사항을 한 번에 볼 수 있는 어플리케이션이다. Swift 5 기반으로 구현되었으며 MVP 패턴으로 개발하였다. 조만간 ReactorKit으로 아키텍처 변환을 진행할 예정이다. 정말 정보 제공을 목적으로 한 앱이라 수익 모델 하나 없으며 개인정보를 일체 취급하지 않아 이용자가 부담 없이 사용할 수 있는 어플리케이션이라고 생각한다. 2019년 11월 17일 앱스토어 심사 승인 완료 심사가 나는 대로 스토어 링크를 걸도록 하겠다. GitHub Link (Open Source Application for iOS) https://github.com/della-padula/Notissu della-padula/Notissu..

클라이언트 2019.11.15