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

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

인강 후기

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

낑깡겜플밍 2025. 7. 28. 12:58
반응형

학습 시작 시간

오늘도 회사에서 빵과 시리얼을 점심으로 먹고 강의를 듣기 시작했다.

학습 종료 시간

오늘은 코드를 칠게 많아서 시간이 제법 걸렸다.

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

비동기(Thread, aysnc await)에 대해 배웠다.

고전적인 방식과 최근 방식, 실무에서 많이 쓰이는 방식을 차근차근 가르쳐 주셨다. 

 비동기 처리는 하나의 작업이 완료될 때까지 프로그램이 전체적으로 멈추는 현상을 피하기 위해 사용되는 개념이다. 동기 방식은 순차적으로 작업을 처리하기 때문에 하나의 작업이 오래 걸리면 전체 흐름이 지연된다. 반면 비동기 방식은 async와 await 같은 키워드를 활용해 긴 작업이 진행되는 동안 다른 작업을 병렬적으로 처리할 수 있다. 이를 통해 프로그램의 반응성과 처리 효율을 동시에 개선할 수 있다. 예를 들어 서버에서 수십 개의 요청이 동시에 들어오는 상황을 가정해보면, 동기 방식은 각 요청을 하나씩 순서대로 처리하느라 전체 응답 시간이 늘어나는 반면, 비동기 방식은 작업이 끝나는 걸 기다리는 동안 다른 요청을 미리 처리하므로 전체적인 속도가 훨씬 빨라진다.

 UI가 멈추지 않고 부드럽게 작동하는 것도 비동기의 큰 장점 중 하나다. 사용자가 버튼을 누르거나 화면을 넘기는 도중 백그라운드에서 파일을 불러오거나 데이터를 처리해야 하는 경우, 동기 방식이라면 앱이 순간적으로 정지한 것처럼 보일 수 있다. 하지만 비동기를 사용하면 이런 작업들은 백그라운드에서 조용히 진행되고, 사용자는 앱이 계속 부드럽게 작동한다고 느끼게 된다. 그래서 모바일 앱이나 웹 애플리케이션, 게임 UI에서도 필수로 쓰인다.

 장점은 분명하다. CPU 사용률을 낮추면서도 많은 작업을 효율적으로 처리할 수 있고, 시스템 자원을 절약할 수 있다. 하지만 단점도 만만치 않다. 코드의 흐름이 직관적이지 않아서 디버깅이 쉽지 않다. 특히 예외가 발생했을 때 스택 트레이스를 따라가다 보면 어디서 시작됐는지 감을 잡기 어려운 경우가 많다. 게다가 async void 같은 실수나 await 누락은 치명적인 버그로 이어질 수 있다. 또 하나의 어려움은 상태 관리인데, 비동기 로직 안에서 전역 상태나 공유 데이터를 다룰 때는 동시성 이슈도 신중하게 고려해야 한다고 한다.

비동기는 만능 도구는 아니다. 모든 상황에 적용하면 오히려 성능이 떨어지거나 코드 유지보수가 힘들어질 수도 있다. 따라서 어떤 작업이 실제로 오래 걸리는지, 사용자 경험에 영향을 미치는지, 병렬화가 가능한지 등을 판단하고 적용하는 것이 중요하다고 한다. 

학습 인증샷

오늘의 학습 인증샷!

 

오늘의 완강률

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

내일도 파이팅!

반응형