[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

전체 글 491

[Swift] ATS (App Transport Security)

iOS - ATS (App Transport Security) ATS란 iOS 9에 도입된 보안기능 TLS, AES, SHA-2를 사용하여 구성되어 있습니다. 기본적으로 암호화되지 않은 정보(HTTP)를 허용하지 않습니다. (HTTPS 사용권장) 설정을 수정하면 HTTP 접속을 허용할 수 있지만 앱 심사에 통과되지 못할 가능성이 있기 때문에 일반적으로 권장되지는 않습니다. 이를 수정해야하는 '정당한' 이유가 있어야 합니다. 설정 방법 아래는 ATS 설정을 수정하는 방법입니다. info.plist에서 주로 설정을 관리합니다. info.plist에서 Add Row를 클릭해 새로운 열을 생성합니다. App Transport Security Settings을 입력합니다. 여기에 미리정의된 Key와 Value를 ..

🍎 Apple/Swift 2022.05.12

[2022 카카오 채용연계형 인턴십] 지원 및 코딩테스트 후기

안녕하세요 이누입니다! 이번에 2022 카카오 채용연계형 인턴십에 지원해서 코딩테스트를 보고 왔어요. 다소 아쉽게 시험을 마무리했지만 개인적으로 굉장히 좋은 경험이었기 때문에 정보공유 겸 회고를 위해 후기를 작성합니다. 지원 동기 카카오에서 채용연계형 인턴십을 진행한다는 공고를 보자마자 망설이지 않고 지원했어요. 작년 연말쯤 개최된 카카오의 기술 컨퍼런스인 'if kakao'에 참여하면서 카카오만의 '카카오스러움'에 큰 매력을 느꼈거든요. 특히 세상을 선하게 바꾸겠다는 카카오만의 거창한 포부는 제가 개발자가 되기로 마음먹은 이유와도 많이 맞닿아 있었어요. 지금까지는 아직 학생의 신분이라 지원을 해 볼 기회가 없었지만, 이번엔 학생의 신분으로서도 기간 내 졸업 예정만 되어있다면 방학 때 참여할 수 있는 인..

[알고리즘 연습] 불량 사용자 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/64064 코딩테스트 연습 - 불량 사용자 개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량 programmers.co.kr 풀이 import Foundation func solution(_ user_id:[String], _ banned_id:[String]) -> Int { var bannedList = [[String]]() // 각 banned id 별로 후보군 생성 for bid in banned_id { var temp = [String]() var bidarr = A..

[알고리즘 연습] 합승 택시 요금 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 풀이 import Foundation func solution(_ n:Int,..

[알고리즘 연습] 보석 쇼핑 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/67258?language=swift 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr 풀이 func solution(_ gems:[String]) -> [Int] { var start = 0 var end = 0 let totalCount = Set(gems).count var gemBox = [String:Int]() var answer = [1, gems.count] while end < gems.count { gemBox[gems[end], default: ..

[알고리즘 연습] 경주로 건설 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr 풀이 func solution(_ board:[[Int]]) -> Int { le..

[RxSwift] RxCocoa로 TableView 구현하기

안녕하세요 이누입니다. 오늘은 RxCocoa를 기반으로 TableView를 구현하는 방법에 대해 정리해보았습니다. 개인적으로 UITableViewDataSource같은 Protocol을 채택하고 구현하지 않아도 되어서 좋더라구요! 그럼 시작합니다. RxCocoa - TableView 구현 기존에 TableView의 Cell을 구현하기 위해서는 UITableViewDelegate 객체 활용이 필수적이었습니다. 하지만 RxCocoa를 활용하면 DataSource 없이 메서드를 기반으로 Cell 구현이 가능합니다. RxCocoa의 UITableView+Rx.swift를 살펴봅시다 public func items (_ source: Source) -> (_ cellFactory: @escaping (UITab..

[알고리즘 연습] 자물쇠와 열쇠 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 풀이 import Foundation func solution(_ key:[[Int]], _ lock:[[Int]]) -> Bool { var key = key let n = lock.count let m = key.count // key를 돌리는 함수 func rotate() { var newKey = [[Int]]() for x in 0..

[알고리즘 연습] 표 편집 (프로그래머스 lv3, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/81303 코딩테스트 연습 - 표 편집 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z"] "OOOOXOOO" 8 2 ["D 2","C","U 3","C","D 4","C","U 2","Z","Z","U 1","C"] "OOXOXOOO" programmers.co.kr 풀이1 (시간초과) func solution(_ n:Int, _ k:Int, _ cmd:[String]) -> String { var arr = Array(repeating: true, count: n) var index = k var stack = [Int]() for ca in cmd { let c = ..

[알고리즘 연습] 전력망을 둘로 나누기 (프로그래머스 lv2, 스위프트)

문제 https://programmers.co.kr/learn/courses/30/lessons/86971# 코딩테스트 연습 - 전력망을 둘로 나누기 9 [[1,3],[2,3],[3,4],[4,5],[4,6],[4,7],[7,8],[7,9]] 3 7 [[1,2],[2,7],[3,7],[3,4],[4,5],[6,7]] 1 programmers.co.kr 풀이 import Foundation func solution(_ n:Int, _ wires:[[Int]]) -> Int { var connect = Array(repeating: Array(repeating: false, count: n+1), count:n+1) wires.forEach { connect[$0[0]][$0[1]] = true connec..