본문 바로가기

백엔드8

[javascript 탐닉] try/catch, promise 알아보기 javascript는 몇년 전에 재밌어서 한참 공부하다 한동안 파이썬과 그나마 그 다음으로 C++정도만 해볼 일이 있어서 지식이 증발한 느낌이 많이 들었다. 그래서 얼마전부터 개발에 착수한 웹게임개발 과정에서도 js 지식의 빈틈이 잔실수를 만들기도 했고, 개발을 지체 시킨 적도 있다. 그래서 차근차근 조금 빈틈이 느껴진다 싶은 부분은 다시 단단하게 만드는 차원에서 몇몇 개념을 다시 정리해본다. 1. try / catch 알아보기js에서의 에러발생 및 흐름에 있어서 중추적인 부분 중 하나인 try / catch는 이 2가지에 더해 finally까지 있다. 보통 아래 코드처럼 error 발생 대상이 될 수 있는 코드는 try block, 에러 발생 시 이를 처리할 코드는 catch block, 한번은 무조건.. 2025. 1. 21.
웹게임 개발기 (6) - 로그인/회원가입 관련 기능 활성화, 기능향상 저번에는 기본적인 로그인 및 회원가입을 진행하고, 이에 대한 결과로 token을 받아, 해당 token으로 동일 root URL의 다른 page로 갔을 때에도 token 정보로 유저정보를 불러오는 기능을 구현했다. 오늘은 그 과정에서 조금 더 고도화시키고, 놓쳤을만한 부분들을 둘러보며 보충개발을 하려고 한다. 1. 회원가입 시 비밀번호 규칙 검증 마이크로소프트에서 제시하는 안전한 비밀번호의 규칙은 최소 12자 이상, 대문자, 소문자, 숫자, 특수문자의 조합을 권하고 있다.또한, 특정 단어나 유추가 가능한 사람의 이름과 같은 단어가 포함되면 안되며, 당연한 내용이지만 직전에 사용하던 비밀번호를 사용하면 안된다. https://support.microsoft.com/en-us/windows/create-an.. 2025. 1. 14.
웹게임 개발기 (5) - JWT(JSON Web Token)를 활용해서 로그인기능 구현하기 기본적인 UI 와 DB 구성이 완료되어 로그인 기능을 구현할 것이다. 수소문 해보니 로그인 기능은 JWT(JSON Web Token)을 활용해서 구현한다고 한다. 처음 JWT를 모르는 상태에서는 사용자가 login 시도를 하면 > http 로 전달받은 비밀번호를 hashing하여 특정 session id를 반환하고, 이를 똑같이 서버에 저장해두고, 이를 client의 요청때마다 비교하는 방식으로 구현하는 아이디어를 떠올렸었는데, 이미 상대적으로 더 간편한 방식이 만들어져있었다.  JWT는 refresh token 이라는 개념이 있어, 주기적으로 token을 update하여 재인증을 하지 않아도 지속적인 로그인상태를 유지할 수 있다는 특징이 있다고 한다. 일단 router와 controller, 그리고 s.. 2025. 1. 13.
웹게임 개발기 (4) - mongoDB에서 말하는 database, collection, document 그리고 /queue page 만들기 이제 서비스 전반에서 사용할 data를 보관할 DB를 구축하기 위해, mongoDB를 선정하고 관련된 정보를 모으고 있다. 기본적으로 mongoDB는 MySQL같은 RDB에 비해 정해진 틀이 아닌 문서(document)형태로 조금 더 자유롭게 데이터 저장이 가능하다. 하지만 이런 mongoDB에도 기본적인 데이터저장 체계가 있는데, 기본적으로 database라는 최상위 개념이 있다. 이건 다른 데이터베이스와 같이 table들을 저장하는 역할을 한다. 하지만, mongoDB는 table이 아니라 collection이라는 개념을 사용한다. collection 안에는 드디어 위에서 언급한 document들이 저장되는 것이다. mongoDB에도 .sql 처럼 사전에 스키마 같은 저장형식을 지정할 수 있나 찾아보.. 2025. 1. 11.