TIL

2024/3/25 TIL

jhwoo1221 2024. 3. 25. 21:17

'오늘의 일에서 나는 어떤 것을 배웠는지' - 학습


Q13. 람다식(Lambda Expression)이 무엇인지 설명해주세요.

A13. 익명 함수. 즉 이름을 따로 지정하지 않는 함수이다.
예시 코드
Func<int, int, int> add = (x, y) => x + y;
int result = add(3, 5); // result에는 8이 할당됨.
위 코드에서 add 변수는 두 개의 정수를 입력으로 받아 더한 값을 반환하는 델리게이트를 참조한다. 
람다식 (x, y) => x + y은 두 개의 매개변수 x와 y를 받아 그들을 더한 값을 반환한다.
주로 코드를 더 간결하고 가독성 있게 만들어주는데 용도로 사용된다.

 

 

'오늘의 나는 무엇을 잘했는지' - 성취

하루 5분 오늘 한일 작성

대분류 : 최종 팀 프로젝트 - 클라이언트 구현

소분류 : 데이터 설계 및 메서드 구현

캐릭터 돌파 기능 메서드에서, 조각 갯수를 확인하고 차감하도록 기능 추가

CharacterGrowthManager를 Managers에서 분리하고 Character가 갖고 있도록 함

 

 

'오늘의 나는 어떤 문제를 겪었는지, 앞으로 어떻게 해결할 것인지' - 개선

 

1. 캐릭터에게 Exp 상승 아이템을 사용하여 레벨업 시키는 기능 및 로직을 구현해야 한다.

일단 캐릭터 Exp 값 자체는 상승하면 레벨이 올라가도록 설정해 두었지만 그 자체로는 일반적으로 캐릭터 육성 창에서 진행되는 캐릭터 레벨업 구조와는 조금 거리가 있다.

(예를 들어 블루아카이브: 캐릭터 육성 창- 등급별 캐릭터 경험치 아이템 4개 중에서 사용할 아이템을 고르고 갯수를 선택하기 - 확인 버튼으로 그 아이템들의 경험치 합계값을 캐릭터 Exp에 더하고 아이템들을 인벤토리에서 차감)

이 일련의 기능 절차를 구현하려면 로직이 조금 복잡해질 것 같다.

 

2. 캐릭터 스킬 레벨업 기능을 구현해야 한다.

일단 레벨업에 필요한 아이템과 아이템 갯수를 저장하는 딕셔너리가 있어야 한다.

장비는 티어가 상승하면 상위 티어의 장비 SO를 적용 시키고 그 각각의 장비 SO에 강화에 필요한 아이템 딕셔너리가 저장되어 있는 방식이라 간단했는데, 스킬SO는 쭉 같은 스킬 SO를 사용 하지만 스킬 레벨에 따라서 요구 아이템 딕셔너리를 따로 적용 시켜줘야 하고, 그걸 또 진영 별로 나눠야 하니 딕셔너리 갯수가 진영 갯수 * 스킬 레벨 갯수만큼 필요해진다. 이 딕셔너리 데이터를 어디에 저장시켜두면 좋을 지 고민이다.