전체 글 71

Windows11에서 Nest.js 개발환경 셋팅

먼저 nest.js를 설치한다. npm i -g @nestjs/cli 이제 원하는 폴더로 이동해서 프로젝트를 생성해 보자. nest new sampleproject 여기서 [sampleproject] 는 내가 원하는 프로젝트명인데, 가급적 소문자를 권장한다. 그럼 다음과 같이 설치에 사용할 저장소를 선택해 달라는 질문이 나온다. 여기서는 그냥 "npm"을 선택해서 진행했다. 셋팅이 완료되고 나면 dir 명령을 통해 폴더를 확인해 보자. 내가 지정한 프로젝트명과 동일한 폴더명이 생겨 있을 것이다. 해당 폴더로 이동하고, vs code로 에디터를 열어보자. 루트 폴더 아래로 기본 파일들이 생성된 것을 볼 수 있다. 기본 생성된 결과물로 실행을 시켜보자. 이제 swagger을 설치해 보자. npm instal..

개발이야기 2024.01.17

[공지] 샘플 코드를 온라인에서 공유드립니다.

지금까지 학습한 내용을 온라인에서 공유드립니다. 소스코드 공유 사이트인 깃헙(www.github.com)을 이용해서 공유드립니다. 깃(git)과 깃헙(github)에 관해서는 프로그램에 대한 이해도가 어느정도 수준에 이르면, 전체적으로 한번 포스트를 작성해 보도록 하겠습니다. 샘플코드 : https://github.com/roslyndev/ExampleProject GitHub - roslyndev/ExampleProject: 블로그 예제 코드 블로그 예제 코드. Contribute to roslyndev/ExampleProject development by creating an account on GitHub. github.com 해당 웹사이트에 접속하면 우선적으로 회원가입부터 진행해 주세요. 깃허브 ..

개발이야기 2024.01.16

C# 프로그램 예제연습 - 텍스트게임만들기 - 08

자 이제 그동안 배운걸 총동원해서 Program.cs 에서 게임의 흐름을 작성해 봅시다. 먼저 기존에 작성했던 코드 맨 아래에 Dungeon() 함수를 추가해 줍니다. static void Main(string[] args) { Init(); player.Name = GetUserName(); Hello(player.Name); Dungeon(); } 던전함수는 플레이어가 던전에 입장하면 하게될 전체 로직이 작성될 곳입니다. 최초에 등장할 좀비를 포함하여 총 20마리의 몹을 처치하고, 모두 제거하고 나면 보스인 뱀파이어를 만나야 합니다. static void Dungeon() { IMonsterAction monster = null; //현재 상대할 몬스터입니다. Random random = new Ra..

개발이야기 2024.01.15

C# 프로그램 예제연습 - 텍스트게임만들기 - 07

자, 이번에는 이제 보스 몹에 대한 클래스를 만들어 봅시다. Entities폴더에서 우클릭하여 [추가] - [클래스]를 선택합니다. Vampire.cs 를 입력하고 다음과 같이 클래스를 작성합니다. using ConsoleExample.Game01.Abstracts; namespace ConsoleExample.Game01.Entities { internal class Vampire : Monster, IMonsterAction { public Vampire() { this.Name = "뱀파이어"; this.IsDead = false; this.Health = 400; this.Attack = 20; this.Guard = 5; } public string GetName() { return this.N..

개발이야기 2024.01.15

C# 프로그램 예제연습 - 텍스트게임만들기 - 06

오늘은 몹들을 등장시키기 위한 작업을 할 겁니다. 제 구상은 이렇습니다. 일전에 배운 배열에 몹들을 랜덤하게 담을 겁니다. 총 20마리의 몹을 배열에 담아서 배열에 있는 모든 몹을 물리치면 보스를 만나고, 보스를 이기면 끝나는 형식이 될 겁니다. 그런데 각기 다른 몹들을 배열안에 일관되게 담고, 동일한 행위를 호출하기 위해서는 이들에게 동일한 기능이 있다는 것을 프로그램에게 알려줘야 합니다. 우리는 그걸 인터페이스(interface)라고 부릅니다. 인터페이스는 규칙이에요! 예를 들어, 교실에서 학생들은 선생님이 정한 규칙을 따라야 해요. 그 규칙에는 일어서기, 문을 열고 닫기, 친구에게 인사하기 등이 있을 거에요. 이렇게 학생들이 지켜야 하는 규칙이 바로 '인터페이스'라고 생각할 수 있어요. 컴퓨터 프로..

개발이야기 2024.01.15

C# 프로그램 예제연습 - 텍스트게임만들기 - 05

우리는 기초연습때 콘솔로 이름을 입력 받는 것과 프로그램의 흐름을 함수로 나누는 것을 연습해 보았습니다. 아직 잊은 거 아니겠지요? 이제 그 내용을 복습해 보도록 하겠습니다. 프로그램의 진입점에서 함수를 호출해서 게임이 진행되게 할 겁니다. 먼저 Program 함수 내에 나 자신을 선언해 줘야 하므로, User 클래스를 player란 이름으로 선언해 줍니다. static User player; static void Main(string[] args) { Init(); player.Name = GetUserName(); Hello(player.Name); } 기존에 만들었던 함수와 동일한 구조로 작성하되, 달라진 부분은 User 라는 클래스를 player란 이름의 인스턴스로 만들어서 사용한다는 점만 달라졌..

개발이야기 2024.01.15

C# 프로그램 예제연습 - 텍스트게임만들기 - 04

지난 시간에 우린 몹(Monster)에게 공격력과 방어력이라는 공통 항목을 추가해 주는 과정을 통해 상속에 대해 이야기 했습니다. 그런데 공격력과 방어력은 사용자에게도 있어야 겠죠? 그러니 우리 User.cs 에도 동일하게 공격력과 방어력을 넣어줍시다. internal class User { public bool IsDead { get; set; } public string Name { get; set; } public int Health { get; set; } public int Attack { get; set; } public int Guard { get; set; } public User() { this.IsDead = false; this.Name = string.Empty; this.Healt..

개발이야기 2024.01.15

C# 프로그램 예제연습 - 텍스트게임만들기 - 03

지난 시간에 이어 이번에는 몹(Monster)를 정의해 봅시다. 우리는 이미 User.cs와 동일하게, IsDead, Name, Health 라는 3가지 옵션을 정의했습니다. 하지만 몹은 종류가 다양하죠. 그래서 몹이라는 동일 카테고리 안에 3가지 유형의 몹을 만들어보고자 합니다. 그리고 3가지 몹은 각기 다른 성향을 가지고 있을 겁니다. 하지만 모두가 공통된 "몹(Monster)" 속성을 가지고 있을 겁니다. 세가지 몹이 몹이라는 공통 속성을 가지기 위해 우리는 "상속"이란 개념을 배우게 될겁니다. 상속은 어떤 물건이나 특징을 다른 것에게 물려주는 개념이에요. 예를 들어, 우리가 가족에서 누군가로부터 물려받는 것을 생각해 볼 수 있어요. 상속을 프로그래밍에 적용하면, 새로운 것을 만들 때 이미 있는 것..

개발이야기 2024.01.15

C# 프로그램 예제연습 - 텍스트게임만들기 - 02

오늘은 먼저 User.cs 파일을 열어서 코드를 수정해 보겠습니다. 바로 엔티티(Entity)를 어떻게 정의해 나가는지 같이 보겠습니다. 자 플레이어가 있고, 몹을 잡을 겁니다. 플레이어는 게임이 시작되면 던전에 들어갈거고, 그곳에서 만나는 몹들을 하나씩 처치해서 최종 보스를 처치하면 게임이 클리어 되는 형태가 될 것입니다. 그럼 플레이어에게는 상태라는게 존재하게 되죠. 즉, 살았냐, 죽었냐 라는 걸 판별해야 합니다. 죽었다면 게임은 종료되겠죠. 죽는 과정은 플레이어의 생명력이 감소하기 시작해 0에 도달하면 죽는 거라고 할 수 있겠습니다. 그럼 생명력과 상태라는 두가지 지표가 필요해집니다. 이것을 속성, 즉 어트리뷰트(Attribute)라고 할 수 있습니다. 또한 플레이어에게는 이름을 입력받도록 하겠습니..

개발이야기 2024.01.12
반응형