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

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

인강 후기

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

낑깡겜플밍 2025. 8. 5. 12:50
반응형

학습 시작 시간

오늘도 회사에서 점심을 먹고 강의를 듣기 시작했다.

학습 종료 시간

20분 조금 더 들었다.

오늘 들었던 강의 시작과 종료

 C#을 공부하면서 다양한 문법들을 하나씩 접해봤다. 그중에서도 실무와 밀접하게 연결되어 있는 using, dispose, 인덱서, try-catch, 그리고 확장 메서드에 대해 배워봤다. 어떤 개념인지, 왜 필요한지에 대해 생각하게 되었고, 이를 정리해본다.

 using과 dispose는 자원을 안전하게 다룰 수 있게 해준다
파일을 열거나 네트워크에 연결하는 등 시스템 자원을 사용하는 작업을 하다 보면, 사용이 끝난 후 반드시 자원을 해제해줘야 한다고 한다. 그렇지 않으면 리소스가 남아서 메모리 누수가 생기거나, 파일이 잠겨버리는 문제가 생길 수 있다고 한다.

 이때 사용하는 것이 using 문이라고 한다. using 블록 안에 자원을 생성하면, 블록이 끝날 때 자동으로 Dispose()가 호출되어 자원이 정리된다고 한다. 이를 통해 try-finally 구문 없이도 깔끔하게 리소스를 정리할 수 있게 된다고 한다. 특히 IDisposable 인터페이스를 구현한 객체에 사용된다고 한다.

 인덱서는 객체를 배열처럼 다룰 수 있게 해준다
클래스 안에 여러 데이터를 담아놓고, 마치 배열처럼 접근하고 싶을 때가 있다고 한다. 그럴 때 사용하는 것이 인덱서라고 한다. 인덱서는 클래스나 구조체에 this[] 형태로 정의할 수 있고, 외부에서 obj[0] 이런 식으로 사용할 수 있게 해준다고 한다.

 이를 통해 외부 코드에서는 내부 구조를 몰라도 직관적으로 데이터를 다룰 수 있게 된다고 한다. 컬렉션을 감싼 클래스나 래핑된 자료구조에서 자주 쓰인다고 한다.

 try-catch는 예외 상황을 안전하게 처리하게 해준다
코드를 작성할 때 항상 정상적으로만 동작하리라 기대할 수는 없다고 한다. 예를 들어 문자열을 숫자로 바꾸려는데 잘못된 입력이 들어오거나, 파일을 열려는데 파일이 없을 수 있다고 한다. 이런 예외 상황을 처리하기 위해 사용하는 것이 try-catch 구조라고 한다.

 try 블록 안에 예외가 날 수 있는 코드를 작성하고, catch 블록에서 예외를 잡아 처리하면 프로그램이 비정상적으로 종료되지 않게 막을 수 있다고 한다. 상황에 따라 finally 블록을 함께 사용해 리소스를 정리할 수도 있다고 한다. 예외를 정확히 이해하고 필요한 만큼만 잡는 것이 중요하다고 한다.

 확장 메서드는 기존 타입에 기능을 추가할 수 있게 해준다
기존에 정의된 클래스에 새로운 기능을 추가하고 싶을 때가 있다고 한다. 그런데 그 클래스가 내가 작성한 것이 아니라면, 직접 코드를 수정할 수 없는 경우도 많다고 한다. 이럴 때 확장 메서드를 사용하면 기존 타입에 메서드를 추가하는 것처럼 사용할 수 있다고 한다.

 확장 메서드는 정적(static) 클래스 안에 정의되고, 첫 번째 매개변수에 this 키워드를 붙여 대상 타입을 지정한다고 한다. 이렇게 하면 obj.MyMethod()처럼 기존 클래스에 원래 있던 메서드처럼 사용할 수 있게 된다고 한다. 코드를 깔끔하게 유지하면서 기능을 확장할 수 있어 유용하다고 한다.

 이번에 배운 이 네 가지 문법은 앞으로 코드를 더 견고하고 직관적으로 만들기 위해 꼭 익혀야 할 요소들이라고 생각한다. 단순히 문법을 외우는 것이 아니라, 언제 왜 쓰는지를 이해하면서 써야 진짜 내 것이 된다고 느꼈다. 앞으로도 코드를 짤 때 이 개념들을 자연스럽게 떠올리며 활용할 수 있도록 반복해서 익히고 싶다.

학습 인증샷

디지털 필기와 한컷!

오늘의 완강률

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

내일도 파이팅!

 

반응형