안녕하세요. 도미닉입니다. 오늘은 의존성 주입에 대해서 알아보겠습니다. 우선 의존성이 무엇인지에 대해 정리해보겠습니다. 의존성이란? 위 코드와 같이 Programmer 구조체에서 startProgramming 함수가 호출되기 위해서는 Coffee 구조체가 필요합니다. 이 때 Programmer 구조체는 ‘Coffee 객체에 의존성을 가진다’라고 합니다. 위 예제에서 Coffee 구조체의 drink 메소드가 없어지거나 drink 메소드의 내용이 바뀌면 그에 따라 Programmer 의 startProgramming 메소드가 변경되어야 합니다. 이럴 때 코드의 재활용성이 떨어지고 결합도가 올라가게 됩니다. 아래에서 의존성 뒤에 붙는 주입이라는 단어에 대해서 알아보겠습니다. 주입이란? 위에 코드를 보시면 Co..
안녕하세요. 도미닉입니다. 오늘은 이니셜라이저에 대해서 알아보겠습니다. “이니셜라이저”란? 이니셜라이저는 한글로 초기화입니다. 초기화하면 어떤 단어가 생각나시나요? 리셋, 재부팅 같은 단어가 생각납니다. 그렇습니다. 초기상태로 셋팅해주는 것을 초기화라고 합니다. 스위프트에서 “이니셜라이저”란? 구조체와 클래스을 활용하고자 한다면 초기화해주어야 합니다. 이니셜라이저는 새로운 인스턴스를 만들어주는 과정이라고 할 수 있습니다. 이니셜라이저라는 작업을 통해 스위프트는 구조체와 클래스에 메모리를 할당하여 인스턴스로 만들어줍니다. 스위프트에서는 모든 프로퍼티(속성)에 값이 할당되어야 정상적으로 초기화가 되었다고 인식하며 하나의 프로퍼티라도 값이 할당되지 않았다면 오류가 발생합니다. 구조체의 이니셜라이저 구조체를 선..

안녕하세요. 도미닉입니다. 오늘은 오버로딩과 오버라이딩에 대해서 알아보겠습니다. 오버로딩(overloading) 이란 같은 이름의 메소드를 매개변수가 다르게 여러번 선언할 수 있는 것을 의미합니다. 오버로딩에는 생성자 오버로딩과 메소드 오버로딩이 있습니다. init 생성자를 매개변수 숫자를 다르게 해서 두번 선언했습니다. 이러한 것을 생성자 오버로딩이라고 합니다. eat 메서드를 매개변수 숫자를 다르게 해서 두번 선언했습니다. 이러한 것을 메서드 오버로딩이라고 합니다. 오버라이딩(overriding) 은 상위 클래스에서 선언한 메서드를 하위 클래스에서 재정의해서 사용하는 것을 의미합니다. 위에 오버로딩의 예제를 들었던 소스에서 People 클래스의 eat 메서드를 선언했었습니다. Student 클래스는 ..
앞에서 소개드린 구조체 안에 내용 중에 프로퍼티에 대해서 먼저 알아보겠습니다. 프로퍼티는 저장 프로퍼티, 연산 프로퍼티, 타입 프로퍼티로 나뉘어집니다. 첫번째로 저장 프로퍼티는 가변 프로퍼티와 불변 프로퍼티로 나뉩니다. 구조체는 기본적으로 모든 저장 프로퍼티를 포함하는 이니셜라이저가 자동으로 생성됩니다. 위에 Cat 구조체에서 그것을 사용해보았습니다. 저장 프로퍼티는 기본값을 설정할 수도 있으며 기본값이 있는 경우 이니셜라이저 없이 인스턴스 생성이 가능합니다. struct Coordinate { var x: Int = 0 var y: Int = 0 } let point: Coordinate = Coordinate() 만약 저장 프로퍼티가 옵셔널이면 해당 프로퍼티는 초기값을 넣어주지 않아도 됩니다. 지연 ..
- Total
- Today
- Yesterday
- 단어
- 반복문
- 애플
- Swift
- exercise
- 시원스쿨
- 연습문제
- 테라스캔
- 왕초보 영단어1
- 영어
- 프로그램
- terascan
- MySQL
- 포인터
- C
- Apple
- database
- IOS
- Matlab
- 리눅스
- 프로그래밍
- 뇌를 자극하는 C프로그래밍
- 배열
- 매트랩
- 스위프트
- 형용사
- Xcode
- 함수
- 뇌를 자극하는 C 프로그래밍
- 데이터베이스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |