'프로그램개발'에 해당되는 글 127건
- 2023.06.13 unity addressabe font 문제 해결책들
- 2023.02.26 Unity 게임 프로그래머 면접시 좋은 질문은? (chatGPT)
- 2023.01.13 yona 설치시 java sdk는 oracle을 사용할것
- 2022.11.24 회사에서도 사용가능한 유용한 프로그램들
- 2022.11.10 parsec 원격접속, 원격 게임
- 2022.11.09 mac book 잠자기 방지
- 2022.08.21 게임개발성공의 지피지기 백전무패
- 2022.06.22 애자일
- 2022.05.25 로그분석툴
- 2022.05.24 온보딩 - 신입개발자
Unity 게임 프로그래머 면접 질문으로는 다음과 같은 질문이 좋을 수 있습니다:
- Unity 엔진에 대한 이해도
- Unity 엔진에서 게임 오브젝트와 컴포넌트의 개념을 설명해주세요.
- Unity에서 MonoBehaviour와 ScriptableObject의 차이점은 무엇인가요?
- Unity에서 Rigidbodies와 Colliders의 역할을 설명해주세요.
- C# 프로그래밍에 대한 이해도
- C#에서 다형성이란 무엇인가요?
- C#에서 인터페이스와 추상 클래스의 차이점은 무엇인가요?
- C#에서 yield 키워드가 어떤 역할을 하는지 설명해주세요.
- 게임 최적화에 대한 이해도
- Unity에서 게임 최적화를 위해 어떤 기술을 사용할 수 있나요?
- Unity에서 프레임 드랍이 발생할 경우 해결하는 방법은 무엇인가요?
- Unity에서 게임 최적화를 위해 어떤 방법을 사용해 본 적이 있나요?
- 다양한 Unity Asset들에 대한 이해도
- Unity에서 Asset Store를 사용해 본 적이 있나요? 그 경험은 어떠한가요?
- Unity에서 다양한 플러그인을 사용해 본 적이 있나요? 그 플러그인은 어떤 것이었나요?
- Unity에서 다른 개발자들이 공유한 코드나 라이브러리를 사용해 본 적이 있나요?
- 게임 개발 프로세스에 대한 이해도
- Unity에서 게임 개발 프로세스에서 어떤 역할을 맡았나요?
- Unity에서 어떤 문제를 해결하기 위해 노력했나요?
- Unity에서 어떻게 팀원들과 협업하였나요?
잠자기 방지 설정 세팅
아래 커맨드를 입력하면 노트북을 닫아도 꺼지지 않는다.
sudo pmset -c disablesleep 1
잠자기 방지 설정 해제
아래 커맨드를 입력하면 노트북을 닫으면 정상적으로 꺼진다.
sudo pmset -c disablesleep 0
1. 게임은 완성해야 한다.
2. 가장중요한 요소를 먼저 완료한다.
3. 새로운것 보다는 제일 잘하는것과 제일 잘되는것을 먼저 생각한다.
애자일 프레임워크
Scrum, kanban, XP(eXtreme Programming)와 같은 애자일 소프트웨어 개발 프레임워크는 DevOps 및 CI/CD(지속적 통합/지속적 배포)와 같은 대중적인 소프트웨어 개발 프로세스의 기반을 형성합니다.
스크럼
- 솔루션에 포함할 기능/개선점에 대한 우선 순위를 부여한다.
- 개발 주기는 1~4주 정도로 하고 개발 주기마다 실제 동작할 수 있는 결과를 제공하라.
(설명:너무 짧으면 개발(분석/설계/개발/테스트) 할 수 있는 시간이 부족하고, 너무 길면 느슨해지고 재작업의 양도 늘어나므로 적용해보면서 필요시 조율 필요) - 개발 주기마다 적용할 기능이나 개선에 대한 목록을 제공하라.
(설명:해당 주기의 Goal을 작성하지 않으면 목적을 잃은 기능 목록이 될 수 있음) - 매일 15분 정도의 Scrum meeting 회의를 가져라.
(설명:공유이지 보고하는 자리가 아니다. 교과서적으로 Scrum meeting은 개발팀원만 참여해야하고, 팀원이 아닌 사람은 발언기회는 없다고 한다. 개인적인 생각으로는 수평문화가 되어 있는 Agile Culture의팀이라면 PO 및 관리자가 함께 참석하여 공유하면 좋다고 생각한다. 이들도 참석한다면 이 프로젝트와 관련되어 한일/할일/이슈를 공유해야 한다. 안그러면 한팀이 아닌 관리자 모드로 돌아선다.) - 항상 팀을 우선으로 생각하라.
(설명:자신의 task보다 주변 이슈가 더 급하면 도와줘야 한다. 마치 배에 구멍이 나면 그 문제 해결이 1순위이다.) - 원활한 의사소통을 위하여, 구분 없는 열린 공간과 마음을 유지하라.
분석, 설계, 개발, 테스트 반복
폭포수 모델중 일부를 반복
- 소프트웨어 요구사항 기술
- 소프트웨어 설계
- 소프트웨어 구현 (또는 코딩)
- 시험과 디버깅
- 설치
- 소프트웨어 유지보수
- 제품 백로그(Product Backlog) : 개발할 제품의 요구사항인 사용자 스토리 집합이며, 우선순위로 관리
- 사용자 스토리(User Story) : 과거 요구사항 명세처럼 업무 범위를 구체화하기 위한 개발자 입장이 아닌, User Story는 사용자가 사용하는 관점에서 어떤 가치를 제공할 것인지를 설명
(해설 : PO는 이 기능이 누구에게 무슨 value를 제공하는지를 설명하고, 향후 개발자는 그 기능의 Value를 제공하기 위한 기술적인 역할과 책임을 가짐)
- 완료 기준(Definition of Done), 인수 기준(Acceptance Criteria) : 사용자 스토리를 완료시키기 위한 조건 명세(Given, When, Then)
- 스프린트(Sprint) : 계획,개발,리뷰 작업 등 최소 단위의 Cycle이다. 보통 1~4주 단위에서 선택
- 잠재적 출시 가능 제품(Potentially Shippable Product Increment) 또는 최소 실행 가능 제품(Minimum Viable Product, MVP) : 팀이 최소 노력으로 고객에게 검증 결과를 받을 수 있는 수준의 제품
- 스프린트 계획 회의(Sprint Planning Meeting) : 스프린트 목표와 스프린트 백로그를 계획하는 회의(4주 스프린트 기준 8시간 정도 수행)
- 스프린트 백로그(Sprint Backlog) : 각각의 스프린트 목표에 도달하기 위해 필요한 작업 목록
- 칸반 보드(Kanban Board) : 작업을 시각적으로 업무 상태, 흐름을 보여주는 게시판
- 일일 스크럼 회의(Daily Scrum Meeting) : 매일 어제 한일, 오늘 할일, 해결해야 할 장애/문제 요소를 공유하는 회의(매일 15분 정도 수행)
- 스프린트 리뷰(Sprint Review) : 스프린트 마지막날 개발자가 개발한 내용을 Stakeholder, 고객, 제품 책임자에게 시연하고 검토(4주 스프린트 기준 4시간 정도 수행)
- 스프린트 회고(Sprint Retrospective) : 스프린트 마지막날 좋았던 점, 개선할 점을 도출하고 더 나은 방향으로 개선(4주 스프린트 기준 3시간 정도 수행)
온보딩 - 신입개발자
직무교육
인프라교육 : 구글 클라우드, 사내 서버
핵심가치 : 익스트림 프로그랭밍 중 차용
용기: 문서로 변명하기 보단 진실되고 용기있게 개발
존중: 개발자의 역량을 존중하고 충분한 권한과 권리 부여
의사소통: 이해관계자 모두가 팀원이라는 생각으로 모든 사항 공유
피드백: 의사소통에 따른 즉각적인 피드백
단순성: 필요한 것은 하지만 더이상은 하지 않음
Fine scale feedback
Pair Programming: 하나의 작업을 2명의 프로그래머가 코딩·리뷰 공동 수행
: 하나의 작업을 멘토와 진행하고 소스는 모두 공유하고 주기적인 코딩리뷰
Planning Game: 게임처럼 선수와 규칙, 목표를 두고 기획 수행
: 개발 계획
Test Driven Development: 선 단위 테스트후 실제 코드 작성
: 코드작성
Whole Team: 개발 효율을 위해 고객을 프로젝트 팀원으로 상주
: 한나의 개발팀으로 묶음 , 기획,클라이언트프로그래머,서버프로그래머
Continuous process
Continuous Integration: 상시 빌드 및 배포가 가능한 상태로 유지
: CI 툴 활용 jenkins 누구나 빌드, 배포가 가능하도록
Design Improvement: 코드 개선 작업 수행(가시성, 성능 등), 불필요한 기능 제거 및 리팩토링
:
Small Releases: 짧고 잦은 릴리즈로 고객이 변경사항을 볼 수 있게 함 → 잦은 피드백
: 지속적인 내부 테스트 가능하도록
Shared understanding
Coding Standards: 표준화된 관례에 따라 코드 작성
: 표준 코딩 인벤션 사용, 디자인패턴 관련 용어
Collective Code Ownership: 시스템에 있는 소스코드는 팀의 모든 프로그래머가 언제라도 수정 가능
Simple Design: 가능한 가장 간결한 디자인 상태 유지
System Metaphor: 최종적으로 개발 되어야 할 시스템의 구조를 조망
: 전체 개발의 목표 , 조망
Programmer welfare
Sustainable Pace: 오버타임 지양
능률 우선, 시간 절약 방밥