2025/02/15 9

Hashing(해싱) 개념 정리

1. 해싱(Hashing)이란?해싱(Hashing)은 데이터를 일정한 길이의 고유한 값(해시값)으로 변환하는 과정입니다. 해싱은 암호학적 보안, 데이터 무결성 검사, 빠른 데이터 검색 등 다양한 용도로 사용됩니다.해싱의 특징은 다음과 같습니다.단방향 변환: 해시값을 통해 원래 데이터를 복원할 수 없음고정된 길이 출력: 입력 데이터의 크기와 상관없이 해시값의 길이는 일정함고유성(Uniqueness): 서로 다른 입력은 서로 다른 해시값을 생성해야 함고속 연산: 해시 함수는 빠르게 계산 가능해야 함충돌 방지(Collision Resistance): 같은 해시값을 가지는 서로 다른 입력값(충돌)이 최대한 적어야 함2. 해시 함수(Hash Function)란?해시 함수(Hash Function)는 입력 데이터를..

DEV_일반 2025.02.15

[iOS] UserDefaults 동작 방식과 보안

UserDefaults는 iOS 개발에서 간단한 데이터를 저장하고 불러오는 데 자주 사용되는 API이다. 그러나 보안상의 이슈가 있을 수 있어, 적절한 사용법과 보안 대책을 고려해야 한다. 이번 글에서는 UserDefaults의 동작 방식과 보안 관련 사항을 자세히 살펴본다.1. UserDefaults란?UserDefaults는 앱 내에서 Key-Value 형태로 데이터를 저장할 수 있는 간단한 저장소이다. 설정 값, 사용자 선호도, 앱 상태 등을 저장하는 데 주로 사용된다.1.1 주요 특징간단한 Key-Value 저장 방식앱이 삭제되기 전까지 데이터 유지앱이 재시작되더라도 데이터 유지plist 파일을 사용하여 데이터 저장보안이 강하지 않으므로 민감한 데이터 저장에 부적절1.2 지원하는 데이터 타입Use..

Frontend/iOS 2025.02.15

AI 기반의 정보 보안 위협

인공지능(AI)은 우리 생활을 혁신적으로 변화시키고 있지만, 동시에 새로운 보안 위협을 초래하고 있다. AI 기술을 활용한 사이버 공격이 점점 정교해지고 있으며, 이에 대한 보안 대책이 필수적이다. 이번 블로그에서는 AI 기반 보안 위협의 유형과 이에 대한 대응책을 자세히 살펴보자. 1. AI를 활용한 보안 위협 유형1.1 자동화된 피싱 공격(Automated Phishing)기존 피싱 공격은 사람이 직접 이메일을 작성하거나 메시지를 보냈지만, AI는 이를 자동화하여 더 정교하게 진행할 수 있다. AI 기반 피싱 공격의 특징은 다음과 같다.자연스러운 언어 생성: ChatGPT와 같은 자연어 처리(NLP) 모델을 활용해 문법적으로 완벽한 피싱 이메일을 생성 가능대상 맞춤형 공격(Spear Phishing)..

[iOS] 앱 성능 최적화 및 메모리 관리: ARC, 메모리 릭, Instruments 관련

모바일 앱을 개발할 때 성능 최적화와 메모리 관리는 필수적인 요소입니다. 성능이 낮거나 메모리 누수가 발생하면 앱이 느려지거나 갑자기 종료될 수 있기 때문입니다. 이번 글에서는 ARC(Automatic Reference Counting)의 개념부터 메모리 릭 탐지 방법, 그리고 Instruments를 활용한 최적화 기법까지 다루어 보겠습니다.1. ARC(Automatic Reference Counting)란?iOS에서는 메모리 관리를 자동으로 수행하는 ARC(Automatic Reference Counting)가 도입되어 있습니다. ARC는 객체가 사용되지 않을 때 자동으로 메모리를 해제하여 메모리 릭을 방지합니다.ARC의 동작 원리ARC는 객체의 Reference Count(Reference Count..

Frontend/iOS 2025.02.15

[Swift] Swift6의 주요 내용

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

Frontend/iOS 2025.02.15

[Swift] Swift Concurrency 개념과 사용법 간단 정리

Swift 5.5부터 도입된 Swift Concurrency는 기존 GCD나 Combine을 대체하며, 비동기 프로그래밍을 더 직관적이고 안전하게 만들었습니다. 이 글에서는 Swift Concurrency의 핵심 개념과 사용법을 간단하게 정리합니다.1. Swift Concurrency 개요Swift Concurrency는 async/await, Task, actor 등을 통해 동시성 프로그래밍을 단순화하는 기능입니다. 이를 사용하면 콜백 지옥을 방지하고, 가독성이 높은 코드를 작성할 수 있습니다. 기존의 GCD를 사용한 코드 예제:DispatchQueue.global().async { fetchData { result in DispatchQueue.main.async { ..

Frontend/iOS 2025.02.15

[SwiftUI] SwiftUI 성능 최적화: View Rendering을 줄이는 방법

SwiftUI는 선언형 UI 프레임워크로, 자동으로 UI를 업데이트해주는 장점이 있지만,성능을 고려하지 않으면 불필요한 Re-Rendering이 발생할 수 있습니다.이번 글에서는 SwiftUI의 성능을 최적화하는 5가지 방법을 소개합니다.1. @State의 과도한 사용 줄이기잘못된 예제@State가 변경될 때마다 전체 body가 다시 평가되므로 성능 저하가 발생할 수 있습니다.struct CounterView: View { @State private var count = 0 var body: some View { VStack { Text("Count: \(count)") Button("Increment") { ..

Frontend/iOS 2025.02.15

[SwiftUI] SwiftUI View 렌더링 순서 관련 정리

SwiftUI는 선언형(Declarative) 방식의 UI 프레임워크로, UIKit과 다르게 데이터 변경에 따라 뷰가 자동으로 업데이트됩니다.하지만 SwiftUI의 뷰 렌더링 순서를 명확하게 이해하지 않으면 예측하지 못한 동작이 발생할 수 있습니다.이번 글에서는 SwiftUI의 뷰 렌더링 과정과 호출되는 순서를 정리해 보겠습니다.1. SwiftUI 뷰 렌더링 과정 개요SwiftUI의 뷰는 다음과 같은 과정으로 렌더링됩니다.뷰 구조체(Struct) 인스턴스화: View 프로토콜을 준수하는 구조체가 생성됩니다.body 프로퍼티 평가: body가 호출되어 SwiftUI 뷰 트리가 구성됩니다.뷰 업데이트 감지: @State, @Binding, @ObservedObject, @EnvironmentObject 등의..

Frontend/iOS 2025.02.15

[SwiftUI] SDWebImage SwiftUI로 WebP 이미지 보여주기

SwiftUI에서는 기본적으로 WebP 형식의 이미지를 지원하지 않지만,SDWebImageSwiftUI 라이브러리를 사용하면 WebP 이미지를 쉽게 로드할 수 있습니다. 이 글에서는 SDWebImageSwiftUI를 활용하여 SwiftUI에서 WebP 이미지를 표시하는 방법을 정리하겠습니다.1. SDWebImageSwiftUI란?SDWebImageSwiftUI는 SDWebImage의 SwiftUI 버전으로, 네트워크 이미지 로딩 및 캐싱을 쉽게 처리할 수 있도록 도와줍니다. WebP, GIF 등의 애니메이션 이미지도 지원하며, SwiftUI의 View와 자연스럽게 결합할 수 있습니다.2. 프로젝트에 SDWebImageSwiftUI 추가하기Swift Package Manager(SPM)를 이용하여 SDWe..

Frontend/iOS 2025.02.15