Unity/TIL

두 번째 팀프로젝트 시작

김차루 2024. 4. 29. 20:45
스파르타 내배캠 11일차 TIL
C2조_💖 코딩(인줄 알았지 하드코딩 이지롱)

 

 

 

List

    팀 과제를 시작한다는 발제 이후에 튜터님의 깃허브 특장 2탄과 함께 c#의 리스트에 대한 추가 설명이 이어졌다. 깃허브는 저번에 설명 해주신거에 대한 보충 설명이어서 다른 건 없었다. 그냥 절.대.로. 같은 스크립트 같은 씬을 사용하지 말라고 강조하셨다. 

    c# 리스트에 관한 것은 정리를 해보려고 한다. c# 종합 문법 강의에서 강사님이 'List는 메모리상에서 이어져있지 않기 때문에 Length가 아니라 Count를 쓴다.' 라고 말씀하셨다. 하지만 이 말은 절반 정도 맞는 말이라고 얘기하셨다. C#의 List는 메모리상에서 이어져서 존재하고 Length가 아니라 Count를 쓴다고 하셨다. 

배열 vs 리스트

    이 사진 때문에 나온 말인데, 배열과 리스트의 메모리 저장 방식을 표현한 것이라고 한다. 이 표에서 보이는 것처럼 메모리상 연결이 안되어 있는 것이 아니냐 하지만 연결 되어 있는 것이 맞다. 왜냐하면 마이크로소프트에서 List를 정의한 파일을 보면 주석으로 '배열을 사용해서 크기가 변동되는 리스트를 구현했다.'라고 설명한다. 그렇기 때문에 결국 리스트는 하나의 배열이라고 보면 된다. 다만 그림처럼 나타낸 이유는 리스트가 동적 배열을 쉽게 사용할 수 있게 만들어진 것이기 때문이다. 여기서 동적 배열이 아주 중요한 키워드라고 하셨다. 이 뒤로 팀 과제가 시작되어 자세히 찾아볼 수 없었지만 면접 질문에 많이 나오는 만큼 주말에 꼭 찾아서 정리 해보면 좋을 것 같다. 

 

 

string.Format & PadLeft

    내배캠에서의 두 번째 팀플 주제는 전 주에 했던 개인 과제 TextRPG의 심화 버전이다. 정확히는 심화 버전이라기 보단 전투 위주의 RPG를 구현해야 한다. 이번주 발제와 깃허브 강의가 끝나고 팀원들과 SA를 작성하며 게임의 기획과 파트 분배를 진행했다. 첫 번째 팀과제 때 기능 별로 분배하지 못해 파트가 뒤죽박죽이었던 점을 고려해서 UML 작성을 하자고 의견을 냈다. 팀원 모두 의견에 동의하여 기능을 작성했고 팀장님이 화면설계 레이아웃을 잡아줘서 쉽게 의사소통이 가능해서 금방 끝낼 수 있었다. 초반 기능이라 어려울 것이 없어서 사다리타기를 해 분배했고 나는 씬과 씬 유틸리티 기능을 담당했다.     

 

    게임을 실행하고 바로 보이는 화면인 시작 화면은 위와 같이 설계를 했다. 글자가 중앙정렬이 되어야 하는데 c#은 폰트에 대한 깊은 기능이 따로 없었다. 그래서 찾아본 결과, string.Format을 이용하여 총 글자 수(중앙정렬의 기준 크기)의 절반에서 글자 수 만큼 제회하여 padleft 시키는 기능이다. 분명 이론상 중앙정렬이 되었지만 과연 미시적으로 보기 좋은 중앙정렬인가? 에는 답하기 어려울 것 같다. 

    

https://ssogarif.tistory.com/2503

 

[C#] String.Format 을 이용한 문자정렬 왼쪽 오른쪽 가운데 | String alignment Left Right Center

기초를 튼튼히 하면 삽질을 줄일수 있어요! You based foundation when the shoveling to reduce. Result : Code : static void Main(string[] args) { Console.WriteLine("123456789012345678901234567890123456789012");// 총길이 42칸 Console.WriteL

ssogarif.tistory.com

 

 

마무리하며

    팀 활동은 뭐니뭐니 해도 소통이 가장 중요하다. 오늘만 해도 소통으로 해결한 문제가 수두룩 했다. 기획에 맞게 UML를 작성하는 것과 깃허브로 프로젝트를 머지하는 일, 충돌이 생겼을 때 해결하는 것까지 소통을 빼면 할 수 없는 것 같다. 다행히 소통에 문제가 없는 팀원들을 만나서 이번 프로젝트는 즐겁게 할 수 있을 것 같다.