전체 글 (14) 썸네일형 리스트형 Project Tales #2 - 그래서 어떤 게임인데? 생각하다보면'어? 게임 볼륨이 좀 큰데.. 내가 할 수 있을까?'하는 생각을 좀 많이 한다.'이런것도 있으면 좋겠어'하다보니.. 게임 볼륨이 좀 커졌다.사실 짬뽕에 가깝지 않을까...게임, 누군가에게는 단순한 오락, 즐길거리 일지 모르지만또 누군가에겐 또 하나의 세상이고, 전부 일 수 있다.그래서 많은 경험을 하고 싶게 하고싶어졌다.캐쥬얼하게 즐길수도, 그리고 정말 또 하나의 세상처럼 살아갈 수 있는 그런 세상어떻게 보면 많은 대기업들이, 많은 게임사들이 이미 시도했고, 서비스하고 있는 중 일거다.그래도'내가 생각하는 그 세계를, 세상에 내놓고 싶다.'라는 생각으로 해보자고 시작한거니 끝은 봐야겠다.그리고 최근에 이런 방향은 어떨까 하고 생각했던 기획이 하나 있다.대부분의 게임이 여러분을, 플레이어를 중.. Project Tales #1 - 컨셉 아트 어떤 게임을 만들고 싶다.어떤 시스템을 넣고 싶다.이러한 고민은 정말 많이 했다.그런데 항상 작업을 시작할까 하면 드는 고민이 있다.횡 스크롤이 어울릴까?아니면 쿼터 뷰? 탑 뷰?한참을 고민하다가, 다른 방법으로 접근하기로 했다.'내가 만들고 싶은 세상은 어떤 모습을 하고 있지?'스스로 질문을 던지면서 찾아보기로 했다.그래서 컨셉아트를 먼저 만들기로 했다.'나는 이런 장소가 있는 세상을 만들거야.''그럼 이 장소는 어떻게 보여줘야 가장 감동이 있을까?'그렇게 작업을 시작했다.할 수 있는게 도트뿐이라 일단 게임의 그래픽은 도트로 정했다.미련하다고 할 수도 있고, 구시대적이라고 할 수 도 있지만...또 낭만이 있으니까...그런데, 정말이지 도트.. 빡세긴하다.. Project Tales #0 - 게임을 만들기로 했다. 항상 게임을 만들고 싶었다.그렇게 거창하고 대단한 게임은 아니지만, 그냥 내가 머릿속에 그려온 세상을 만들고 싶었다.그러나 매번 사소한 문제들, 일상적인 문제들로 결국 중단하기만 했다.그렇게 시간이 다시 한번 고민의 기로에 놓였다.이미 포기 할 만큼 포기 했고.이제는 정말 기회가 많지 않음을 느꼈다.그리고 늘 여러가지 형태만 있던 머릿속의 세상이 하나로 정리되었다.어쩌면 보면 조금 거창한 세상이지만, 시간이 오래 걸리겠지만.."한 발자국씩 나아가다 보면 결국 완성하지 않을까?"라는 생각으로 다시 시작해보기로 했다.일지도 남겨가며 해볼까 한다.나중에 되돌아보면 '아, 나 열심히 했구나' 하고 뿌듯하지 않을까 하는 마음에물론 공부도 더 해야 한다.특히 아트쪽은 더 열심히 해야 한다. 그저 가끔 취미로만 해왔.. JustCat! - 출시하기까지.. 간단한 게임을 하나 만들어보자! 하면서 본격적으로 개발에 착수한지 한달쯤이 지나고 드디어 스토어에 많이 부족하지만 게임이라고 할만한 게임이 완성되었다! 가장 큰 걸림돌은 역시나 리소스.. 잘 맞는 도트 구성을 찾느라 상당히 애를 먹었다.. 그래도 개발하면서 어떤 시스템을 넣는게 좋을까 고민하며 재미있는 시간이었다. 다음 업데이트 목록도 열심히 작성중이다! 수많은 버그테스트 오류테스트 등 많은 일들이 남아있지만 결과물이 나왔다는게 너무나도 뿌듯했다. 일단 고양이 애니메이션과 종류를 많이 늘릴 예정이다! 더 좋은 게임성을 추가 할 게 뭐가 있을 지 열심히 고민중이다. https://play.google.com/store/apps/details?id=com.justcat.justcat&hl=ko JWT 사용시 유의사항 alg를 none으로 전송되는 경우의 예외처리 토큰의 decoding이 간단하기 때문에 토큰을 생성할 때 최소한의 정보로만 토큰을 생성해야함 토큰 생성시 사용되는 scretKey를 분리하여 관리하거나, 최대한 안전하게 관리해야함 JWT 토큰이 탈취된 경우의 대체사항을 가지고있어야함. + 내용을 확인하다보니 문득 추가로 확인해야할것 같은 부분이 생각났다. 보통 토큰을 접근용 토큰과 갱신용 토큰을 분리하여 사용할텐데, 토큰을 어디에 저장하고있는가? 라는 의문이 생겼다. asyncStorage에 두 토큰을 같이 저장 하면 생각보다 보안성이 많이 떨어질거같은데 AES로 이중 암호화하거나 서로 다른 보안영역에 저장을 하는 방법을 생각해 봐야할지도 모르겠다.. asyncStorage가 보안적으로 생각보다 많이 취약.. React Native FlatList 스크롤 로딩구현 프로젝트 진행중 FlatList를 이용하여 무한 스크롤 리스트 기능을 개발하고있었다. 기능은 간단하다 하단으로 어느정도 스크롤이 되면 다음 데이터를 불러오기만 하면 된다. 단, onEndReached, onEndReachedThreshold 이 두 속성에대한 이해가 부족한 상태로 기능구현을 진행하고있었다... 공식 문서를 읽어봐도 뭔가 이해가 제대로 되지 않았고, 저 두가지 속성을 가지고 분석할만한 시간도 충분하지 않았다. 그래서 그냥 기능을 우선 적용하기 위해 대략적인 형태로 기능만 구현 할 뿐이었다. 언제 무슨 버그가 터져도 이상하지 않은 상황... 그래서 결국 결단을 내렸다. 전체적인 코드 보완은 결국 해야할일.. 저 두 속성을 조금은 더 이해해볼까 했다. 일단은 간단하게 리스트를 구성했다. 먼저 .. [NestJS] TypeORM을 이용해서 간단하게 컬럼을 join하여 가져오는방법 NestJS에서 특정 테이블 두개를 Join하여 데이터를 가져오는중 기존에 relations를 사용할정도의 많은 데이터를 가져오는게 아니라서 일반 Join을 사용했다. 쿼리를 직접 작성한다면 서브쿼리를 이용해 조회하려했지만 typeorm에서는 entities에 join관련 설정이 되어있지 않으면 서브쿼리조차 제대로 동작하지 않는것같았다. 따라서 아래와 같이 진행했다. 예를들어 'table.entities.ts' 파일에 아래의 코드를 포함한 후 @ManyToOne(() => JoinTableEntities, { eager: true }) @JoinColumn({ name: 'join_column' }) join: JoinTableEntities; 데이터를 가져올 Services에서 아래와 같이 데이터를 조.. [Python] QThread를 사용한 예제 PySide6에서 별도의 스레드로 작업을 오프로드하려면 QThread를 사용하면 됩니다. 이를 위해 먼저 작업을 수행할 클래스를 만들어 QThread를 서브 클래스로 만든 다음, 필요한 작업을 수행하는 run 메소드를 오버라이드합니다. 다음은 간단한 예제를 통해 별도의 스레드에서 작업을 수행하는 방법을 보여줍니다: import sys from time import sleep from PySide6.QtCore import QThread, Signal from PySide6.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QLabel, QPushButton class WorkerThread(QThread): progress = Signa.. 이전 1 2 다음