2023년 1월 1일
08:00 AM
Buffering ...

최근 글 👑

[Swift-TIL] 구조체 - 하나의 동작을 하는 객체 만들기 (이론편)

2024. 10. 15. 23:00ㆍIOS/Swift-TIL
SMALL

오늘은 구조체에 대해 배워봤다.

일부 개발자들 사이에서는 음..

약간 귀찮은 존재(?) 라고도 한다.

뭐... 그냥 개인적으로는 이건

"사바사" 라고생각한다.

 

기초 문법을 착실히 공부했다면,

구조체가 그렇게 난해하거나 그러지 않을거다.

 

구조체 음.. 스트럭트에 관한 내용이다.

 

간단하게 엘리베이터를 개발해보자.

그냥 엘베라고 줄여보겠다.

음.. 엘베에 대한 기능을 생각해보면,

엘베는 위, 아래로 움직이고,

현재의 층수가 표시되어야 하죠?

 

구조체는 이러한 하나의 객체를

만들 수 있게 해주는 거다.

 

여기까지만 들어보았을 때에는

이해가 잘 안될 수 도 있다.

 

심플하게 생각을 해보자.

엘리베이터에 대한 모든

기본적인 기능을 생각해보면 쉽다.

 

해당하는 층수에 대한 버튼을 눌렀을 때

그 층수로 이동한다.

만약, 내가 1층에 있는데 1층이 눌러지겠나?

당연히 안눌러진다.

 

닫기버튼을 누르면 닫아지고,

열기버튼을 누르면 열어지고,

이제 어느정도 엘리베이터에 대한

기본적인 기능이 무엇인지 대충 이해했으리라 본다.

 

이러한 구조체는 "struct" 라는 키워드를 사용한다.

위 이미지는 조금 단순하게 이해 해보라고 준비했다.

스트럭트 안에 함수가 2개 존재하고,

현재의 층수가 4인 것을 이야기한다.

 

"struct" 이건 붕어빵 틀을 상상하면 된다.

붕어빵 틀은 재료를 넣고 구우면 붕어빵이 나온다.

 

우선, "struct"에게 이름을 줘야한다.

이름은 ELevator 라고 지어보자.

그렇다면,

실제 코드에서는 어떻게 쓰이는가?

var elevator = Elevator()

이렇게 쓰일 수 있다.

 

변수를 하나 만들고,

엘리베이터라는 변수의 이름을 생성한다.

여기서부터 잘보자.

그 뒤에는 대입연산자가 있다.

 

즉, 오른쪽에 있는 "Elevator()" 이것을

왼쪽에 있는 엘리베이터라는 변수에 대입을 한거다.

한마디로 오른쪽에서 만든것을 왼쪽에 넣어준거다.

그런데 필자는 잘 이해가 안됐었다.

"Elevator() 이건 뭘까?"
"왜 괄호가 있는걸까?"


이건 객체를 만드는 녀석이다.

다시말해, "Elevator" 라는 틀이 존재하고,

그걸 괄호 열고 닫고로 빵! 구워주는것이다.

그러면, 왼쪽 변수에 들어가는 것이다.

 

글로써는 아마 다 이해를 못할 거다.

간단히 구조체의 형태를 보자.

구조체 형태

정리를 해보자면,

"struct"라는 키워드는

구조체를 만들 수 있도록 해주고,

구조체의 이름을 적어주고,

그 구조체 안에는 이 구조체가 할 수 있는

행동들 (예: 함수 등등), 메소드이고,

그리고 이 구조체가 가지고 있는 정보와 속성

프로퍼티, 변수를 가지고 있다는 것이다.

 

그러면 이제 실습편으로 넘어가 보자.

728x90