분류 전체보기 15

Springboot + Firebase Firestore JPA처럼 사용하기

우리 프로젝트에서 DB로 Firebase Firestore를 선택했던 이유는 실시간 동기화 기능(onSnapshot)을 활용하기 위함이었다.원래 기대했던 동작프론트가 onSnapshot()으로 문서나 컬렉션을 구독하고,데이터가 변경되면 실시간으로 자동 갱신예) 아이가 계획을 추가 → 부모 앱 화면에서 실시간 반영그런데, 보안이나 데이터 일관성을 위해 DB에 데이터를 저장 및 조회 시킬 때 서버를 통해 처리해야한다고 생각했고,이 방식은 클라이언트에서 직접 Firestore 문서를 수정하지 않으므로, onSnapshot()으로 문서를 구독해도,내부에서 변경된 사실을 감지하지 못하게 되었다. 그래서 생각한 해결책이"백엔드는 저장, 클라이언트는 변경 감지"저장/수정/삭제는 Spring Boot + Firesto..

웹 개발/JAVA 2025.07.19

Springboot + React Native 앱 보안 설계 시작 (Spring Batch 구현)

어플 개발이 막바지에 다다른 지금, 보안 설계가 필요하다고 생각했다.백엔드: SpringBoot, 프론트: React-Native(typescript) 보안에 필요한 요소는 총 3가지로 정리했다. 1. 인증(Authentication)"누가 이 요청을 했는가" 를 확인하는 절차. 로그인이나 이메일 인증처럼 사용자의 신원을 검증하는 과정이다. 사용중인 DB의 인증 기능 혹은 자체 인증, Spring Security 인증 흐름에서 access token 유효기간 관리토큰 재발급(refresh token)로직 구현중요한 접근(개인정보 수정 등)시, 재인증 흐름 추가 고려(인증 이메일 재전송, 비번 재입력 등)그러나 우리는 이미 Spring Security 로 인증을 구현하고, 토큰 관리를 진행했다.비밀번호 변..

웹 개발/JAVA 2025.07.16

[알고리즘] c++ 큐와 BFS

이전 게시물 스택과 재귀와 DFS의 이어서 작성하는 글이다↓↓https://hanni01.tistory.com/13 [알고리즘] C++ 스택과 재귀와 DFS본 포스팅은 인프런 [Do it! 알고리즘 코딩테스트 With C++]을 수강한 뒤 복습 용도로 작성하는 글이다.그렇기에 자세한 강의를 원한다면 ↓https://www.inflearn.com/course/%EB%91%90%EC%9E%87-%EC%95%8C%EA%B3%A0%EB%A6%hanni01.tistory.com 1. 큐FIFO(First In, First Out) : 먼저 들어온 것이 먼저 나간다. 1 → 2 → 3 순서로 들어왔기 때문에 먼저 들어온 1부터 나간다.파이프처럼 한 쪽으로 들어가고 다른 쪽으로 나가므로 Stack과 달리 들어가는 ..

[알고리즘] C++ 스택과 재귀와 DFS

본 포스팅은 인프런 [Do it! 알고리즘 코딩테스트 With C++]을 수강한 뒤 복습 용도로 작성하는 글이다.그렇기에 자세한 강의를 원한다면 ↓https://www.inflearn.com/course/%EB%91%90%EC%9E%87-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%94%A8%EC%81%A0%EC%81%A0/dashboard [지금 무료]Do it! 알고리즘 코딩테스트 with C++ 강의 | 하루코딩 - 인프런하루코딩 | IT 기업 코딩테스트 대비를 위한 자료구조 및 알고리즘 핵심이론 & 관련 실전 문제 풀이 강의입니다. (C++), [사진] 💻 IT 기업 코딩테스트 대비 실..

Unity 유니티 MVP 패턴 설계 정리

유니티에서 UI가 많아질수록 코드가 복잡해지고 수정하기 어려워지는데,이를 구조적으로 관리하기 위해 MVP패턴을 적용할 수 있다.본 글에서는 MVP 패턴의 기본 개념부터, Presenter, View, Model의 기본 설계 및 구현, 이벤트 처리 방식, DTO 활용법, AddUILitener 까지 정리한다.MVP 패턴이란?MVP는 UI와 비즈니스 로직을 명확히 분리하기 위한 구조이다.Model: 데이터를 보관하고 상태를 관리한다. View: 사용자가 직접 보고 상호작용하는 화면 요소 담당. 사용자 입력을 Presenter로 전달하고, Presenter에서의 호출을 통해 UI를 업데이트 한다.Presenter: Model과 View의 중재자. View로부터 입력 이벤트를 받으면 Model을 업데이트하고, ..

Unity/게임개발 2025.07.05

Photon 동기화 과정 정리 – HP(체력바) UI 예시

캐릭터에 체력바(HUD)를 붙여놓고 멀티플레이 환경에서 상대 체력이 실시간으로 변하는 걸 예시로 포톤에서 동기화 과정을 정리한다.1. 기본 구조Player 프리팹에는 다음과 같은 컴포넌트가 붙어있다:PhotonViewPlayerStatus → 체력 관리PlayerHUD → 체력 UI (Slider)내 클라이언트에서도, 상대 클라이언트에서도 모든 캐릭터 오브젝트가 존재한다.즉, 내 캐릭터, 상대 캐릭터 전부 다 PlayerStatus, PlayerHUD를 갖고 있음.차이점은 PhotonView.IsMine 값이 다르다는 것. 2. 체력 변화 → RPC로 동기화내 캐릭터가 데미지를 받았을 때:[PunRPC]public void TakeDamage(int damage){ if (!photonView.Is..

Unity/게임개발 2025.07.03

Unity 유니티 HTTP 서버 통신 모듈 구현 (2)

이전 글 ↓↓https://hanni01.tistory.com/9 Unity 유니티 HTTP 게임 서버 통신 모듈 구현까마득한 예전 작업을 이제서야 정리하는 글.게임 개발 중에 서버와의 소통을 위한 통신 모듈을 만들 필요가 있었다.그래서 여러 사이트들을 참고하여 구현해본 HTTP 통신모듈 유니티이기 때문hanni01.tistory.com 유니티 클라이언트와 게임 서버간의 HTTP 통신을 위해 구현했던 모듈을 개선할 필요가 생겼다.HTTP 모듈 뿐만 아니라 게임 전체적으로 사실 코루틴을 많이 사용했었는데, 이 코루틴이1. 객체를 생성할 때 힙 메모리에 할당이 돼서, 반복적으로 객체를 생성하면 성능을 잡아먹게 된다는 것.2. 코루틴은 IEnumerator를 반환하고, 비동기 실행이 끝난 후 값을 직접 반환할..

Unity/게임개발 2025.04.01

Unity 유니티 HTTP 게임 서버 통신 모듈 구현

까마득한 예전 작업을 이제서야 정리하는 글.게임 개발 중에 서버와의 소통을 위한 통신 모듈을 만들 필요가 있었다.그래서 여러 사이트들을 참고하여 구현해본 HTTP 통신모듈 유니티이기 때문에 C#으로 진행한다.그리고 다음 라이브러리들이 필요하다.  using Newtonsoft.Json; using Newtonsoft.Json.Linq; using UnityEngine.Networking; 게임 개발하면서 네트워크와 관련된 작업은 이번이 처음이었기에 솔직히 뭘 어떻게 해야하는건지 하나도 몰랐었다.하지만 웹/앱 개발도 병행 중에 있었기에 형태가 어떻게 되야할 것이다 하는 감은 있어서 다행이었다. 대충 웹/앱에서는 GET, POST, UPDATE, DELETE로 요청 타입을 크게 나눌 수 있는데, 게임 서버 ..

Unity/게임개발 2025.03.27

[Unity] pc 게임 네이버 로그인 연동하기(2)

시간이 흘러 문제가 발생함↓문제 상황결국은 스키마 URI를 통해 로그인 개발을 진행하였었다.그런데 어떤 팀원이 기발한 생각을 들고 오심... 기존 로그인 플로우 1. 로그인 요청빌드된 게임 프로그램에서 사용자가 로그인 버튼을 클릭하면, 게임은 로그인 웹사이트로 로그인 요청을 보냄. 2. 네이버 로그인로그인 웹사이트에서는 사용자를 네이버 로그인 화면으로 리다이렉트하여 네이버 계정으로 인증을 진행. 3. 세션 생성 및 전달사용자가 네이버 로그인에 성공하면, 네이버 서버는 세션을 생성하고 이를 서버에 전달.** 세션이 아닌 인증정보를 가진 토큰을 반환(OAuth2.0 방식) 4. 세션 값 전달서버는 생성된 세션 값을 포함한 스키마 URI를 사용하여 클라이언트(게임 프로그램)에 전달.-> 전달받은 정보를 토대로..

Unity 2024.09.22

[Unity] pc 게임 네이버 로그인 연동하기(1)

블로그에 한 번 작성한 적 있는 게시글 입니다.(2023.7.4) 기획팀에서 네이버와 구글을 통해서 로그인 됐으면 좋겠다고 하여 (....) 난생 처음 유니티에서 타 sns를 활용한 로그인 구현을 진행해보았다.​근데 왠걸.. 처음에 열심히 자료 찾아봤을땐 전부 Unity Android나 IOS 플랫폼, 모바일 등..에서 구현하는 방법 밖에 나오지 않았다. 참고는 못하겠다 싶어서 결국 네이버 개발자 문서를 찾아보게 되었다.​유니티 pc 게임 (Windows App) 네이버 로그인 방법​1. 애플리케이션 등록https://developers.naver.com/apps/#/register?api=nvlogin 로그인 구현하기 전 일단 이 링크에서 본인이 개발할 애플리케이션을 등록해줘야한다.필요한 정보들을 체크..

Unity 2024.09.21