개발 기초 문법중에서의
마지막 키워드는
"제네릭"이다.
오늘은 배웠던
"제네릭"에 대하여 글을 담아본다.
제목에서 언급한것 처럼
제네릭은 모든 타입을
커버하는 방법을 말한다.
제네릭은 타입에 의존하지 않는
범용 코드를 만들때 사용하는 녀석이다.
모든 문법을 통틀어서 프로토콜, 제네릭
점점 추상적이면서도 설명이 길지 않을 것 같다.
이걸 설명을 들어서 이해하기 보다는
코드를 통해 어떻게 사용 되는가를 보며
이해하고 익히는 것이 훨씬 이해하는데
수월할 것이다.
그렇지만,
설명과 더불어 예제 한두개 이상 있어야
이해하기가 쉬우니 짧게나마
설명해보겠다.
"제네릭은 사실 많이 쓰고 있다."
단지 인지를 하지 못하고 있을 뿐이다.
어떠한 타입이 들어오더라도
괜찮은 코드는 뭐가있을까?


아~하!
곰곰히 생각해보니
배열, Set, 딕셔너리 등등
꺽쇠안에 어떤 타입이 들어오더라도
전부 동작을 했었다..!
심지어는 배열에 경우
어떠한 타입이 들어 오더라도
동작을 하고 있었다..
그래서 이후에 실습에서는
배열을 이용한 제네릭을
실험을 해볼 예정이다.
"하나의 타입에 대응을 하면어떻게 되는것일까?"
"제네릭을 왜 만들어야 하는걸까?"
우선 제네릭을 만드는 이유는
타입에 의존하고 싶지 않아서이다.
하나의 타입에 의존하게 된다면,
타입 마다 하나하나씩 전부 만들어 줘야하는
일이 생기기 때문이다..

필자는 여기까지 들었을때도
그닥.. 감이 잘 오질 않았다..
결국엔 직접 보아야하는 부분인 것 같다..
결국엔 모든 종류로 만들어야 하는 것이겠고
범용적인 코드를 만들 수 있다는 것이다.
간단하게 정리해 보자면 이렇다.
함수로 예를 들어본것이다.
여기서 중요한 포인트는
<T> 와 T 와 T타입 변수이다.
제네릭은 꺽쇠를 가지고 구분을 하며,
T는 그냥 placeholder이다.
그래서 이미지에서 보이는 T자리에는
P를 넣어줘도 되고 자기이름을 적어줘도
무방하다는 의미다.
그냥 단순하게..
제네릭인지 그리고 입력받은 타입인지만
알면 된다는 것이다.
즉, 실제 범용의 타입인지만
나타내기 위한 것이기 때문에
그렇게 중요하지는 않다는 것이다.
그렇게 입력 받은 T를 가지고
input 이 동작을 하게 된다.
왜냐하면,
어떠한 타입을 딱 지정한 것이 아닌
어떠한 타입이 들어 오더라도
동작할 수 있도록 만든것이기 때문이다.
그렇기에 input 이 "String"이던지 아니면
"Int"던지 아니면 Float 이던지 상관이 없이
input 이라는 변수를 가지고서
무언가를 할 수 있는
코드를 만들어야 한다는 것이다.

뭔가... 저렇게 설명을 들었을 때에는...
숨이 쉬어지지 않았다...
전혀 감을 잡을 수 없다..
그렇지만 실제 코드를 보면,
어떤게 범용적인것인지
감을 쉽게 잡을 수 있다고 생각한다.
이론편은 이쯤하고,
실습편에서 보자.
'IOS > Swift-TIL' 카테고리의 다른 글
[Swift-TIL] 코딩 없이 화면을 그리는 법 (이론+실습) (4) | 2024.11.11 |
---|---|
[Swift-TIL] 제네릭 - 모든 타입을 커버하는 방법 (실습편) (1) | 2024.11.10 |
[Swift-TIL] 프로토콜 - 설계하고 설계대로 만드는 방법 (실습편) (2) | 2024.11.08 |
[Swift-TIL] 프로토콜 - 설계하고 설계대로 만드는 방법 (이론편) (4) | 2024.11.07 |
[Swift-TIL] 예외처리 - 만약 에러가 발생한다면.. (실습편) (1) | 2024.11.07 |