728x90

2025/04 64

DFS 공부

1. DFS를 구현하는 대표적인 두가지 방법 [1] 재귀 호출(Recursive)DFS를 함수의 재귀 호출(Recursion) 로 구현하는 방법.현재 노드를 방문하고, 연결된 노드를 재귀적으로 방문하는 방식.void DFS(int node) { visited[node] = true; foreach (int next in graph[node]) { if (!visited[next]) { DFS(next); } }} 장점코드가 간결하고 이해하기 쉽다.함수 호출 스택을 그대로 활용하므로 별도의 자료구조(Stack)를 사용할 필요가 없다.문제의 구조가 재귀적인 경우(트리 탐색 등) 자연스럽게 매칭된다. 단점호출 깊이 제한(Stack Overflow):..

코테준비 2025.04.30

[TeamProject2] C# 팀프로젝트 회고 - Dark Zeb(1등!)

최근에 진행한 C# 팀 프로젝트를 마치고 회고를 남겨보려고 한다. 힘들었지만 정말 뿌듯했던 프로젝트였다. 💡 Keep — 잘했던 점, 기억하고 싶은 순간들이번 프로젝트에서는 지난 개인과제 때 사용했던 MVC 패턴을 적극 활용해보았다. 클래스 간의 역할을 명확히 구분하고, 데이터와 데이터를 처리하는 로직을 분리함으로써 구조가 훨씬 명확해졌다는 점이 가장 만족스러웠다. 무엇보다도 팀 분위기가 너무 좋았다. 적극적인 소통 속에서 기획 방향성도 잘 잡을 수 있었고, '공포'라는 흔치 않은 테마를 선정해 참신한 아이디어로 프로젝트를 꾸려나갈 수 있었다. 처음에는 기능별로 나눠져 있던 코드를 하나의 게임으로 엮기 위해 리팩토링을 엄청나게 많이 했는데, 그 과정에서 인스턴스를 생성하고 넘기는 개념을 복습할 수 있..

C#/C#프로젝트 2025.04.29

[TeamProject2] 기능 나열형 코드를 MVC 패턴으로 구조화

TextRPG 프로젝트 초기 단계에서, 모든 기능이 하나의 메인 클래스 또는 절차적 코드에 집중되어 있었다.맵 이동, 전투 시스템, 아이템 사용 등 주요 기능이 구분 없이 나열되었고 이로 인해 코드의 복잡성이 증가하고 유지보수성이 떨어지는 문제가 발생했다. 문제 상황초기 개발 단계에서는 맵 이동, 전투, 아이템 사용 등 게임의 주요 기능이 한 파일 또는 몇 개의 클래스에 몰아넣어진 형태로 구현되었다. 이로 인해 다음과 같은 문제가 발생했다: 코드가 한 파일에 집중되어 가독성이 떨어짐전투/아이템/플레이어 기능들이 명확히 분리되지 않고 얽혀 있음기능 추가 시 기존 코드에 직접 수정이 필요하여, 수정 범위가 넓어지고 오류 가능성 증가 원인 분석초기 설계 부재: 구조화 없이 빠른 개발에 초점을 맞춤단일 책임 원..

C#/C#프로젝트 2025.04.28

[C#TeamProject][트러블슈팅] Monster 객체 재사용 문제와 객체 복제의 필요성

C#으로 TextRPG를 개발하는 과정에서, 전투 시스템 구현 중 예상치 못한 문제가 발생했다.몬스터를 관리하는 과정에서 동일한 Monster 객체 인스턴스가 공유되면서 한 몬스터 객체가 계속해서 전투에 쓰이는 문제였다. 문제 상황초기 전투 시스템은 미리 생성한 Monster 객체들을 리스트에 담아 관리하고 있었다. 각 전투마다 1~4마리의 몬스터를 무작위로 선택해 리스트에 추가하는 방식이었다.randomMonsterList.Add(normalMonsters[randomIndex]); 이 방식은 처음에는 문제 없이 동작하는 듯했지만, 전투 중 한 몬스터를 처치하면 다른 몬스터도 동시에 사망하는 버그가 발생했다. 원인 분석C#에서는 참조형(Reference Type) 객체를 리스트에 추가하면 값이 복사되는..

C#/C#프로젝트 2025.04.27

[GitHub] 갑자기 Git이 이 merge가 필요한 이유를 적으라한다 - explain why this merge is necessary

[터미널에 뜬 메시지]Merge branch 'develop' into dev/JYS# Please enter a commit message to explain why this merge is necessary,# especially if it merges an updated upstream into a topic branch.## Lines starting with '#' will be ignored, and an empty message aborts# the commit. 지금 상황내가 git pull을 하면서, 자동 병합(merge)이 일어났고Git이 “이 병합을 어떤 이유로 했는지 커밋 메시지를 적어줘!” 라고 요청 하고 있다. 해결 방법그냥 기본 메시지 그대로 두고 저장 후 종료하면 된다. ..

GitHub 2025.04.26

[AI_Study] 프롬프트 엔지니어링

프롬프트 엔지니어링이란?인공지능을 잘 다루는 방법프롬프트=질문, 엔지니어링=기술 -> 좋은 답변을 이끌어낼 수 있는 질문의 기술 기술 1: 퓨샷(Few Shot) vs 제로샷(Zero Shot)제로샷: ChatGPT한테 뜬금없이 얘기해도 바로 대답함 - 좀더 유동성있는 답변을 도출할 수가 있다.퓨샷: 예시를 줘서 문맥을 이해시켜 더 나은 답변 제시하도록 하는 것Q."동남아시아"A: 싱가포르의 미래적인 도시 경관 감상 후 ~ 하는 여정Q."유럽"A:위와 같이 ChatGPT질문에 입력을하면, ChatGPT는 유럽의 A에 해당하는 답을 동남아시아 A와 비슷한 맥락으로 적어준다. 기술2: Chain of Thougts(추론시키기)Chatgpt는 언어기반 인공지능 = 사람들이 만든 텍스트 기반정확한 답 구사X, ..

AI공부 2025.04.26

[GitHub] 사용자 authored and 사용자 committed 오류

맥북을 초기화 한 후이렇게 이상하게 뜨는 문제가 발생했다. 원인은 git에 이름과 이메일 설정을 안해줘서 생긴거였다.(토큰은 연결 했었다) 🔹 git에대한세팅할때 이걸 제일 먼저해야됨git config --global user.name "Your Name"git config --global user.email you@example.com세팅할때 Git 이름을 내이름으로 쓰기:JangYuseong여기서 이메일은 변경사항을 받아볼 이메일이다. 꼭 github에 쓴 이메일이 아니여도 가능 🔹세팅이 안되면 yuseong01 authored and yuseong01 committed 9 hours ago이런식으로 뜸 🔹제대로 됐는지 확인은 git config --list

GitHub 2025.04.25
728x90