낑깡의 게임 프로그래밍 도전기

34일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기 본문

인강 후기

34일차 : '한 번에 끝내는 유니티&C# 게임 개발 초격차 패키지' 강의 후기

낑깡겜플밍 2025. 8. 3. 15:52
반응형

오늘도 집에서 강의 듣는 날~!

30분정도 학습을 하고 마쳤다.

 오늘은 C#에서 자주 쓰이지만 처음 접하면 헷갈릴 수 있는 기타 문법들에 대해 배웠다. 상속과 관련된 new, sealed, override 키워드부터, 흐름 제어에 사용되는 goto, 그리고 정렬 방식, 다차원 배열과 가변 배열까지 한 번에 다루었다. 강사님은 쉽게 설명해주셨지만, 조금 더 내용을 덧붙여 정리해본다.

 new, override, sealed는 클래스 상속 구조에서 멤버를 어떻게 재정의하거나 막을지 정할 수 있는 키워드다. 부모 클래스에 있는 메서드를 자식 클래스에서 같은 이름으로 다시 정의하고 싶을 때, 부모 메서드가 virtual이면 자식 클래스에서 override를 써야 하고, 부모 메서드가 virtual이 아니면 new를 써서 새롭게 정의하는 방식이 있다. 이때 new는 그냥 숨기는 것이고, override는 실제로 오버라이딩을 한다는 차이가 있다. 그리고 만약 자식 클래스에서 더 이상 오버라이딩을 못하게 막고 싶다면 sealed를 붙이면 된다. 즉, sealed override라고 하면 이 메서드는 지금까지만 오버라이딩 허용이고, 이후부터는 막겠다는 의미가 된다.

 goto는 거의 안 쓰는 흐름 제어문이긴 하지만, 배웠다. 특정 라벨로 프로그램의 흐름을 강제로 이동시키는 기능인데, 너무 자유롭게 흐름을 제어하게 되면 오히려 코드가 더 복잡해질 수 있어서 가급적이면 사용을 자제하라고 한다. 다만 switch문 안에서 goto case나 goto default처럼 쓰는 건 가독성 좋게 사용할 수 있는 예외적인 경우라고 했다.

 정렬은 기본적으로 Array.Sort()나 List<T>.Sort() 같은 걸 사용하는 방식이 일반적이다. 기본형은 오름차순 정렬이고, 내림차순으로 하고 싶을 땐 Comparison<T>나 IComparer를 만들어 넘겨주는 식으로 커스터마이징할 수 있다. LINQ의 OrderByDescending() 같은 걸 쓰는 방법도 함께 소개되었는데, 이건 리스트를 새로 반환하기 때문에 기존 컬렉션을 바꾸고 싶을 땐 Sort 계열을 써야 한다고 덧붙였다.

 다차원 배열은 보통 int[,] arr = new int[3, 4];처럼 정의하고, 행과 열을 동시에 다루는 고정 크기 배열이다. 이와 달리 가변 배열은 int[][] arr = new int[3][];처럼 선언하고, 각 행의 크기를 따로따로 설정할 수 있다는 특징이 있다. 배열 안에 배열이 들어 있는 구조로, 각 배열의 길이를 유동적으로 조절할 수 있어서 데이터가 균일하지 않은 경우엔 이쪽이 더 유용하다고 한다.

 이렇게 오늘은 평소 코드 작성에서 종종 보게 되지만 정확히 모르고 넘어가기 쉬운 부분들을 한꺼번에 배워 정리해두면 도움이 될 것 같다.

오늘도 디지털 필기와 한컷!

오늘부로 49클립을 들었다.

내일도 파이팅!

 

반응형