본문 바로가기

🍎 Swift80

[강의노트👩🏻‍💻] 델리게이트 패턴 (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.
[강의노트👩🏻‍💻] URL의 구조 1. Protocol (프로토콜) • 인터넷 통신 규약을 의미합니다. • 예: http, https. • http는 일반 웹사이트, https는 보안이 강화된 웹사이트를 의미합니다.  2. Domain (도메인) • 자원이 위치한 서버(컴퓨터)의 이름입니다. • 예를 들어, google.com이나 naver.com이 도메인입니다. • URL의 정체성을 나타냅니다.  3. Port (포트) • 서버의 특정 프로그램과 통신하기 위한 번호입니다. • HTTP의 경우 80번 포트를 사용하고, HTTPS는 443번 포트를 사용합니다. • 대부분의 경우 생략되지만, 특수한 경우에 사용됩니다.  4. Path (경로) • 서버에서 제공하는 자원의 위치를 나타냅니다. • 예: /images/photo.jpg는 서버에서.. 2024. 7. 30.
[강의노트👩🏻‍💻] API(Application Programming Interface) API란?API는 Application Programming에서 필요한 Interface이며 '창구'를 의미한다어떤 프로그램을 개발할 때 원하는 기능들을 제공해 주며 API를 통해 서버와 소통하고 원하는 결과를 얻는다따라서 API 내부가 어떻게 생겼는지는 알 필요가 없다  API에게 내가 원하는 요청을 하는 것을 API RequestAPI로부터 내가 원하는 정보를 받는 것을 API Response 라고 한다  유저 정보를 담고있는 서버의 데이터베이스에게 'Solby' 라는 유저의 정보를 요청하려고 한다(API Request){ name: "Solby"}  그러면 서버는 아래와 같이 결과를 전송한다(API Response){ "name": "Solby", "phoneNumber": "010-1111-.. 2024. 7. 30.