본문 바로가기

내일배움캠프

(53)
[TIL 24.04.29~05.05] 4주차 강의 필기노트 이번 강의는 아침마다 정규 수업시간이 시작하기 전후로 틈틈이 들어서 하루만에 끝나지 못했다. 오래 자리를 잡고 들은 것이 아니라 한 강의조차도 쪼개서 듣고 그만큼에 대한 내용을 숙지했다고 생각한 다음에야 그 다음 내용을 들어왔다.목   차 인터페이스와 열거형다중 상속을 사용하지 않는 이유다이아몬트 문제설계의 복잡성 증가이름 충돌과 해결의 어려움설계의 일관성과 단순성 유지인터페이스를 사용하는 이유코드의 재사용성다중 상속 제공유연한 설계인터페이스(Interface)interface IMyInterface{ void Method1(); int Method2(string str);}class MyClass : IMyInterface{ public void Method1() { ..
[TIL 24.04.28] 3주차 강의 필기노트 C#문법종합반 강의 3주차 내용을 정리하는 글이다. 내가 아는(또는 안다고 생각하는) 일부 내용은 생략되었다. 목   차 클래스와 객체객체 지향 프로그래밍의 특징#특징캡슐화: 여러 기능을 하나의 단위로 모아 묶는 것.(ex. Status, Item 클래스)상속: 기존의 클래스를 확장하여 새로운 클래스를 만드는 것.(ex. Person > Student 클래스: 학생만의 특징 추가.)다형성: 하나의 인터페이스/기능을 다양한 방식으로 구현. (ex. 연산자 오버라이딩, 함수 오버로딩:매개변수 차이)추상화: 복잡한 시스템을 단순화하여 필요한 것에 집중하는 것(ex. 인터페이스, 추상클래스.)객체: 클래스로부터 생성된 실체. #클래스의 구성요소필드: 클래스 안의 변수.(상태/속성)메서드: 클래스 안의 동작/기능..
[TIL 24.04.26] 개인 프로젝트: 스파르타 던전(完) 과제 제출이 끝난 후 우리조에서 서로의 코드를 보며 리뷰를 했다. 이번 글은 그 와중에 배운 내용에 대해 쓴다. 목   차 #regionVS Community에서 범위를 정해 토글을 만들 수 있는 기능이다. 비트 플래그(bit flag)enum eEquipType { HELMET = 1, CHESTARMOR = 2, AMULET = 4, WEAPON = 8}위와 같이 enum의 값을 2진수로 표현할 수 있게 2의 제곱수들로 열거를 하는 방식이다. 강동욱 튜터님은 실무자들도 잘 안쓰는 경우가 많기에 주의하라고 하셨다. 생성자를 받아오는 또 다른 방법이건 몰랐다기보단 반쯤 잊고 있는 방법이라 default 매개변수랑 함께 연결해서 설명한다. 생성자의 가장 마지막 인자부터 n개의 변수에 (in..
[TIL 24.04.25] 개인 프로젝트: 스파르타 던전(2) 목   차 이벤트 처리이벤트 하는 법이벤트 핸들러를 Namespace에 선언한다. (public delegate void [이벤트 핸들러 이름] (매개변수) )[객체1] 에서 이벤트 변수를 선언한다. ( public event [이벤트핸들러 이름] [이벤트 이름] )[객체1]에서 필요한 곳에 이벤트를 발생시킨다. ( [이벤트]?.Invoke(전달할 변수) )[객체2]에서 이벤트를 통해 어떤 상호작용을 할건지 그 함수를 작성한다.[객체1].[이벤트] += [객체2].[이벤트 작동함수] 를 통해 이벤트가 전달되도록 한다. 버그 리포트1-Console.Clear()상점에 아이템을 9개 가량 추가했는데 이게 화면에 모든 글씨가 나오지 않는다면 Console.Clear()가 작동하지 않는 문제가 있다. 사용해본 ..
[TIL 24.04.24] 개인 프로젝트: 스파르타 던전(1) 이번 주차에는 스파르타 던전을 혼자서 한 번 만들어보고, 이걸 기반으로 발전시켜 다음 주차에 팀프로젝트를 진행할 예정이다. 목   차 플레이어 클래스모든 개인 저장데이터는 결국 여기로 모여 Player 객체 하나만 저장하면 게임 전체가 저장이 될 것이다. 또한, 플레이어 참조를 통해서 플레이어에서 선언된 객체들끼리도 상호작용이 가능하다.아이템 자료구조내 게임에 있는 아이템 데이터가 어떤 구조로 되어있는지 설명한다. 아이템 클래스아이템 객체를 생성하고 아이템이 속성을 보유하게 해주는 클래스이다. 여기에는 5개의 필드가 있는데, 다음과 같다:public ItemType type { get; set; }string itemName { get; set; }int typeValue { get; set; }int ..
[TIL 24.04.23] 3주차 과제1: Snake Game 3주차의 첫 번째 과제인 뱀 게임이다. 문제에서 기본으로 제공되는 코드소스가 있긴 했으나, 그것과 강의내용만으로는 초보 개발자가 이 과제를 이루기가 힘들 것 같다는 생각을 했다. 또 3주차 과제의 해설은 참고한 적이 없고, 기본제공된 코드소스의 일부 역시 임의로 수정했기에 해설과는 다른 점이 있을 수 있다. (당신이 코딩 뉴비라면)이 글은 맨 위에서부터 차근차근 읽기보다는 필요할 때마다 글의 위 아래를 오가면서 클래스끼리 어떻게 상호작용을 하게 되는지 따라가며 읽는 것을 추천한다.   목   차 $(function(){ $("#toc").toc({ content: ".tt_article_useless_p_margin", ..
[TIL 24.04.23] 2주차 과제2: Tic Tac Toe C#문법 종합반의 과제로 나온 2번째 문제, Tic Tac Toe를 내가 직접 구현한 내용이다. 이 코드는 어제 구현했지만, 정리는 하지 못한 관계로 오늘 작성한다. 목 차 코드 개요 틱택토는 Player1과 Player2가 번갈아가며 3 * 3의 보드에서 한 칸을 자신의 표식으로 물들이고, 최종적으로 먼저 한 줄 빙고를 만드는 사람이 이기는 게임이다. 추가적으로 비정상적인 입력(ex: 이미 입력한 부분을 다시 입력하거나 아무것도 입력하지 않고 Enter를 칠 때 등.)시 패널티로 차례가 상대에게 넘어간다. 우선, 내가 만든 코드에는 전역에서 선언된 변수가 하나 있다. //틱택토 보드의 각 칸에 들어가는 값에 대한 배열. static char[] boardArr = { '1', '2', '3', '4',..
[TIL 24.04.22] 1주차~2주차 강의 필기노트 .목   차 1주차 강의            1.클래스, 매서드, 변수 등의 이름 입력할 때 Tab으로 자동완성 가능.             Console.WriteLine("C#");             2.메서드나 변수 입력 도중 자동완성이 끊겼다면, Ctrl + Space로             IntelliSense 부르기.             Console.WriteLine("Study");             3.코드 템플릿을 사용하여 더 빠른 코드 가능.             for (int i = 0; i             {                 코드 템플릿(Tab 2회)으로 만든 for문.             }             4. Debug 모드 vs Rele..
[TIL 24.04.19] ChillySauceCode 회고록 목   차 팀원 소개 팀장: 정승연우선 저에 대해 간단히 소개하겠습니다. 캠프에 오기 전에는 주로 C++ 알고리즘을 공부했고, 이번 캠프를 통해 팀플 경험을 쌓고 싶어 참여하게 되었습니다. 팀장으로써 팀 SA 노션을 정리하고, 프로젝트의 방향성을 설정하고 각 팀원의 작업을 조율하는 역할을 맡았습니다. 이번 프로젝트에서는 주로 에셋 찾아오거나 만들어오기와 UI 구현, SFX 작업을 맡았습니다. 구현한 UI로는 매칭 판넬과 시도횟수 판넬, 시간 슬라이더, 레벨 증가 시의 방해물 생성, 인게임 화면 구성과 영선님이 만들어주신 스타트 화면의 UI 개선이 있습니다. 또 구현한 효과음에는 버튼 클릭 시의 효과음, 게임 스타트 음, 카드 뒤집을 때의 flip 소리, 카드매치 성공 시와 실패 시의 각기 다른 효과음, ..
[TIL 24.04.18] 추가 이펙트 + 팀원의 코드 리뷰 .목   차 레벨 올라갈 때 효과 추가Unity에 올라와 있는 무료 에셋을 사용했다. 밑의 2개의 효과는 하나의 에셋 안에 함께 있었다. Explosion 효과 추가Level 2 이상부터 나오는 방해 이펙트이다. 폭발음과 함께 애니메이션이 등장하며, 잔여물을 남겨서 화면을 살짝 가리게 했다. 처음에는 한 번에 여러 개가 나타나게 했으나, 효과가 거의 없는 것 같아 Invoke를 활용해 3번에 걸쳐 나타나게 했다. 그리고 레벨이 오를수록 Explosion 효과가 나타나는 개수를 늘렸다. Fireball 효과 추가Level 4에서는 추가로 파이어볼이 0.2초에 한 번씩 x좌표 랜덤 위치에서 떨어지게 됐다. y 6에서 생성되어 떨어지기 시작하고, y가 -6이 되면 Destroy 함수를 이용해 사라지게 했다. ..
[TIL 24.04.17] 인게임 UI 개선 + 코드 리팩토링 오늘은 UI 작업과 클린코드로 바꾸기 위주로 했다.  목   차 UI 변경더 깔끔한 UI로 바꾸어 사용자가 보기 편하게 했다. 필요한건 추가하기도 했다. 그리고 배경화면에 쓸 이미지를 찾아오고 인게임 화면은 내가 직접 바꿨다. 아웃라인과 쉐도우 변경스타트 씬에서는 Pause 버튼, 제목, 스타트 버튼, 그리고 가운데에 계속 바뀌는 카드 3개에 각각 Outline 컴포넌트와 Shadow 컴포넌트를 추가해 깔끔한 UI를 만들었다. Main씬에서는 일부는 Outline을 추가해주었지만, 일부는 그림자만 넣는 편이 더 깔끔해서 Shadow만 있다. 마찬가지로 Pause버튼도 추가해주었고, 끝 판넬의 요소들에도 필요한 요소를 추가해주었다. 대기중 화면 배경색은 흰색인 편이 더 깔끔한 것 같아 흰색으로 바꾸어주고 ..
[TIL 24.04.16] 카드 매치 & 효과음 +Notion 게임의 기본적인 틀은 모두 구현했으니 이제 미니 프로젝트를 하면서 구현하라고 한 과제들을 수행할 시간이다. 목   차 내가 구현한 기능 목록.조원과 함께하는 프로젝트에서 내가 주가 되어 구현한 기능들로, 다른 사람이 업로드한걸 아주 약간 수정해주는 것은 생략했다. 서로서로 업로드 미스가 났거나 실수한 것을 자기가 수정하다가 conflict 날까봐 간단한 문제들은 수정해야 하는 스크립트를 현재 작성중인 사람에게 대신 부탁하는 식으로 매꿨다.  카드 매치 사인 만들기.1쌍의 카드를 선택했을 때 같다면 그 카드 주인의 이름을, 틀렸다면 "실패..." 사인을 출력하는 기능이다.#UI 구현처음에는 MainScene의 한가운데에 구현을 하려 했으나, 그렇게 하면 내가 방금 뒤집은 카드가 뭐였는지 확인할 수 없는 문..
[TIL 24.04.15] 첫 협업-카드뒤집기 카피캣 이미 해본 적 있는 스파르타 게임개발종합반의 강의 내용을 토대로 4인의 조원이 각자 역할을 맡아 자기 파트를 개인 브랜치에 업로드한 후, Main에 합치는 작업을 했다. 내가 맡은 파트는 에셋 수정과 BGM 작업이다. 목 차 에셋 작업 이 작업은 사실 제일 간단해서 가장 빨리 끝났다. Zep에 있는 조원들의 캐릭터와 Slack에 있는 프로필 사진을 3:4 비율에 맞게 수정해서 공유방에 업로드하기만 하는 되는 작업이었다. 이외의 것은 아직 논의된 것이 없거나 기본 제공된 것을 사용하기로 했기 때문에 바로 다음 작업으로 넘어갔다. 음악 삽입하기 BGM 삽입하는 법 복습하는 차원에서 5주차 BGM 부분을 정리한다. 음원은 스파르타에서 제공한 것을 우선 그대로 가져다 사용했다. #flip 소리 삽입하기 Card..