본문 바로가기

전체 글133

[강의노트👩🏻‍💻] 프로세스와 스레드 / 동기 비동기 / 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.
[강의노트👩🏻‍💻] JSON(JavaScript Object Notation)와 Codable 1.  JSON 이란?일반적으로 네트워크에서 데이터를 주고 받을 시 가장 많이 사용하는 데이터 형식Key-value 형태를 가진다*특정 프로그래밍 언어에 속하는 것이 아니며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 다룰 수 있는 기능을 제공하는 것이다  1-1.  기본적인 형태(전화번호 구조체)[ { "name": "A", "phoneNumber": "010-1111-2222" }, { "name": "B", "phoneNumber": "010-3333-4444" }, { "name": "C", "phoneNumber": "010-5555-6666" }]  2.  Swift 인코딩과 .. 2024. 7. 30.
[👾 Programmers] 29. 제일 작은 수 제거하기 1. 문제 설명 (📎Link)정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 2. 제한사항arr은 길이 1 이상인 배열입니다.인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.📝 문제func solution(_ arr:[Int]) -> [Int] { return 0}  💻 내가 푼 방법func solution(_ arr:[Int]) -> [Int] { var deleteNum: [Int] = [] var result = arr... 2024. 7. 24.
배열 관련 모든 메서드 정리!! 2024. 7. 24.
[🍎 Swift 문법] 고차함수 Map, Filter, Reduce Map내부의 데이터를 가공하여 새로운 콜렉션을 생성하는 것지금까지의 경험으로는 주로 배열에 사용되는 것 같다  배열의 모든 요소에 1을 더하는 map 함수 예제let numbers = [1, 2, 3, 4, 5]let numbersPlusOne = numbers.map({ $0 + 1 })print(numbersPlusOne) // [2, 3, 4, 5, 6] 문자열 배열 내 요소의 길이를 구하는 map 함수 예제let words = ["apple", "banana", "cherry"]let wordLengths = words.map { $0.count }print(wordLengths) // [5, 6, 6] 딕셔너리의 값을 변환하는 map 함수 예제let scores = ["A": 50, "B": 7.. 2024. 7. 24.
[세번째 팀 프로젝트] 킥보드 쉐어링 앱 2️⃣ 오늘은 지도 페이지에 들어갈 간단한 UI만 먼저 구현해볼 예정이다!!만들어둔 와이어 프레임대로 크게 두가지로 기능을 잡아보았다 :)1.  Search Bar2.  Modal 06.  네비게이션 서치바먼저 검색기능을 구현하려고 찾아보니 네비게이션 요소 중 하나인 서치바(Search Bar)라는 기본 기능이 있었다navigation item에 추가해 주는 것인데, cancle 기능까지 들어가 있어서 완전 딱이라는 생각이 들었다  navigationItem.searchController 넣어서 간단하게 함수 만들어주고, viewDidLoad에 함수 호출해주면 된다   07.  모달두번째는 지도앱에서 킥보드 위치 클릭 시 띄워줄 대여하기창인데 모달로 구현하기로 했다먼저 필요한 View들을 상단에 생성해준다(폰트.. 2024. 7. 23.