일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 혼공머신
- 파이썬
- 중학1-1
- SQL
- 정보처리기사필기
- 자바
- html/css
- 중학수학
- 머신러닝
- 개발일기
- 컴퓨터비전
- JSP
- 디버깅
- JSP/Servlet
- 순환신경망
- 데이터베이스
- 자바 실습
- c언어
- JDBC
- ChatGPT
- 자바스크립트심화
- rnn
- 정보처리기사실기
- 딥러닝
- CSS
- 데이터분석
- 연습문제
- 상속
- 자바스크립트
- 컴퓨터구조
- Today
- Total
클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지
Generic 1 - Generic 개념과 Generic을 사용해 function과 class 만들기 본문
Generic 1 - Generic 개념과 Generic을 사용해 function과 class 만들기
huenuri 2024. 12. 23. 13:48주문할 게 있어서 30분 정도 시간을 보내느라 공부 시간을 까먹고 말았다. 하지만 매번 미루다가 내 아아패드가 망가질 것 같았다. 이제 시원하게 잘 해결했으니 다시 공부를 시작해볼 것이다.
4주차에서는 제네릭에 대해서 공부하게 된다.
이론 1 - Generic 개념
제네릭은 생성 시점의 타입을 명시하는 것이다.
퀴즈 1 - Generic 개념
문제를 아주 잘 풀었다.
이론 2 - Generic으로 함수와 클래스 만들기
제네릭 타입으로 number를 넣었기에 String값을 넣었을 때 오류가 발생하는지를 사전에 알 수 있다.
실습 1 - Generic
문제 풀기
Queue 클래스를 선언해주고 Queue에 타입을 명시에 number 타입의 제네릭을 만든다. numberQueue에 push값을 넣어주고 0이 출력되면 정상 작동되는 것이다.
먼저 push 메서드를 구현하고 제네릭은 T로 해준다. pop 메서드로 구현한다.
item을 사용하는 이유
item은 이 코드에서 push 메서드의 매개변수(parameter)로 선언된 변수이다. 이를 통해 호출 시 전달받는 값을 item이라는 이름으로 참조할 수 있다.
코드 분석
1. push(item: T)의 매개변수 item
- push 메서드는 데이터를 큐에 추가하는 역할을 한다.
- 매개변수 item은 메서드 호출 시 큐에 추가할 데이터를 받아오는 변수이다.
- T는 제네릭 타입으로, 큐가 어떤 데이터 타입을 저장할지 동적으로 결정한다.
push(item: T) {
this.data.push(item);
}
동작 흐름
- numberQueue.push(0)을 호출하면
- item에는 0이라는 값이 전달됨
- this.data.push(item)이 실행되면서 배열에 0이 추가됨
- item이라는 변수는 메서드 호출 시 전달받는 값에 따라 동적으로 값을 가지게 된다.
- 즉, numberQueue.push(0) 호출 시 item은 0을 참조
2. 제네릭 타입 T
- 클래스 선언 시 <T>를 사용하여 큐에 저장할 데이터 타입을 동적으로 지정할 수 있음
- numberQueue를 생성할 때 Queue<number>로 선언했으므로, T는 number 타입으로 결정됨
- 따라서 push(item: T)는 사실상 push(item: number)와 같아짐
코드 실행 흐름
const numberQueue = new Queue<number>();
numberQueue.push(0); // `0`을 큐에 추가
console.log(numberQueue.pop()); // 큐에서 가장 먼저 들어간 값을 제거하고 출력
- numberQueue.push(0)
- item에 0이 전달되고, this.data.push(item)으로 큐에 저장
- this.data 배열은 [0] 상태가 됨
- numberQueue.pop()
- this.data.shift()를 호출하여 배열에서 가장 앞에 있는 값을 제거하고 반환
- 배열은 빈 배열 [] 상태가 되고, 0이 출력됨
결론
- item은 push 메서드의 매개변수로, 메서드 호출 시 전달받은 값을 참조하는 변수이다.
- item이라는 이름은 프로그래머가 직접 정의한 이름으로, 다른 이름으로 바꿔도 작동에는 문제가 없다.
예를 들어 push(data: T)로 바꿔도 작동
push(data: T) {
this.data.push(data);
}
결론적으로, 매개변수 item은 큐에 추가할 데이터를 나타내기 위해 사용된 변수 이름이다.
코드 실행하기
학습을 마치고
제네릭에 대해 무엇인지 잘 몰랐는데 문제를 풀고 코드를 분석하며 조금은 이해하게 되었다. 제네릭을 보면 거의 T라는 글자가 써있는데 이것도 제네릭의 스타일 것 같다.
아무튼 모르는 게 있으면 그때그때 찾아보면서 공부하는 것이 가장 좋은 것 같다. 나중에 알아봐야지 하면 대부분 다시 찾아보는 경우는 드물다.
'웹 · 앱 개발 > 타입스크립트' 카테고리의 다른 글
Generic 3 - 제약조건 (Contraints / keyof) (0) | 2024.12.23 |
---|---|
Generic 2 - Union type (0) | 2024.12.23 |
Interface 4 - 디자인 패턴 (Strategy pattern)과 단원 마무리하기 (0) | 2024.12.23 |
Interface 3 - Interfaces types (0) | 2024.12.23 |
Interface 2 - Properties (0) | 2024.12.23 |