전체 글 84

SpringBoot 메모

1. 자바스크립트 / DOMDOMHTML 태그들을 자바스크립트가 이해할 수 있는 객체 형태로 바꾼 것. 아래 아래 처럼 트리 구조로 되어 있어서자바스크립트가 이 태그들을 찾아가서 수정하거나 읽을 수 있음.2. 스프링 / 스프링부트의존성 주입(DI)객체를 가져다 쓰는 방식.필드 주입보다 생성자 주입을 쓰는 것이 좋다.이유: 나중에 수정하거나 관리하기 쉬움.AOP 로깅메서드 실행 전/후에 로그 찍기.@Before: 메서드 실행 “직전”에 로그@After: 메서드 실행 “직후”에 로그세션 상태 관리stateless: 세션을 아예 저장하지 않음(JWT 같은 방식에서 사용)stateful: 세션을 사용함if_required: 필요할 때만 세션 생성never: 새로운 세션은 만들지 않지만 이미 존재하면 사용3. ..

SpringBoot 환경설정

이클립스 상단 Help -> Eclipse Marketplace -> spring tools 검색 후 4버전 설치-> start.spring.io로 이동하여 아래와 같이 설정Window -> Preference -> Gradle -> Java home에 알맞는 jdk 버전 경로 넣어주기application.properties에 연결 코드들 작성 (application.properties : 스프링부트의 환경설정)src -> main에 폴더 및 파일 생성 이클립스 깃허브 연결사이트에서 레포지토리 생성깃허브 사이트에서 레포지토리 http 코드 복사이클립스 우상단에서 +눌러서 깃 탭 추가깃 탭에서 깃 클론 클릭 후 clone urlURL에 http 코드 붙여넣기깃허브 사이트에서 우상단 클릭 -> Setting..

75일차 ~ 마무리 - Abyss_Slayer 최종 팀 프로젝트 마무리 3 (키세팅, 2차 유저 테스트 및 후기)

▶▷ 키세팅 기능기본 조작키가 고정된 것이 불편하다는 설문 내용이 많았기 때문에 새롭게 추가한 기능유저들은 기존에 세팅된 키를 누르고 변경하고 싶은 키를 입력하여 변경할 수 있다.기존에 플레이어 동작을 위한 입력은 Input System C# 제너레이터 방식을 사용하고 있어AddListener를 통해 입력 받은 키 코드를 저장한 다음 Input System을 관리하는 스크립트에 이벤트로 전송하고해당 변경 이벤트를 구독하여 Input System내의 Input Action을 업데이트하는 방식으로 구현하였다. ▶▷ 트러블 슈팅막히는 점다른 키 (A, B, Space 등)는 정상적으로 바인딩되지만 Ctrl 키 (LeftControl, RightControl)는 UI에만 표시되고실제 바인딩 동작이 되지 않는 ..

75일차 ~ 마무리 - Abyss_Slayer 최종 팀 프로젝트 마무리 2 (1차 유저 테스트 및 개선 사항)

▶▷ 1차 유저 테스트 결과우선은 싱글모드로 어느정도 완성한 다음 1차 유저 테스터를 모집했다.설문은 구글 폼을 이용해서 받았고 모든 테스터는 아니지 일부 테스터 분들이 참여해주셨다.구글폼 결과 차트대부분의 테스터가 중간 이상의 만족도를 나타냄다채로운 보스 패턴과 전투 시스템에 만족도가 가장 높음보스 패턴의 난이도와 캐릭터 밸런스로 인해 불만족스러운 반응도 나타남과반수 이상의 테스터가 난이도가 어렵다고 평가함대부분의 테스터가 개선 후 다시 플레이 할 의향이 있음을 나타냄1차 긍정적 피드백 모음횡스크롤 뷰임에도 불구하고 보스 패턴이 다양하고 구성이 좋아서 공략하는 맛이 있다.캐릭터 클래스가 4개나 있고 스킬 구성이 잘 되어있어 종류 별로 플레이 할 수 있어서 재밌다.플레이어 조작감이 좋아 부드럽고 깔끔한 ..

75일차 ~ 마무리 - Abyss_Slayer 최종 팀 프로젝트 마무리 1 (Analytics)

▶▷ Unity Analytics유니티 애널리틱스란 플레이 정보를 수집하고 해당 데이터를 시각화 하는 기능이다.유저 플레이의 흐름을 파악하고 밸런스 조절에 참고하기 위해 도입하여퍼널 및 커스텀 이벤트를 통해 유저 유입/이탈, 플레이 로그, 유저 행동 정보 등을 수집하였다.좌측 사진은 퍼널 단계를 나타낸 그래프이고 이 그래프를 통해 유저들이 어디까지 진행했고어디서 그만뒀는지 확인할 수 있다.우측 사진은 커스텀 이벤트와 파라미터를 통해 유저들의 클래스 선호도를 나타낸 그래프이고어떤 직업을 얼만큼 선택했는지 확인할 수 있다.핵심 로직 (AnalyticsManager.cs)// Unity Services 초기화 및 데이터 수집 시작async void Start(){ try { ..

74일차 - Abyss_Slayer 최종 팀 프로젝트 23 (스킬 강화 시스템 3)

어제 해결하지 못했던 문제를 드디어 해결했다.투사체 스킬에 대한 정보를 담은 스크립트를 참조해서 해당 스크립트에 있는 배율 변수를 조절하는 것이 목적이었는데참조가 제대로 이루어지지 않아 발생하는 것이었다.버프 효과를 받는 스킬 참조 로직// 버프 효과가 적용될 투사체 스킬들의 참조 저장할 배열private ProjectileAttackSkill[] projectileAttackSkills;// 스킬 참조 메서드public override void Init(){ base.Init(); // 사용한 버프의 타입이 더블샷인 경우 투사체 스킬들을 찾아서 참조 if (Type == BuffType.RogueDoubleShot) { var foundSkills = new List(..

73일차 - Abyss_Slayer 최종 팀 프로젝트 22 (스킬 강화 시스템 2)

오늘은 추가 투사체 버프 스킬 강화를 구현해봤다. 업그레이드 할 수록 추가로 생성된 투사체의 데미지가 증가되도록 하는 것이 목표인데 데미지 조절하는게 어렵지 않을 것 같았는데 결국 오늘 안에 문제를 찾지 못했다.어디가 문제인건지..▶▷ 트러블 슈팅막히는 점1. 데미지 배율을 조절했을 때 SO의 인스펙터에서 값이 변경되고(변경되면 안됨) 런타임을 종료해도 초기값으로 초기화 되지 않는 현상2. 추가 투사체의 데미지가 0으로 인식되는 현상시도한 점1-1. 코드 상에서 초기값 직접 할당 시도1-2. OnEnable, OnDisable 메서드를 통해 초기화 관리 시도2-1. 인스펙터 상에서 수치가 누락된 부분이 있는지 확인2-2. 코드 상에서 값이 덮어씌워지는 부분이 있는지 확인원인 분석1. SO를 실제로 생성하..

72일차 - Abyss_Slayer 최종 팀 프로젝트 21 (스킬 강화 시스템)

연휴에 이어 예비군 이슈로 인해 일주일이 날아가는 바람에 시간상 스킬 구조를 변경하는 것은 포기하고 스킬 강화 시스템을 구현하였다.▶▷ 스킬 강화매 전투 시작 전 준비 장소에서 스킬 포인트를 통해 스킬을 강화할 수 있는 시스템이다.공격 스킬들은 데미지 계수가 증가하고 버프는 타입마다 지속 시간, 효과 계수 등을 증가시킨다.[field: SerializeField] public float Magnification { get; private set; } = 0.1f; // 배율public override void SkillUpgrade(){ base.SkillUpgrade(); Level.Value++; Damage = BaseDamage * (1.0f + (Level.Value - 1) *..

71일차 - Abyss_Slayer 최종 팀 프로젝트 20 (프로젝트 피드백)

▶▷ 스킬 구조 피드백발표를 마친 다음 프로젝트 전체적으로 피드백을 받았고 그 중 내가 맡은 부분의 피드백에 대해 다뤄보려고 한다.현재 제작해둔 스킬 구조는 각 스킬마다 필요한 요소만 담기 위해서 스킬마다 스크립트를 나눠서 작성했는데하나로 합치고 사용하지 않는 필드는 값을 할당하지 않는 방식으로 하는 것이 CSV와 JSON을 사용하기에 좋을 것이라는 피드백을 받았다.지금 설정해둔 목표까지만 보자면 현재의 방식으로 관리해도 문제가 되지 않지만 이 게임이든 추후에 제작할 게임이든 업데이트를 하다보면 데이터의 양이 점점 늘어날 것이기 때문에 지금 굳이 필요하지 않더라도 나중을 위해 확장성을 고려하여 피드백 받은 방식으로 바꾸는 것이 낫겠다는 생각이 들었다.그리고 현업에 가면 데이터 관리를 할 때 SO만 사용하..

70일차 - Abyss_Slayer 최종 팀 프로젝트 19 (README 작성)

▶▷ READMEAbyss SlayerAbyss Slayer는 Unity 엔진으로 개발한 2D 횡스크롤 액션 RPG 게임입니다. 로그라이크 요소와 온라인 멀티플레이, 보스 레이드 시스템이 핵심이며 다양한 직업들의 협동 플레이를 지원합니다.게임 개요장르: 2D 횡스크롤, 액션 RPG, 로그라이크플랫폼: PC엔진: Unity레퍼런스: 스컬: 더 히어로 슬레이어, 메이플스토리, 던전앤파이터특징:온라인 협동 플레이다양한 보스 패턴 및 공격 방식직업 선택 및 팀플레이 조합주요 시스템게임 사이클로비 → 준비 → 중간보스 → 보상 → 준비 → 중간보스 → 보상 → 준비 → 최종보스씬 전환 및 상태 관리는 GameFlowManager를 통한 상태 머신으로 구현플레이어 FSM (Finite State Machine)기본..