
iOS로 개발을 어느 정도 해보았다면 DispatchQueue에 대해서 잘 알고 있을 것이다. @MainActor이랑 DispatchQueue모두 메인 스레드에서 작업을 하도록 하는 건데, 둘의 개념을 간단하게 살펴보고 차이를 알아보고자 한다. 📚 들어가기 전iOS에서는 UI 관련 이벤트나, 주요 작업이 항상 메인 스레드에서 실행되어야 한다. 왜냐하면 UIKit이나 SwiftUI가 싱글스레드 환경에서 작동하도록 설계되었기 때문이다! 그럼에도 불구하고 여러 스레드에서 UI관련 이벤트들을 실행했을 땐 싱글 스레드 환경이 아닌 멀티 스레드 환경에서 동시에 접속을 하는 것이기 때문에 데이터가 충돌하여 제대로 된 데이터가 표시되지 않거나, UI가 깨져 원하는 UI가 표시되지 않을 수도 있다. 따라서 어떤 작..

우리가 흔히 사용하는 노트북, 컴퓨터, 핸드폰은 성능이 한정되어 있기 때문에 비용이 많이 들거나,메모리를 많이 잡아먹는 작업은 최대한 피해 줘야 한다. 따라서 복잡한 계산이나, 비용이 많이 드는 작업에 적합한 lazy var 키워드에 대해 알아보자! 💡 lazy var 이란?lazy는 lazy키워드를 사용한 변수가 처음부터 메모리에 할당되는 것이 아니라, 필요에 의해 변수가 처음으로 접근이 필요할 때 메모리에 할당되도록 하는 기법이다. 일반 변수랑 다른 점은 뭘까?lazy var처음 접근이 필요할 때 한번 초기화하면 그 값을 저장하여 이후에도 값을 읽을 때 저장된 값을 할당해 준다.var or let선언할 때 메모리에 모두 할당되기 때문에, 당장 사용하지 않더라도 모두 메모리에 할당하게 된다. ..

https://www.acmicpc.net/problem/17609 문제는 위와 같다. 비슷한 회문만 구하는 문제가 브론즈3이였나 그래서 비슷한데 골드 5? 금방 풀겠지 했는데 음... 아니였다 회문 구하는 건 쉬운데, 유사회문 구하는게 엄청 어렵다!!!!!아이디어 조차 어떻게 접근해야할 지 아예 모르겠음 접근 시도입력된 문자열이랑, 뒤집은 문자열을 비교하면서 다른 숫자가 있는 걸 찾아낸다. -> 어떻게 비교할껀데...예시가 xabba 일 경우 뒤집었을 때 abbax 인데 순서대로 비교한다 해도 각 자리수 비교 문자열이 다르기 때문에 안됨 xabbaabbax comwwtmoccomtwwmoc 그래서 표로 만들어보고 확인했을때, 입력받은 문자열이랑, 뒤집은 문자열이랑 가운데 문자열이 동일한걸 발견했..

오늘 다뤄볼 주제는 iOS앱에서 데이터를 저장하는 방법에 대해서 다뤄볼 것이다.스터디에서 가져온 질문은 아래와 같다~ 1️⃣ iOS 앱에서 데이터를 저장하는 방법에는 어떤 것들이 있나요? 앱에서 데이터를 저장하는 방법에는 여러가지가 있다. 👉🏻 UserDefaults, KeyChain, Core Data, SQLite, CloudKit, File Manager 등등여러가지 방법이 있는데 어떻게 데이터를 저장하고 관리할껀지에 따라 적절하게 선택해주면 된다. 아래에서 다루지 않는 CloudKit이랑 File Manager에 대해 잠깐 설명하고 넘어가겠다! CloudKitCloudKit은 Apple이 제공하는 클라우드 서비스 프레임워크이며 iCloud 서비스를 사용하여 데이터를 클라우드에 저장하고 동..

이전 포스팅에서는 life cycle에 대해서 알아보았는데 오늘은 스위프트의 클로저에 대해서 알아보겠다! 스터디에서 가져온 질문은 아래와 같으며 답변하고 정리하는 식으로 블로그 포스팅을 진행해보겠다. 1️⃣ Swift에서 클로저란 무엇이며 어떻게 사용하나요?클로저에는 함수처럼 이름 있는 클로저도 있고, 이름 없는 클로저도 존재한다. 보통 클로저는 이름 없는 클로저(unnamed closure)를 의미하는데, 여기서 클로저란 사용자의 코드 내에서 전달되어 사용할 수 있는 로직을 가진 중괄호 “{}” 로 구분된 코드의 블럭이며 코드 블록을 캡쳐하고 사용할 수 있는 일급 객체이다. 클로저는 '( )' 괄호를 사용하여 직접 호출하거나, 함수에 인자로 전달하여 나중에 해당함수 내에서 호출할 수 있다. 기본..

프로젝트하다가 마주한 버그.. 처음 마주보는거기도 했고 어떻게 해결해야 할 지 몰라서 당황했었는데!!!!!! 어떻게 해결했는지 남기고자 한다. 오류 빌드해서 비밀번호를 입력하고 보면 이런 에러가 시뮬레이터에 뜨면서 콘솔창에 키체인을 연결하라고 뜬다. textfield를 NewPassword로 해보기도 했고 여러 시도를 해봤는데 근본적인 이유는 키체인을 연결하지 않아서 입력할 때 마다 오류가 났던것이다. 하지만 키체인을 연결해도 빌드할 때 마다 비밀번호 입력필드를 입력하려하면 원치 않는 키보드가 올라오는 현상이 나타났다. 여러가지 방법을 찾아보다가 공감되서 캡쳐해놨던 사진 ㅋㅋ 나도 이문제 때문에 머리 많이 쥐어뜯었는데 . . 아무튼 지금은 해결완료~~~~~ 1️⃣ 해결방법 시뮬레이터를 빌드해서 설정 ->..

문제 설명 문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때, 각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. b는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. n은 처음 나왔기 때문에 자신의 앞에 같은 글자가 없습니다. 이는 -1로 표현합니다. a는 자신보다 두 칸 앞에 a가 있습니다. 이는 2로 표현합니다. n도 자신보다 두 칸 앞에 n이 있습니다. 이는 2로 표현합니다. a는 자신보다 두 칸, 네 칸 앞에 a가 있..

SwiftUI로 프로젝트를 하다 보면 프리뷰에 이런 게 뜨면서 경고창이 나오고, 실행이 안될 때가 있다. SwiftUI의 제일 큰 장점이 Preview 기능이라 생각하는데 이 기능이 Preview Crashed 되면서 뜨면 정말 답답하게 느껴진다. 여러 가지 원인이 있겠지만 내가 프로젝트 개발 중 경험했던 원인과 해결법에 대해 작성해보고자 한다. LoginView └─ LoginFormView └─ LoginFormViewModel 문제가 발생했던 뷰의 디렉토리 구조는 위와 같이 구성하였다. 최상단 View는 LoginView이고 입력폼, 로그인 버튼 등 입력 폼과 버튼을 관리하는 View는 LoginFormView에 따로 관리하였다. 원인 나는 하위 뷰에서 객체를 사용하고 최상위 뷰에서 객체를 사용하지..
- Total
- Today
- Yesterday
- wwdc25
- securefield
- ObservableObject
- mlmodel
- Task
- group tasks
- 코딩테스트
- Xcode
- mergeconflict
- CoreData
- XCTest
- imagepicker
- UIKit
- 16173
- unstructed task
- 백준
- combine
- rxswift
- 프로그래머스
- asyne-let
- 클로저
- closure
- Fastlane
- 스위프트
- 병합충돌
- detached task
- foundation models
- SWIFT
- ios
- swiftUI
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |