2024년 7월 25일 목요일 개발일지 / 네 번째 캐릭터와 중간발표

2024. 7. 25. 21:00나의 개발자 기록/본 캠프 개발 일지

2024년 7월 25일 목요일


What I did today : 네 번째 캐릭터와 중간발표

 

 

오늘 오전에는 스테이블 디퓨전으로 픽셀 캐릭터일러스트, 아이콘을 뽑는 작업을 진행했습니다. 픽셀 캐릭터도 여러 개 뽑은 다음에 뽑은 픽셀 캐릭터 중에서 괜찮은 디자인을 골라서 img2img로 일러스트를 여러 개 뽑았습니다.

 

 

일러스트가 생각보다 잘 안 뽑혀서 거의 1시간 동안 뽑은 결과물 중에서 그나마 괜찮았던 일러스트를 골랐습니다. 일러를 뽑는 중간에 팀원분들이랑 잠깐 회의를 진행해서 중간 발표로 제출할 것 중에서 빠진 건 없는지 체크하는 시간을 가졌고, 20분 정도 일찍 제출했습니다.

 

점심을 먹은 뒤에는 각 Idle 애니메이션, 죽는 애니메이션 작업을 진행했습니다. 공격 애니메이션의 경우에는 2시 부터 중간발표가 시작되기 때문에 작업을 진행하기에는 시간이 애매해서 진행하지 않았습니다.

 

 

2시부터 각 조들의 발표가 시작되었고, 저희 조는 7번째에 발표를 시작해서 무사히 발표를 끝마쳤습니다. 피드백 담당 튜터님께서 캐릭터와 몬스터의 상태 머신 구조가 비슷한 부분이 많아서 하나로 엮었으면 어땠을까 하는 피드백을 남겨주셨고, 저희 게임이 서브컬처 게임을 만드는 것이다 보니 캐릭터의 개성이나 서브컬처 요소로 필요한 부분을 언급해 주셨습니다. 발표가 시작하기 전에 살짝 걱정이 많았었는데, 다른 조들의 발표 내용을 봤을 때, 다들 진행 상황이 비슷했던 것 같고, 저희 조도 구현해야 할 사항들이 많이 남아 있으니까 앞으로 속도를 더욱 내서 캐릭터를 많이 만들어야겠습니다.

 

이번 면접 테스트 질문 예시

 

모든 조의 발표가 끝나고 나서는 다들 오늘 하루 쉬어가는 느낌으로 자기가 하던 작업을 마무리 하던지, TIL을 미리 쓰던지 해서 각자의 시간을 보냈습니다. 저녁을 먹고 나서는 팀원분들이랑 간단한 회의를 진행해서 앞으로 해야할 것들과 내일 담당 튜터님의 면접 테스트가 있었기 때문에 자기소개서CS 지식 준비 등등 외워야 할 부분을 외워서 내일 있을 면접 테스트 준비를 하며 오늘 하루를 마무리했습니다.


면접 질문 대비 : 콜백이란 무엇인가요? 콜백을 사용해본 경험이 있을까요?

 

public delegate void ProcessComplete();

public class Processor
{
    public void StartProcess(ProcessComplete callback)
    {
        // 긴 작업 수행
        // ...
        // 작업 완료 후 콜백 호출
        callback();
    }
}

// 사용 예시
Processor processor = new Processor();
processor.StartProcess(() => Console.WriteLine("Process Completed!"));

 

콜백은 다른 메서드가 호출할 수 있도록 넘겨주는 함수입니다. 콜백은 비동기 작업을 처리하거나 이벤트 기반 프로그래밍에서 자주 사용됩니다. 콜백은 델리게이트(delegate) 또는 람다 표현식(lambda expression)을 통해 구현될 수 있습니다.

 


면접 질문 대비 : 델리게이트(delegate; 대리자)란 무엇인가요?

 

public delegate int MathOperation(int a, int b);

public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }

    public int Subtract(int a, int b)
    {
        return a - b;
    }
}

// 사용 예시
Calculator calc = new Calculator();
MathOperation addOperation = calc.Add;
MathOperation subOperation = calc.Subtract;

int result1 = addOperation(5, 3); // 8
int result2 = subOperation(5, 3); // 2

 

델리게이트(delegate)는 메서드를 참조하는 타입 안전한 객체입니다. 델리게이트는 메서드를 변수처럼 다룰 수 있게 하며, 이벤트 핸들링, 콜백 메서드, 익명 메서드 등의 다양한 용도로 사용됩니다.