Spring Boot 프로젝트에서 JPA를 사용하면 Repository를 통해 DB의 데이터를 꺼내오게 된다. JPA가 지원하는 기본적인 Repository는 다양한 기능을 함께 지원하지만 규모가 커지고 복잡한 쿼리가 필요할때는 한계에 부딪히게 된다. 이럴때 개발자가 자체적으로 Repository를 만들어서 커스텀해 사용해야 하는데 이를 위한 두 가지 방법을 소개하려 한다. 1. 기본 Repository에 Interface를 추가하여 확장하는 방법 2. 기본 Repository와 별개의 Repository생성하는 방법 1. 추가 Interface를 통해 Repository 확장 - 기존 JpaRepostory에 CustomRepo를 추가해준다. public interface ConsultationRepo..
JPA를 이용해 구현을 하다보면 그래프 탐색을 통해 다양한 테이블을 탐색하게 된다. 하지만 객체를 기반으로 구현돼있는 JPA는 자칫 잘못하면 불필요한 집단 쿼리(n + 1)가 발생해 성능에 악영향을 줄 가능성이 매우 높다. 나 또한 이런 문제를 격었기 때문에 그 경험을 공유하려한다. 해당 포스트가 N+1문제 해결을 설명하려는 글은 아니며, 연관된 문제에서 조금 더 유연한 대처를 하는 방법을 소개하려한다. 내가 만난 문제는 고객, 판매자(Account) 테이블과 결제(Payment) 테이블 2가지가 존재했다. 이런 환경에서 판매자가 가지고있는 결제들을 불러오고 결제한 구매자(고객)의 데이터를 함께 List로 return해주는 문제를 해결해야 했다. 처음 작성한 코드는 다음과 같다. //@Query("sel..
Spring Boot Security를 이용해 커스텀 프로바이더로 인증 필터를 생성하던 중 ProviderNotFoundException를 만나게 됐다. 한참 삽질중에 생각보다 쉽게 해결했다. public class OAuthAuthenticationProvider implements AuthenticationProvider { ...중략... @Override public boolean supports(Class authentication) { return authentication == OAuthAuthenticationToken.class; } } supports 함수에서 해당 프로바이더에서 처리해줄 Token 클래스를 지정해주면 된다. 나같은 경우 OAuthAuthenticationToken 클래..

최근 스프링 프로젝트를 수행하면서 JPA에 대해 조금 더 공부하고 싶은 마음이 들었다. 그래서 JPA에 대해 간략하게 정리해보려 한다. JPA를 이야기하기 전에 ORM에 대해 간략한 이해가 필요하다고 생각한다. 기존에 자바를 이용해 DB에 접속하기 위해서는 마이바티스같은 Mapper를 사용하거나 JDBC를 이용해 직접 쿼리를 날리는 식으로 사용됐었다. 이런 방식에는 문제가 있는데 객체지향적인 프로그래밍이 어렵다는 문제이다. ORM은 이런 문제를 해결하기 위해 데이터베이스의 테이블을 객체화 시켜 개발할 수 있다. JPA는 이런 자바진영의 공식 ORM API 표준이다. 하지만 JPA자체는 Interface를 묶어둔 추상화 API로 이를 구현하여 사용할 수 있도록 만들어준 프로젝트가 Hibernate이다. 일..
유니티를 개발할때 일정 시간 이후 이벤트를 걸어야 할 경우가 많습니다! 이럴때 어떻게 타이머를 설정해야 할까요? 그 방법에 대해서 빠르게 알아보겠습니다. 오늘 설명할 방법은 3가지입니다. 1. Time.deltatime을 활용 2. 코루틴 활용 3. invoke 활용 먼저 Time.deltatime을 활용한 방법을 알아보겠습니다. 해당 방법은 다른 이론없이 update내에서 간단하게 구현할 수 있는 방법입니다. float dTime = 0; // Update is called once per frame void Update() { dTime += Time.deltaTime; if(dTime >= 5f){ Debug.Log("5초 경과!!"); dTime = 0; } - 전역변수로 dTime을 설정해줍니다..
안녕하세요 스튜디오 Turndream 입니다.이번편은 로고 제작을 기념한 특별편입니다! 18일 스튜디오 Turndream에서 처음으로 로고 트레일러를 제작 공개했습니다. 앞으로도 지속적으로 개발 영상과 내용을 공개할 예정이니 많은 관심 부탁드립니다! 그럼 지금부터 저희 로고 트레일러 영상의 제작과정을 알려드리겠습니다! 처음 개발을 시작하면서 시네마틱 트레일러와 로고 트레일러를 먼저 제작하자는 목표를 세우고 개발을 시작했습니다. 팀원들은 모두 모여 의논을 통해 개발과정에서 먼저 개발할 내용과 우리가 추구하는 바를 명확히 하고 제작에 돌입했습니다. 로고 트레일러를 제작하기 위해서 먼저 주인공 캐릭터의 제작에 돌입했습니다. 주인공 이안 매튜의 캐릭터 콘셉 이미지입니다. 우주로 나갈때 입게될 슈트를 착용한 상태..
유니티에서는 캐릭터, 몬스터, 아이템과 같이 어떠한 오브젝트(객체)를 게임 오브젝트라는 이름으로 부릅니다. 게임오브젝트에 대한 내용은 다음에 포스팅하겠습니다! 지금은 이러한 게임 오브젝트를 움직이는 방법에 대해서 간단하게 알려드리겠습니다. 게임 오브젝트를 이동시키는 방법은 매우 많습니다. 1. Transform의 Position에 직접 접근하여 설정해주는 방법 2. Transform의 Translate함수를 이용하는 방법 3. Rigid Body를 설정해준후 velocity(속도)값을 설정해주는 방법 4. Character Controller를 이용하여 움직여주는 방법 등등이 존재합니다. 그럼 하나씩 코드를 살펴 보겠습니다. 1. Transform의 Position에 직접 접근하여 설정해주는 방법 12 ..
유니티에서는 두가지의 에디터를 사용할 수 있습니다. 자체에서 제공하는 MonoDevelop 그리고 Visual Studio 입니다. 둘다 무료로 사용가능하며 MonoDevelop의 경우 매우 가볍습니다. 물론 더 강력하고 편리한 에디터는 Visual Studio 입니다. 저의 경우에도 Visual Studio를 사용하는데요 편리하기도 하고 여러 부가기능때문에 사용하고 있습니다. 오늘은 간단하게 유니티의 에디터를 변경하는 방법에대해서 포스팅하려고 합니다. 유니티 상단메뉴중 Edit - Preferences를 클릭하시면 External Tools에서 변경가능합니다. 아래 보시면 External Script Editor에서 설정하실 수 있습니다.
스튜디오 턴드림에서는 앞으로 틈틈히 유니티의 사용법을 정리한 튜토리얼을 작성하려고 합니다!! 나중에 제가 다시 공부하면서 보기도 하고 다른 분들과 제가 개발하고 깨달은 방법들을 공유하면 좋지 않을까해서 시작합니다!! 첫 글은 유니티를 설치하는 방법을 담으려고 합니다. 먼저 유니티에 대해서 간단하게 소개해드리면 유니티는 게임을 만드는 엔진입니다. 사용법이 쉽고 많은 기능덕에 현재 1위 게임 엔진입니다. 게임 엔진이란 게임을 만드는 툴을 의미하며 요리에 비유한다면 프라이팬, 냄비와 같은 기구라고 말할 수 있을것 같습니다. 유니티를 설치하기 위해서는 유니티 홈페이지(https://unity3d.com/kr)로 들어가야합니다. 검색어로 찾으실 때에는 간단하게 [유니티, 유니티 코리아, unity3d]와 같은 검..
- Total
- Today
- Yesterday
- 사이드프로젝트
- Unity3D
- spring
- Java
- 용사
- 보따리장사
- 게임
- frontend
- 튜토리얼
- 이명규
- 신작
- 유니티
- studio108
- QueryDSL
- 개발일지
- 우주게임
- 인디게임
- 턴드림
- JPA
- 게임개발
- 게임 개발
- JPQL
- JIRA
- 모험
- mobx
- 인디
- 스크럼
- Lombok
- spring boot
- 개발
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |