Tags

iOS

ios

[iOS] Auto Layout 우선순위와 Baseline 이해하기

Auto Layout을 사용할 때 제약 조건만큼 중요한 것이 우선순위다. 특히 텍스트를 표시하는 뷰는 고유 콘텐츠 크기(intrinsic content size), Content Hugging, Compression Resistance를 함께 이해해야 예상하지 못한 늘어남과 잘림을...

글 읽기
ios

[Xcode] 비동기 단위 테스트와 UI 테스트

XCTest에서 비동기 동작을 검증하려면 테스트가 끝나야 하는 조건을 명확히 표현해야 한다. 단순히 일정 시간 sleep하는 방식은 느리고 불안정하므로, XCTestExpectation이나 조건 기반 expectation을 사용한다.

글 읽기
ios

[iOS] Objective-C의 KVC와 KVO 이해하기

KVC(Key-Value Coding)와 KVO(Key-Value Observing)는 이름이 비슷하지만 역할은 다르다. KVC는 문자열 키로 객체의 값을 읽고 쓰는 방식이고, KVO는 KVC를 기반으로 속성의 변경을 관찰하는 방식이다.

글 읽기
Swift

[Swift] MVVM의 역할과 데이터 흐름

MVVM(Model–View–ViewModel)은 화면 표시와 비즈니스 로직을 분리하는 설계 방식이다. 중요한 점은 세 글자의 순서가 호출 순서를 뜻하지 않는다는 것이다. Model → View → ViewModel처럼 한 방향으로만 흐르는 구조가 아니라, 각 구성 요소의 책임과 ...

글 읽기
ios

[Xcode] iOS 프로젝트에 프레임워크 추가하기

iOS 프로젝트에 바이너리 프레임워크를 추가할 때는 링크(link)와 임베드(embed)를 구분해야 한다. 빌드에는 성공했지만 앱 실행 직후 dyld 오류가 발생한다면, 대부분 동적 프레임워크가 앱 번들에 포함되지 않았거나 서명·아키텍처가 맞지 않는 경우다.

글 읽기
맨 위로 이동 ↑

Swift

Swift

[Swift] 클로저 기반 데이터 바인딩과 Box

데이터 바인딩은 상태가 바뀌었을 때 그 변화를 UI 같은 소비자에게 전달하는 연결 방식이다. UIKit에서는 delegate, KVO, NotificationCenter, Combine, 클로저 등 여러 선택지가 있다. 작은 MVVM 예제에서는 Box라는 단순한 래퍼로 동작 원리를...

글 읽기
Swift

[Swift] Optional과 if let·guard let

Swift의 Optional은 값이 있거나 없을 수 있음을 타입으로 표현한다. String?은 String과 다른 타입이며, 값을 사용하려면 안전하게 꺼내는 과정이 필요하다.

글 읽기
Swift

[Swift] 자바스크립트와 스위프트 클로저 차이

Swift와 JavaScript는 모두 함수를 값처럼 전달할 수 있고, 함수가 선언된 주변 스코프의 값을 캡처할 수 있다. 두 언어에서 클로저의 핵심 개념은 같지만, 문서에서 사용하는 용어와 메모리 관리 방식에는 차이가 있다.

글 읽기
Swift

[Swift] 프로퍼티 한 번에 정리하기

Swift의 프로퍼티는 타입이나 인스턴스에 값을 연결한다. 값을 직접 저장하는 저장 프로퍼티뿐 아니라, 값을 계산하는 연산 프로퍼티와 변경을 감지하는 프로퍼티 옵저버도 제공한다.

글 읽기
Swift

[Swift] MVVM의 역할과 데이터 흐름

MVVM(Model–View–ViewModel)은 화면 표시와 비즈니스 로직을 분리하는 설계 방식이다. 중요한 점은 세 글자의 순서가 호출 순서를 뜻하지 않는다는 것이다. Model → View → ViewModel처럼 한 방향으로만 흐르는 구조가 아니라, 각 구성 요소의 책임과 ...

글 읽기
맨 위로 이동 ↑

Xcode

ios

[iOS] Auto Layout 우선순위와 Baseline 이해하기

Auto Layout을 사용할 때 제약 조건만큼 중요한 것이 우선순위다. 특히 텍스트를 표시하는 뷰는 고유 콘텐츠 크기(intrinsic content size), Content Hugging, Compression Resistance를 함께 이해해야 예상하지 못한 늘어남과 잘림을...

글 읽기
ios

[Xcode] 비동기 단위 테스트와 UI 테스트

XCTest에서 비동기 동작을 검증하려면 테스트가 끝나야 하는 조건을 명확히 표현해야 한다. 단순히 일정 시간 sleep하는 방식은 느리고 불안정하므로, XCTestExpectation이나 조건 기반 expectation을 사용한다.

글 읽기
ios

[Xcode] iOS 프로젝트에 프레임워크 추가하기

iOS 프로젝트에 바이너리 프레임워크를 추가할 때는 링크(link)와 임베드(embed)를 구분해야 한다. 빌드에는 성공했지만 앱 실행 직후 dyld 오류가 발생한다면, 대부분 동적 프레임워크가 앱 번들에 포함되지 않았거나 서명·아키텍처가 맞지 않는 경우다.

글 읽기
맨 위로 이동 ↑

Objective-C

ios

[iOS] Objective-C의 KVC와 KVO 이해하기

KVC(Key-Value Coding)와 KVO(Key-Value Observing)는 이름이 비슷하지만 역할은 다르다. KVC는 문자열 키로 객체의 값을 읽고 쓰는 방식이고, KVO는 KVC를 기반으로 속성의 변경을 관찰하는 방식이다.

글 읽기
맨 위로 이동 ↑

PKI

pki

[PKI] VID와 EVID의 역할

VID(Virtual ID)는 국내 전자서명인증체계에서 인증서 소유자의 식별번호를 인증서에 그대로 넣지 않고 본인 확인에 사용할 수 있도록 만든 가상식별번호다. EVID(Encrypted VID)는 인증서 발급 과정에서 VID 관련 정보를 인증기관에 안전하게 전달하기 위한 암호화된...

글 읽기
pki

[PKI] RSA 암호화와 전자서명 정리

RSA는 공개 키와 개인 키를 사용하는 비대칭 암호 알고리즘이다. 큰 정수의 소인수분해가 어렵다는 성질에 안전성의 기반을 두며, 암호화와 전자서명에 모두 활용할 수 있다. 하지만 같은 수학 연산을 쓴다고 해서 암호화와 서명이 서로의 단순한 역연산인 것은 아니다. 각각 다른 인코딩 ...

글 읽기
맨 위로 이동 ↑

MVVM

Swift

[Swift] 클로저 기반 데이터 바인딩과 Box

데이터 바인딩은 상태가 바뀌었을 때 그 변화를 UI 같은 소비자에게 전달하는 연결 방식이다. UIKit에서는 delegate, KVO, NotificationCenter, Combine, 클로저 등 여러 선택지가 있다. 작은 MVVM 예제에서는 Box라는 단순한 래퍼로 동작 원리를...

글 읽기
Swift

[Swift] MVVM의 역할과 데이터 흐름

MVVM(Model–View–ViewModel)은 화면 표시와 비즈니스 로직을 분리하는 설계 방식이다. 중요한 점은 세 글자의 순서가 호출 순서를 뜻하지 않는다는 것이다. Model → View → ViewModel처럼 한 방향으로만 흐르는 구조가 아니라, 각 구성 요소의 책임과 ...

글 읽기
맨 위로 이동 ↑

Architecture

Swift

[Swift] MVVM의 역할과 데이터 흐름

MVVM(Model–View–ViewModel)은 화면 표시와 비즈니스 로직을 분리하는 설계 방식이다. 중요한 점은 세 글자의 순서가 호출 순서를 뜻하지 않는다는 것이다. Model → View → ViewModel처럼 한 방향으로만 흐르는 구조가 아니라, 각 구성 요소의 책임과 ...

글 읽기
맨 위로 이동 ↑

UIKit

ios

[iOS] Auto Layout 우선순위와 Baseline 이해하기

Auto Layout을 사용할 때 제약 조건만큼 중요한 것이 우선순위다. 특히 텍스트를 표시하는 뷰는 고유 콘텐츠 크기(intrinsic content size), Content Hugging, Compression Resistance를 함께 이해해야 예상하지 못한 늘어남과 잘림을...

글 읽기
맨 위로 이동 ↑

Cryptography

pki

[암호] 블록 암호의 패딩 이해하기

AES 같은 블록 암호는 고정된 크기의 블록을 처리한다. CBC처럼 평문을 블록 단위로 나누는 운용 모드에서 마지막 데이터가 블록 크기에 미치지 못하면, 정해진 규칙으로 바이트를 채우는 패딩이 필요하다.

글 읽기
맨 위로 이동 ↑

Framework

ios

[Xcode] iOS 프로젝트에 프레임워크 추가하기

iOS 프로젝트에 바이너리 프레임워크를 추가할 때는 링크(link)와 임베드(embed)를 구분해야 한다. 빌드에는 성공했지만 앱 실행 직후 dyld 오류가 발생한다면, 대부분 동적 프레임워크가 앱 번들에 포함되지 않았거나 서명·아키텍처가 맞지 않는 경우다.

글 읽기
맨 위로 이동 ↑

XCFramework

ios

[Xcode] iOS 프로젝트에 프레임워크 추가하기

iOS 프로젝트에 바이너리 프레임워크를 추가할 때는 링크(link)와 임베드(embed)를 구분해야 한다. 빌드에는 성공했지만 앱 실행 직후 dyld 오류가 발생한다면, 대부분 동적 프레임워크가 앱 번들에 포함되지 않았거나 서명·아키텍처가 맞지 않는 경우다.

글 읽기
맨 위로 이동 ↑

Jenkins

맨 위로 이동 ↑

Fortify

맨 위로 이동 ↑

CI

맨 위로 이동 ↑

Bitcode

맨 위로 이동 ↑

KVC

ios

[iOS] Objective-C의 KVC와 KVO 이해하기

KVC(Key-Value Coding)와 KVO(Key-Value Observing)는 이름이 비슷하지만 역할은 다르다. KVC는 문자열 키로 객체의 값을 읽고 쓰는 방식이고, KVO는 KVC를 기반으로 속성의 변경을 관찰하는 방식이다.

글 읽기
맨 위로 이동 ↑

KVO

ios

[iOS] Objective-C의 KVC와 KVO 이해하기

KVC(Key-Value Coding)와 KVO(Key-Value Observing)는 이름이 비슷하지만 역할은 다르다. KVC는 문자열 키로 객체의 값을 읽고 쓰는 방식이고, KVO는 KVC를 기반으로 속성의 변경을 관찰하는 방식이다.

글 읽기
맨 위로 이동 ↑

CSR

맨 위로 이동 ↑

PKCS#10

맨 위로 이동 ↑

DN

맨 위로 이동 ↑

Property

Swift

[Swift] 프로퍼티 한 번에 정리하기

Swift의 프로퍼티는 타입이나 인스턴스에 값을 연결한다. 값을 직접 저장하는 저장 프로퍼티뿐 아니라, 값을 계산하는 연산 프로퍼티와 변경을 감지하는 프로퍼티 옵저버도 제공한다.

글 읽기
맨 위로 이동 ↑

XCTest

ios

[Xcode] 비동기 단위 테스트와 UI 테스트

XCTest에서 비동기 동작을 검증하려면 테스트가 끝나야 하는 조건을 명확히 표현해야 한다. 단순히 일정 시간 sleep하는 방식은 느리고 불안정하므로, XCTestExpectation이나 조건 기반 expectation을 사용한다.

글 읽기
맨 위로 이동 ↑

UI-Test

ios

[Xcode] 비동기 단위 테스트와 UI 테스트

XCTest에서 비동기 동작을 검증하려면 테스트가 끝나야 하는 조건을 명확히 표현해야 한다. 단순히 일정 시간 sleep하는 방식은 느리고 불안정하므로, XCTestExpectation이나 조건 기반 expectation을 사용한다.

글 읽기
맨 위로 이동 ↑

Auto-Layout

ios

[iOS] Auto Layout 우선순위와 Baseline 이해하기

Auto Layout을 사용할 때 제약 조건만큼 중요한 것이 우선순위다. 특히 텍스트를 표시하는 뷰는 고유 콘텐츠 크기(intrinsic content size), Content Hugging, Compression Resistance를 함께 이해해야 예상하지 못한 늘어남과 잘림을...

글 읽기
맨 위로 이동 ↑

JavaScript

Swift

[Swift] 자바스크립트와 스위프트 클로저 차이

Swift와 JavaScript는 모두 함수를 값처럼 전달할 수 있고, 함수가 선언된 주변 스코프의 값을 캡처할 수 있다. 두 언어에서 클로저의 핵심 개념은 같지만, 문서에서 사용하는 용어와 메모리 관리 방식에는 차이가 있다.

글 읽기
맨 위로 이동 ↑

Closure

Swift

[Swift] 자바스크립트와 스위프트 클로저 차이

Swift와 JavaScript는 모두 함수를 값처럼 전달할 수 있고, 함수가 선언된 주변 스코프의 값을 캡처할 수 있다. 두 언어에서 클로저의 핵심 개념은 같지만, 문서에서 사용하는 용어와 메모리 관리 방식에는 차이가 있다.

글 읽기
맨 위로 이동 ↑

Jekyll

맨 위로 이동 ↑

GitHub-Pages

맨 위로 이동 ↑

Minimal-Mistakes

맨 위로 이동 ↑

Core-Data

맨 위로 이동 ↑

Padding

pki

[암호] 블록 암호의 패딩 이해하기

AES 같은 블록 암호는 고정된 크기의 블록을 처리한다. CBC처럼 평문을 블록 단위로 나누는 운용 모드에서 마지막 데이터가 블록 크기에 미치지 못하면, 정해진 규칙으로 바이트를 채우는 패딩이 필요하다.

글 읽기
맨 위로 이동 ↑

PKCS7

pki

[암호] 블록 암호의 패딩 이해하기

AES 같은 블록 암호는 고정된 크기의 블록을 처리한다. CBC처럼 평문을 블록 단위로 나누는 운용 모드에서 마지막 데이터가 블록 크기에 미치지 못하면, 정해진 규칙으로 바이트를 채우는 패딩이 필요하다.

글 읽기
맨 위로 이동 ↑

AES

pki

[암호] 블록 암호의 패딩 이해하기

AES 같은 블록 암호는 고정된 크기의 블록을 처리한다. CBC처럼 평문을 블록 단위로 나누는 운용 모드에서 마지막 데이터가 블록 크기에 미치지 못하면, 정해진 규칙으로 바이트를 채우는 패딩이 필요하다.

글 읽기
맨 위로 이동 ↑

RSA

pki

[PKI] RSA 암호화와 전자서명 정리

RSA는 공개 키와 개인 키를 사용하는 비대칭 암호 알고리즘이다. 큰 정수의 소인수분해가 어렵다는 성질에 안전성의 기반을 두며, 암호화와 전자서명에 모두 활용할 수 있다. 하지만 같은 수학 연산을 쓴다고 해서 암호화와 서명이 서로의 단순한 역연산인 것은 아니다. 각각 다른 인코딩 ...

글 읽기
맨 위로 이동 ↑

OAEP

pki

[PKI] RSA 암호화와 전자서명 정리

RSA는 공개 키와 개인 키를 사용하는 비대칭 암호 알고리즘이다. 큰 정수의 소인수분해가 어렵다는 성질에 안전성의 기반을 두며, 암호화와 전자서명에 모두 활용할 수 있다. 하지만 같은 수학 연산을 쓴다고 해서 암호화와 서명이 서로의 단순한 역연산인 것은 아니다. 각각 다른 인코딩 ...

글 읽기
맨 위로 이동 ↑

PSS

pki

[PKI] RSA 암호화와 전자서명 정리

RSA는 공개 키와 개인 키를 사용하는 비대칭 암호 알고리즘이다. 큰 정수의 소인수분해가 어렵다는 성질에 안전성의 기반을 두며, 암호화와 전자서명에 모두 활용할 수 있다. 하지만 같은 수학 연산을 쓴다고 해서 암호화와 서명이 서로의 단순한 역연산인 것은 아니다. 각각 다른 인코딩 ...

글 읽기
맨 위로 이동 ↑

PKCS1

pki

[PKI] RSA 암호화와 전자서명 정리

RSA는 공개 키와 개인 키를 사용하는 비대칭 암호 알고리즘이다. 큰 정수의 소인수분해가 어렵다는 성질에 안전성의 기반을 두며, 암호화와 전자서명에 모두 활용할 수 있다. 하지만 같은 수학 연산을 쓴다고 해서 암호화와 서명이 서로의 단순한 역연산인 것은 아니다. 각각 다른 인코딩 ...

글 읽기
맨 위로 이동 ↑

Certificate

pki

[PKI] VID와 EVID의 역할

VID(Virtual ID)는 국내 전자서명인증체계에서 인증서 소유자의 식별번호를 인증서에 그대로 넣지 않고 본인 확인에 사용할 수 있도록 만든 가상식별번호다. EVID(Encrypted VID)는 인증서 발급 과정에서 VID 관련 정보를 인증기관에 안전하게 전달하기 위한 암호화된...

글 읽기
맨 위로 이동 ↑

VID

pki

[PKI] VID와 EVID의 역할

VID(Virtual ID)는 국내 전자서명인증체계에서 인증서 소유자의 식별번호를 인증서에 그대로 넣지 않고 본인 확인에 사용할 수 있도록 만든 가상식별번호다. EVID(Encrypted VID)는 인증서 발급 과정에서 VID 관련 정보를 인증기관에 안전하게 전달하기 위한 암호화된...

글 읽기
맨 위로 이동 ↑

EVID

pki

[PKI] VID와 EVID의 역할

VID(Virtual ID)는 국내 전자서명인증체계에서 인증서 소유자의 식별번호를 인증서에 그대로 넣지 않고 본인 확인에 사용할 수 있도록 만든 가상식별번호다. EVID(Encrypted VID)는 인증서 발급 과정에서 VID 관련 정보를 인증기관에 안전하게 전달하기 위한 암호화된...

글 읽기
맨 위로 이동 ↑

NSCoding

맨 위로 이동 ↑

Codable

맨 위로 이동 ↑

Optional

Swift

[Swift] Optional과 if let·guard let

Swift의 Optional은 값이 있거나 없을 수 있음을 타입으로 표현한다. String?은 String과 다른 타입이며, 값을 사용하려면 안전하게 꺼내는 과정이 필요하다.

글 읽기
맨 위로 이동 ↑

Optional-Binding

Swift

[Swift] Optional과 if let·guard let

Swift의 Optional은 값이 있거나 없을 수 있음을 타입으로 표현한다. String?은 String과 다른 타입이며, 값을 사용하려면 안전하게 꺼내는 과정이 필요하다.

글 읽기
맨 위로 이동 ↑

Coordinator

맨 위로 이동 ↑

ARIA

맨 위로 이동 ↑

Block-Cipher

맨 위로 이동 ↑

Data-Binding

Swift

[Swift] 클로저 기반 데이터 바인딩과 Box

데이터 바인딩은 상태가 바뀌었을 때 그 변화를 UI 같은 소비자에게 전달하는 연결 방식이다. UIKit에서는 delegate, KVO, NotificationCenter, Combine, 클로저 등 여러 선택지가 있다. 작은 MVVM 예제에서는 Box라는 단순한 래퍼로 동작 원리를...

글 읽기
맨 위로 이동 ↑

Observation

Swift

[Swift] 클로저 기반 데이터 바인딩과 Box

데이터 바인딩은 상태가 바뀌었을 때 그 변화를 UI 같은 소비자에게 전달하는 연결 방식이다. UIKit에서는 delegate, KVO, NotificationCenter, Combine, 클로저 등 여러 선택지가 있다. 작은 MVVM 예제에서는 Box라는 단순한 래퍼로 동작 원리를...

글 읽기
맨 위로 이동 ↑