전체 글 90

2024/3/20 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q10.제네릭이란 무엇인가요? A10.제네릭(Generic)은 코드의 재사용성과 유연성을 높이기 위한 방법 중 하나다. 제네릭을 사용하면 클래스, 메서드 등을 정의할 때 특정한 데이터 타입을 지정하지 않고 추상적인 데이터 타입을 사용할 수 있다. 이렇게 함으로써 같은 기능을 다양한 데이터 타입에 대해 사용할 수 있게 된다. 예를 들어, List 클래스는 제네릭을 사용하여 여러 타입의 요소를 포함하는 리스트를 정의할 수 있다. 여기서 T는 리스트에 포함될 요소의 데이터 타입을 나타내며, 실제 사용할 때에는 원하는 데이터 타입으로 지정된다. 제네릭은 코드의 타입 안정성을 보장하고 코드의 중복을 줄여주며, 일반적으로 컬렉션 클래스, 데이터 구조, 알고리즘 등..

TIL 2024.03.20

2024/3/19 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 퀘스트를 만들 때 데이터 구조 및 작동 방식 퀘스트 데이터 시트 1. 어떤 퀘스트 / 어떤 액션이 있을지 정의 - 퀘스트 ID - 퀘스트 이름 - 퀘스트 설명 - 퀘스트 타입 (액션의 종류) - 타겟 ID (조건을 만족하기 위해 필수로 접촉해야하는 객체가 무엇인지) - 카운트 (액션 처리 횟수) - 보상 ( 경험치 / AP / 골드 / 다이아 / 아이템 ) - 보상 카운트 (보상의 종류 최대치 만큼 보상 / 보상 카운트 반복 ) 엑셀 데이터를 퀘스트 데이터 형식으로 바꿔서 퀘스트 DB에 저장 int id string 이름 string 설명 enum 타입 int target int 카운트 int exp int gold int reward1 int rewa..

TIL 2024.03.19

2024/3/18 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q8. 박싱과 언박싱에 대해 설명해주세요 a.(꼬리질문) 박싱, 언박싱을 사용할 때 주의해야 할 점이 있다면 무엇이 있나요? 박싱(Boxing): 박싱은 값 형식을 Object 형식이나 다른 참조형 타입으로 변환하는 과정을 의미하고, 언박싱은 참조형식을 다시 값 형식으로 변환하는 과정을 의미한다. 값 형식은 스택(Stack)에 저장되는 반면, 참조형 타입은 힙(Heap)에 저장된다. 따라서 값 형식을 참조형식으로 변환하면 스택에 있는 값을 힙에 복사하게 된다. 예를 들어, 정수(int)를 object로 박싱하면 정수 값이 힙에 저장되고 그것을 참조하는 Object 변수가 생성된다. 반대로 언박싱은 힙에 있는 값을 스택에 복사한다. 예를 들어, Objec..

TIL 2024.03.18

2024/3/15 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q6. 가비지 컬렉터를 회피하기 위한 전략은 무엇이 있나요? A6. 가비지 컬렉터 회피를 위한 전략의 핵심 맥락은 쉽게 비유하자면 우리가 일상생활에서 하는 아나바다 운동 또는 쓰레기 줄이기 캠페인의 내용과 거의 일치한다. 아껴쓰고, 나눠쓰고, 바꿔쓰고, 다시 쓰기. 쓰레기를 줄이려면 쓰레기를 안 만들면 된다는 지극히 단순한 논리다. 이러한 기법으로 일단 직접 쓰레기를 세심하게 관리하는 노력이 최우선으로 필요한데, 이를 수동 메모리 관리 전략으로 예를 들 수 있다. 그리고 재활용의 예시로 오브젝트 풀링이 있는데, 객체 풀을 만들어 필요할 때마다 재사용하는 방법이다. 이러한 전략을 통해 가비지 컬렉터의 작동을 회피할 수 있다. '오늘의 나는 무엇을 잘했는지..

TIL 2024.03.15

2024/3/14 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q5. 가비지 컬렉터에 대해 설명해주세요. A5. 가비지 컬렉터(Garbage Collector)는 프로그램에서 사용되지 않는 메모리를 관리하는 일련의 기능의 집합을 말한다. 쉽게 비유하자면, 문명 사회에서는 환경 미화원. 생태계에서는 썩은 것과 시체, 버려진 것들을 처리하는 미생물과 같다. 주로 아무도 참조하지 않게 된 객체를 메모리에서 지움으로서 메모리를 깨끗하게 만들고 여유 공간을 확보하는 역할을 한다. '오늘의 나는 무엇을 잘했는지' - 성취 최종 팀 프로젝트 작업- Character에 클래스와 특성을 적용시킬 수 있도록 로직을 짜고 코드를 작성해봄. '오늘의 나는 어떤 문제를 겪었는지, 앞으로 어떻게 해결할 것인지' - 개선 작업 속도가 너무 ..

TIL 2024.03.14

2024/3/13 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 struct와 class를 비교해서 설명해주세요. 둘다 컨테이너 자료형식임. 구조체: 값 타입. 스택 영역에 할당됨. 상속하거나 받을 수 없음. 가비지 컬렉터의 관리 대상이 아님. Null값을 가질 수 없음. 주로 작고 한정적인 범위의 데이터를 저장하고 관리할 때 사용된다. 클래스: 참조 타입. 힙 영역에 할당됨. 상속 가능. 가비지 컬렉터의 관리 대상(아무도 참조하지 않으면 자동 삭제됨) Null값을 가질 수 있음. 주로 넓고 복잡한 관계를 가진 데이터 구조 및 객체 관계 / 메서드를 관리할 때 사용된다. '오늘의 나는 무엇을 잘했는지' - 성취 최종 팀 프로젝트 - AccountData.cs 및 PlayerData.cs 보완 작업 캐릭터 성장 관련 ..

TIL 2024.03.13

2024/3/12 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 접근제한자란 무엇이며, 각각 어떤 차이가 있는지 비교해서 설명해주세요. 접근 제한자 복습 public 가장 넓고 열린 범위의 접근을 허용함. 클래스 / 어셈블리를 가리지 않고 접근 가능. private 같은 클래스 내에서의 접근만 허용함. 상속받은 클래스도 접근 불가능. protected 같은 클래스 / 상속받은 클래스의 접근만 허용함 internal 같은 어셈블리(=컴파일 된 단위. 보통은 한 프로젝트)내에서의 접근을 허용함. 다른 어셈블리에서는 접근 불가. 개방적 public > internal > protected > private 폐쇄적 이 외에도 private protected, protected internal 등이 있음. '오늘의 나는 무엇..

TIL 2024.03.12

2024/3/11 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 기술면접 질문 - 'ref'와 'out'의 사용 시 차이는 무엇인가? 공통점 : 외부의 변수를 매개변수를 가져오고 그 값을 메소드 내에서 변경할 시 본래 값에도 영향을 준다. 차이점 : ref는 값을 참조하기 때문에 가져오는 외부변수가 이전에 반드시 초기화 되어 있어야한다. out는 값을 반환하기 때문에 메서드 내에서 해당 값에 반드시 어떤 값이라도 할당해 주어야 한다. '오늘의 나는 무엇을 잘했는지' - 성취 PlayerData 및 AccountData 초안 작성 MissionData에서, 미션의 조건 저장 방식 초안을 작성해봄 처음에는 method info나 델리게이트로 미션 조건을 담은 bool값을 반환하는 if문 메서드 자체를 미션데이터 클래스에..

TIL 2024.03.11

2024/3/8 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 Q1. float와 int의 표현 가능한 수의 범위가 다른 이유는 무엇인가요? A1. 간단히 요약하면, 두 자료형의 4바이트(32비트) 구조가 다르기 때문이다. 둘다 똑같은 4바이트를 차지하지만 float의 경우 지수 비트라는 개념을 채용했기 때문에 더 길고 복잡한 수를 나타낼 수 있지만, 그 값이 100% 정밀하지는 않다는 사실을 유념해둬야한다. '오늘의 나는 무엇을 잘했는지' - 성취 최종 팀프로젝트- 사실 오늘은 잘한게 별로 없다. '오늘의 나는 어떤 문제를 겪었는지, 앞으로 어떻게 해결할 것인지' - 개선 미션데이터 클래스를 설계하면서 미션데이터에 델리게이트를 통해서 "미션 달성 조건"이라는 메서드를 저장하려고했다. "미션 달성 조건"에 if문을..

TIL 2024.03.08

2024/3/7 TIL

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습 입사의 구조 -서류 제출 - 1차(기술) - 2차(임원) - 최종 합격 -서류 제출 - 코딩 테스트 - 기술 면접(오프라인 코딩 테스트) - 임원 면접 - 최종 합격 입사를 위해 필요한 것 -지원할 회사에 대한 정보 수집 ㄴ 블라인드 / 잡플래닛 / 게임잡 -자소서 -포폴 -코딩 테스트 준비 -면접 준비 -기술 면접 -튜터님이 면접에서 실제로 받은 질문들 MVC (단골 질문) Sort (정렬) -면접 시 질문해볼 만한 것 일하게 되는 팀 구성원 입사 시 실제로 하게 되는 일 -임원면접에서 주로 물어보는 것 지원동기 목표 취미 희망 연봉 '오늘의 나는 무엇을 잘했는지' - 성취 팀원들과 최종 프로젝트 프로토타입 / 플로우 차트 / 클래스 구조도 설계 / ..

TIL 2024.03.07