App, ViewController, View 각각의 생명주기(LifeCycle)에 대해 학습해보자. 화면을 구성하고 이해하는데 중요한 핵심 개념이다! App LifeCycle 만들 앱이 실행되고 종료되는 동안 어떤 라이프 사이클을 가지는지 알아보자. 아래와 같이 다섯가지의 상태를 가진다. Not Running - 실행되지 않거나 종료된 상태. InActive - 앱이 Foreground 상태로 돌아가지만, 이벤트는 받지 않는 상태, 잠시 존재하는 상태. - 아래에서 위로 스와이프 하는 순간 InActive 상태가 된다. Active - 일반적으로 앱이 돌아가는 상태(이벤트를 받는 단계) Background - 앱이 Suspended(유예 상태) 상태로 진입하기 전 거치는 상태 (음악, 통화 앱 같은 경..
Devlog👩🏻💻
UIViewController, UIView의 개념그리고 다양한 UIView 컴포넌트에 대해 학습해 보자. 📍UIViewController란?UIKit 앱의 View 계층을 관리하는 개체(object)UIViewController 클래스: UILabel, UIButton, UIImageView 등과 같은 다양한 UIView 요소들을 포함하고, 관리(제어)할 수 있다.모든 UIViewController는 하나의 Root View를 가지고 있으며, UIView요소를 포함한다. 📍UIView란?화면을 구성하는 기본 객체(object)사용자 인터페이스를 구성하는 데 중요한 역할을 하는 클래스UIView 클래스는 화면에 보이는 모든 요소의 기본 클래스이며, 버튼, 레이블, 이미지, 입력 필드 등의 요소들은 모..
Xcode를 시작하고 iOS 프로젝트를 생성하는 과정 및 각 Interface 영역에 대해 알아보자. iOS 프로젝트 생성하기 아래는 iOS 프로젝트를 생성하는 방법이다. Xcode 실행 후 Create new project 클릭 iOS 탭 클릭 후, App 선택 각 항목을 채워넣은다음, Next 버튼을 눌러 다음으로 이동 각 세부 항목들 설명 Product Name : 프로젝트 이름 Team : 애플 개발자로 생성된 인증서를 선택 Organization Identifier : Bundle Identifier의 prefix > 이름 (Personal Team) 혹은 None Interface : UserInferface를 작성할 타입을 선택 > SwiftUI와 Storyboard방식 Language : ..
내 프로젝트의 수정사항이 생겼을 때 push 하는 방법은 다음과 같다. 🔖 Git Branch 생성 후 push 하기 git branch 브랜치명 git checkout 브랜치명 git status로 변경사항 확인 git add . (수정 사항 전체 add) git commit -m “메세지” git log로 커밋 확인 git push origin 브랜치명 코드 업로드 및 pull request 생성 github에서 rebase&merge / merge 로컬에도 반영 : git pull origin main 원격 브랜치 확인 원격 브랜치 확인 : git branch -r 원격에 있는 브랜치로 변경 : git checkout -t origin/브랜치명 ⚠️ 문제 발생 단순하게 위의 방식으로 작업을 진행중에..
클래스에서의 필수적인 초기화 과정이 헷갈렸던 적이 많았는데 강의를 통해 객체를 만들기 위한 여러 가지 초기화 방법에 대해 학습했다. ☑️ 초기화와 생성자 초기화는 클래스, 구조체, 또는 열거형의 인스턴스를 생성하고 속성을 초기화하여 사용할 수 있도록 하는 과정을 의미한다. Swift에서 초기화는 객체가 메모리에 할당되고 속성이 적절히 설정되어 안정적으로 사용될 수 있도록 하는 중요한 단계이다. 인스턴스란? 객체 지향 프로그래밍에서, 인스턴스(Instance)는 클래스, 구조체 또는 열거형과 같은 타입의 실제 예시를 나타낸다. (ex_틀로 찍어낸 무언가) 클래스나 구조체 등의 템플릿(틀)을 기반으로 생성된 실제 데이터를 가리킨다. 즉, 클래스나 구조체를 기반으로 만들어진 객체를 인스턴스라고 한다. // P..
값이 없음을 포함하는 옵셔널의 개념에 대해 학습한 내용을 정리해보고자 한다. ☑️옵셔널 Swift에서는 변수를 저장하는 공간에 박스를 씌워놓는다! 진짜 박스는 아니고 오늘 배울 옵셔널에 대한 비유를 들어본건데 빈 값은 컴퓨터에게는 있어야 할 것이 없다! 🚨는 느낌이기 때문에 에러를 발생시키고 어플리케이션을 종료시키기도 한다. 때문에 이렇게 모든 변수에 박스를 씌워놓고 저장을 하면 값이 있을 때와 없을 때 모두 안전하게 컴퓨터가 값을 읽을 수 있다 😃 값이 없을 수 있는 상황에서 옵셔널(Optional)을 사용합니다. 옵셔널은 물음표 ? 로 나타냅니다. (타입 어노테이션) 옵셔널은 두 가지 가능성을 나타냅니다. 값이 있고 옵셔널로 래핑(wrapping)해놓은 값을 언래핑(unwrapping)하여 해당 값에..
Swift 언어로 알고리즘 문제를 풀 때 고차함수를 이용하면 간단하게 풀이할 수 있다. 내가 푼 풀이에서 1줄짜리 코드가 되는 걸 보며 고차함수에 조금 더 익숙해지고 연습해야겠다는 생각이 절실히 들었다. 오늘 풀었던 알고리즘 문제들을 고차함수로도 연습해 본 코드를 정리해 봤다. Lv.1 : 수박수박수박수박수박수? 🔗문제 링크 나의 풀이 func solution(_ n:Int) -> String { let su = "수" let bak = "박" var result = "" for i in 1...n { result += i % 2 == 0 ? bak : su } return result } for문으로 1부터 n까지의 범위를 반복하며 짝수, 홀수를 판별하여 "수"와 "박"을 이어 붙이도록 작성했다. 다른..
문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,1000,000이하의 자연수 입출력 예 N return 123 6 987 24 입출력 예 설명 입출력 예 #1 문제의 예시와 같습니다. 입출력 예 #2 9 + 8 + 7 = 24이므로 24를 return 하면 됩니다. ✏️ 풀이 1. 정수를 문자열로 변환 : String(n) func solution(_ n: Int) -> Int { var answer:Int = 0 for i in String(n) { answer += Int(String(i))! } return answe..
TIL 240126 사용자 인터페이스와 로직 연결 인터페이스 빌더의 객체를 코드와 연결하기 위해 @IBOutlet와 @IBAction 어노테이션을 사용한다. @IBOutlet 와 @IBAction 소개 SwiftUI vs UIKit Storyboard vs Code Stroryboard에서 화면과 코드를 연결하는 방법 UI를 그리는 방법 중 SwiftUI와 UIKit 방식이 있다. 그 중 UIKit으로 화면을 그린다고 선택했을 때 크게 두 가지 방법이 있다. Storyboard와 Code 방법이 있는데 Storyboard만으로는 화면을 그릴 수 없어 코드와 스토리보드를 연결해주는 과정이 필요하다. @IBOutlet 연결 방법은 드래그 앤 드롭 컴포넌트를 연결 함 화면에 있는 뷰와 코드를 연결할 때 사용 ..
TIL 240124 https://yujjne.tistory.com/6 [Swift] 컬렉션 타입(Collection Type) - Array TIL 240123 📍컬렉션 타입(Collection Type)이란? 스위프트는 많은 수의 데이터를 묶어서 저장하고 관리할 수 있는 컬렉션 타입을 제공한다. 컬렉션 타입의 종류는 다음과 같다. Array Dictionary Set 타입 설 yujjne.tistory.com 저번에는 컬렉션 타입과 Array에 대해 알아봤는데 // 1. 타입 추론 var dict = ["John": 90, "Alice": 95, "Bob": 80] var dict = [] // error : 타입 추론으론 빈 딕셔너리 생성 불가 // 2. Type Annotation //[Strin..