프론트엔드 iOS 개발자라면 반드시 알아야할 LifeCycle (생명주기) 에 대해 공부해 보겠습니다. ViewController LifeCycle ViewController의 LifeCycle을 알아볼건데요. 각각의 ViewController 마다 생명주기를 가지고 있는데, 여기서 생명주기란 언제 생성되고, 언제 없어지는지를 말합니다. 먼저 생명주기가 어떻게 되는지 아래 그림으로 보시죠. loadView: 화면에 띄어질 View를 만드는 메소드입니다. 코드로직접 view를 만드는 경우를 제외 하곤 override하지 않는것이 좋습니다. (stroyboard, .nib파일) Outlet들과 Action들이 이 메소드에서 생성되고 연결 됩니다. viewDidLoad: ViewController가 메모리에 ..
Reactive Programming (이하 RP) 사용자의 액션에 의해 실시간으로 변하게 하는 *비동기적 데이터 흐름(Async Data Stream)을 이용한 프로그래밍 패러다임 입니다. 즉, 시스템에 이벤트가 발생했을 때 알아서 처리가 되는것. RP는 주변 환경과 끊임없이 상호작용하며, Push 방식으로 데이터의 변화가 발생한 곳에서 새로운 데이터를 사용자(Consumer)에게 전달 합니다. 패러다임: 한 시대의 사람들이 견해나 사고를 근본적으로 규정하고 있는 인식의 체계 예1) 배달 앱에서 여러사람의 메뉴를 주문시 메뉴갯수를 추가하게 되면 메뉴의 숫자가 페이지의 새로고침 없이 반영되는것처럼 특정 부분이 실시간으로 변하게 되는것을 말합니다. 예2 ) 핸드폰으로 동영상을 시청하고 있는데 세로로 보고있..
옵셔널 체이닝 (Optional Chaining) 옵셔널(optional)일 수 있는 인스턴스 내부의 프로퍼티, 메소드, 서브스크립트를 매번 nil 체크를 하지 않고 최종적으로 원하는 값 또는 nil 인지 판단하는 방법 입니다. 여러 쿼리들을 연결할 수 있으며, 링크중 하나라도 nil일 경우 최종값은 nil이 반환 됩니다. (참고링크) 강제 언래핑 대체용도의 옵셔널 체이닝 (Optional Chaining as an Alternative to Forced Unwrapping) 옵셔널 체이닝은 옵셔널 값 뒤에 물음표(?)를 붙여서 표현 합니다. 강제 언래핑할때 뒤에 느낌표(!)를 붙이는것과 문법이 비슷하지만, 가장 큰 차이점은 강제 언래핑을 할때 값이 없으면 런타임 에러가 발생하고, 옵셔널 체이닝을 사용하..
개념 TableView 하나의 열(column)에 배열된 행(row)을 사용해 데이터를 표시하는 뷰 UIScrollView 상속 받습니다. 목록(list)을 나타낼 때 주로 사용되며, 수직 스크롤만 가능합니다. 테이블 개별 항목을 구성하는 cell은 UITableViewCell 입니다. indexPath값을 통해 cell을 구분합니다. 섹션(section)을 이용해 행을 시각적으로 그룹화할 수 있습니다. 헤더(header)와 푸터(footer)를 이용해 추가 정보를 보여줄 수 있습니다. 장점 cell을 재사용할 수 있어, cell을 초기화 하는 부담을 줄일 수 있습니다. 메모리를 절약하여 많은 데이터를 효율적으로 표시할 수 있기 때문에, 단순 항목을 표시할 때 유용합니다. 단점 여러 디자인 요소를 추가하..
https://leetcode.com/explore/learn/card/fun-with-arrays/521/introduction/3240/discuss/234202/Swift-no-brainer 내 풀이 func sortedSquares(_ nums: [Int]) -> [Int] { return nums.map { ($0 * $0) }.sorted() } sortedSquares([-7,-3,2,3,11]) 배운것 sorted(by:) 요소(elements)들 간의 비교로 정렬을 해줍니다. 예제 let numArr = [-7,-3,2,3,11] print(numArr.sorted()) // 오름차순 // [-7, -3, 2, 3, 11] print(numArr.sorted(by: >)) // 내림차순 ..
[Swift 알고리즘] - Find Numbers with Even Number of Digits(Leetcode) https://leetcode.com/explore/learn/card/fun-with-arrays/521/introduction/3237/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com 내 풀이 class Solution { func ..
*Heap 보다는 *Stack 메모리에 할당 한다. Heap에 할당되는 참조 타입의 class 보다는, Stack에 할당되는 값 타입의 struct나 enum에 할당한다. Why? Stack은 LIFO(Last In First Out)의 단순한 구조로 메모리 할당과 해제가 편리하고 빠르기 때문입니다. 반면, class는 Heap 영역에서 사용하지 않은 블록을 찾아 메모리 할당을 처리하며, 할당 해제시에는 해당 메모리를 적절한 위치로 다시 삽입 합니다. 사전적 의미 Heap: (아무렇게나 쌓은) 더미 Stack: (차곡차곡 쌓은) 더미 Reference counting을 적게 만든다. class 에서 String, Dictionary, Set, Array와 같은 가변길이 (길이가 고정적이지 않은) Coll..
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 내 풀이 머리를 굴려봤지만 포기.. 로.직.폭.망 로직보기 더보기 func solution(_ numbers:[Int], _ hand:String) -> String { var lhs = -1 var rhs = -2 var lhsDistance = 0 ..
https://apps.apple.com/ph/app/besteats/id1618130833 BestEats 배만 채우면 되던 시대는 이제 옛날 얘기!! 한끼를 먹어도 맛있게 먹기를 고민하는 시대 기록하고 나만의 레시피로 맛있게 먹자! 이런 분들에게 추천합니다. - 음식점 마다 나에게 맞는 간이나 apps.apple.com 앱 개발자분들이 앱 배포를 해보라는 이유를 알것 같습니다. 기획부터 개발까지 그리고 앱 등록 과정에서 개인정보처리방침, 앱 과금설정, 스크린샷 미리보기, 앱 설명, 앱 빌드 파일등록 등등 준비해야될게 너무 많았습니다. 시간 짬내서 어떻게든 내용 채운다음에 첫 심사제출!! 99.99% 리젝 당할것만 같지만 기능이 많지 않아서일까 배포까지 바로 완료 !! 배포해보고나니 고쳐야할게 너무..
https://programmers.co.kr/learn/courses/30/lessons/12930 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 내 풀이 func solution(_ s: String) -> String { var arr: [String] = [] var count = 0 for char in s { if count == 0 || count % 2 == 0 { arr.append(char.uppercased()) } else { arr.append(char.lowercased..
- Total
- Today
- Yesterday
- swift programmers
- RTCCameraVideoCapturer
- ios
- 원티드 프리온보딩
- Swift joined()
- Combine: Asynchronous Programming with Swift
- Swift init
- Swift final
- swift reduce
- Swift 프로퍼티
- Swift RIBs
- Swift
- Swift Leetcode
- removeLast()
- Class
- Swift inout
- Swift 내림차순
- swift protocol
- swift (programmers)
- CS 네트워크
- Swift 알고리즘
- Swift Error Handling
- swift property
- Swift joined
- RIBs tutorial
- 2023년 회고
- Swift ModernRIBs
- swift 고차함수
- Swift 프로그래머스
- iOS error
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |