iOS

iOS

[iOS] KeyChain(키체인)에 대해 알아보자.

알고가자 ! 키체인을 알아보기 전에 토큰에 대해 알아보자. ✅ 토큰(Token) 토큰은 사용자의 신원을 증명하고 서버에 접근 권한을 부여하는 암호화된 문자열이다. 기존의 세션-쿠키 방식과 달리, 서버가 클라이언트의 상태를 저장하지 않는 무상태 인증(Stateless) 방식이다. ✅ JWT(JSON Web Token) JWT는 토큰의 대표적인 형식으로, JSON 객체를 암호화하여 만든 문자열이다. Header(토큰 타입, 암호화 알고리즘), Payload(사용자 정보, 권한 등), Signature(위변조 검증용) 세 부분으로 구성된다. ✅ 액세스 토큰(Access Token) 액세스 토큰은 실제로 보호된 리소스에 접근할 때 사용하는 토큰이다. 탈취되더라도 피해를 최소화하기 위해 짧은 유효기간(보통 30분..

iOS/Design Pattern

[iOS/Design Pattern] 간단한 예제로 Clean Architecture를 설계해보자.

프로젝트에 클린 아키텍처를 적용하기 전에, 그 개념을 확실히 이해하고자 간단한 예제를 통해 클린 아키텍처를 설계해보고자 한다.  도메인 계층✔️ Entity유저 리스트를 보여주는 것이 주요 서비스이기 때문에 핵심 데이터는 유저이다. 그래서 Entity에는 유저 정보가 담겨있다. ✔️ UserUseCaseProtocolUseCase는 비즈니스 로직이다. 여기서 비즈니스 로직은 유저의 정보를 받아오는 것이다. 이 로직을 처리하기 위해서는 Data 계층에서 데이터를 가져와야하는데, Domain 계층이 Data 계층을 의존하게 될 경우 의존성 규칙을 위배하게 되는 것이므로, 직접 참조하지 않고 의존성 역전을 이용하여 참조한다.  ✅ 의존성 역전Repository Interface를 구현해서 UseCase가 이를..

iOS/Design Pattern

[iOS/Design Pattern] Clean Architecture를 알아보자.

클린 아키텍처?클린아키텍처란? 클린 아키텍처는 소프트웨어 설계 원칙으로, 로버트 C. 마틴이 제안한 개념이다. 클린 아키텍처의 주요 목표는 아래와 같다. 1. 프레임워크 독립성 : 시스템이 특정 프레임워크에 종속되지 않도록 한다.➡️ 처음에는 UIKit을 사용했지만, SwiftUI로 전환해야 할 상황이 생겼다. 비즈니스 로직을 UIKit과 독립적인 별도의 모듈로 구현한다. 이렇게 하면 나중에 SwiftUI로 전환하고자 할 때, UI레이어만 변경하면 되고 핵심 비즈니스 로직은 그대로 사용할 수 있다. 2. 테스트 용이성 : 비즈니스 로직을 외부 요소 없이 테스트할 수 있게 한다.➡️ '장바구니에 책 추가하기' 기능을 구현한다고 가정하자. 이 기능을 순수한 비즈니스 로직으로 구현하여, 필요한 외부 의존성(데..

iOS/iOS

[iOS] FSCalendar를 사용해보자.

디자이너가 요청한 달력 디자인을 구현하려고 했다. 처음에는 iOS에서 기본으로 제공하는 달력을 사용하고자 했지만, 커스텀에 한계가 있어 직접 커스텀 캘린더 뷰를 구현해서 사용하고자 했다. 그러나 커스텀 캘린더 뷰를 구현하는 것이 생각보다 복잡했고, 구현하는 데 드는 코스트에 비해 리턴이 적다고 판단했다. 그래서 대안으로 FSCalendar를 사용하기로 결정했다. FSCalendar FSCalendar는 강력하고 유연한 캘린더 컴포넌트로, iOS 개발에서 손쉽게 사용할 수 있도록 설계되었다. 다양한 커스터마이징 옵션을 제공해 개발자와 디자이너의 요구 사항을 충족할 수 있으며, 구현 시간과 노력을 크게 절감할 수 있다.  📚 FSCalendar 주요 컴포넌트1. FSCalendar- calendar: FS..