2주차 : 주요 메카닉 구현
팀 회의 내용
-진행상황 공유
구현한 내용
- 정렬 기능 완성 (가격순->오름,내림)
- 리팩토링
4일차에 주요 기능들은 완료를 한 상황이고 데이터 저장 방식을 좀 더 효율적으로 관리하기 위해 변경된 방식으로 리팩토링을 진행하였다 내일은 다른 UI 작업한 팀원분이랑 연결까지 하고 UI 디자인까지 하면 내가 맡은 주요 메카닉은 완료 !
기술면접 10일차
Q : 제네릭이란 무엇인가요 ?
A : 데이터 형식을 일반화하여 다양한 형식의 데이터를 처리하는 메서드나 클래스 등을 작성할 수 있는 기능으로 재사용성과 유연성을 향상시켜주고 컴파일 시점에서 결정되기 때문에 안정성이 보장됩니다
(꼬리질문) 제네릭은 언제 사용하나요?
:여러 데이터 형식에 대해 동일한 로직을 적용해야할 때, 컬렉션 타입에서 다양한 데이터 형식을 저장하고 관리해야할 때 등 사용할 수 있고 주로 Singleton 패턴에서 여러 클래스가 상속을 받아 사용해야 할 때 적용 했었습니다
(꼬리질문) 제네릭의 제약 조건에 대해 설명해주세요
: 클래스나 메서드가 특정 동작을 수행하거나 특정 타입에 대한 조작을 할 수 있도록 제약을 걸어주고 Where 키워드를 사용합니다
* 기술 면접 롤플레잉을 통해 피드백 받은 내용
- 배열과 list의 차이점은 동적할당(힙 메모리를 할당하는 작업)이라는 말 보다는 동적 배열로 사용하는 추천
- 배열과 List의 성능적 차이
: List는 동적으로 크기를 할당하므로 배열보다 많은 메모리를 차지하고, 배열에 비해 데이터 접근 시간이 느리며, 데이터 추가, 삭제 등의 작업이 배열보다 간편하지만, 코드의 가독성과 유지보수성이 저하될 수 있다
- Dictionary의 구현방법의 핵심 키워드는 해시테이블, 버킷, 슬롯이다
- Dictionary의 단점은 연속적이지 않은 구조를 가지고 있어서 반복문 사용에 적합하지 않고, Unity 인스펙터 창과 호환되지 않는다
- c#의 가비지 컬렉터를 c/c++과 비교했을 때의 장점
: C/C++에서는 프로그래머가 가비지 컬렉션 기능을 수행해야 한다 new 나 malloc을 사용하여 동적으로 메모리를 할당한 객체는 꼭 delete와 free로 해제해주어야 한다 이 과정에서 메모리의 단편화 현상이 발생할 수 있는데, C#의 가비지 컬렉터에서는 가비지 컬렉션 이후 자동으로 메모리 컴팩션을 수행하여 메모리 단편화 현상을 방지한다
* 메모리 단편화: RAM에서 메모리의 공간이 작은 조각으로 나뉘어져 사용가능한 메모리가 충분히 존재하지만 할당(사용)이 불가능한 상태
메모리 컴팩션: 프로세스가 종료된 자리에 생겨난 가용공간을 없애기 위해서 적재된 프로세스들을 한쪽으로 몰고 가용 공간들을 다른 한쪽으로 모아서 하나의 큰 가용 공간으로 만드는 것
'TIL' 카테고리의 다른 글
[TIL] 내일배움캠프_Unity 최종 프로젝트 2주차: 주요 메카닉 구현 6, 기술 면접 대비 12일차 (0) | 2023.11.05 |
---|---|
[TIL] 내일배움캠프_Unity 최종 프로젝트 2주차: 주요 메카닉 구현 5, 기술 면접 대비 11일차 (1) | 2023.11.03 |
[TIL] 내일배움캠프_Unity 최종 프로젝트 2주차: 주요 메카닉 구현 3 (FEAT.MVC 패턴), 기술 면접 대비 9일차 (0) | 2023.11.02 |
[TIL] 내일배움캠프_Unity 최종 프로젝트 2주차: 주요 메카닉 구현 2, 기술 면접 대비 8일차 (1) | 2023.10.31 |
[TIL] 내일배움캠프_Unity 최종 프로젝트 2주차: 주요 메카닉 구현 1, 기술 면접 대비 7일차 (1) | 2023.10.30 |