생각해보니 지난해 회고글을 안썼었다. 22년 회고를 작성한게 얼마 되지않은것 같은데 벌써 23년 회고라니.. 조금 늦은감이 있지만 지난해를 돌아보며 어떤 일들이 있었고, 어떤 성장이 있었는지 돌아보려고 한다. 개발관련 내용도 적고 일상생활 얘기도 적어보려고 한다. 돌아보기 1. 스트리밍중 녹화 (직접녹화) 이 작업을 통해 소통의 중요성과 좀 더 다양하게 문제를 해결할 수 있는 안목이 생겼던것 같다. 이전에 움직임 감지 후 녹화(움감녹)하는 작업을 해봤기 때문에 쉽게 구현할 줄 알았던 기능이었다. 기존 녹화 하는 로직을 스트리밍시 녹화하도록 추가해봤는데 스트리밍 화면이 멈추거나 검은화면으로 나와서 한참 헤맸었다. 이유는 카메라를 동시에 점유하려고 하다보니 발생했던 문제였었고, 스트리밍시 사용하는 카메라를 ..
보통 테스트를 할땐 dev서버를, 배포할땐 production 서버와 연결해서 테스트 하는데요. 현재 운영중인 앱에서도 각 환경별로 분기처리가 되어있는데 유독 aws관련한 json파일만 수동으로 바꿔줘야하는것에 불편함이 있었고 왜 이것만 안되지? 라는 의구심이 들었습니다. 오늘은 해당문제를 해결했던 방법과 환경변수 설정해주는 방법에 대해 블로깅 해보겠습니다. 1. Scheme 분류 스킴(Scheme)을 환경에따라 -Dev, -Release 이런식으로 구분하기 쉽게 분류를 해주도록 합니다. New Scheme - '{프로젝트이름}-Dev' or '{프로젝트이름}-Release' 2. Scheme 역할 설정 Scheme에따라 어떤 환경에서 실행(Run, Test, Archive 등)할 지 설정해주는 부분입니..
최근에 지인이 추천해준 책 중 One Thing(원씽)을 읽고 있는데 한 글귀가 맘에 들어 남겨봅니다. '단 하나의 일을 위한 약속' - 자신의 일을 완벽하게 내것으로 만들어 최고의 경지에 이르고자 하는 마음을 가질것 그러기 위해 오늘 블로깅 주제는 WebRTC 구현을 하면서 긴 시간 날 괴롭혔던 카메라화면방향(videoOrientaion)을 완벽하게 내것으로 만들어보려 블로깅을 해보려고 합니다. 스트리밍 화면 방향이..? 해당 문제는 iOS16이상버전에서 화면회전이 활성화가 되어있을때 나타나던 현상이었습니다. 일단 iOS16이상 버전에서 발생하는 문제이니 #available로 분기처리 if #available(iOS 16.0, *) { // iOS 16버전이상은 이 구문 실행 } 그 다음 아래 두개를 ..
1년동안 준비했던 결혼도 성공적으로 끝마쳤고, 신혼여행가서 신나게 놀다가 돌아와보니 슬랙, iOS 단톡방 등 읽을게 너무 많이 쌓여있었다. (현실자각) 푹 쉬고 돌아왔으니 다시 맘 잡고 시작해보자 근데 발리 진짜 석양맛집🌅 오늘은 전체화면으로 동영상 재생중에 닫힘 버튼을 눌렀을때를 감지 하는걸 블로깅해보려고 합니다. 별것 없는것 같아 보이지만, 이번 작업을 통해 문제를 해결하기 위한 방법은 많다는걸 배웠습니다. 요구조건 1. 타사 영상 플랫폼이 아닌 앱 내에서 바로 보여질것 2. 전체화면으로만 보여질것 3. 전체화면이 닫혔을때 이전화면으로 돌아갈것 고민했던점 시안을 보자마자 고민했던건 1. 비디오면 AVFoundation이지! 2. AVPlayerVC를 사용해서 3. 'X' 버튼을 눌렀을때 닫힘을 감지해..
글또 8기 이후 방학(?)을 맞게 되면서 블로깅을 조금씩 덜하게 되었던것 같다. 블로그를 쓰는게 정말 오랜만이다. 그동안 이것저것 하느라 정신도 없었고 역시나 환경이 주어지지 않으니 기록하는것도 게을리 하게 되는것 같다. 다행히 글또 9기 모집이 다시시작됐고 주저없이 지원했다. 이번엔 회사분들도 몇분 지원하셨고, iOS 인원이 아쉬워 같이 스터디했던 지인분들도 몇분 초대드렸다. 이번 기수는 지인들도 몇분 계시고하니 서로 자극 받으면서 할 수 있을것 같아 기대가 된다. 다룰 주제 사실 올해까지만 회사에서 iOS 개발을 하고 내년부터 RN으로 개발을 해야할것 같은데, 네이티브 커리어를 놓고싶지 않기에 블로깅은 가능하면 iOS 위주로 진행하려고한다. 9기 동안 다뤄볼 주제는 아래와 같다. UI 작업하면서 겪는..
https://leetcode.com/problems/valid-parentheses/description/ 주어진 문자열(s)가 유효한지 확인 모든 열려있는 괄호는 같은 타입의 괄호로 닫혀야 함 내 풀이 class Solution { func isValid(_ s: String) -> Bool { guard s.count > 1 else { return false } var stack = [Character]() for char in s { switch char { case "(", "{", "[": stack.append(char) case ")": if stack.last == "(" { stack.removeLast() } else { return false } case "}": if stack...
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/ 일별로 주식 가격이 주어졌을 때, 최대 이익을 구하기 내 풀이 class Solution { func maxProfit(_ prices: [Int]) -> Int { guard prices.count > 1 else { return 0 } var result: [Int] = [] for price in prices { for j in 1.. 0 { var profit = prices[j] - price print(prices[j], "-", price, "=", prices[j] - price) result.append(profit) } } } return result.max() ?? 0 } ..
https://leetcode.com/problems/valid-palindrome/description/ 주어진 문장(s)을 소문자로 바꾼후, 영문/숫자가 아닌걸 제거하고, 주어진 문장과 거꾸로 읽어도 똑같다면 true를 리턴, 다르다면 false를 리턴 내 풀이 class Solution { func isPalindrome(_ s: String) -> Bool { let convertedStr = s .lowercased() .filter { $0.isNumber || $0.isLetter } let reversedStr = String(convertedStr.reversed()) return convertedStr == reversedStr ? true : false } } 소문자로 바꿔주는 메서드..
https://leetcode.com/problems/two-sum/ 정수의 배열로 이루어진 nums로 각각 더해서 target의 값과 같으면 해당 index들을 리턴 내 풀이 class Solution { func twoSum(_ nums: [Int], _ target: Int) -> [Int] { var result: [Int] = [] for (idx, num) in nums.enumerated() { for idx2 in (idx + 1) ..< nums.count { if num + nums[idx2] == target { return [idx, idx2] } } } return result } } Solution().twoSum([2, 7, 11, 15], 9) enumerated()를 이용해..
https://leetcode.com/problems/valid-anagram/ 내 풀이 class Solution { func isAnagram(_ s: String, _ t: String) -> Bool { var sortedS = s.sorted() var sortedT = t.sorted() return sortedS == sortedT ? true : false } } Solution().isAnagram("anagram", "nagaram") s, t를 정렬해서 두 string의 순서들을 똑같이 만듬. `==` (비교연산자)를 사용해 s, t를 비교하여 같으면 true를, 다르면 false를 리턴 다른사람의 풀이 class Solution { func isAnagram(_ s: String, ..
- Total
- Today
- Yesterday
- Combine: Asynchronous Programming with Swift
- 원티드 프리온보딩
- Swift 프로그래머스
- Swift ModernRIBs
- Swift init
- Swift joined
- ios
- Swift Error Handling
- removeLast()
- iOS error
- swift 고차함수
- Class
- Swift 내림차순
- Swift 알고리즘
- 2023년 회고
- swift reduce
- CS 네트워크
- Swift Leetcode
- RTCCameraVideoCapturer
- Swift RIBs
- swift property
- Swift final
- swift protocol
- swift programmers
- Swift inout
- Swift 프로퍼티
- Swift
- swift (programmers)
- Swift joined()
- RIBs tutorial
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |