내일배움캠프 11

내일 배움캠프 16일차 : Action , Func 키워드를 사용한 이벤트 사용

오늘 공부한 내용📝오늘은 C#에서 `event`와 함께 `Action` 및 `Func`를 활용하는 방법을 학습했다. `delegate` 대신 `Action`과 `Func`를 사용하면 더 직관적이고 간결한 코드를 작성할 수 있다. 이들의 차이점과 사용 시점을 이해하기 위해 다양한 예제를 실습해보았다.왜 Action과 Func를 사용할까?🤔기존 delegate를 사용하면 메서드 서명을 따로 정의해야 하는 번거로움이 있다. 하지만 Action과 Func를 사용하면 코드를 더 간단하게 작성할 수 있으며, 직관적인 형태로 메서드 서명을 지정할 수 있다.Action은 반환값이 없는 메서드 호출 시 사용된다.Func은 반환값이 있는 메서드 호출 시 사용된다.Action 사용 예시 Action은 반환값이 없는 메서..

내일배움캠프 2024.10.04

내일배움캠프 13일차: 인터페이스

오늘의 공부 📝오늘은 인터페이스 개념에 대해 집중적으로 학습하였다. 인터페이스는 클래스가 특정 동작을 수행할 수 있도록, 해당 동작에 대한 규약을 정의해 주는 추상화 개념이다. 인터페이스는 클래스와 달리 메서드의 구현을 포함하지 않으며, 그저 클래스가 가져야 할 메서드의 시그니처(이름, 매개변수, 반환 타입)만을 정의한다. 인터페이스는 여러 클래스들이 동일한 동작을 하도록 보장해주고, 다형성을 활용한 유연한 설계를 가능하게 해준다.인터페이스는 특정 동작을 정의하고, 그 동작을 여러 클래스가 공통적으로 구현할 수 있도록 한다. 인터페이스 자체는 인스턴스화할 수 없으며, 클래스에서 인터페이스를 구현하여 사용할 수 있다. 한 클래스는 여러 인터페이스를 동시에 구현할 수 있어, 인터페이스를 통한 다중 상속의 ..

내일배움캠프 2024.09.30

내일배움캠프 12일차: const와 readonly

오늘의 공부: const와 readonly 📝오늘은 팀원 분께서 가르쳐주신 const와 readonly 키워드에 대해 추가적으로 공부해보았다. const와 readonly는 모두 값을 변경할 수 없도록 설정하는 키워드이지만, 각각의 사용 시점과 용도가 다르다.const란?const 키워드는 상수(Constant)를 정의할 때 사용됩니다. 상수는 선언과 동시에 값을 지정해야 하며, 이후에 값을 변경할 수 없습니다. const는 컴파일 타임에 결정되는 상수로, 기본형 타입(정수, 실수, 문자열 등)이나 불변적인 값에 주로 사용됩니다. 클래스 내에서 const는 암시적으로 static이므로, 인스턴스가 아닌 클래스 자체와 연관되어 사용됩니다. const 특징반드시 초기화 시 값을 할당해야 함:const 변수..

내일배움캠프 2024.09.27

내일배움캠프 11일차: 추상 클래스

오늘의 공부 📝오늘은 추상 클래스 개념이 헷갈려 집중적으로 공부하였다. 추상 클래스는 공통적인 기능을 제공하면서도, 특정 기능에 대해서는 자식 클래스가 반드시 구현하도록 강제하는 개념이다. 추상 클래스는 인스턴스화할 수 없고, 상속을 통해서만 사용된다. 또한, 추상 메서드를 통해 자식 클래스에서 해당 메서드를 반드시 구현하게 강제하며, 이를 구현하지 않으면 컴파일 오류가 발생한다. 추상 클래스 (Abstract Class)란?추상 클래스는 공통적인 기능을 제공하면서, 구체적인 동작이 필요한 부분은 자식 클래스에서 구현을 강제하는 개념이다. 추상 클래스 자체는 인스턴스화할 수 없으며, 반드시 상속을 통해 사용이 된다. 추상 메서드를 통해 자식 클래스가 해당 메서드를 반드시 구현하도록 강제할 수 있으며, ..

내일배움캠프 2024.09.26

Newtonsoft.Json을 사용한 게임 데이터 저장(내일배움캠프 10일차)

오늘 공부한 내용 📝오늘은 C#을 활용한 TEXT RPG 만들기 과제를 하면서 데이터 저장 방식에 대해 고민하던 중, Newtonsoft.Json을 알게 되어 사용해보았다. 이 라이브러리는 JSON 포맷으로 데이터를 쉽게 직렬화하고, 다시 객체로 역직렬화하는 데 매우 유용했다. JSON을 통해 데이터의 구조를 직관적으로 관리할 수 있었고, 게임 데이터를 저장하고 불러오는 기능을 간단하게 구현할 수 있었다. JSON이란?JSON(JavaScript Object Notation)은 데이터를 텍스트 형식으로 저장하고 교환하는 데 사용되는 경량 데이터 포맷 Javascript의 문법을 따르지만, Javascript가 아니더라도 다수의 프로그래밍 언어에서 라이브러리를 제공 키-값 쌍으로 데이터를 표현하며, 데이..

내일배움캠프 2024.09.25

내일배움캠프 게임개발 과정 7일차: Ref 와 Out 키워드

오늘 공부한 내용📝오늘은  ref와 out 키워드에 대해 배웠다. 두 키워드는 모두 참조에 의한 전달을 가능하게 하지만, 각각의 사용 방식과 조건이 다르다. 이를 통해 메서드가 값을 반환하거나, 여러 값을 수정하는 상황에서 유용하게 사용할 수 있다.ref 키워드역할: ref는 변수를 참조로 전달하여, 메서드 내에서 값이 변경되면 원본 변수에도 그 값이 반영되도록 한다.사용 조건: 메서드에 전달하기 전에 변수가 반드시 초기화되어 있어야 한다.사용 예시:int number = 10;ModifyValue(ref number);void ModifyValue(ref int value){ value = 20; // 원본 변수의 값이 20으로 변경됨}out 키워드역할: out은 메서드가 여러 값을 반환할 수..

내일배움캠프 2024.09.20

내일배움캠프 게임개발 과정 6일차: float 데이터형 끼리의 비교

오늘 공부한 내용📝오늘은 float 자료형끼리의 비교에 대해 배웠다.  float은 정확한 값이 아니기 때문에 ==로 비교하면 오류가 발생할 수 있다. 이를 해결하기 위해 "허용 오차(Epsilon)"를 사용하여 두 값의 차이가 매우 작은 경우, 같다고 간주하는 방법을 배웠다.float a = 0.1f + 0.2f;float b = 0.3f;float epsilon = 0.00001f;if (Math.Abs(a - b)  이 코드는 float 값이 부정확하게 저장될 수 있다는 점을 보완해, 좀 더 안정적인 비교를 가능하게 해준다.궁금한 내용 / 부족한 내용 🤔비슷한 원리로 double 자료형끼리도 비교할 때 주의가 필요하다는 것을 알게 되었다.double은 float에 비해 더 높은 정밀도를 제공하지..

내일배움캠프 2024.09.19

내일배움캠프 게임개발 과정 5일차

오늘 공부한 내용📝 개발자로서 가져야 할 사고어려웠던 부분😭좋은 코드 구조에 대해서 아직 감이 잘 안 잡혔다. 예를 들어, 특정 메서드를 어떤 클래스에 선언하고 사용하는 것이 좋은지, 새로운 클래스를 만드는 것이 적절한지, 아니면 기존 클래스에서 사용하는 것이 더 나은지에 대한 고민이 많았다.궁금한 내용 / 부족한 내용🤔게임 프로그래밍 컨벤션 느낀점😺오늘 라이브 세션 강의에서 개발자로서 필수적인 사고 방식에 대해 들었다. 개발하고 싶은 게임의 레퍼런스를 분석하며, 게임의 구성과 기능 우선순위, 변수명 선정 등 게임 개발을 위한 사고 방식에 대해 깊이 있게 배울 수 있었다. 이 지식을 바탕으로, 기존에 강의를 보며 구현했던 프로젝트들을 다시 분석하며 무엇을 개선할 수 있을지 고민한 하루였다. 이제 ..

내일배움캠프 2024.09.13

내일배움캠프 게임개발 과정 4일차 - 카드 뒤집기 게임 보완하기

오늘 공부한 내용📝4주 차 강의를 바탕으로 카드 뒤집기 게임의 도전 기능을 구현해 보았다. 이번 학습은 주로 게임의 몰입도를 높이기 위한 디테일한 개선 작업에 집중했다.특히 유니티 애니메이션, 문제 해결 능력, 그리고 게임 리소스를 어떻게 효율적으로 활용할지에 대해 깊이 있게 탐구했다. 프로그래밍 외적인 부분들에도 많은 시간을 투자한 하루였다.어려웠던 부분😭몰입도를 높이기 위해 여러 기능을 추가했지만, 주변 요소들이 만족스럽지 않았다. 게임의 전체적인 완성도를 높이기 위해서는 코딩 외에도 더 많은 작업이 필요하다는 것을 느꼈다.궁금한 내용 / 부족한 내용🤔좋은 게임 디자인이란?느낀점😺오늘의 학습을 통해 좋은 게임을 만들기 위해서는 프로그래밍 능력 외에도 내가 가지고 있는 도구들을 효과적으로 활용하..

내일배움캠프 2024.09.12

내일배움캠프 게임개발 과정 2일차

오늘 새로 배운 내용📝풍선을 지켜라 게임   1. 마우스를 통한 오브젝트 이동   2. PlayerPrefs를 활용한 데이터 저장 및 불러오기   3. Animator 사용  고양이 밥주기 게임  1. 유니티 캔버스의 렌더 모드  2. RectTransform을 통한 UI 요소 배치 및 크기 제어  3. OnTriggerEnter2D와 OnCollisionEnter2D의 차이점 르탄이 카드 뒤집기 게임  1. PixelPerUnit을 통한 스프라이트 크기 조절  2. System.Linq의 OrderBy 메소드를 통한 배열 값 무작위 정렬  3. 유니티 Resources 폴더 사용법 Unity 주변 기능 학습  1. 스플래시 이미지 만들기  2. 사운드 추가 하기   3. DontDestroyOnLoa..

내일배움캠프 2024.09.10