Rest Api 문서화를 위한 Spring Boot Swagger 2 설정하기 1. swagger dependency 추가 Maven 설정 io.springfox springfox-swagger2 3.0.0 io.springfox springfox-swagger-ui 2.9.2 Gradle 설정 implementation group: 'io.springfox', name: 'springfox-swagger2', version: '3.0.0' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' 2. config 설정 @Configuration @EnableSwagger2 public class Swagger..
유니티 3D 개발일지 2 뭔가 어떤게임을 만들겠다 라고 목표를 정하고 만드는게 아닌데 개발일지라고 적는게 맞는가 싶다. 우선 3d 액션 게임의 기본적인 시스템을 만들기 위해 시작했다. 캐릭터의 모델링과 애니메이션을 적용해보자. 캐릭터 모델링 3D모델링은 할줄모르니 애셋 스토어의 무료 애셋으로 적용해보자. 바나나맨이라는 재미있어 보이는 모델링이 있어 임포트 하였다. 캐릭터 애니메이션 믹사모(https://www.mixamo.com/)에서 기본 애니메이션을 적용해보자 Idle과 Run부터 믹사모 페이지에 바나나맨 모델링을 업로드하고 원하는 애니메이션을 선택후 다운로드 하면 된다. 모델링과 애니메이션을 따로 구하여 적용하는건 리깅이 안맞을때도 있고 다른 이슈가 발생할 여지가 있으니 이렇게 하였다. 애니메이션의..
유니티 3D 개발일지 시작 유니티는 2D로만 몇번 다뤄본적이 있으나 3D쪽은 해본적이 없다. 일단 뭐든 만들어보면서 기능을 익혀 나가자. 장르는 일단 3D 쿼터뷰 액션 게임으로 만들어 볼 생각이다. 바닥 깔기 플레이어가 뛰어다닐 공간이 필요하니 바닥부터 깔자 큐브의 스케일값을 늘려서 바닥을 만들고 그리드 텍스쳐를 대충 그려서 Material 생성 적용했다. 플레이어 생성 플레이어 메시는 따로 없으니까 일단 캡슐과 큐브오브젝트로 만들었다. Player Object 에 Collider와 Rigidbody를 추가하고, Player 스크립트도 추가하였다. 플레이어 이동과 회전 스크립트 안에서 간단하게 방향키로 이동과 회전을 구현하였다. transform.position 포지션 값을 변경하는 방법도 있겠지만 충돌..
Spring Boot+JPA+MariaDB 시작하기 Spring Boot + JPA + mariaDB 조합 프로젝트 설정을 정리하고자 한다. https://start.spring.io/ 에서 dependency를 추가하여 프로젝트를 생성한 뒤 적절하게 DB 및 logging 설정을 입력하자. 1. mariaDB 설치 docker로 mariadb 설치하기 를 참고해서 mariaDB를 설치하거나 설치 파일을 이용하여 직접 mariaDB 를 설치한다. 2. Dependencies 를 빌드 명세에 추가하기 Maven, Gradle 둘 중 무엇을 사용해도 상관없으며 jpa, mariaDB 의존성을 추가하면 된다. MariaDB Java Client 는 최신 버전을 조회하여 추가하였다. https://mvnrepo..
개요 언리얼 엔진(Unreal Engine)에서 기본적으로 제공되는 콘솔 명령어도 있겠지만, 이번에 할 이야기는 개발을 하다보면 테스트를 위한 함수호출이나 인게임에서의 특정 수치 변경이 필요할 때가 발생할 경우, 직접 지정한 콘솔 명령어(Console Command)와 콘솔 변수(Console Variable)를 통해 해결하는 방법을 기록하고자 한다. 콘솔명령어 콘솔 명령어는 FAutoConsoleCommand 클래스를 이용하여 지정 가능하다 생성자의 파라미터로는 (명령어 이름 / 명령어 설명 / 함수호출시 실행될 델리게이트 / 플래그 값)으로 구성되어있다. 델리게이트중에는 Argument를 받을수 있는 것도 있어 명령어에 인자값을 넣는것도 가능하다 FAutoConsoleCommand CCmd_Hello..
11장 WebFlux로 Reactive API 개발하기 🎯 이 장에서 배우는 내용 스프링 WebFlux 사용하기 리액티브 컨트롤러와 클라이언트 작성하고 테스트하기 REST API 소비하기 리액티브 웹 애플리케이션의 보안 11.1 스프링 WebFlux 사용하기 매 연결마다 하나의 스레드를 사용하는 스프링 MVC 같은 전형적인 서블릿 기반의 웹 프레임워크는 thread blocking과 다중 스레드로 수행된다. 즉 요청이 처리될 때 스레드 풀에서 작업 스레드를 가져와서 해당 요청을 처리하며, 작업 스레드가 종료될 때까지 요청 스레드는 블로킹된다. 이에 반해 비동기 웹 프레임워크는 더 적은 수의 스레드로 더 높은 확장성을 성취한다. 이벤트 루핑 Event looping 이라는 기법을 적용한 이런 프레임워크는 ..
Git 커밋 메시지 컨벤션 1. Git Commit Message Convention이란 팀 협업을 위해 Git commit message 의 규칙을 정해두는 것이다. git의 커밋 히스토리를 읽는것 만으로도 변경사항을 이해할 수 있도록 commit message를 남기는 것이 중요하다. 여러 글을 읽어보았는데 개인적으로는 Angular 의 Git 커밋 컨벤션이 가장 깔끔하다고 생각되어 이에 따라 commit message 를 기록하고자 한다. 커밋 메시지 예제는 angular commit 이력을 통해 확인해보자. 2. Commit message 구조 커밋 메시지는 빈 줄로 구분된 세 부분으로 구성된다. 이 때 커밋 메시지의 제목만 필수값이며 본문과 꼬리말은 optional 입력이다. (): Type 커..
컴퓨터 포맷 후 개발 환경 설치가 막막한 나의 여린 영혼을 위해 정리해두고자 한다. 아래 프로그램들은 필자의 취향대로 생각 없이 설치함. - 개발 환경 : Windows 10, Backend 는 Spring, Front 는 Angular, 버전 관리는 git 1. IDE Intellij https://www.jetbrains.com/ko-kr/idea/ 회사에서는 Ultimate 버전을 쓰지만 집에서는 Community 써도 충분하다. Visual Studio Code https://code.visualstudio.com/download Frontend 개발 및 마크다운 문서 작성용으로 사용한다. 회사에서 Webstorm을 쓸 수 있지만 집에서는 어차피 VS code 밖에 쓰지 못함으로 나는 어디서나 V..
Unreal Engine Ragdoll Physics 1. 래그돌(Ragdoll) 이란? 래그돌 물리(Ragdoll Physics)는 캐릭터가 힘없이 날라가는 모습이 "봉제인형(Ragdoll)"처럼 연출되서 유래된 이름이며, 게임에서 캐릭터의 사망 연출을 할때 사용이 많이 된다. 2. 래그돌 적용 캐릭터에 Skeletal Mesh 에 Physics Asset이 있는지 확인 Mesh의 CollisionProfile 설정 SetSimulatePhysics(true); 함수 호출 void ARagdollTestCharacter::DoRagdoll() { //기본으로 제공해주는 Ragdoll용 CollisionProfile로 설정 GetMesh()->SetCollisionProfileName(TEXT("Ragd..
Docker 컨테이너 bin/bash에 vim 설치 Install Vim on Docker Container docker 컨테이너에서 vi 로 파일를 수정하려고 했으나 vi가 동작 하지 않고 아래와 같은 애러가 발생하였다. /bin/sh: 38: vi: not found 아래 명령어를 순서대로 실행하여 vim, nano 를 설치하자. apt-get update apt-get install vim nano 이제 vi 로 파일 수정이 가능하다. 참고 https://stackoverflow.com/questions/30853247/how-do-i-edit-a-file-after-i-shell-to-a-docker-container https://www.configserverfirewall.com/docker/..
Docker 로 MariaDB 설치하기 1. Docker image 로 MariaDB 설치하기 Docker image 내려받기 docker pull mariadb 이미지를 내려 받은 후 아래 명령어로 확인 가능하다. docker images MariaDB container 생성 docker run -p 3306:3306 --name my-mariadb -e MARIADB_ROOT_PASSWORD=admin -d mariadb -- name : my-mariadb 라는 컨테이너 이름을 부여한다. -p 3306:3306 : host port number:container port number -e : -e는 환경 변수 옵션이다. -e MARIADB_ROOT_PASSWORD=admin : 비밀번호를 지정 -d..
언리얼 엔진 TMap 언리얼 엔진(Unreal Engine)에서 TArray 다음으로 많이 사용되는 TMap일 것이다. 키와 값을 짝으로 데이터를 저장하는 방식 키로 값을 검색하여 값을 얻을수 있다. 만들고 채우기 Add 함수에 Key와 Value를 입력하여 컨테이너에 데이터를 추가한다. 중복된 키를 추가하면 기존의 같은 키에 있는 Value를 대체한다. Key만 넣게 되면 Value는 Value타입의 기본 생성자로 생성된다. TMap FruitMap; FruitMap.Add(5, TEXT("Banana")); FruitMap.Add(2, TEXT("Grapefruit")); FruitMap.Add(7, TEXT("Pineapple")); // FruitMap == [ // { Key: 5, Value:..