전체 글 87

Swift - 소프트웨어 아키텍처 (MVP, VIPER)

* Swift 소프트웨어 아키텍처 - Swift 언어로 애플리케이션을 구조화하는 방법과 관련된 원칙과 패턴 모음 - 소프트웨어 아키텍처를 적용함으로써 모듈성, 유지보수성, 확장성을 개선할 수 있음 - MVC, MVVM, MVP, VIPER * MVP (Model - View - Presenter) - 사용자 인터페이스(UI)를 모델, 뷰, 프리젠터로 구성하여 역할을 분리하는 방식 1. Model - 데이터와 비즈니스 로직을 담당 - 데이터를 가져오고 수행하며 비즈니스 규칙을 적용하여 데이터를 처리 2. View - 사용자 인터페이스를 표시하고 사용자 입력을 받음 - 프리젠터로부터 전달받은 데이터를 화면에 표시하고 사용자의 동작을 감지하여 프리젠터에 전달 3. Presenter - 모델과 뷰 사이에서 중개..

Swift 2023.07.06

Swift - 소프트웨어 아키텍처(MVC, MVVM)

* Swift 소프트웨어 아키텍처 - Swift 언어로 애플리케이션을 구조화하는 방법과 관련된 원칙과 패턴 모음 - 소프트웨어 아키텍처를 적용함으로써 모듈성, 유지보수성, 확장성을 개선할 수 있음 - MVC, MVVM, MVP, VIPER ● MVC (Model View Controller) - 소프트웨어 아키텍처의 가장 기본적인 형태로 모델(Model), 뷰(View), 컨트롤러(Controller)로 구분 1. 모델(Model) - 데이터와 비즈니스 로직을 관리 - 애플리케이션의 상태와 동작을 나타냄 - 데이터의 변경을 감지하고, 변경 사항을 컨트롤러에게 알림 2. 뷰(View) - 사용자 인터페이스를 표시 및 관리 - 모델의 상태를 표시하고, 사용자의 입력을 받음 - 모델의 변경 사항을 감지하고, ..

Swift 2023.07.02

Swift - UIAlertController (경고, 알림 등 팝업 창 표시)

* UIAlertController - iOS 애플리케이션에서 경고, 알림 등의 팝업 창을 표시하는 UI 컴포넌트 - 사용자에게 미시지를 전달하거나 사용자의 선택을 받을 때 주로 사용 1. 경고(alert) 스타일 - 사용자에게 경고, 오류, 주의사항 등을 알리는 데 사용 - 주로 단순한 OK 버튼이 제공되며, 사용자가 알림을 확인하는 용도로 사용 - 중단에 표시됨 2. 액션시트(action sheet) 스타일 - 사용자에게 선택지를 제공하고 사용자의 선택을 받을 때 사용 - 주로 여러 버튼을 포함하고, 각 버튼은 다른 동작을 수행하도록 설정 - 선택 옵션을 제공하기 위해 하단에 표시됨 * UIAlertController 구성 요소 - 제목(title) : 팝업 창의 제목을 나타냄. 주로 경고(alert..

Swift 2023.07.01

Swift - Alamofire 라이브러리

* Alamofire - Swift에서 네트워킹 작업을 수행하기 위한 강력하고 인기 있는 통신 라이브러리 - HTTP 요청을 만들고 보내는 작업을 단순화하기 위해 설계되었으며, 네트워크 작업을 처리하는 데 사용되는 다양한 기능과 편의성 제공 - URLSession을 감싸고 있는 래퍼 라이브러리로, 기본적으로 URLSession과 함께 사용되며 추가적인 편의 기능과 추상화를 제공 Alamofire 설치 1. PodFile을 실행하여 설치하고자 하는 라이브러리 입력 2. pod install 3. 설치 완료 Alamofire 사용 방법 1. ViewController에 Alamofire 프레임워크 추가 import UIKit import Alamofire 2. Request 구조체 struct Alamofi..

Swift - RESTful API

* RESTful(Representational State Transfer) API - HTTP를 기반으로 한 웹 서비스 아키텍처 스타일 - 자원을 고유한 식별자로 식별하고, HTTP 메서드를 사용하여 해당 자원에 대한 작업 수행 - HTTP 프로토콜을 활용하기 때문에 웹의 장점을 최대한 활용할 수 있다 - HTTP 메소드, URI 만으로도 인터넷에 자료를 CRUD 할 수 있다. * URI(Uniform Resource Identifier) - URL(Uniform Resource Locator)의 상위 개념. 지원의 식별자 - 인터넷 상에서 리소스(문서, 이미지, 동영상 등)를 고유하게 식별하고 위치를 지정하는 통합된 형식의 실별자 * CRUD - Create(생성), Read(읽기), Update(갱..

Swift 2023.06.30

Swift - ViewControll의 LifeCycle

* View LifeCycle - 앱의 사용자 인터페이스를 구성하는 View Controller의 상태 변화를 설명하는 개념 - View Controller가 생성되고 화면에 표시되며 사용자와 상호작용하는 동안 다양한 이벤트와 메서드 호출을 통해 진행 됨 * Appearing : 뷰가 화면에 나타나는 중 * Appeared : 뷰가 화면에 나타나는게 완료된 상태 * Disappearing : 뷰가 화면에서 사라지는 중 * Disappeared : 뷰가 화면에서 사라진 상태 * ViewDidLoad() - 뷰 컨트롤러의 객체가 로드되고 인터페이스 파일이 로드된 후 호출 됨 - 일회성 작업에 적합하며, 주로 뷰 관련 속성 초기화 및 데이터 로딩과 같은 작업을 수행 * ViewWillAppear() - 뷰가 ..

Swift 2023.06.29

Swift - iOS 앱의 라이프 사이클 (App's Life Cycle)

* 생명주기 (Life Cycle) - 앱의 최초 실행부터 앱이 완전히 종료되기까지 앱이 가지는 상태와 그 상태들 사이의 전이 * 앱의 생명 주기 - 앱의 실행, 종료 및 앱이 Foreground, Background 상태에 있을 때, 시스템이 발생시키는 이벤트에 의해 App의 상태가 전환되는 과정 * iOS 실행 시 동작 과정 - 앱은 main 함수에서 시작하지만 UIKit framework가 main 함수를 관리하기 때문에 앱 개발자가 직접 main 함수를 작성하진 않음 - UIKit은 main 함수를 다루는 과정에서 UIApplicationMain 함수를 실행 - 이 함수를 통해 UIApplication 객체가 생성 됨 - 이 객체를 통해 앱 개발자는 앱의 실행에 부분적으로 관여 가능 * 앱 상태 ..

Swift 2023.06.29

Swift - Optional(옵셔널)

* Optional (옵셔널) - 값이 있을 수도 있고 없을 수도 있는 변수나 상수를 나타내는 기능 - 안전성과 신뢰성을 높이기 위해 도입됨 - 값이 있다면 "해제되었다(unwrapped)", 값이 없다면 "nil" 이라는 값이 할당 됨 - 옵셔널은 값이 없을 수도 있기 떄문에 값을 사용하기 전에 옵셔널이 해제되어 실제 값을 가지고 있는지 확인해야 함 -> 이를 통해 예기치 않은 nil 값으로 인한 오류를 방지할 수 있음 * 옵셔널 변수 설정 옵셔널 해제 방법 1. 강제 언래핑(Forced Unwrapping) - 옵셔널의 값을 강제로 추출하는 방법 - 옵셔널 변수 또는 상수의 뒤에 느낌표(!)를 붙여서 사용 - 옵셔널 값이 nil인 경우, 런타임 오류가 발생함 2. 옵셔널 바인딩 (Optional Bi..

Swift 2023.06.28

Swift - UIScrollView 기초

* UIScrollView - 사용자가 스크롤하여 컨텐츠를 수평 또는 수직으로 이동할 수 있는 뷰 - 사용자가 화면에 맞지 않는 크기의 컨텐츠를 스크롤하여 볼 수 있도록 도와줌 1. ScrollView 추가 - Scroll View 추가 후 오토레이아웃을 모두 0으로 설정해도 오토레이아웃이 잡히지 않아 빨간 줄이 그어짐 -> 크기 조절해줌 - 바텀 앵커는 superView.Bottom으로 연결 2. 실제 스크롤링 가능한 뷰 추가 - 스크롤이 가능한 뷰를 추가하고 뷰의 레이아웃을 ScrollView의 Content Layout Guide와 연결 - 뷰의 constant를 모두 0으로 변경 3. View의 Frame Layout Guide 설정 - 수직으로 스크롤하는 뷰면 Equal Width로 설정하고 H..

Swift 2023.06.28

Swift - UITableView 기초(1)

테이블뷰에서 사용하는 TableView Controller와 TableView 중 이 게시물에서는 TableView를 사용함 일반적인 ViewController에서 TableViewDelegate, TableViewDataSource를 상속하는 방법에 대해 설명하겠음 * UITableView - 테이블 형식의 목록을 제공하며, 여러 행과 열로 구성됨 - 각 행은 UITableViewCell로 표시되고 사용자는 특정 행을 선택하거나 편집할 수 있음 사용 방법 1. 스토리보드에 TableView 추가 2. TableView의 autoLayout 추가 - 테이블뷰의 Constraints를 상하좌우를 0으로 주어 테이블뷰가 화면에 꽉차게 채움 3. TableView의 outlet 추가 4. 부모가 UIViewC..

Swift 2023.06.27