[ 로직 설계하기 ]
노션에 구현할 기능에 대한 요소들을 정리한 뒤, 이를 바탕으로 코드를 짰다.
먼저 콘솔 창에 보이길 원하는 화면을 적는다. 화면의 내용들이 보이기 위해서 필요한 코드들을 구현해 나가는 방식으로 진행하면, 일이 훨씬 수월하게 진행된다.
저 기능을 어디에 구현해야 할지 위치를 파악하기 위해서 어떤 시점에서 해당 기능이 구현되는지도 정리했다. 이름 입력 메서드 마지막에 직업 선택 메서드를 불러오고, 직업 선택이 끝나면 메인 메뉴 메서드를 불러오면 된다.
이외에도 직업에 관련된 정보들을 미리 정리해 놓고, 클래스나 코드를 미리 구현해서 실행시켜 보기도 했다.
최종적으로 완성된 코드는 처음과는 매우 달랐지만, 노션을 통해 내 생각을 정리함으로서 빠르게 시작할 수 있었고 어떤 순서로 진행해야 할지도 감을 잡을 수 있었다.
[ 기능별 파일 구분하기 ]
문제점
게임을 시작했을 때 플레이어의 이름을 입력하는 메서드를 생성했는데, 관련된 모든 내용이 Program이라는 하나의 파일에 들어있어서 내용을 찾기 어렵다.
시도한 점
게임을 시작하는 코드와 메인 메뉴 메서드가 모두 Program 파일에 있기 때문에 위치는 그대로 하되, 각각의 코드가 어떤 것을 의미하는지 쉽게 구분할 수 있도록 주석을 달았다.
해결 방법
두 메서드가 연결되어 있더라도 기능별로 파일을 다르게 한다. 그리고 public static 키워드와 클래스 참조를 통해서 다른 파일에서 불러오면 된다.
알게 된 것
다른 파일, 클래스에 있더라도 전역 참조가 가능하다면 불러올 수 있으므로 알아보기 쉽게 기능별로 나누는 것이 가장 좋다.
+) 발표날 튜터님께 피드백을 받았을 때 폴더 구조를 생성하는 것이 좋다고 하셨다. 폴더 구조란 말 그대로 우리가 컴퓨터에서 파일들을 모아 놓을 때 내용에 따라서 다양한 폴더를 생성하고, 중첩으로 폴더를 모아놓는 것처럼 코드들도 기능별로 폴더를 만들어서 구조화하는 것이다.
[ 회고 ]
아직 다른 기능들을 구현하기에는 내 실력이 뒷받침되어주지 않아서 가장 쉬운 기능인 이름 입력 기능과 직업 선택 기능 구현을 맡았다. 가장 쉬운 것임에도 불구하고 아직은 어려워서 많이 헤맸지만, 튜터님께 이 코드가 효율적인지, 어떻게 에러를 해결할 수 있는지 등을 여쭈어 보면서 점차 감을 잡아갔다. 여전히 기능들을 여러 파일에 분배해서 구현하는 점이 어렵지만, 계속해서 코드를 작성해 보면 익숙해질 날이 올 것이다.
'Coding > C#' 카테고리의 다른 글
[내일배움캠프 22일차 TIL] 객체 지향 프로그래밍(1) (0) | 2024.05.16 |
---|---|
[내일배움캠프 16일차 TIL] 제네릭, out, ref, 문자열 빌더 (0) | 2024.05.07 |
[내일배움캠프 14일차 TIL] 추상 클래스, 인터페이스 (0) | 2024.05.02 |
[내일배움캠프 13일차 TIL] 클래스 메모리 구조, 기본값 세팅, 박싱/언박싱 (0) | 2024.05.01 |
[내일배움캠프 12일차 TIL] 인터페이스, enum, 델리게이트, 람다, Func, Action, LINQ, Nullable (0) | 2024.04.30 |