본문 바로가기

전체 글

(19)
소셜 네트워크 앱 개발 프로젝트 아키텍처 고민 및 해결 과정 업체(이하 클라이언트)를 통해 특정 컨셉을 지닌 소셜 네트워크 및 메신저 어플리케이션의 외주를 진행하게 되었다. 이후 최종적으로 계획하고 있는 프로젝트의 규모가 작지 않기도했고, 일정이 타이트하게 구성되는 등의 문제로 나와 지인 한 분이 백엔드 및 인프라 구축을 맡게되었고, 지인을 통해 소개받은 플러터 개발자 분께서 앱개발을 맡아 진행하기로 하였다. 정확한 컨셉을 공개할 순 없지만, 몇몇의 주요한 기능들을 중심으로 어떻게 아키텍처를 설계했는지 이야기해보도록 하겠다. 사진, 동영상의 멀티미디어를 통한 실시간 채팅 (메신저) 소셜 네트워크 서비스 특정 사진, 동영상(멀티미디어)의 AI분석 (추후 개발) TTS 관련 서비스 (개인 사용자 목소리 기반) SNS 간편 로그인(OAuth 2.0) 알림 기능 모놀리식..
JWT 토큰 자동 갱신: 안전한 인증 시스템 구축하기 (React) JWT 토큰 기반 인증의 중요성 및 클라이언트 사이드에서의 관리 올해 대학교 구성원 및 외부 인원들과 함께 팀 활동으로 규모가 그리 크지 않은 시장을 타겟팅하는 새로운 플랫폼 구축을 진행하는 프로젝트를 진행하고 있다. 해당 프로젝트를 진행하며 웹의 클라이언트 사이드를 위주로 맡고 있고, 백엔드의 서브 개발자로 참여하고 있다. 이 프로젝트에서 마찬가지로 사용자 인증 및 로그인 관련 로직은 JWT 토큰 기반 인증 방식을 사용하게 되었고, 그 과정 속 발생한 두가지 문제에 대해 다뤄보려고 한다. (이번 글에서는 JWT(JSON Web Token)에 대한 개념을 정리하기보단 다루면서 생겼던 이슈에 대한 해결 방법을 위주로 다뤄보려고 한다.) 문제정의 만료된 JWT 토큰으로 인한 사용자 경험 저하 문제 JWT 토..
순환 참조 문제 / Go언어(Golang) 게임서버 순환 참조의 개념 순환 참조란 두 모듈이 서로를 직접 또는 간접적으로 참조할 때 발생한다. 이는 컴파일 타임에 해결되지 않으면 런타임 에러로 이어지며, Go에서는 패키지 간 잘못된 의존성 구조로 인해 이런 문제가 발생한다. ( Go에서는 컴파일 타임에 아래와 같은 import cycle not allowed 와 같은 컴파일 에러를 반환하여 알려주긴 한다) 순환 참조가 야기하는 문제점 컴파일 에러 : 컴파일 에러가 난다면 그나마 다행이지 않을까 싶다 단위 테스트가 어렵고 비용이 증가 : 의존적인 모듈들이 함께 테스트 되어야하기 때문에 단위적인 테스트가 어렵고 비용이 증가한다 가독성이 저하되고 유지보수의 어려움 증가 문제 상황 및 배경 Go언어를 이용해 한글을 타이핑하여 스킬 사용 및 공격 등을 진행하는 게..