Swift 17

[Swift] 구조체와 클래스

# 클래스클래스를 공부하기 전에 추상화라는 개념을 간단히 알고 가면 좋습니다.추상화는 객체가 가진 여러 가지 특징 중에서 프로그램에서 처리할 특징을 도출하는 과정입니다. 클래스는 추상화의 결과를 코드로 표현한 것이라고 간단히 설명할 수 있습니다.객체의 특징과 상태는 속성으로 구현하고, 객체의 동작은 메소드로 구현합니다. 클래스는 객체를 구현하기 전 설계도라고 생각하면 편합니다.즉, 하나의 클래스를 생성 후 필요한 수만큼 객체를 만듭니다.클래스로 만든 하나의 객체는 인스턴스(Instance) 라고 부르며, 모든 인스턴스는 똑같은 이름의 속성을 가지고 있지만 실제로 저장되는 값은 다를 수 있습니다.그리고 똑같은 메소드를 가지고 있지만 인스턴스마다 값이 다를 수 있다는 것을 명심해야 합니다. # 구조체구조체도..

Swift 2024.08.04

[Swift] 열거형과 원시값

# 열거형연관된 상수를 하나의 이름으로 묶은 타입을 열거형이라고 합니다.열거형에 포함된 상수나 변수들을 case 라고 부르기도 합니다. 열거형의 경우, String 이나 Int 처럼 독립적입니다.타입이니 이름을 필수적으로 가지고 있겠죠?열거형에 포함된 케이스도 독립적인 이름이어야 합니다.열거형의 이름은 스코프 내에서 유니크해야 하며, 케이스는 하나의 열거형 안에서 유니크해야 합니다. 열거형의 장점으로 두 가지를 나타낼 수 있습니다.첫 번째, 코드의 가독성이 올라갑니다.둘, 안전성을 보장할 수 있습니다. 다음으로는 열거형의 문법에 대해 알아보겠습니다.enum TypeName { case caseName case caseName, caseName}타입의 이름은 카멜 표기법을 지켜서 사용해야 합니다. ..

Swift 2024.08.04

[Swift] Dictionary

딕셔너리는 한국어로 사전입니다.사전과 구조가 비슷하기 때문에 편한 이해를 위해 이것은 사전라고 생각하며 공부하면 편할 것 같습니다. 사전은 단어와 뜻을 짝지어서 저장합니다.딕셔너리도 이와 같이 키와 값을 짝지어서 하나의 요소에 저장합니다.키는 하나의 딕셔너리 안에서 유니크한 값이며, 타입에 영향을 받습니다.반대로 값은 다른 키의 값과 같아도 되며, 타입에 영향을 받지 않습니다. # Unordered Collection인덱스와 정렬 메소드가 존재하여 정렬이 된다고 생각할 수 있지만,딕셔너리에 저장되는 요소는 정렬이 되지 않습니다. 배열은 열 번 열거하거나 백만 번 열거해도 같은 순서로 정렬됩니다.하지만 딕셔너리의 경우 백 번 정도는 같은 순서로 정렬되지만 결국 순서가 갑자기 바뀔 수 있습니다.즉, 정렬되지..

Swift 2024.08.04

[Swift] Array

# Array배열은 하나 이상의 데이터를 연속해서 나타내는 콜렉션이고,저장한 순서대로 정렬되며 처음에 저장한 데이터가 앞에 오고 마지막에 저장된 데이터가 뒤에 위치하는 형식입니다. 동일한 타입의 값만 저장이 가능하며배열을 만들때 요소의 타입 명시적으로 나타냅니다.예를 들어 int 형으로 저장하면 double 이나 stirng 형으로 저장할 수 없습니다. 배열은 타입에 제한은 있지만 똑같은 값 여러 번 저장이 가능합니다.같은 값이 여러 개여도 같은 것으로 취급하는 게 아닌 독립된 것으로 인식합니다. 요소에 접근하는  인덱스 0부터 시작하는 정수 인덱스입니다.이는 저장된 순서에 따라 자동으로 지정되며,처음은 0 마지막은 배열에 저장된 요소의 수보다 1 작은 것으로 지정됩니다. 요소의 배열은 삭제 추가를 통해..

Swift 2024.08.04

[Swift 프로젝트] 기능 구현 시 필요 컴포넌트

# TextField먼저, 사용자가 수정할 수 없는 문자열을 보여 주는 것을 텍스트라고 합니다.반면에 텍스트필드의 경우 사용자가 텍스트를 수정할 수 있는 컴포넌트를 의미합니다.텍스트를 편집할 수 있는 인터페이스를 제공합니다.struct TextField where Label: View기본 코드입니다. 더욱 자세한 코드를 통해 기본 사용에 대해 알아보겠습니다.struct ContentView: View { @State var text: String = "" var body: some View { VStack { Text(text) .font(.title) TextField( "Inpu..

Swift 2024.07.21

[Swift 프로젝트] Swift UI

# swift UI 의 특징스위프트 UI 의 특징은 네 가지로 정리해 볼 수가 있습니다.먼저 스위프트 언어로 앱에 대한 동작이나 UI 를 선언해 주는 프레임 워크입니다.하나의 개발로 모든 것을 적용시킬 수 있다는 특징이 있습니다. 두 번째는 상태 중심 프레임 워크입니다.근본적으로 돌아가면 개발을 할 때는 상태를 중요하게 생각해야 되는데 스위프트는 이 부분에 집중하고 있음을 알 수 있습니다. 세 번째, xcode 12, ios 13 부터 지원을 하고 있습니다.마지막으로는 Less code, Better code, Everywhere더 적고 쉬운 코드로 만들고자하는 코드를 작성할 수 있다는 특징을 가지고 있습니다. # Swift UI 장단점먼저 장점부터 설명해 보겠습니다.스위프트 언어는 선언적 구문입니다.어..

Swift 2024.07.21

[swift] Collection

# collection보통 콜렉션이라 함은 물건이나 개념들을 공통적인 주제로 묶어둔 것이라고 표현할 수 있습니다.프로그래밍 속에서 콜렉션은 하나로 묶는 대상이 다를 뿐입니다.데이터 묶음을 효율적으로 처리하는 특별한 타입을 콜렉션이라고 합니다. collection 에는 세 가지 종류가 있습니다.첫 번째 Array(배열)은 데이터를 순서대로 저장하는 콜렉션,두 번째 Dictionary 사전처럼 키와 값을 하나로 저장하는 콜렉션,마지막 세 번째 Set 은 집합 연산을 제공하는 콜렉션입니다. # Swift CollectionArrayDictionarySet위에 설명한 세 가지 collection 을 우리는 Swift Collection 이라고 부르기로 했습니다.제약 없이 객체와 값 모두 저장이 가능하지만 하나의..

Swift 2024.07.03

[Swift] String

# String and CharactersHello, world우리는 이 문자를 문자열로 인식하지만,스위프트에서는 문자열로 인식하지 않습니다. 스위프트에서 문자열은 큰따옴표로 감싸야 합니다.문자열을 상수에 저장하고 타입 확인을 하는 코드를 작성해 보겠습니다.let s = "Hello, world"이것은 우리가 스위프트에서 Singleline String Literal 이라고 부릅니다.하나의 큰 따옴표로 시작해서 하나의 큰 따옴표로 마무리됩니다. 긴 문자를 입력할 때 줄 바꿈을 실행하면 컴파일 에러가 발생합니다.출력 값을 줄바꿈으로 나타내고 싶을 때는 \n 을 추가하면 됩니다. # Multiline String Literallet multiline = """긴 문자를 \n 없이 나타내고 싶을 때는 ""' ..

Swift 2024.06.05

[Swift] 함수

# 함수특정 기능을 수행하는 코드 조각을 함수라고 부릅니다. Parameter ( 입력값 ) -> InputCode -> 특정 기능을 수행하게 만드는 코드Return Value ( 출력값) -> Output으로 간단하게 정리해 볼 수  있습니다. 함수의 장점으로는 자주 사용하는 기능을 만들어두면 언제든지 반복해서 사용할 수 있다는 것입니다.기능 추가를 하고 싶으면 코드만 수정하면 되니 상당히 편리합니다. # Swift Standard Library스위프트에 내장되어 있습니다. 이 곳에는 다양한 기본 함수가 구현되어 있기 때문에검증되고 안전한 함수들로 구성되어 있습니다. # 함수 사용함수를 사용하는 것은 함수를 호출한다고 표현합니다. 문법을 알아 보면,functionName(parameters)parame..

Swift 2024.06.05

[Swift] Optional

# Non-optional Typeoptional 은 값이 없다는 것을 비교하는 것이 중요!let stock: Intprint(stock)이 코드는 stock 이라는 상수가 초기화되기 전에 사용되었다고 에러가 발생합니다. 변수와 상수는 값을 읽기 전에 항상 초기화해야 합니다.변수와 상수는 항상 타입에 맞는 값을 가지고 있어야 하며 이러한 것들을 넌옵셔널 타입이라고 칭합니다. 넌옵셔널 타입은 값이 없음을 나타낼 수 없고, 늘 값을 가지고 있어야 합니다.let stock: String = "out of stock"print(stock)오타 발생률을 줄이기 위해 String 사용을 지양하는 것이 좋습니다.그러므로 값이 없음을 나타내기 위해서는 Optional 을 사용하는 것이 중요합니다. # Optional ..

Swift 2024.06.05