opendoor_life

'개발자의 성장일기'가 되었으면 좋겠습니다만?

반응형

팀 워크샵을 위해 iPad 앱을 만들어봤다! (처음부터 끝까지, 혼자 힘으로 만들어본 소소한 iOS 아이패드 앱 개발 이야기)

🌳 Workshop ​ 팀원들과 워준위(워크샵준비위원회) 회의를 하다가 팀원들 각각 다양한 게임을 담당하게 되었다. ​ 나는 영화 포스터를 보고 제목을 맞추는 게임을 준비하게 되었는데 진짜 너무 즐겁게 120개 정도의 포스터를 수집했다. ​ 막상 수집을 하고나니- 포스터 하나하나 정리해서 문제를 내는 게 번거롭고... 까마득했다. ​ 🫠 이걸 언제 정리하고 진행하나... 그냥 아이패드 앱으로 만들까...? ​ 개발 작업에 지칠대로 지친 팀원들과 정말 재미있는 워크샵 추억을 갖고 싶어서 앱을 만들기로 결정했다! 🎬 GuessTheMovie 영화 포스터를 보고 제목을 맞추는 게임! HTML 삽입 미리보기할 수 없는 소스 출퇴근 이동 중에, 잠들기 전에 손으로 UIUX 와이어프레임과 로직을 짜면서 기획을 하고..

2022.11.21

Dev
iOS 개발자 1년 6개월 차가 되어 깨달은 것들

2022년 새해를 맞이한 게 엊그제 같은데 벌써 올해의 절반이 끝나간다. 오늘도 역시 출근한 일요일이지만, 우울한 마음보단 그 동안의 개발자 생활에 대해 톺아보고 싶어졌다. 💭 2021년에 본격적으로 iOS 개발을 시작해서 벌써 만 1년 6개월 차의 iOS 개발자가 되었다. 마케팅을 하다가, 데이터 분석을 하다가 지금은 개발을 하고 있는 나는 비개발자였을 때 보이지 않았던 것, 비개발자였을 때 이해가 되지 않았던 것들이 조금씩 보이고, 이해가 되기 시작했다. 아주 짧은 견해지만, 깨닫게 된 것들을 끄적여본다. 1. 개발은 혼자하는 것이 아니다. 하나의 기능을 추가하기 위해서, 정말 많은 사람들의 지식과 노력이 들어간다. 하지만 특정 파트 리소스만 사용해도 되는 듯, 가벼운 요청인 듯, 포장되어 기능 추가..

2022.06.27

RxSwift :: 중복 클릭 방지를 위한 Throttle vs Debounce 차이와 개념, 사용법 알아보기 (iOS 개발)

보통 앱 화면에서 버튼을 누르면 API 호출이 되는 경우가 잦은데, 종종 다양한 이유로 API 통신이 느려져 유저가 버튼을 연타하는 경우가 생긴다. 마치... 긴박한 티켓팅 같은 상황일 때... 😡 ??? : 아 왜 결제 안돼!!! (결제요청 버튼 타다다다다닥-) (2) Font.weight 종류 이런 경우 별도의 조치가 없다면, 유저가 버튼을 누른 만큼 API Call이 생길 것이고, 동일한 API가 여러번 호출되면서 예상치 못한 결과를 가져오거나, 서버에 요상한 데이터가 적재될 가능성이 높다. (특히 결제 요청 버튼의 경우, 한 개의 예약에 대해 결제가 여러 번 되는 최악의 상황을 상상할 수 있다. 벌써 손에서 진땀난다...) 이런 상황을 예방하기 위해! 버튼을 여러번 클릭했을 때 API 중복 호출을..

2022.01.07

진땀뺐던 iOS 긴급 심사 배포 경험 공유 (+) 앱스토어 빠른 앱 심사 요청 방법 (Apple AppStore Expedited Review), 유료 앱 약관 동의

바빴던 이번 스프린트 개발기간이 끝나고, 검증기간이 되어 잠깐 숨도 돌릴 겸! 지난 스프린트 (2021년 11월 초) 때 겪었던 두 가지 경험을 공유해보고자 한다. 목차 1. 유료 앱 약관 동의 업데이트가 안 되는 상황 2. 앱 심사를 올린지 72시간이 지나도 심사 자체가 진행되지 않고 있는 상황 1. 유료 앱 약관 동의 업데이트가 안 되는 상황 앱 배포를 하려면, 무료 앱인데도 유료 앱 약관 동의를 필수로 해야했다. (앱 버전 추가를 눌러도, '약관 부터 동의하고 오셈' 팝업이 뜨는 상황... AppStoreConnect에 앱 빌드가 전혀 안 되고 있다!) 그래서 약관 보기 및 동의하기를 누르면, 아래 화면이 나왔는데'동의' 버튼을 누르면 ❗️ 현재 요청을 처리할 수 없습니다. 나중에 다시 시도하십시오..

2021.12.10

Xcode :: CocoaPods(코코아팟) 설치/삭제 및 사용법 (Podfile 만들기, Podfile 문법/버전관리, Podfile.lock)

💡 Before You Read CocoaPods 공식문서 https://cocoapods.org/ 현재 CocoaPods에서 사용할 수 있는 Pods들의 종류와 버전들을 모두 확인할 수 있고 Guides에서 설치 및 사용 방법을 영문으로 자세하게 확인할 수 있다. CocoaPods(코코아팟) 이란? CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over 79 thousand libraries and is used in over 3 million apps. CocoaPods can help you scale your projects elegantly. Swift와 Objectivc-C Cocoa 프로젝트..

2021.06.30

SwiftUI, Font의 모든 것 (TextStyle, FontStyle, Font.Weight, Font.Design, System, Custom Font, 글자크기, 서식)

[참고] SwiftUI Font 공식문서 목차 1. System Fonts (size, weight, design) (1) Text View의 기본 서식 값 (2) Font.weight 종류 (3) Font.design 종류 2. Standard Fonts, Custom Fonts (1) Font.TextStyle 종류 (2) Font 변경 방법 3. Font Style (+) 글자 간격에 대하여 - Kerning과 Tracking의 차이점 1. System Fonts (size, weight, design) (1) Text View의 기본 서식 값 Interface를 SwiftUI로 설정한 뒤, Xcode를 실행하면 "Hello, world!" 텍스트와 함께 Preview를 확인할 수 있다. ​ 그렇다..

2021.04.07

Xcode :: 실제 디바이스 빌드 실패 해결 (Invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user)

프로젝트를 새로 열어서 실제 디바이스에서 확인을 해보려고 했는데 왈라? 위와 같은 오류와 맞딱뜨렸다. Failure Reason Could not launch "ProjectName" The operation couldn’t be completed. Unable to launch opendoorLife.NavigationBarCheck because it has an invalid code signature, inadequate entitlements or its profile has not been explicitly trusted by the user. 흠, 시뮬레이션에서 실행이 잘 되었던 프로젝트이기 때문에, 디바이스가 원인인 것 같았고 방법을 찾아보니 다행히 Apple Forum에 누군가 해결책을..

2021.03.18

Xcode 시뮬레이터 :: UI 노란색으로 나타나는 버그 초간단 해결방법 (Simulator with Yellow Navigation Bar, Status Bar, Tool Bar, Dock, Alert Popup)

Xcode와 Simulator가 12.3으로 업데이트된 후, 시뮬레이터 실행을 하면 iOS 앱 팝업화면 Alert Popup, 메인화면 하단 Dock, 화면 상단의 스테이터스 바 Status Bar, 네비게이션 바 Navigation Bar, 하단의 툴바 Tool Bar 등이 노란색으로 보이는 버그가 있다. 처음엔 오 이게 뭐지 하고 실제 디바이스에선 보이지 않아 무시하다가 슬슬 거슬려서 (아악 내 눈!) 애플 개발자 포럼에서 해결책을 찾게 되었다. 해결방법 1. Simulator를 활성화 시킨 후, 상단에 위치한 File > GPU selection > Prefer Integrated GPU 클릭 2. 시뮬레이터 내 설치된 앱 삭제 3. 시뮬레이터 재실행(Run, ReInstall) 짜잔 👀 편안.....

2021.01.21

개발 :: Git 초보를 위한 깃 명령어 & 용어 정리 (+커밋 히스토리 브랜치 그래프 보는법, Git Log 옵션 종류, 단축 명령어 Alias(별칭) 설정, 터미널 커맨드라인)

며칠 전, 첫 커밋을 통해 작고 귀여운 버그를 픽스했다. 풀 리퀘스트(PR, Pull Request) 승인(Approved) 받는 쾌감이란 이런 걸까... 넘나 잊지 못할... 나의 첫 경험... (롬곡, 소중해서 캡쳐 왕창 해둠...) 그러나 며칠 후, Branch Checkout을 제대로 하지 못하고 Commit 했다가 온 몸에서 땀이 나기 시작했고... 브랜치가 꼬여서 복구 불가능 상태로 만들어 놓은 것은 아닌지... 깃 초보는 그렇게 온 몸이 떨리고 머리가 하얗게 변하고 손에서 주르륵 땀이 나기 시작했다... 아아... 숨막히고 긴박했던 나의 첫 깃(git) 실수... 후... 그렇게 스마또 사수님이 슉슉 훅훅 브랜치를 풀어주셨고 겨우 한숨을 돌렸다. 실수를 하고 나니 든 생각. [자문] 나는 왜..

2021.01.18

Swift Algorithm :: 백준 2557번, 10718번, 10171번, 10172번 입출력 관련 알고리즘 풀이

2557번 문제 Hello World - 아래 예제와 같이 출력하시오. 출력 Hello World! Solution print("Hello World!") 10718번 문제 We love kriii - 아래 예제와 같이 출력하시오. 출력 강한친구 대한육군 강한친구 대한육군 Solution print("강한친구 대한육군\n강한친구 대한육군") 10171번 문제 고양이 - 아래 예제와 같이 고양이를 출력하시오 출력 10171번 \ /\ ) ( ') ( / ) \(__)| Solution - 시간 : 8 ms - 메모리 : 62,164 KB - 코드길이 : 63 B let cat = #""" \ /\ ) ( ') ( / ) \(__)| """# print(cat) 10172번 문제 개 - 아래 예제와 같이 개..

2021.01.18

Swift Algorithm :: 백준 1008번 A/B 알고리즘 풀이 (+ TIL, Today I Learned)

문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. Solution 1 - 시간 : 8 ms - 메모리 : 62,172 KB - 코드길이 : 78 B print(1 / readLine()!.split(separator: " ").map{ Double($0)! }.reduce(1){ $1 / $0 }) Solution 2 - 시간 : 8 ms - 메모리 : 62,172 KB - 코드길이 : 85 B let arr = readLine()!.split(separator: " ").map{ Double($0..

2021.01.07

Swift Algorithm :: 백준 10998번 AxB 알고리즘 풀이 (+ TIL, Today I Learned)

문제 두 정수 A와 B를 입력받은 다음, A×B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) Solution 1 - 시간 : 8 ms - 메모리 : 62,172 KB - 코드길이 : 72 B print((readLine()?.split(separator: " ").map{ Int($0)! }.reduce(1, *))!) Solution 2 - 시간 : 8 ms - 메모리 : 62,172 KB - 코드길이 : 78 B (코드는 좀 더 길어졌지만 보다 직관적이다) print((readLine()?.split(separator: " ").map{ Int($0)! }.reduce(1){$0 ..

2021.01.06

Swift Algorithm :: 백준 1001번 A-B 알고리즘 풀이

문제 두 정수 A와 B를 입력받은 다음, A-B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A-B를 출력한다. Solution - 시간 : 8 ms - 메모리 : 62,168 KB - 코드길이 : 89 B print((readLine()?.split(separator: " ").map{ Int($0)! }.reduce(0, { x, y in -x - y }))!) 𝐓𝐨𝐝𝐚𝐲 𝐈 𝐋𝐞𝐚𝐫𝐧𝐞𝐝 - 1000번을 풀고나니 1001번은 매우 쉬운 문제였다. 끗!

2021.01.05

Swift Algorithm :: 백준 1000번 A+B 알고리즘 풀이 (+ TIL, Today I Learned)

문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 코드길이 𝐓𝐨𝐝𝐚𝐲 𝐈 𝐋𝐞𝐚𝐫𝐧𝐞𝐝 1. readLine(strippingNewline:) - 공식문서 developer.apple.com/documentation/swift/1641199-readline - Function :: Returns a string read from standard input through the end of the current line or until EOF(end-of-file) is reached. - 현재 줄의 끝까지 또는 파일 끝에 도달할 때까지 표준 입력에서 읽은 문자열을 반환합니다. - Framework Swift Standard Lib..

2021.01.05

2020년 짧은 회고, 2021년 마주하기

2020년 짧은 회고 | 아직도 새해라는 큰 느낌이 없지만 어찌 되었든, 2020년이 마무리되고 2021년이 왔다. 작년까지만 하더라도 온갖 설레는 마음으로 회고 글과 다짐 글을 썼던 것 같긴 한데 올해는 그런 마음이 없다. 그저 차분-한 상태다. ​ 2021년, 큰 설렘은 없다. 그도 그럴 것이, 2020년엔 너무 많은 일이 있었다. ​ 작년 1월, 데이터팀 소속 당시에는 데이터 사이언스에 푹 빠져서 온갖 지표들을 분석하고, 각 팀에 맞춰 데이터 대시보드를 기획 / 커스터마이징 제작을 했다. 전사적으로 데이터가 흐르는 조직을 만들기 위해 정말 밤낮을 불태우며 아이디어를 내고 기획/제작했다. ​ 모든 팀과 돌아가며 면담을 했고, 대시보드를 보는 주체의 관점에서 어떤 지표들이 필요한지, 어떤 인사이트들이 ..

2021.01.05
반응형