정말 기본적인 문법만 이해했다. 아이폰 앱을 만드는 게 목표지 문제까지 풀면서 Swift를 배울 필요는 없다고 판단했기 때문. 앱 개발을 하는데 프로그래밍 언어의 역사를 배울 필요는 없지 않을까.
대학교 교양과목으로 C언어를 들어봤기 때문에 변수(value), 배열(array), 함수(function), 조건문(if), 반복문(while, for), 구조체(typedef, struct) 등에 대한 기본적인 이해는 있었다. 독학으로도 충분히 이해하기 쉬운 개념들이라 생각한다. 책은 열혈 C 프로그래밍을 봤지만 지금 생각해보면 굳이 책이 아니어도 유튜브에서 개념별로 짤막한 영상들만 봐도 충분하지 않나 싶다.
하지만 IOS Xcode 프로그래밍에 쓰이는 언어가 Swift 라기에 음... 컴퓨터 언어면 대충 형식만 다르고 개념은 비슷하지 않을까? 했는데 Swift는 객체 지향 프로그래밍 언어(OOP: Object Oriented Programming)라고 한다. 뭔 소린가 싶어서 찾아보기 시작. 현재 보고 있는 CodeWithChris 유튜브 강의에도 대략적인 내용은 나오지만 이 사람은 생략을 해도 너무 많이 했다.
꽤나 많은 블로그 글들과 책을 봤는데 Swift 언어로 객체 지향 프로그래밍을 설명하는 사람은 찾기 힘들고, JAVA 언어를 예시로 드는 사람이 많았다. 대충 저게 자바에서 쓰는 변수, 함수, 클래스 등등 선언할 때 쓰는 문법이구나... 하고 굳이 깊게 생각 안 하니 볼 만했다. 개인적으로 도움받았던 사이트 링크들
여기서 내가 아무리 설명해봤자 저 링크에 걸린 설명보다 이해를 잘 시킬 자신이 없기 때문에 상세한 내용은 넘어 가겠다. 내가 대략적으로 이해한 객체 지향 프로그래밍은 '만들어 놓은 코드의 재사용성'을 높이는데 용이하다. 그리고 내가 기억하는 가장 핵심은!
클래스(class) 안에 변수와 메소드(method)를 만들었다면, 임의의 변수를 만들어 이 클래스를 저장하고(이 변수가 클래스의 복제본 = '인스턴스'), 이 변수(인스턴스)에서 '.'(닷 연산자)를 이용하여 메소드 또는 변수에 접근할 수 있다는 것. 그렇게 되면 원래의 클래스는 그대로 있고, 복제된 클래스의 변수(인스턴스)를 활용하여 프로그래밍을 하면 되니까 앞으로 자주 사용할 기능(메소드) 또는 변수를 클래스에 모아놓는 것이 당연하겠다.
아래는 CodeWithChris 유튜브 채널 Swift Tutorial Basics(Part 3) - Lesson 7에 나온 예시 코드에 부연 설명 추가한 것.
// Spaceship이라는 클래스 생성
class Spaceship {
var fuelLevel = 100 // 변수 아무거나
var name = ""
func cruise() {
// 기능 아무거나1
print("Cruising is initiated for \(name)")
}
func thrust() {
// 기능 아무거나2
print("Rocket thrusters initiated for \(name)")
}
}
//임의의 변수 myShip에 Spaceship 클래스를 복사(myShip = 인스턴스가 됨)
var myShip:Space = Spaceship()
// 인스턴스(myShip)에 닷연산자(.)를 이용하여 변수에 접근 및 저장
myShip.name = "논리적인 사색가"
//인스턴스(myShip)에 닷연산자를 이용하여 메소드에 접근 및 실행
myShip.cruise()
이외에도 Library, API, Framework 등등 별의별걸 다 주워들었는데 아직 개념 정리가 확실히 안돼서 오늘은 여기까지! 간혹 너무 마구잡이로 배우고 있는 거 아닌가 싶긴 하지만 독학이 뭐 그렇지. 궁금한 것들 하나둘씩 쌓다 보면 어느 순간 앱 개발을 하고 있지 않을까.
'IOS 어플 개발 > 아이폰 어플 제작 도전기!' 카테고리의 다른 글
아이폰 어플 만들기 독학 #8: 공부 진행 방향 설정(유튜브 앱 제작 중) (6) | 2020.04.01 |
---|---|
아이폰 어플 만들기 독학 7일차: 두번째 연습용 앱 완성 (0) | 2020.03.29 |
아이폰 어플 만들기 독학 5일차: 앱 개발 도전기를 쓰는 이유 (0) | 2020.03.26 |
아이폰 어플 만들기 독학 4일차: Xcode 11 - View Constraints 0 설정 불가능 에러 해결법 (1) | 2020.03.25 |
아이폰 어플 만들기 독학 3일차: 프로그래밍 독학을 위한 필수 싸이트 (0) | 2020.03.24 |
댓글