1.
포트폴리오용 프로젝트를 진행할 때, 개인적으로 완성도를 높이고 싶어 프로젝트가 한없이 늘어지는 경우가 많았습니다. 멘토님이 생각하시기에 어떤 기준으로 1차 완성(배포 혹은 버전 1)을 해야할지, 그리고 프로젝트 진행시 어떤 점에 신경써야 하는지 궁금합니다.
•
1차 출시 혹은 완성의 기준은 언제나 어려운 부분
•
개인적으로는 완성도보다는 프로덕트의 매력적인 정도가 1차 출시에서는 더 중요하다 생각
•
적당한 것의 절대적인 기준은 없지만 적당한 목표를 잡는것 또한 중요한 역량
2.
좋은 코딩 스타일을 본받을 만한 코드가 있을까요? 클린코드 관련해서 어떻게 어떤식으로 코딩하시는지 생각하며 공부하고싶습니다
•
클린 코드 & 클린 아키텍처
3.
사용자 입력으로 배열 값을 한꺼번에 받아 배열을 저장하는 법이 어떤 방법들이 있을까요?
•
map 등
4.
iOS 개발을 할 때 꼭 알아야하는 CS 지식은 무엇이 있을까요?
프로그래밍 언어 및 문법
•
Swift 기초 및 고급 문법
•
객체 지향 프로그래밍 (OOP)
•
함수형 프로그래밍 및 프로토콜 지향 프로그래밍
•
자료 구조, 알고리즘
네트워크
•
HTTP 및 HTTPS
•
REST API와 JSON 형식
•
웹소켓, URLSession 등의 네트워크 라이브러리
디자인 패턴
•
MVC, MVVM, Singleton 등
•
의존성 주입 (Dependency Injection)
•
델리게이트 패턴
멀티스레딩 및 병렬 프로그래밍
•
GCD (Grand Central Dispatch)
•
비동기 프로그래밍
•
멀티 스레드
메모리 관리
•
ARC (Automatic Reference Counting)
•
Memory leak
•
Caching
데이터베이스
•
Core Data, SQLite, Realm
•
Firebase, iCloud 등 클라우드 데이터베이스
보안
•
OAuth, JWT 등의 인증 방식
•
코드 서명 및 인증서
기타
•
Git과 같은 버전 관리 시스템
•
유닛 테스트 및 UI 테스트
•
CI / CD
5.
map을 통해 배열에 할당하는 작업을 했습니다. 그런데 사용해본 문법이 아니라 어렵더라고요 정확한 동작 과정과 사용법에 대해 알고싶어요.
let array = [1, 2, 3, 4, 5]
let squared = originalArray.map { $0 * $0 } // [1, 4, 9, 16, 25]
Swift
복사
동작 과정
•
array의 첫 번째 요소 1을 가져와
•
클로저 { $0 * $0 }에 1을 대입하고 계산
•
결과를 새 배열 squared 에 추가
•
이 과정을 array의 모든 요소에 대해 반복
요약
•
map은 array 각 요소에 대해 주어진 클로저 { $0 * $0 }를 실행
•
그 결과를 새 배열에 할당
•
map을 사용하면 원본 배열을 변경하지 않고 새 배열에 변환된 값들을 할당 가능
6.
swift에서의 getter 과 setter 가 있나요? 타 언어나 컴파일러에서 getter setter 가 자동완성으로 만들수 있던 것 같아 궁금합니다.
•
변수와 함수 둘다 가능
•
변수는 computed properties 로 사용 가능
struct Circle {
var radius: Double
var diameter: Double {
get {
return radius * 2
}
set {
radius = newValue / 2
}
}
}
Swift
복사
•
함수 역시 개념적으로 사용 가능
private var value = 0
func getValue() -> Int {
return value
}
func setValue(_ value: Int) {
self.value = value
}
Swift
복사
7.
Guard 조건문의 사용 이유와 정확한 사용법에 대해 알고싶습니다.
사용 이유
•
코드의 중첩을 줄일 수 있음
•
조건이 충족되지 않을 경우 효율적이게 탈출 가능
•
더 명확한 로직 표현이 가능
사용법
guard condition else {
// 조건이 충족되지 않을 경우 실행될 코드
return // 혹은 break, continue, throw 등
}
// 조건이 충족될 경우 실행될 코드
Swift
복사
func divide(_ a: Int?, by b: Int) -> Int? {
guard let a, b != 0 else {
return nil
}
return a / b
}
Swift
복사
8.
기술 블로그 작성 및 운영 팁
•
기록에 의미를 갖고 꾸준하게