전체 글(34)
-
"결합도 낮추기"랑 "조인 줄이기"는 반대라고?
들어가며: 개발자 뇌로 풀다가 뒤통수 맞은 문제 하나SQLD 1과목 문제를 풀다가 이런 기출 지문을 봤습니다. "SQL문의 조인 관계를 최소화하는 경우 비식별자 관계로 연결해야 한다." 개발자(OOP, 클린 코드) 입장에서 보면:"테이블 간 결합도를 낮추고 모듈을 독립적으로 두는 게 좋은 설계 아닌가?""비식별자로 느슨하게 엮어야 관계가 최소화되는 거 아니야?"라고 생각해서 "맞는 말(O)이겠네" 하고 골랐다가 시원하게 오답 처리를 당했습니다. 정답은 틀린 지문(X)이었습니다.왜 비식별자가 아니라 식별자 관계여야 조인이 최소화되는지, 개발 관점과 DB 관점의 차이를 정리해 봅니다. 1. 용어의 함정: "관계 최소화" vs "SQL문 조인 최소화"우리가 흔히 말하는 '결합도 낮추기'와 SQLD 시험에서 ..
2026.08.14 -
AI 한테 게임을 제작시키면 어떻게 될까?
AI한테 게임을 제작시키면 어떻게 될까?최근 AI를 활용해서 코드를 작성하거나, 구현 방향을 물어보는 일이 많아졌다.간단한 기능을 설명하면 꽤 그럴듯한 코드를 빠르게 제안해 주고, 익숙하지 않은 구조를 잡을 때도 도움이 된다.하지만 게임 개발에서는 조금 애매한 지점이 있다.AI가 제안한 코드가 논리적으로는 맞더라도, 실제로 플레이해 보면 어색하게 느껴질 수 있다는 점이다.이번 글에서는 요즘 모바일 게임에서 보이는 헤드와 몸통(분절)을 보유한 적을 만들면서 겪은 사례를 정리해 보려고 한다.몸통 하나를 파괴하면 끝일 줄 알았다이번에 만든 적은 머리와 여러 개의 몸통으로 이루어진 분절형 적이다.머리가 경로를 따라 이동하고, 몸통들은 머리의 진행 위치를 기준으로 일정 간격을 두고 따라오도록 만들었다.문제는 몸통..
2026.05.30 -
유니티 2D 환경의 Rigidbody -Collision Detection
이 파라미터에 대해 조사한 이유 물리 시뮬레이터를 만들어서 돌리는 와중 심각한 프레입드랍이 발생하여 원인을 알아보던 중 이 파라미터가 상당한 비용을 차지할 수 있다고 생각되었다.유니티에서 Rigidbody 의 Collision Detection 의 역할은 무엇일까우선 현재 환경은 유니티 2D (Rigidbody2D)를 베이스로한다. Collision Detection 이란?Collision Detection(충돌 감지)은 게임 오브젝트 간의 충돌을 물리적으로 감지하는 방식이다.유니티에서는 Rigidbody 2D 컴포넌트가 있는 오브젝트가 Collider 2D가 있는 오브젝트에 작동하여 충돌을 감지한다.이때 충돌 감지 방식에 따라 충돌의 정확도와 성능이 달라진다.Discrete 기본값. 프레임마다 위치를 ..
2025.09.09 -
스타 디펜스: 유즈맵 TD 후기
게임 소개게임명 : 스타 디펜스 : 유즈맵 TD장르 : 타워디펜스, 전략, SF , 수집형 RPG개발 : RocketdanGames 이번에 리뷰할 게임은 스타 디펜스 : 유즈맵 TD라는 모바일 게임이다.25년 3월에 출시한 모바일 게임으로 익숙한 타워디펜스 형식을 띠고 있는 게임이고, 게임 제목과 같이 스타크래프트 게임의 유즈맵에서 자주 보던 랜덤 타워 디펜스 류 형식의 게임 진행을 보일 것으로 예상된다. 로비화면에서는 현재 도전할 스테이지를 보여주고설정 화면은 평범한 모바일 게임에 있어야 할 기능들이 있는 모습 2 - 1 아이센가드 클리어 영상 플레이 포인트먼저 웨이브를 시작하면 적의 스폰위치와 지휘관이 보인다.적은 스폰위치에서 지휘관의 위치까지 이동하며, 플레이어는 벽에 타워를 설치하여 이동하는 적..
2025.07.12 -
유니티 프로젝트 - 전투 구현 3
유닛의 공격 방식이번 프로젝트에서 유닛의 전투 방식은 일반공격 (평타) 와 스킬이 있다. 일반공격의 쿨타임(딜레이)를 주어 시간을 체크하여 쿨타임이 돌았을때 일반공격이 나간다.그리고 이때 스킬 쿨타임도 돌았으면 일반공격 대신 스킬이 나가게 설계했다. 일반공격/스킬의 목표나 매커니즘이 크게 차이가 없어서 이런식으로 둘이 큰 차이 없이 설계해도 된다고 생각했다. 이때 일반공격은 유닛의 타겟에게 적용(행동)한다. 이동 상태일때 타겟을 찾고 사정거리까지 이동 후 공격상태로 왔기 때문에 당연한 수순이다. 유닛 데이터를 읽어와 유닛을 생성할 때 공격범위가 4 이상인 유닛은 원거리 유닛으로 간주된다. 근거리 유닛은 바로 타겟에게 데미지를 주고, 원거리는 투사체를 만든 다음, SO(스크립터블 오브젝트)로 설정해놓은 ..
2025.01.13 -
유니티 프로젝트 - 전투 구현 2
지난 번에 전투 구현을 위해 유닛들에게 상태머신을 도입하기로 했다. 우선 필요한 상태부터 생각해보면 대표적으로 Idle(대기상태) / Move(움직이는 상태) / Attack(공격 상태) 가 있다. Idle Idle 에서 Move 로 넘어가는 조건이 현재 위치 기준으로 상대편의 유닛들 중에서 가장 가까운 적을 타겟으로 지정 하는 것이다.이때 가장 가까운 적을 찾는 방법이 배틀 매니저에게 우리편과 상대편의 유닛 들을 리스트에 등록해 관리하고, 원하는 타겟을 찾아주는 기능을 추가해서 유닛에서 배틀매니저에게 요청하는 것이다. 이로 인해서 타겟팅 시스템을 배틀매니저에 추가했다. 우선 현재는 단순히 가장 가까운 적 하나만 필요하기에 그런 기능을 가진 함수 하나만 만들고 넘어갓었는데, 후에 스킬을 위해 타겟팅 시..
2024.12.27