본문 바로가기

전체 글

(99)
네이버 부스트캠프 웹모바일 6기 멤버십 후기iOS 서론 2022년 4월에 쓰기는 좀 늦었지만 네이버 부스트캠프 멤버십 6기를 끝나고의 회고를 씁니다. 부스트캠프를 사실 지원했던 적은 3번이 넘었던 것 같습니다. 3년만에 부스트 캠프 챌린지에 합격하였고 멤버십에도 합격하고 이렇게 수료를 하게 되었네요.. 현재는 ㅎㅎ 취직했어요 ㅎ! 부스트 캠프 챌린지를 하기까지? 제 블로그를 전체적으로 보면 알겠지만 저는 독학으로 iOS를 공부하고 42서울 활동을 병행했습니다. 혼자서 간단한 앱을 앱스토어에 올려보기도 하고 조금씩 고쳐보기도하고 iOS에 관심있는 사람들과 같이 스터디도 하기도 했습니다. 앞에 말했듯이 3번이 넘던 부캠 지원은 iOS 개발에 대한 제 열정이었달까요.. 그 3년동안 비전공자인 저는 저에 대해 고민을 많이하고 저는 어떤 개발자인지에 대해 생각을..
[iOS] HashTable, Dictionary HashTable, Dictionary 다른 언어를 공부하는 친구들이 HashTable을 말할 때 스위프트를 공부하는 저는 Dictionary를 생각했습니다. 해시란 뭘까?라는 질문에 Dictionary에서 사용하는 키값!! 유일한 키값!! 이라고 생각을 했습니다. (Set에서도) 조금더 파고 들어봐요.. hash란 Swift라는 언어에서 이 hash를 어떻게 이용하는지 스위프트의 Dictionary는 어떻게 구현 됐을까? Dictionary의 내부는 배열로 구성되어 있다고 해요. hasher라는 함수로 데이터를 인덱스화 시켜주고 그 인덱스로 배열에 접근하게 되는거죠! 그래서 딕셔너리의 시간 복잡도는 중복이 안나면 O(1)이 됩니다. 이러한 해셔함수로 만든 인덱스가 중복 된다면 ??! 대표적으로 두가지 ..
[iOS] 의존성 2 by Escaper 앞서 저는 ViewController에 Method Injection을 사용하였습니다. ViewController는 Constructor Injection을 시도했는데 평범한 클래스랑은 init방식이 다른 것 같음 → 실패 라는 문제가 있었는데. 코드 리뷰중 저희 팀원인 "택현"님이 추가적으로 research하여 이 문제를 해결하였습니다. 공유 공유~~ 주입 방법 세가지의 차이점은? Constructor Injection vs Method Injection, Property Injection Method Injection, Property Injection은 비슷하게 동작하는 것 같음!. 런타임에서 오류를 찾음 Constructor Injection은 컴파일단에서 에러를 찾을 수 있음. 컴파일타임에서 오..
[iOS] 의존성 1 by Escaper 프로젝트 중 우리 코드의 의존성 주입에 문제가 있다는 피드백을 받았습니다. 이에 앞서 의존성주입에 대해 먼저 알아 봅시다. 간단스하게! 의존성 A클래스가 내부변수로 B클래스를 가지고 있을때 A클래스는 B클래스에 의존성이 생긴다. A → B 주입 내부가 아닌 외부에서 객체를 생성해서 넣어주는 것을 주입이라고 합니다. 의존성 주입 외부에서 B클래스 객체를 만들어서 A에 넣어주면 의존성을 주입! A → B 현재 우리 코드 현재 ViewController를 만들고 ViewController의 create() 함수를 이용해 ViewModel을 넣는다. ViewController의 create() 함수안에서 ViewModel, UseCase, Repository를 만든다. 문제점 발견 현재 ViewModel을 Vi..
[iOS] Appearance by Escaper 목표 네비게이션 바를 clear하게 사용 현재 상황 appearance.backgroundColor = EDSColor.bloodyBlack.value를 parant와 같게 했음 navigationController.navigationBar.tintColor를 지정해줌 iOS13부터 적용 되는 항목들에 appearance를 넣어줌 navigationBar.compactScrollEdgeAppearance navigationBar.scrollEdgeAppearance (iOS15부터는 compactScrollEdge도 있음.. 팀원 "완식"이 알려준 방법 self.navigationController?.navigationBar.barTintColor = .systemBackground.withAlphaCo..
[iOS] 데이터 순서 보장 by Escaper 문제! - 룸 정보를 받고 그 뒤에 룸 정보에 있는 userID로 정보를 재요청하게 되는데 - userID로 재요청하는 data들의 순서가 보장되자 않는다!! 처음 생각한 데이터 흐름 - 처음 데이터는 전부 위와 같이 순서에 맞게 오는 줄 알고 코드를 구성하였습니다. - append를 써서 배열에 넣고 그대로 사용했죠 ... 가만 생각해 보니 ...... - 가만 생각해보니 데이터가 매번 일정하게 순서가 유지된다는 보장이 없었습니다. - 제가 append를 사용했는데 이는 곧.. 데이터 순서가 뒤틀린다는 의미였습니다. 해결!! 방안! 배열로! - 룸에서 데이터를 받으면 userID갯수 만큼 동적으로 배열을 할당해줍니다. - 그리고 인덱스를 통해 원하는 데이터를 주입합니다.!! 해결 ㅎㅎ ~~ 후기 - 배..
skipping duplicate build file in compile sources build phase 즐겁게 pbxproj 바이너리를 union 시키던 나.. 아래와 같은 오류를 만나버렸다. ㅎ skipping duplicate build file in compile sources build phase: /users/park-young-gwang/ios05-escaper/escaper/escaper/presentation/record/views/cells/recorduserview.swift union되면 conflict 안나서 좋아했는데 이럴 거면 차라리 conflict가 나는게 나을지도 ^^ ; 우리의 upstream은 이미 더럽혀져 있었다. 흠
[iOS] - 접근성 - VoiceOver를 도입해보자! VoiceOver란 iOS를 사용할 때 클릭을 하면 버튼, 라벨, 배터리 같은 오브젝트를 음성으로 들을 수 있는 도구입니다. 아이폰 디바이스 설정의 손쉬운 사용에서 설정할 수도 있고 Siri를 통해 "보이스오버 켜줘/꺼줘"로 설정할 수 있습니다. VoiceOver를 사용하게 되면 기존 사용과 다른 제스쳐가 필요합니다. VoiceOver의 사용법을 알아보자. VoiceOver의사용법을 먼저 알아보는 이유는 사용자가 보이스 오버를 어떻게 쓰는지 알면 더 적합하게 개발할 수 있을거라고 생각했습니다. VoiceOver 제스쳐 설명 애플 문서 https://help.apple.com/iphone/11/#/iph3e2e2281 To see this page, you must enable JavaScript. Pou..