Post

2026-02-23 TIL (1일차)

2026-02-23 TIL (1일차)

나는 어떠한 타입의 개발자에 가까울까?

소프트웨어학과를 전공하고 게임 개발 프로젝트를 해보면서 내 자신이 어떤 타입의 개발자가 가까울까? 라는 생각은 한번도 안해봤습니다.

같이 팀 작업을 했던 팀원들한테 듣기로는 책임감 있고 자기 맡은 일은 어떻게든 다 해내는 사람, 팀원과 의사소통을 잘하는 사람으로 느꼈습니다.

튜터님들과 만나보면서 회상하는 나의 부족한 점

김인권 튜터님이 조별 설문조사를 할 때 어려운 사례라고 하셨는데 이미 전공자에 게임 개발 프로그램을 해봤고 포트폴리오, 이력서를 받아보고도 1년 취업을 실패한 케이스라 한줄 한줄 자세히 봐야 한다고 말씀하셨습니다.

이때 동안 취업을 도전하면서 실패할 때 느낄 때 늘 코팅 테스트가 약했던 거 같습니다. 늘 실시간으로 자료를 찾아서 하다 보니 자료가 없고 구현하라고 했을 때 어디서부터 어떻게 구현할지, 생각을 많이 해서 시간을 많이 잡아먹거나 컴파일 실패하는 경우가 많았습니다.

저만의 특별한 기술이 없다? 포트폴리오를 작성하면서 보스나 몬스터 ai를 만들어봤다, 자체개발 엔진을 2D로 만들어봤다 정도 밖에 없는거 같습니다.

Git을 자주 사용하지 않아서 기록된 게 자세히 없어서 떨어지는 경우도 있는 거 같습니다. (언리얼 팀 프로젝트 할 때 용량이 커서 Google Drive로 공유를 하면서 수정했습니다)

돌아보니 뭔가 아는 거는 많은데 전부 얕게 두루뭉술하게 아는 거 같고 지금까지 했던 걸로 포트폴리오랑 이력서로 가능할 거야 하고 자기 계발을 안 하고 현실을 회피하면서 지냈던 거 같습니다.

이번 기회에 처음 한다는 마음으로 체계적으로 9to9으로 공부하면서 자기 계발을 해봐야겠습니다.

Github.io를 사용하다

Github.io를 사용하여 블로그를 만들었습니다. Chirpy 공식 스타터 템플릿을 이용하여 기능을 사용하였습니다.

이제 제가 공부 및 취업 준비를 하면서 있는 TIL, 트러블 슈팅 및 해결, 필요한 기술 및 지식을 정리하여 기록할 겁니다.

컴포넌트 패턴 공부

예전에 공부 할 때는 컴포넌트 패턴이 부품으로만 기억하고 왜 사용하는지 이유를 전혀 몰랐습니다. 오늘 자습으로 공부를 하면서 컴포넌트 패턴을 왜 사용하는지에 대해 배웠습니다.

예를들어 게임 오브젝트를 구현하게 된다면 사람,몬스터,오크,NPC,괴물새 플레이어를 만들게 된다면 다 따로따로 만들게 되면 데이터를 많이 잡아먹게되고 최적화도 안좋고 효율적이지 않습니다.

첫번째 방법은 상속의 방법이 있는데 상속도 한계가 있습니다. 만약 사람의 기본기능을 만들고 플레이어를 상속시키면 기능의 문제가 없지만 만약 사람안에 물리와 체력 기능이 있으면 NPC는 상속받기 애매해집니다.
이유는 NPC는 죽으면 안되는 존재이기 때문이죠 (게임마다 다르겠지만;;) 이렇게되면 또 NPC안에 따로 기능을 만들어야하고 그만큼 소스를 더 많이 잡아먹게 됩니다.

이 문제를 해결하는 방법인 컴포넌트 패턴이 있습니다.

컴포넌트 패턴은 게임 오브젝트라는 빈 껍데기를 두고 여러가지 기능을 따로 하나씩 다 만들어 (예를들어 체력, 날기, 공격, 변신 등등) 이 기능들을 각각 부품(컴포넌트)화 시켜 만들고 싶은 캐릭터나 오브젝트를 컴포넌트를 추가시켜 만드는 겁니다.

컴포넌트 패턴의 특징을 정리하면 3가지 정도 있습니다.

  1. 유연한 재사용이 가능
  2. 프로그래머 의존도가 낮아진다.
  3. 독립성 덕분에 기능 추가와 삭제가 쉽다.

C와 C++ 강의

  1. 챕터 1-1 “마트에 가서 우유 2개를 사와라. 달걀이 있으면, 4개만 사와라.”라는 내용이 있었는데
    저는 If문을 활용하면 컴퓨터가 동작 잘하지 않을까? 생각을 했습니다.

    1
    2
    3
    4
    5
    6
    
    Buy(Milk, 2); 
    
    if (Store.Has(Egg)) {
        // 달걀이 있다면 '달걀'을 4개 사기
        Buy(Egg, 4); 
    }
    

    이러면 가능하지 않을까? 생각했는데 답은 동작하지 않는다였다. 알고보니 이미 내 자신이 일반이의 해석으로 코드를 작성했습니다.

    제공했던 명령어 기준으로 비교를 하게되면
    (1) 이미 달걀이 있으면 : if (Store.Has(Egg))
    (2) 4개만 사와라 : Buy(???,4)
    이게 제공했던 명령어의 해석이 됩니다.

  2. 챕터 1-4 Visual Studio 꿀팁 많았습니다.
    (하나의 솔루션에 새 프로젝트 추가하는 방법, 시작 프로젝트 설정하는 방법 - [빌드는 하나의 프로젝트 밖에 못해서])

This post is licensed under CC BY 4.0 by the author.