오늘은 어제 제대로 이해하지 못했던 2주차 강의 (특히 배열 부분) 를 다시 듣고 이해하는 데에 초점을 맞췄다.
오늘 배운 것 중 기억에 남는 것
배열 < 쉽게 말해 저장소를 만드는 것이라고 할 수 있겠다.
int[] level = new int[]; << 대괄호를 활용해 배열을 묶어줄 수 있으며, new int 이후의 대괄호 내부에 숫자를 넣어 몇 칸짜리 배열인지를 정해준다.
그리고 배열은 그저 묶어주는 역할만 하는 것이 아니라 그것을 활용할 줄 알아야한다.
배열은 보통 반복문과 함께 활용되는데,
for (int i = 0; i < level.Length; i++) {} 와 같은 형태로 활용된다. 이때 level.Length는 배열의 길이, 즉 배열의 칸의 개수를 말한다. (배열의 index는 여타 프로그래밍 언어가 그러하듯이 0부터 시작한다.)
배열에는 2차원 3차원 등 다차원 배열이 존재한다.
int[,] map = new int [a,b]; << 2차원 배열로 특이점은 int[]의 대괄호 사이에 쉼표를 넣어줘야 한다는 점과 a, b를 통해 각각 몇 칸인지를 작성해주어야 한다는 것.
2차원 배열을 활용할 때는 1차원 배열을 활용할때 for 반복문을 활용했듯이, 중첩 반복문을 활용하면 된다.
for (int i = 0; i < a; i++)
{
for(int j = 0; j < b; j++)
{ ...}
}
와 같은 형태를 활용하여 게임 맵을 구현하는 등 다양하게 사용할 수 있다.
컬렉션은 자료를 모아 놓은 데이터 구조를 의미하며, List, Dictionary, Stack, Queue 등이 있다.
List는 동적으로 크기를 조정할 수 있지만 메모리 사용량이 증가하므로 무분별하게 사용하는 것은 좋지 않다.
method는 일련의 코드 블록으로 unity에서 활용하는 함수와 같은 것으로 받아들이니 이해하기 조금 용이했었다.
method 이름이 같다고 하더라도 매개변수에 따라 다르게 작용할 수 있는데, 이를 메서드 오버로딩이라고 한다. 이때 변환값은 오버로딩에 아무런 영향을 주지 않고 오로지 매개변수만이 중요하다.
오늘의 회고
오후 스크럼 때 팀원분의 제안으로 각자의 개인과제 진척상황을 공유하였다.
팀원분의 스크립트를 보니 줄바꿈 시퀀스를 사용하셔서 깔끔하기 그지없었다. 또한 Console.Clear();를 활용하여 기존의 메뉴를 지우고 그 메뉴만 뜨게끔 해두셨더라.
깨달음을 얻었다.
그 말씀을 드렸더니 그 팀원분도 내가 메서드를 활용해서 게임화면을 나눈 것을 보고 깨달음을 얻으셨다고 한다.
팀업이 이렇게나 학습에 도움이 되는 줄 몰랐는데 처음으로 겪어보는 신선함이었다.
다만 좋은 것은 좋은 것이고 배열의 산을 넘었더니 클래스와 객체 산맥이 날 기다리고 있다.
내일도 힘내서 공부하자.. 화이팅..!