전체 글 21

[iOS] 2025.03.12 문법

반복문반복문은 배열이나 Dictionary 같은 Collection Type이나 범위를 반복적으로 접근할 때 사용함. for 반복문for in 을 사용하면 배열과 범위의 숫자를 반복할 수 있음.컬렉션 타입에 대한 for in 반복문let names = ["Anna", "Alex", "Brian", "Jack"]// names 상수에 순서대로 이름을 넣음.for name in names { // names 배열 안에 있는 값들을 반복하여 아래 코드 블록을 실행함. // name에 names 배열의 데이터를 넣음. print(name)}숫자의 범위를 사용한 for in 반복문for index in 0...5 { print(index) // 0 부터 5 까지의 숫자..

iOS 17:20:35

[iOS] 2025.03.11 문법(연산자, 조건문)

연산자대입연산자, 산술연산자, 비교연산자, 논리연산자, 범위연산자대입연산자연산자는 값을 변수나 상수에 대입할 때 사용.= 연산자 기준으로 뒤에 값을 앞에 대입(할당)함.변수의 데이터 타입이 같다면 다른 값으로 재할당할 수 있음.let age = 20var name = "내배캠"var address = "서울"name = adressprint(name) // 서울 출력.산술 연산자더하기+ : 두 값을 더함.+= : 기존 값에 더한 후 할당함.var result = 10 + 20 // result 변수에 10+20의 값(30)을 할당함.print(result) // 30result += 3 // result 변수에 3을 더한 후 값을 할당함.print(result) // 33let value = 5resul..

iOS 2025.03.11

[iOS] 2025.03.10 Swift 문법, 알고리즘 특강

Swift Convention Guide컨벤션이란 코드를 작성할 때 지키면 좋은 통일된 규칙.Swift Convention Guide No.1Camel Case : 이름을 지을 때 공백(스페이스바)를 넣을 수 없기 때문에, 공백 대신 그 다음 글자를 대문자로 씀.변수와 상수 선언하는 방법var 변수이름: 변수의 데이터타입let 상수이름: 상수의 데이터타입 선언과 동시에 값을 할당하는 방법var 변수이름: 변수의 데이터 타입 = 실제 값let 상수이름: 상수의 데이터 타입= 실제 값 타입을 사용하지 않고 바로 값을 할당하는 방법 (Swift 컴파일러가 할당하는 값을 보고 데이터타입을 정해줌.)var 변수이름 = 실제 값let 상수이름 = 실제 값Swift Convention Guide No.2상수나 변수의..

iOS 2025.03.10

[iOS] 2025.03.05 팀프로젝트(3)

팀 소개 앱 개발 프로젝트.스토리보드를 활용해서 두 개의 ViewController를 이용해서 만들어봄.*깔끔하게 만들려면 더 늘려도 되겠다는 생각이 들었음.(계속 공부해나가야 할 부분)//ViewController 화면import UIKitclass ViewController: UIViewController { @IBOutlet weak var firstTableView: UITableView! @IBOutlet weak var secondTableView: UITableView! let teamCharacteristic = [ ("우리팀의 특징", "개인의 성장과 팀의 발전을 함께 추구합니다."), ("궁극적인 목표", "하루 1%의 변화가 모이면, 1년 후 ..

iOS 2025.03.05

[iOS] 2025.03.04 팀프로젝트(2)

메인페이지와 하위페이지를 모달로 연결하고 싶은데 여전히 오류 발생함.우선 메인페이지만 만든 코드만 기록해보겠음.import UIKitclass ViewController: UIViewController { @IBOutlet weak var firstTableView: UITableView! @IBOutlet weak var secondTableView: UITableView! let teamCharacteristic: [String] = ["우리팀의 특징", "궁극적인 목표", "우리팀의 약속"] let teammate: [String] = ["🙋🏻‍♀️박혜민", "🙆🏻‍♂️김기태", "🙋🏻‍♂️김형윤", "💁🏻‍♂️변준영"] ..

iOS 2025.03.04

[iOS] 2025.03.03 팀프로젝트(1)

팀 프로젝트팀 소개 앱 만들기 와이어 프레임 앱의 골격이나 앱의 사용자 인터페이스(UI) 및 핵심 기능을 나타내는 단순한 선과 도형으로 구성된 다이어그램 또는 다이어그램의 집합.레이아웃, 주요 색상, 페이지 구성 및 클릭 시 전환 등의 내용. 1. 아이디어 회의각자가 생각하는 앱을 와이어 프레임을 통해 만들어보고 서로 공유함.어플 로딩화면메인화면 : 팀 소개부분과 팀원 소개부분(이름과 이미지로 구성)상세화면 : 상세 정보를 새창으로 구현 2. 와이어 프레임 결정 메인화면팀 소개(특징, 목표, 약속) 노출팀원 소개(mbti) 노출 상세화면사진, 장점, 스타일, 블로그 주소 기재 부가기능 : 하단 내비게이션 바, 팀원 추가 버튼 3. 튜터(이현호 튜터) 피드백크게는 개발을 왜하는지, 작게는 기능이 왜 필요한..

iOS 2025.03.03

[iOS] 2025.02.26 Combine

Combine 프레임 워크:Apple에서 제공하는 반응형 프로그래밍(Reactive Programming) 프레임워크데이터를 비동기적으로 처리하고, 이벤트를 선언적으로 처리하는 데 사용. 주요 개념Publisher : 데이터를 제공하는 주체.Subscriber : 데이터를 수신하고 처리하는 주체.Operators : 데이터를 변환하거나 필터링하는 중간 연산자.Combine의 흐름 :Publisher -> Operator -> Subscriber sink는 Combine 프레임워크에서 Publisher의 값을 구독하고 처리하는 메서드임.즉, Publisher에서 발행한 값을 받아 원하는 동작을 수행하는 역할을 함. 직접 구현해보기Step 1 : Combine 기본 구현1. 간단한 Publisher와 Sub..

iOS 2025.02.26

[iOS] 2025.02.25 비동기 프로그래밍 / 제네릭

비동기 프로그래밍 / 제네릭 비동기 프로그래밍1. 비동기 프로그래밍 :작업을 동시에 실행하거나, 완료 여부를 기다리지 않고 다음 작업을 수행할 수 있는 프로그래밍 방식.iOS에서는 주로 GCD(Grand Central Dispatch)와 비동기 메서드를 사용. 2. 동기 vs 비동기동기(Synchronous) : 작업이 완료될 때까지 대기.비동기(Asynchronous) : 작업 완료를 기다리지 않고 바로 다음 작업 실행. 3. GCD의 주요 큐 :Main Queue : UI 작업을 처리.Global Queue : 백그라운드 작업 처리.Custom Queue : 사용자 정의 작업 큐.비동기 프로그래밍 예제DispatchQueue.global().async {    print("비동기 작업 실행")    ..

iOS 2025.02.25

[iOS] 2025.02.25 클로저 / 객체지향 프로그래밍

클로저1. 클로저란?코드에서 독립적으로 전달 및 사용할 수 있는 기능을 가진 코드 블록.변수나 상수에 저장 가능하며, 함수의 인자로 전달할 수 있음.함수 = 이름이 있는 클로저클로저 = 코드의 묶음2. 클로저 문법클로저는 다음과 같은 형태로 작성됨.{ (매개변수) -> 반환타입 in    실행 코드} 3. 캡처(Capture)클로저는 외부 변수나 상수의 값을 캡처하여 저장함.var number = 10let closure = { number += 5 }closure()print(number) // 15* 일반적인 함수와 비교했을때, 일반 함수는 실행이 끝나면 지역 변수가 사라지지만 클로저는 실행될 때 해당 변수나 상수의 값을 저장하고, 이후에도 그 값을 사용할 수 있도록 유지함. 클로저 기본 예제let ..

iOS 2025.02.25

[iOS] 2025.02.24 자료구조 / 메모리 구조 및 ARC

자료구조 / 메모리 구조 및 ARC1.  자료구조배열(Array)데이터를 순차적으로 저장하는 자료구조인덱스를 사용해 특정 요소에 접근.특징 : 빠른 조회, 삽입/삭제 시 성능 저하 추가append() -> 마지막에 추가+= -> 여러개 추가insert(at:) -> 원하는 위치에 추가 삭제remove(at:) -> 특정 위치 요소 삭제removeLast() -> 마지막 요소 삭제removeAll() -> 전체 요소 삭제 조회.first -> 첫번째 요소 가져오기.last -> 마지막 요소 가져오기* second는 안됐음. 옵셔널이므로 !(강제 언래핑) 필요.isEmpty -> 배열이 비어 있는지 확인. 수정var items = ["Book", "Laptop", "Phone"]items[1] = "Tabl..

iOS 2025.02.24