개발 일지 6

하나의 EC2 안에 테스트 서버까지 구축하기 feat. AWS

계기 release branch에서 master로 병합 전, 즉 실 배포 전에 배포하고 확인할 수 있는 서버가 필요하다고 느껴 테스트 서버를 구축하게 되었다. 기존 서버 구성도 기존의 서버 구성은 위와 같았다. docker-compose를 활용하여 api server, postgreSQL, Redis 총 3개의 컨테이너를 묶어서 EC2에 올려 관리하고 있었다. 초반엔 단순하게 인스턴스 하나를 늘려야겠다고 생각했지만, 서버 비용이 2배가 된다는 생각에 아찔해져 지금 올려둔 EC2에 테스트 서버를 함께 올리기로 결심했다. 시도 1 우선 docker compose로 묶어뒀던 구성에서 api server를 분리하고, ec2 보안 그룹에 test server를 위한 인바운드 규칙을 추가하고 Application ..

개발 일지 2022.11.19

Refresh Token - JWT

사용자를 인증하는 부분은 거의 모든 서비스에서 가장 중요하다고 할 수 있을 정도로 핵심적인 부분이다. 사용자를 인증하는 방법 중 하나인 JWT 기법과 함께 refresh token라는 장치에 대해 알아보고 구현해보도록 하겠다. JWT JWT란, JSON Web Token의 약자로, 사용자 인증을 위해 사용하는 암호화된 토큰을 의미한다. 기본적으로 JWT는 ' . ' 으로 구분되어 header, payload, signature 3파트로 나뉜다. 11111111111.22222222222222.333333333333 예를 들면 위와 같은 형식인 것이다. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoienhjengiLCJzdWIiOjE4LCJpYXQiOjE2NDkwN..

개발 일지 2022.04.04

KakaoLink API(카카오로 링크 공유하기) in React

Kakao에서 제공하는 메시지 API는, 사용자가 카카오톡 친구에게 카카오톡 메시지를 보내는 기능을 제공한다. https://developers.kakao.com/docs/latest/ko/message/common Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 위 기능을 통해 서비스의 접근성을 높이고, 공유를 통해 쉽게 전파되는 효과를 예상했다. 메시지를 보내는 방법은 크게 2가지인데, 1. 카카오링크 API를 사용하는 방법 2. 카카오톡 메시지 API를 사용하는 방법 이렇게 2가지이다. 필자는 첫 번째 방법을 택했다. 그 이유는 위 표에서 ..

개발 일지 2022.03.29

카카오로 로그인하기 (JWT 토큰 발급, OAuth)

진행하고 있는 프로젝트에 접근성이 중요해서 카카오톡으로 로그인할 수 있도록 구현했었는데, 내가 짠 구조가 맞는지 의문이 들어 찾아보다가 OAuth+Spring Boot+JWT [OAuth + Spring Boot + JWT] 1. OAuth란? 프론트엔드와 백엔드의 역할 OAuth(Open Authorization)란? OAuth는 인증을 위한 프로토콜이다. 다른 인터넷 서비스의 기능을 다른 어플리케이션에서도 사용할 수 있게 해준다. OAuth는 인증(Authentication)과 인가(Authorization)를 모두 포함 velog.io 위 글을 보게 되어 구조를 수정하였다. 수정 전의 카카오 로그인 흐름은 아래와 같았다. 근데 https://developers.kakao.com/ Kakao Deve..

개발 일지 2022.03.25

Netlify로 프론트엔드 배포하기

이제 백엔드를 올려두었으니 프론트도 배포하여 마무리 짓도록 하겠다. 프론트엔드는 Netlify를 이용하여 배포하도록 하겠다. 알아보니 상당히 간단했는데, 글을 끝까지 읽어보면 여러분도 그렇게 생각할 것이다. 우선 github에 올려둔 나의 frontend 레포지토리를 import 해준다. 그전에 tailwind를 사용하였기 때문에 build명령어 이전에 실행될 prebuild 스크립트를 위와 같이 추가하였다. 배포를 진행할 branch를 선택해주고, 기다리면, 위와 같이 배포가 완료된다. 정말 간단해서 놀랐지만 역시 처음 하는 거라 그런지 에러를 발견하였다. root 페이지가 아닌 다른 곳에서 새로고침 시 Page Not Found에러가 발생하였는데, 이는 프론트엔드 프로젝트가 React로 작성되어 요청..

개발 일지 2022.03.17

Heroku로 백엔드 배포하기

어느 정도 프로젝트를 진행하다가 우선 배포를 한번 진행하면서 에러를 체크하고 싶다는 생각이 들었다. 그래서 바로 실행에 옮겼다. NestJS Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac docs...

개발 일지 2022.03.17