🔙 Backend
[Spring Boot] 카카오 로그인 API 구현 (1) - Access token 발급받기
Spring Boot를 이용해서 카카오 로그인을 구현해보았다. Node.js로 구현할 때보다 복잡해보였는데, 구현하고 나니까 그래도 생각보단 덜 복잡했다! 동작 흐름 카카오를 이용한 소셜로그인 구현 Flow이다 이건 네이버도 비슷하다! Apple은 조금 다를 듯 1. 클라이언트 쪽에서 로그인을 한다 2. 카카오 서버는 redirect url로 code를 전달해준다 3,4. code를 이용하여 access_token을 발급받는다 5. access_token을 서버로 전송한다 6,7. 서버에서는 받은 access_token을 이용하여 카카오 서버에서 사용자 정보를 받는다 8. 받은 사용자 정보를 이용하여 회원가입 또는 로그인을 진행한다 9. JWT등과 같이 사용자 식별 정보를 클라이언트로 보낸다 혼자 프론트..
[Springboot][EC2] 로컬에서 빌드하고 빌드파일만 업로드하기
원래는 EC2에 코드를 올려서 build 하고, 수행하게 되는데 EC2 사양이 그렇게 좋지 않다보니 무리가 갈때가 있다! 그래서 가끔 EC2가 먹통이 되곤 했다... 그래서 로컬에서 빌드하고, 서버에 업로드해서 사용하면 괜찮다고 해서 시도!! 먼저 로컬에서 EC2에서 빌드하는 것과 같이 빌드를 수행해준다 ./gradlew build 수행하면 프로젝트 폴더에 build 폴더 안에 libs 폴더가 생긴다! libs 폴더 안을 보면 jar 파일이 생성되어 있을 것이다 우리는 이 jar파일만 EC2에 업로드 시켜주면 된다 파일업로드는 Filezila, 사이버 덕 등을 이용하여 EC2에 SFTP접속을 해서 파일업로드를 시켜주면 된다 나는 사이버덕을 사용해보았다 EC2에서 해당 서버의 루트경로인 var/www/~로..
[Node.js] nvm으로 node버전 변경하기
현재 nvm으로 설치된 node 버전 확인 nvm ls 현재 선택된 버전은 16버전이다 14버전을 설치해보겠다 nvm install v14 설치하면 자동으로 14버전으로 바뀐 것을 볼 수 있다 이미 설치되어있는 node버전으로 변경하려면 nvm use 14 16으로 변경하고 싶다면 nvm use 16을 하면된다 이전에 brew만으로 node를 설치하고 사용했었는데 old version인 14버전을 설치할 수는 있지만, 환경변수때문인지 node명령어가 실행되지 않았다 nvm으로 하면 바로 해결! 편하다 ^-^
[Node.js] Cookie 사용하기 🍪
쿠키란 웹브라우저에 저장할 수 있는 정보이다 자동로그인을 예로 들면, 자동로그인 시 브라우저에 쿠키를 저장하여 다음에 접속했을 때 쿠키가 있다면 로그인 상태를 유지할 수 있는 것이다 node.js + express환경에서 cookie를 사용해보겠다 생각보다 아주 간단하다 cookie 설정을 한 뒤, 필요한 시점에 cookie를 생성해주고, cookie를 확인해야할 때 확인하면 된다 ...! 쿠키 사용하기 npm i cookie-parser app.js var cookieParser = require('cookie-parser'); const app = express(); app.use(cookieParser()); 설정 끝! 이제 쿠키를 사용해주면 된다 쿠키 사용법 쿠키 주기 res.cookie(key,..
[Node.js][Express] alert 창 띄우고, 페이지 이동하기
alert창 띄우고 페이지 이동하기 res.write(""); res.write(""); javascript를 이용하면 가능하다 response로 데이터를 띄우는게 아닌, alert창을 띄우고 location을 설정해주면 된다! 페이지만 이동하기 return res.redirect("../view/notices") alert 사용 없이 redirect만 시킬거라면 위 코드도 사용가능하다
[Node.js][ejs] ejs로 HTML checkbox check 여부 설정하기
ejs에서 받은 데이터를 이용하여 checkbox 체크 여부를 설정하려 했다 원래 html check 박스 사용법은 체크 체크안됨 위와 같이 사용하면 된다. 하지만 checked위치에 ejs구문을 넣으니 %> 가 input의 닫는 태그로 인식되는 문제가 있었다 " "를 붙여봐도 여전히 인식이 되지 않아서 checked=checked와 같은 방식으로 ejs 데이터를 넣어주어야 했다 찾아보니 checked=checked, checked=1. checked=true와 같은 속성을 주어도 동작한다는데 난 checked에 unchcked, 0, false를 줘도 체크 안되는게 먹히지 않았다ㅜㅜ 결국 value를 ejs에서 받아온 데이터에 따라 check여부로 주고 value에 따라 checked속성을 변경하는 j..
[Node.js][express] html에서 ejs 사용시 html태그로 인식 되는 문제
기존에 위와 같이 태그 사이에 ejs 데이터를 넣었을 땐 문제 없이 잘 동작했다 하지만 위와 같이 태그 속성에 ejs 데이터를 넣으면 맨 뒤에 %>가 닫는태그로 인식되는 문제가 있었다. 해결방법은 아주아주아주 간단했다 위와 같이 ejs부분을 따옴표로 감싸주면 잘 동작한다
[Node.js][express] ejs로 서버에서 받은 JSON 데이터 보여주기
가끔 간단하게 Node.js에서 화면이 보여져야 하는 경우가 있는데, 단순히 화면을 보여주기만 하는거라면 html 을 사용하면 된다. 하지만 node.js에서 구축한 서버에서 데이터를 받아 바로 뿌려주고 싶은 경우, 데이터에 따라 html이 동적으로 변하게 해야하는 경우에는 ejs, pug 등의 view engine을 이용하면 node.js에서 보낸 데이터를 보여주거나, html에서 반복문을 이용하는 등의 구현이 가능하다. 처음에는 pug를 더 선호했는데, html과 같지 않다보니 매번 찾거나 익숙해져야 사용이 편한 것 같다. ejs의 경우 html 문법에서, 일부만 ejs 로 대체하면 되기 때문에 훨씬 빠르게 적용할 수 있어서 더 선호하는 편이다! ejs 설정 먼저, node + express 환경이 ..
[Mysql] 현재 날짜 기준으로 특정기간만 가져오기
최근본 물품 API 구현 중, 최근 6개월에 대해서만 조회를 해야했다. TIMESTAMPDIFF를 이용하면 두 날짜의 차이를 계산할 수 있다 TIMESTAMPDIFF(MONTH , now(), '컬럼')>-6; WHERE 절에 위 코드를 추가해주면 된다, '컬럼' 위치에는 특정 날짜 컬럼이나, 구체적인 날짜가 들어가면 된다 MONTH대신 YEAR, DAY, WEEK, HOUR 등 단위변경도 가능하다 날짜까지 아직 남은 경우는 양수로 출력되고, 해당날짜가 지난 경우는 음수로 출력된다 예제) TIMESTAMPDIFF(WEEK , now(), createdAt)>-10; TIMESTAMPDIFF(WEEK , now(), '2021-04-03')
[SpringBoot][AWS EC2] nohup을 이용하여 무중단 서비스 만들기
빌드 먼저 Git을 통해 받은 프로젝트 폴더로 이동하여, build를 진행한다. ./gradlew build build가 완료되었다 실행 java -jar build/libs/demo-0.0.1-SNAPSHOT.jar 정상적으로 잘 실행되었다. 하지만 이상태에서 터미널을 종료하면 실행중인 java도 같이 종료되어 버린다! 무중단 서비스를 위해 nohup을 이용하여 백그라운드에서 실행시키자 nohup nohup java -jar build/libs/demo-0.0.1-SNAPSHOT.jar & > /dev/null 아까 실행시킬 때 수행했던 명령어 앞에 nohup을 붙이고, 뒤에 &을 붙이면 백그라운드에서 실행이 되어, 터미널을 종료해도 EC2상에서는 계속 돌아간다, 뒤에 > /dev/null은 log를 ..