본문 바로가기

🍎 Swift/iOS 학습 노트58

[Swift🍎] TabBarController로 탭바 구성하기 코드 베이스로 구성할 것이기 때문에 씬딜리게이트에서 willConnectTo 제외하고 모두 지워준다   기본적인 골격TabBarController을 rootViewController으로 지정해준다   탭바에 들어갈 viewController 생성 후 넣어줌   여기까지 진행 후 빌드해보면, 빌드 시에는 아무 것도 보이지 않지만하이어라키 계층 상에는 무언가가 생겨있는 것을 알 수 있음   이제 각 viewController로 들어가서 TabBarItem 지정해 주면 됨title에 탭바에 들어갈 이름, image는 시스템에서 가져온 이미지(SF Symbols: 애플에서 기본 제공해주는 이미지)→ 최초에 화면이 만들어질 때는 viewDidLoad가 보이지 않으므로 init에 탭바를 만들어줌   탭바가 잘 들어.. 2024. 8. 10.
[강의노트👩🏻‍💻] 스위프트 아키텍처 - MVC와 MVVM 1.  아키텍처란?사전적 의미로는 건축학, 설계학을 뜻한다개발에서 의미하는 소프트웨어 아키텍처는 개발 프로그램의 구조와 뼈대를 의미한다iOS 에서 가장 기본이 되는 아키텍처 패턴은 MVC와 MVVM이 있다   2.  MVC MVC란 Model - View - Controller 를 앞 글자를 따온 것이다각 담당하는 역할은 아래와 같다Model : 데이터 구조 표현 및 데이터 저장 (ex. 연락처앱의 PhoneBook 구조체)View: UI를 표현하기 위한 요소 (ex. UIButton, UITableView..)Controller : Model과 View의 중재자 역할. Model의 데이터를 View에 표현할 수 있도록 도와주며 사용자가 입력하는 Request를 처리한다 🍎 애플이 추구한 MVC 아키텍.. 2024. 8. 2.
[강의노트👩🏻‍💻] 델리게이트 패턴 (Delegate) 1.  델리게이트 패턴이란?델리게이트 패턴이란 어떠한 객체A 에서 하고싶은 일을 다른 객체B 에게 대신 처리하게 만드는 패턴이다*Delegate: 위임자, 대신 수행하는 사람, 대리자프로토콜 타입으로 지정했기 때문에 클래스 내부를 수정하지 않고 위임자만 교체해 주면 되며 수정에 용이한 구조가 장점이다  2.  사용 방법과 예제1️⃣  바리스타 프로토콜 생성클래스가 채택할 프로토콜(Barista)임을 명시하고 이 프로토콜을 만족하는 클래스는 커피를 만드는 책임(makeCoffee)을 가짐import Foundation//클래스가 채택할 프로토콜임을 명시protocol Barista: AnyObject { func makeCoffee() -> String}   2️⃣  Class 생성커피를 만들 Cof.. 2024. 8. 2.
[강의노트👩🏻‍💻] 프로세스와 스레드 / 동기 비동기 / Dispatch Queue 1.  프로세스와 스레드프로세스와 스레드는 모두 컴퓨터에서 작업을 수행하는 흐름과 단위이다실행 중인 iOS 앱을 프로세스라고 부를 수 있으며, 내부에는 여러개의 스레드가 존재한다   1-1.  프로세스앱은 iOS에 올라온 프로그램이며, iOS 앱을 실행하면 프로세스라고 한다(실행하기 위해 메모리에 올라온 프로그램)*앱을 실행하기 전에는 프로그램이지만 앱을 실행하게 되면 프로세스라고 부른다  1-2.  스레드프로세스 내에서 작업을 수행하는 단위이며, 한 개의 프로세스 내에는 여러개의 스레드가 동시에 작업을 수행할 수 있다크게 메인 스레드와 백 그라운드 스레드로 구분할 수 있고 여러개의 스레드를 가지고 동시에 작업하는 것을 멀티 스레딩이라고 한다  유튜브로 보는 예시프로그램: 앱에 설치된 유튜브 앱프로세스:.. 2024. 8. 1.
[강의노트👩🏻‍💻] Xcode Instruments로 메모리릭 잡아내기 아래 코드는 ClassA와 ClassB가 서로를 순환하여 참조하는 상황이다순환참조는 메모리누수가 발생하는 대표적인 상황으로, 버튼 클릭 시 작동되도록 연출했다  엑스코드 상단 Product → Profile 클릭 시 빌드가 진행되며  독에 Xcode Instruments가 나타나게 된다  상단에 Leaks 부분이 메모리 누수 발생을 알 수 있는 부분이다  앱이 실행된 시간별로 메모리 누수가 발생하는지 확인이 가능하며초록색 체크는 아직 발생하지 않았다는 의미이다  버튼 클릭 시 아래와 같이 빨간색 엑스 표시가 나타나게 되며메모리 누수가 발생한 원인을 아래에서 확인할 수 있다 (ClassA, ClassB)  Leaks 에서 Cycles&Roots 로 변경하면 아래 사진과 같이 서로를 순환참조하는 상황을 확인.. 2024. 7. 30.
[강의노트👩🏻‍💻] URLSession 1.  URLSession 이란?URLSessin은 Swift 에서 서버와 통신하기 위해 제공되는 클래스다   2.  URLSession 개념URLSession 을 다루기 위해서는 아래 2가지 개념을 알아야 한다 2-1.  URLSessionConfigurationURLSession으로 커스텀 설정을 한 네트워크 통신을 한다*Configuration이란 환경설정을 의미한다 예) 네트워크 통신의 타임아웃 시간 설정, 네트워크 통신 캐시 정책 설정 등 세팅  URLSession 객체 생성 시 URLSessionConfiguration을 넣어주어야 한다다음과 같이 Default configuration을 활용해 생성 가능let defaultUrlSession = URLSession(configuration ... 2024. 7. 30.