박교수의 Swift강좌10-열거형과 구조체, 클래스에 대하여 이론적인 설명과 예제 프로그램을 통해 살펴보도록 하겠습니다. Swift의 열거형은 튜플값을 멤버로 가질 수 있으므로 C/C++보다 풍부하고 강력한 기능이 가능합니다. 또한 클래스와 구조체 모두 메소드를 가질 수 있다는 점이 C++와는 다른 점입니다.
Youtube
- https://www.youtube.com/watch?v=TykLyvMsGho
이 강좌에서는 Swift의 제너릭에 대해 알아봅니다.
제네릭 코드는 데이터 타입보다는 알고리즘에 코드를 집중할 수 있도록 하는 문법이며, 이를 통해 프로그램을 유연하게 작성할 수 있고, 재사용가능한 함수를 만들 수 있다.
Youtube
- https://youtu.be/x9k9EcokVMA
이번 Swift 강좌에서는 값타입과 참조타입에 대하여 알아봅니다. Swift에서는 구조체와 클래스, 열거형은 모두 속성(프로퍼티)과 메소드를 가질수 있습니다. 이런 점에서 구조체와 클래스는 매우 유사합니다
그러나 구조체는 값타입이며 클래스는 참조타입으로 구조체는 간단한 데이터 값들을 한데 묶어서 사용하는 경우 다루기가 좋습니다.
반면 값타입이므로 복사시에 구조체 변수들은 원본 구조체의 값이 복사되어 별도의 메모리에 유지됩니다.
Youtube
- https://youtu.be/EtkltOwzfco
본 강좌에서는 클로저에 대해 알아보도록 하겠습니다. 클로저란 내부 함수와 내부 함수에 영향을 미치는 주변환경을 모두 포함한 객체로정의할 수 있습니다. 또한 클로저는 func와 함수이름이 생략된 경량의 함수객체로 클로저 표현을 통해 문장릉 짧고 간단하게 만들 수 있습니다.
Youtube
- https://youtu.be/0bIRlDCH8kU
이 강좌에서는 Swift의 제너릭에 대해 알아봅니다.
제네릭 코드는 데이터 타입보다는 알고리즘에 코드를 집중할 수 있도록 하는 문법이며, 이를 통해 프로그램을 유연하게 작성할 수 있고, 재사용가능한 함수를 만들 수 있다.
Youtube
- https://youtu.be/x9k9EcokVMA
이번 Swift 강좌에서는 값타입과 참조타입에 대하여 알아봅니다. Swift에서는 구조체와 클래스, 열거형은 모두 속성(프로퍼티)과 메소드를 가질수 있습니다. 이런 점에서 구조체와 클래스는 매우 유사합니다
그러나 구조체는 값타입이며 클래스는 참조타입으로 구조체는 간단한 데이터 값들을 한데 묶어서 사용하는 경우 다루기가 좋습니다.
반면 값타입이므로 복사시에 구조체 변수들은 원본 구조체의 값이 복사되어 별도의 메모리에 유지됩니다.
Youtube
- https://youtu.be/EtkltOwzfco
본 강좌에서는 클로저에 대해 알아보도록 하겠습니다. 클로저란 내부 함수와 내부 함수에 영향을 미치는 주변환경을 모두 포함한 객체로정의할 수 있습니다. 또한 클로저는 func와 함수이름이 생략된 경량의 함수객체로 클로저 표현을 통해 문장릉 짧고 간단하게 만들 수 있습니다.
Youtube
- https://youtu.be/0bIRlDCH8kU
2019년 5월 23일 창원대학교 정보통신공학과 특강자료 입니다.
* 일 시 : 2019년 5월 23일 (목) 13:00 ~
* 장 소 : 창원대학교 51호관 328호실
* 강연자 : 한국전자통신연구원(ETRI) 김성수 책임연구원
* 주 최 : 창원산업진흥원
* 주 관 : 창원시 스마트모바일앱지원센터
이번 강의에서는 지난 7개월간 이어진 강의의 마지막 편으로 파이썬이 각광받고 있는 이유와 장점에 대해서 다루어 봅니다.
그리고 저의 개인적인 강의 경험도 알려드릴까 합니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
코딩 스타일은 파이썬의 아주 중요한 요소중 하나입니다.
이번 강의에서는 PEP-8 의 코딩 스타일 가이드 라인에 대해 자세히 살펴보고 pyCharm의 리포맷 기능에 대해서도 알아보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 방대한 파이썬 표준 라이브러리의 내용과 기능을 살펴보고 파이썬 외부 라이브러리에 대해서도 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬의 패키지를 만들고 활용하는 방법을 알아보겠습니다.
대규모 프로젝트를 수행하기 위해서는 이미 잘 만들어진 코드를 활용하는 것이 중요한데요, 잘 만들어진 코드를 활용하는 방법이 모듈을 사용하는 것입니다.
그러나 모듈의 수가 많아지면 폴더(디렉토리) 아래에 계층적으로 두는 것이 더욱 편리합니다.
한 폴더에 유사한 성격의 여러 모듈을 두고 이 폴더를 가져오는 방식으로 개발을 하는데 이 폴더를 패키지라고 합니다. 본 강의에서는 예제를 통해서 파이썬의 패키지 만드는 방법을 살펴보도록 하겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 람다함수를 필터 함수와 맵 함수에서 사용하는 방법에 대해 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 람다함수에 대해 알아보겠습니다.
앞서 배운 함수를 이용하면 필요한 기능의 재사용이 가능하기 때문에, 함수를 정의한 후 필요할 때마다 호출하여 사용하면 편리한데 이러한 방식으로 프로그램을 하는 방식을 모듈화 프로그래밍 이라고 한다.
그러나 가끔씩은 함수를 만들지 않고 함수화된 기능만을 불러 사용하고자 할 경우가 있는데, 이렇게 하면 프로그램을 단순하게 만들 수 있다.
즉 1회용으로 함수를 만들고 싶은데 def xxx(): 과 같은 이름을 짓는 것이 번거롭게 느껴질 경우에 사용하는 것이 람다함수 혹은 람다표현식이다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬 클래스의 상속에 대해 알아보겠습니다. 소프트웨어 개발시에는 예전에 만들어진 코드를 이용하여 새로운 기능을 개발하는 경우가 많은데요, 클래스의 상속 기능을 사용하면 부모 클래스에서 만들어둔 기능과 속성을 물려받을 수 있습니다.
상속은 객체지향 프로그래밍의 매우 뛰어난 기능으로 이 강의에서는 상속에 대해 알아봅니다. 또한 상속받은 자식이 부모 클래스를 호출하기 위해 사용하는 super() 함수에 대해서도 알아봅니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬에서 클래스를 정의하는 문법과 self 에 대해 살펴보도록 하겠습니다.
그리고 .(마침표)연산자를 이용하여 인스턴스에서 메소드를 호출하는 방법도 살펴보겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
슬라이싱(slicing)이란 리스트나 튜플, 문자열의 항목을 잘라서 일부만을 가져오는 기능을 말합니다.
보통 list[시작 : 끝] 과 같이 시작항목과 끝 항목의 인덱스를 지정하는 방식으로 사용하는데요, 시작 항목은 포함되지만 끝 항목은 포함되지 않습니다.
이번 강의에서는 파이썬의 슬라이싱을 이용하는 방법을 다양한 예제와 애니메이션으로 살펴보도록 하겠습니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬의 iterator에 대해 알아보겠습니다.
리스트, 집합, 딕셔너리와 같은 타입이나, 문자열은 for - in 구문을 통해서 반복적으로 하나씩 데이터를 꺼내서 처리할 수 있는데, 이와 같이 여러 개의 데이터를 포함한 타입중에서 반복적으로 하나하나 꺼내어 처리가능한 컬렉션이나 Sequence 들을 순환가능(Iterable) 객체라고 합니다.
iterator는 next() 함수를 구현한 객체를 말하며 next() 함수는 순환가능한 객체의 다음 원소를 반환하는 일을 합니다.
파이썬은 list, dict, set, bytes, tuple, range형이 iterable 형 객체입니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 동영상 강의에서는 리스트 함수에 대해 살펴보도록 하겠습니다. 앞 장 강의에서 min(), max()와 같은 간단한 리스트 함수를 살펴보았는데요, 이번 강의에서는 all(), any(), bool(), filter() 등의 고급 함수의 기능과 그 사용예를 살펴봅니다.
- 강의 키노트 자료는 다음 링크를 통해 다운 받으세요
https://drive.google.com/drive/folders/1UrrO4_ch4xcIErbExstwpUVY6vFvPdkW
- 강의 소스코드는 다음 링크를 통해 다운 받으세요
https://github.com/dongupak/Basic-Python-Programmingwjd
이번 강의에서는 파이썬의 리스트 메소드에 대해 살펴보겠습니다.
파이썬의 리스트는 다양한 메소드를 제공하는데, 이 메소드를 통해 리스트의 원소를 변경하거나, 삭제, 추가, 병합, 정렬등의 기능을 할 수 있습니다.
또한, 파이썬의 기본 함수에서는 리스트의 원소의 길이, 최대값, 최소값, 분할을 위한 다양한 함수가 제공됩니다. 예제와 실습을 통해 index(), extend(), insert(), sort(), reverse()등의 메소드와 사용법을 알아보겠습니다.
3. 열거형
• 나열형이라고도 하며 관련있는 상수 목록 집합을 정의하
는 구문이다
• 예를들어 동,서,남,북과 같은 방위의 목록집합의 정의
하고 싶다
• 그러나 Swift의 기본자료형에서는 이러한 타입을 제공
하지 않는다
• 개발자가 목록집합을 정의하여 새로운 타입처럼 사용
한다
4. 열거형(Enumerations)
• 변수가 가질 수 있는 가능한 값들을 나열해 놓은 타입
• 값의 종류가 일정한 범위로 정해 있을 때 쓰는 것이 편리
• 선언 - enum과 case를 사용하여 나열함
c언어와 차이점 - C언어는 디폴트로 멤버에 정수를 할당된다
그러나 Swift에서는 정수할당 여부를 선택할 수 있다
9. 구조체(Structures)와 클래스(Class)
• 구조체(Structures) : 서로 다른 자료형의 변수들을 묶어 하나의 새로
운 자료형을 만들 수 있으며, 이 새로운 자료형을 구조체(struct)라고
한다
• 클래스(Class) : 클래스는 구조체와 같이 서로 다른 자료형의 속성과
메소드를 포함한다. 상속을 통해 자식 클래스에 자신의 속성과 메소
드를 물려줄 수 있다
• Swift에서는 나열형, 구조체와 클래스 모두 속성과 메소드를 가질 수
있다.
• Mac OS X을 위한 Cocoa 프레임워크등 개발용 프레임워크는 많은
클래스로 이루어져있다
10. 용어정리
• C나 C++와 같은 프로그래밍 언어에서는 일반적으로 클
래스의 인스턴스를 객체(오브젝트)라고 한다.
• Swift는 다른 언어와 달리 클래스와 구조체의 기능이 유
사하다. 클래스와 구조체의 인스턴스 모두 메소드를 가질
수 있다.
• 이 때문에 Swift에서는 객체라는 용어보다 일반적인
인스턴스라는 용어를 사용한다
11. 클래스와 구조체의 유사성
• 값을 저장할 속성을 정의한다
• 기능을 위한 메소드를 정의한다
• 멤버 속성의 설정과 검색을 위해서 메소드를 만들 수도 있으
나 subscript을 사용하여 인덱스로 값을 편리하게 설정하고
검색할 수 있다
• 초기상태를 설정하기 위한 init이라는 초기설정자를 제공한다
• 기본 구현내용을 확장하기 위한 기능을 제공한다(extension)
12. 클래스와 구조체의 차이점
• 클래스는 구조체가 가지지 못한 다음 기능을 가진다
• 부모 클래스의 특성을 상속받는 기능이 가능하다
• 클래스 인스턴스를 형을 검사하고 반영하여 런타임시
에 형변환을 할 수 있다
• 할당된 임의의 리소스를 해지하는 deinitializer를 가진
다
• 클래스 인스턴스는 참조 카운터를 하나 이상 허용한다