
오늘의 알고리즘 문제는 Stack / Queue에 관련된 문제였다.주어진 s에 괄호가 여/닫이 다 되는지 판단하고 답을 내는 문제였고,풀이는 아래와 같다. https://school.programmers.co.kr/learn/courses/30/lessons/12909 내 풀이import Foundationfunc solution(_ s:String) -> Bool { var ans:Bool = false var tempArr: [String] = [] for bracket in s { if !tempArr.isEmpty && tempArr[tempArr.endIndex - 1] == "(" && bracket == ")" { tempArr.remove..

https://school.programmers.co.kr/learn/courses/30/lessons/81301 내 풀이import Foundationlet numDic: [String: Int] = [ "zero": 0, "one": 1, "two": 2, "three": 3, "four": 4, "five": 5, "six": 6, "seven": 7, "eight": 8, "nine": 9]func solution(_ s:String) -> Int { var tempArr: String = s var tempStrArr: [String] = [] var resultArr: [Int] = [] for i in te..

https://school.programmers.co.kr/learn/courses/30/lessons/132267 테스트 케이스는 통과하는데 제출시 우르르 실패로 떠서 뭐지(?) 싶었다.그런데 역시 내가 문제였고.. 문제를 잘 읽어봤어야 했다.. 처음 제출했던 답은 아래와 같다func solution(_ a:Int, _ b:Int, _ n:Int) -> Int { var currentCola: Int = n var result: Int = 0 while currentCola >= a { currentCola -= a result += 1 // 빈병을 반납하면 콜라 한병을 받는거로 구했음 currentCola += b } re..

요즘 SwiftUI로 기존 앱을 리팩토링하고 있는데 이런 @ 골뱅이들이 너무 많아 한번은 싹 훑고 가야겠다는 생각이 들어 오랜만에 블로깅을 해봅니다 :) 오늘은 가장 헷갈렸던 @StateObject, @ObeservedObject에 대해 알아보려고 합니다~! 참고로 @골뱅이는 '어트리뷰트'또는'어노테이션' 이라고 읽습니다. 결론 아래 영상을 먼저보시죠 @ObersevedObject@StateObject 추후 @State에 대해서도 블로깅 하겠지만, 상위뷰의 값이 바뀌어 View가 다시 그려지는 경우 (리렌더링) @ObservedObject의 값이 초기화 되며,@StateObject의 경우는 값을 유지합니다. 즉, @StateObject를 사용하는 뷰는 상위뷰의 리렌더링에도 뷰를 유지하는거죠. @Sta..

https://school.programmers.co.kr/learn/courses/30/lessons/12950 내 풀이func solution(_ arr1: [[Int]], _ arr2: [[Int]]) -> [[Int]] { var result: [[Int]] = [] for i in 0.. 2차원 배열 문제는 처음이라 접근하는 방법에 어려움이 있었다. 두 배열의 길이는 항상 같음으로 arr1.count를 사용해 배열안에 배열을 생성 [ [ ] ]각 배열의 요소에 접근해서 각각 더해줘야하기 때문에 result[i번째]에 arr1[i번째][j번째] 요소 + arr2[i번째][j번째] 요소의 합 추가 ex) i가 0 // j가 0 인경우 arr1[0][0] ==> 1 arr2[0]..

오늘은 그동안 스트리밍 관련 작업을 고도화 하면서 바뀌었던 구조들과구조를 바꾸면서 겪었던 문제들을 정리해보려고 합니다. 이번 작업을 통해서 AVCaptureSession을 깊게 공부할 수 있던 계기가 됐던것 같고,동료 개발자분과 같이 Objective-C로 된 WebRTC 라이브러리 내부를 까보고 파악해볼 수 있던 계기가 됐던것 같습니다. 기존 구조화면 구성스트리밍 RIB 움직임 감지 녹화 RIB 처음 구성은 아래의 RIB들로 구성되어있었다.스트리밍 요청이 오면 스트리밍 역할을 하는 RIB을 attach,스트리밍이 종료되면 움직임 감지 녹화를 하는 RIB을 attach 하는 방식으로 구현을 했었다. 변경이 필요했던 이유매번 스트리밍 연결 → 종료 할 때마다 시그널링채널을 생성하게 되는 문제가 있었고,..

그동안 GCD의 개념을 잘못 이해하고 있어 제대로 각인시키고자 블로그를 작성해봅니다. 아래 코드에서 동작순서는 어떻게 되고 어떤게 먼저 끝나는지 헷갈렸던 부분이 있었습니다. 헷갈렸던 코드let queue = DispatchQueue.global()queue.async { task1() task2() task3()}//Task 1 시작//Task 1 완료★//Task 2 시작//Task 2 완료★//Task 3 시작//Task 3 완료★ 이전에는 async 내부의 로직들이 비동기로 처리되는줄 알고 있었습니다..🫠 위 로직의 실행 순서task1 → task2 → task3 코드블럭 { } 안에 있는 로직들은하나의 task로 보기때문에 순서대로 실행이 됩니다. task가 하나이기 때문에 아래..

요근래 App store connect에서 한번이라도 앱 심사 제출을 해봤다면 아래 메일을 받은적이 있을겁니다. 내용을 요약하면 PrivacyInfo 파일에 해당 API 사용이유를 추가하지 않으면 24년 5월부터 앱이 승인되지 않습니다. 는 내용인데요. 오늘은 Privacy Manifests에 대한 내용으로 블로깅을 해보려고 합니다. 알아볼 내용 PrivacyInfo 앱 내 대응 3rd-party 라이브러리 대응 1. PrivacyInfo 왜 갑자기 생겼나? 공식문서에 보면 주요 기능을 제공하기 위해 사용하는 일부 API는 기기신호에 접근하여 악용될 가능성이 있어, (핑거프린팅 이라 불린다네요.) 앱 또는 서드파티 라이브러리에서 API를 사용하는 이유를 설명하게 하기 위함 이라고 합니다. 심사제출을 하고..

존재는 알았지만 언제 공부할까 각 보다가 이제서야 해봅니다. 오늘은 영구적으로 로컬에 데이터를 저장하고 관리하는 CoreData에 대해 정리해보려고 합니다. 들어가기전에 Q: UserDefaults도 로컬에 저장할 수 있지 않나? 객체도 저장할 수 있잖아? (UserDefault로 객체를 저장해보자!) A: 맞지만, 사실 UserDefaults는 간단한 정보를 저장하기에 적합합니다. 그리고 CoreData를 사용해보려는 가장 큰 이유! CloudKit을 사용해 여러장치에 동기화가 가능합니다. 예를들어, A라는 앱을 쓰다가 다른 아이폰 기기로 바꿔도 CloudKit을 통해 기존에 사용했던 A앱의 데이터를 그대로 가져다 쓸 수 있다는것. 1. CoreData 핵심 3요소 1. NSManagedObjectMo..

생각해보니 지난해 회고글을 안썼었다. 22년 회고를 작성한게 얼마 되지않은것 같은데 벌써 23년 회고라니.. 조금 늦은감이 있지만 지난해를 돌아보며 어떤 일들이 있었고, 어떤 성장이 있었는지 돌아보려고 한다. 개발관련 내용도 적고 일상생활 얘기도 적어보려고 한다. 돌아보기 1. 스트리밍중 녹화 (직접녹화) 이 작업을 통해 소통의 중요성과 좀 더 다양하게 문제를 해결할 수 있는 안목이 생겼던것 같다. 이전에 움직임 감지 후 녹화(움감녹)하는 작업을 해봤기 때문에 쉽게 구현할 줄 알았던 기능이었다. 기존 녹화 하는 로직을 스트리밍시 녹화하도록 추가해봤는데 스트리밍 화면이 멈추거나 검은화면으로 나와서 한참 헤맸었다. 이유는 카메라를 동시에 점유하려고 하다보니 발생했던 문제였었고, 스트리밍시 사용하는 카메라를 ..
- Total
- Today
- Yesterday
- Swift joined
- Swift RIBs
- Swift 프로퍼티
- swift programmers
- swift (programmers)
- 2023년 회고
- Swift ModernRIBs
- Swift inout
- Swift init
- Swift final
- swift protocol
- swift 고차함수
- CS 네트워크
- removeLast()
- RTCCameraVideoCapturer
- iOS error
- ios
- 원티드 프리온보딩
- Swift Leetcode
- Swift joined()
- Combine: Asynchronous Programming with Swift
- Swift
- swift property
- Swift Error Handling
- Swift 알고리즘
- Class
- swift reduce
- Swift 내림차순
- RIBs tutorial
- Swift 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |