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

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

인강 후기

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

낑깡겜플밍 2025. 7. 26. 17:40
반응형

학습 시작 시간

오늘은 코엑스를 다녀와서 오후 늦게 인강을 들었다.

학습 종료 시간

링큐는 어려운 부분이라 이것저것 필기하고 내용 이해하는데 1시간 넘게 걸렸다.

오늘 들었던 클립 시작과 종료

링큐의 많은 기능들 중에서도 Where, First, OrderBy, Max, Min, Select (class, 익명형식으로 받기) 등을 알려주셨다.

 링큐를 배우면서 강사님이 설명해 주신 장점 중 기억에 남는 건 많은 사람들이 쓰고 있다는 점, 그리고 코드가 간결해지고 직관적이라는 것이었다. 실제로 직접 써보니까 복잡했던 반복문이 한 줄로 정리되고, 조건에 맞는 데이터를 뽑아낼 때 훨씬 편해서 왜 사람들이 좋아하는지 알 것 같았다. 그런데 더 궁금해졌다. 정말 장점만 있을까? 단점은 없을까? 그래서 조금 더 찾아봤다.

 일단 장점부터 보면, 가장 큰 건 가독성이다. for문 여러 줄로 쓰던 걸 깔끔하게 정리할 수 있고, 무엇보다 필터링이나 정렬, 변환 같은 작업이 쉽게 읽히는 구조라서 코드가 한눈에 들어온다. 그리고 배열, 리스트, DB처럼 다양한 데이터 소스에 동일한 문법으로 접근할 수 있다는 점도 상당히 매력적이다. 또 하나 흥미로운 건 지연 실행이라는 특성인데, 필요한 시점까지 실행을 미루기 때문에 경우에 따라선 성능 면에서도 도움이 될 수 있다.

 하지만 단점도 분명 있었다. 우선 체이닝이 길어지면 가독성이 떨어진다. 처음에는 한 줄로 끝나는 게 좋아 보였지만, 조건이 복잡하거나 메서드가 많아지면 오히려 디버깅하기가 힘들었다. 성능 문제도 있었다. 데이터 양이 많아질수록 일반적인 for문보다 느릴 수 있고, 특히 ToList나 Count처럼 즉시 실행되는 메서드를 자주 쓰면 퍼포먼스에 악영향을 줄 수 있다는 걸 알게 됐다. 그리고 가장 불편했던 건 중간 결과를 확인하거나 디버깅할 때 LINQ 자체가 익숙하지 않으면 오류 위치를 파악하기 어려운 경우가 많다는 점이다.

 자주 쓰는 메서드들도 정리해봤다. Where는 조건에 맞는 데이터를 필터링할 때 가장 많이 쓰인다. 코드도 직관적이고 여러 조건을 조합하기도 쉽다. 다만 결과가 IEnumerable 형태로 반환되기 때문에 바로 사용하려면 ToList 같은 걸 붙여줘야 할 때가 있어서 그 부분은 불편했다. First는 조건에 맞는 첫 번째 데이터를 얻고 싶을 때 사용한다. 빠르게 원하는 값을 가져올 수 있어서 좋았는데, 문제는 해당 조건에 맞는 데이터가 없을 경우 예외가 발생한다는 점이다. 그래서 대부분은 FirstOrDefault로 쓰게 된다고 한다.

 OrderBy는 정렬할 때 정말 간편하다. 정렬 기준만 넘겨주면 깔끔하게 결과를 얻을 수 있고, 단, 원본 리스트가 정렬되는 게 아니라 새 IEnumerable을 반환하기 때문에 의도와 다를 수도 있다는 걸 찾아냈다. 또 데이터가 많을 때는 정렬이 생각보다 무거울 수 있다는 것도 고려해야 한다. Max랑 Min은 최댓값, 최솟값을 구할 때 간편하게 쓸 수 있었다. 특히 특정 속성을 기준으로 값을 가져올 수 있다는 점에서 유용했는데, 빈 컬렉션일 경우 예외가 발생할 수 있다는 건 주의해야 한다.

 마지막으로 Select는 필요한 속성만 뽑거나 새로운 형식으로 데이터를 만들 때 아주 유용했다. 특히 익명형식으로 변환하면 정말 빠르게 새로운 구조를 만들 수 있어서 좋았는데, 이 익명형식은 외부에서 접근할 때 타입이 명확하지 않아서 다루기 애매한 부분도 있었다.

 결론적으로 보면, 링큐는 적절하게 사용하면 생산성과 가독성을 크게 올려주는 도구였다. 다만 모든 경우에 무작정 쓰기보다는 상황에 따라 반복문이나 다른 방식과 혼용해서 쓰는 게 더 좋은 선택일 수 있다는 걸 느꼈다. 링큐가 정말 강력한 건 맞지만, 적재적소에서 쓰는 게 중요하다는 생각이 들었다.

학습 인증샷

오늘도 디지털 강의와 함께 한컷 했다.

오늘의 완강률

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

내일도 파이팅!

반응형