면접 자기 소개 작성

 

더보기

안녕하십니까, 소통을 중시하는 클라이언트 프로그래머 [송명성]입니다. 
제 열정과 노력으로 이 분야에서 역량을 키우고 있습니다.

2020년부터 2년간 공장 라인설비 회사에서 엔지니어로 근무하며 공장 라인 출장 업무를 주로 담당했습니다. 
이를 통해 문제 해결 능력과 관계자와의 원활한 소통 능력을 키울 수 있었습니다. 
이 경험은 이후 게임 개발 프로젝트에서도 팀원들과 협업하고 소통하는 데 큰 도움이 될 것입니다.

2022년부터는 본격적으로 프로그래머가 되기 위한 여정을 시작했습니다. 부산 아텐츠 게임아카데미에서 C/C++, 자료구조, 
컴퓨터 그래픽스를 배우며 기초를 다졌고, Unity를 활용해 2D 슈팅 게임을 모작하며 실제 개발 경험을 쌓았습니다. 
이를 통해 기초적인 게임 개발 과정과 Unity 엔진의 활용법을 익혔습니다.

2024년 8월에는 대전 인디게임잼에 프로그래머로 참가하여 **<마지막 빵>**이라는 스토리 어드벤처 게임을 개발했습니다. 
여기서 전체기획과 프로그래머로써 Scene 간 데이터 전달 파트를 맡으며, 제한된 시간 안에 팀원들과 협업하며 결과물을 만들어내는 
경험을 했습니다. 
하지만 당시 제 실력과 협업 능력의 부족함을 느껴, 이를 보완하고자 내일배움캠프 유니티 6기에 지원하게 되었습니다.

캠프에서는 매주 진행되는 미니 프로젝트의 리더를 맡으며 개발 실력뿐만 아니라 팀원들과의 소통, 리소스 분배, 일정 관리 능력을 키웠습니다. 
현재는 최종 프로젝트로 2.5D 방치형 게임을 개발하고 있으며, 이 게임은 itch.io에 배포할 예정입니다. 
이 과정에서 Unity 엔진을 심도 있게 다뤄보고, 팀원들과의 협업을 통해 하나의 완성된 게임을 만들어가는 기쁨을 느끼고 있습니다.

이러한 경험들을 통해 저는 단순히 개발 역량뿐만 아니라, 협업과 커뮤니케이션 능력을 갖춘 개발자로 성장하고 있습니다. 감사합니다.
앞으로도 제가 가진 열정과 팀워크 능력을 바탕으로 더 많은 도전을 통해 성장해 나가고 싶습니다. 감사합니다.

자기소개 나열식은 좋지 않다. -> 서사 얘기는 좋지 않다.
자기 소개 :: 듣는사람 입장에서 이사람이 나를 어떡해 기억할 수있지??

팀원과의 프로젝트에서 소통 및 갈등,트러블슈팅 등을 스토리텔링 서사를 풀어야된다. 

 


면집 질문 준비

C#의 event란 무엇인가요? Delegate 기반으로 구현된 대리자이며 ,
객체 간 비동기 통신을 가능하게 해줍니다.
event에 메서드를 첨삭하는것은 내부/외부에서도 가능하지만
event를 실행시키는 것은 내부에서만 가능합니다.
event는 Observer패턴과 동작방식이 유사합니다.

장점으로는 발행자와 구독자 간의 느슨한 결합으로
모듈화 및 유연성을 장점으로 가지고 있습니다.
Unity에서 사용하는 델리게이트 혹은 이벤트에는 어떤 것이 있나요? Unity의 Button 컴포넌트, InputSystem의 키 맵핑시
동작방식을 event로 선언할 수 있으며 , 여러 콜백 메서드가
있습니다.
참조 형식과 값 형식에 대해 설명해주세요. 값 형식의 Stack에서 생성되는 데이터들을 의미합니다.
흔히 사용되는 int,float,struct,,enum이 여기에 속합니다.

참조 형식은 Heap영역에 생성되는 데이터들을 의미하며
Heap영역의 데이터들은 Stack영역에 있는 데이터들을
참조를 하여 사용하게 됩니다.

그러기 때문에 참조 형식의 데이터는 변경이 되어도
다른 값형식의 변수에서 변경된 값을 가져오게 됩니다.
메모리에서 스택과 힙의 차이점에 대해 설명해주세요. 스택은 함수내에서 선언시나 변수 할당시 메모리가 생성이되며
함수가 종료될때 스택 영역의 데이터는 삭제됩니다.

힙은 new키워드나 Unity 에서 Instaniate를 통해 생성이 가능하고
참조를 끊을수는 있지만 heap에 저장된 메모리는 GC를 통해서만
삭제가 가능합니다.
1번과 2번 질문의 답안을 기반으로 struct와 class의 차이점에 대해 설명해주세요. 구조체는 Stack 영역에 저장되며 , 매개변수 없는 생성자를
작성할 수 없습니다. (C# 10 이상 예외)

클래스는 Heap 영역에 저장되며 매개변수 없는 생성자를
명시적으로 작성해서 사용합니다.
얕은 복사와 깊은 복사의 차이점은 무엇인가요? 얕은 복사는 데이터의 주소를 복사해 가는것이기에
외부에서 데이터가 변경 되는경우 원본 데이터가 변경이 됩니다.

깊은 복사는 데이터 그 자체를 복사하는것이기에
데이터가 변경되어도 원본 데이터는 유지를 하고 있습니다.
박싱과 언박싱이 일어나는 과정을 메모리 관점에서 설명해주세요. 우선 C#에서 박싱 언박싱을 하기위해서는
참조형식의 변수인 object가 필요합니다.
object 변수는 모든 데이터의 부모이기에 형변환이
가능하기 때문입니다.

박싱할 변수를 object 변수에 대입 하게되면
Stack 영역에 참조할 object 변수가 생성되고
Heap 영역에 object 에 박싱한
자료의 데이터가 저장되어있습니다.

언박싱은 heap영역에 존재하는
object 변수의 데이터를 Stack으로 복사하여
언박싱 할 변수에 생성하게 됩니다. 이
때 언박싱한 데이터는 독립적인 데이터가 됩니다.
클래스를 다른 클래스로 상속하기 위한 방법은 무엇인가요? 상속할 클래스 명 뒤에 세미콜론 과 부모클래스명 을 입력합니다.
클래스 상속에서 다이아몬드 문제(diamond problem)가 발생하는 이유와 이를 해결하는 방법에 대해 설명해주세요. C#에서는 Class간의 다중상속을 지원하지 않습니다.
C++ 에서는 Class간의 다중상속을 지원하기에 다이아몬드 문제가
발생 할수 있습니다.

다이아몬드 문제가 발생하는 이유는 두개의 자식클래스에서
동일한 부모 클래스를 상속 받은뒤 , 다른 클래스가 두개의 자식클래스를
둘다 상속 하고 있는경우 발생하게 됩니다,

부모의 있는 메서드나 필드에 접근하려고 할때
두 자식 클래스 호출이 애매모호 해짐

유니티<C#>에서는 해당 문제를 대처하기위해 다중 상속을 interface에만
지원을 해놓았습니다. 인터페이스는 구현체를 포함하지 않으므로
다이아몬드 문제와 같은 모호성 문제가 발생하지 않습니다.

C++ 에서는 가상 상속을 이용하여 다이아몬드 문제를 방지가 가능합니다.
인터페이스란 무엇인가요? 인터페이스란 ,일종의 행동의 약속이라고 볼수있습니다.
행동 즉, 메서드를 인터페이스에 정의하면 인터페이스를 상속한
클래스들은 반드시 해당 메서드를 재정의 해야됩니다.

 

Heap 영역은 답변시 완전이진트리 키워드가 나와야한다.

+ Recent posts