반응형

전체 글 364

[NODE] JWT 기능 구현.

기존에 일했던 곳은 세션으로 로그인을 구현했는데, 이력서에 하도 포폴 내 사용가능이라길래 JWT라고 하도 사람들이 그러길래 기능 구현을 해보았다.JWT 내 만료시간, 서명, 내용이 들어간다. 그런데, 이거 완전 stateless라고해서 찾아보니 어허~딱히 그러지도 않네...기존에 서버의 경우 uuid를 통해 session을 만들어왔다.그런데, 이건 뭐;;;로그아웃 기능을 구현해보니, 탈취점이 확실히 보인다.서버에서 cookie로 리프레쉬토큰만 저장해두는데, 로그아웃시 리프레쉬 토큰을 삭제한다.리프레쉬는 서버에 저장하고 상대적으로 유효시간이 짧은 accesstoken을 저장하지 않게 구현했다.로그인시 accessToken 내 만료시간 확인해서 로그인 시키는 구조인데, 이게 탈취되면 막을 방법이 없는 것. ..

코딩/Node.js 2024.11.01

[AWS] AWS는 중지하였습니다.

5일켜놨는데, 로드밸런스, 스토리지 이용비용이 엄청쎄서 결국 중지하였습니다.5일만에 비용이 $9.2....정지당시 9.2였는데 이것저것 청구당해서 9.89로 종료되었습니다..너무 비싸서 aws설정을 모두 걷어냈습니다.인스턴스 중지, 삭제를 진행하였습니다.결국 7시간동안 삽질하면서 시놀로지 개인서버로 이전했습니다.포트 문제때문에 시놀로지쪽만 계속 만지다가 공유기 고치니까 한방에 고쳐졌네요. 허미~이력서에 포함해서 배포중인 서버인데, 해당 서버 죽어있으면;;;;결국 정상 작동 잘되고 있습니다. 호스팅케이알을 사용중인데,cname으로는 루트도메인을 사용하지 못하네요. 원인은 공유기쪽에서 포트포워딩하다가 80이랑 443을 5000, 5001로 호출해서 발생한 문제였습니다.5000, 5001은 시놀로지 관리자 포..

코딩/AWS 2024.10.28

[NODE.JS] 라이브러리 기능 설명

morgan - 파라미터에 따른 로그출력 다르게 하는 라이브러리('dev', 'combined', 'common', 'short', 'tiny')cookie-parser - req에 포함된 cookie를 해석해서 req.cookies를 객체로 만들어주는 미들웨어body-parser - req.body를 객체로 만들어주는 미들웨어(단, 멀티파트폼은 안된다. - 이미지/영상/파일)express-session - 세션 관리용 미들웨어(로그인 시 세션구현)dotenv - 의미 그대로 .(dot)ENV을 읽어 process.env로 만들어준다. -> 가끔 실제 서버 로그에 get(.env)로 공격하는 곳도 있다.실제로 응답해주는 서버들이 있기에...multer - 이미지, 동영상, 파일을 업로드할 때 사용되는 라..

코딩/Node.js 2024.10.25

[AWS] 웹페이지 세팅기 - 4부

원래는 3부까지가 마지막이었으나 사용하다보니 루트 도메인(subdomain 즉,www을 제거한 본도메인 자체를 말함)이 접속이 안되더라...왜 그런가 봤더니 내가 설정하지 않았음... 방법은 간단한데 알려주는 곳이 별로 없음.LLM한테 물어보는데 대충 대답해서 좀 얼탔습니다... 방법은 간단합니다.Route53으로 이동합니다. 새로운 루트도메인을 생성합니다.기존에 기본 생성된 SOA, NS유형이 아닌 A형태를 만들예정입니다. 아래 내용으로 만들어주세요.리전은 본인이 생성하신곳으로 선택하시면 됩니다.dualstack.~으로 적힌 내용을 선택하시면 됩니다.저장하고 끝. 그러면 해당 주소로 www.domain.com,  domain.com  으로 접속이 가능해져서 끝납니다.이상 끝.

코딩/AWS 2024.10.24

[AWS] 웹페이지 세팅기 - 3부

도메인구매 Ec2인스턴스 생성. 보안그룹 생성. 로드밸런스 생성. 타겟그룹(대상그룹) 생성.라우터53 세팅ACM 세팅APACHE 세팅이부분은 솔직히 웬만한 주니어들은 개발용 사이트 설정할떄 뺴곤 접근할 이유도, 볼일도 없을부분이긴합니다.저도 아예 초기로 노베이스로 세팅하는건 처음이라 헤맸네요.남이 만들어놓은 자료 들고 만들었으니까요..저도 회사 재직당시 이부분은 배우질 못했습니다.그냥 적용된 부분 사용하기만...;;; 서버에 접속하는 방법은 tabby, putty, wsl, iterms2가 있으니 여러 방법을 쓰셔서 접속하시면 됩니다.aws로 접속해도 되는데일단 저는 ubuntu에서 적용하였으므로 해당 내용에 맞춰 설명합니다. 아무튼 접속후 설치합니다.# apt 업데이트sudo apt update && ..

코딩/AWS 2024.10.22

[AWS] 웹페이지 세팅기-2부

도메인구매 Ec2인스턴스 생성. 보안그룹 생성. 로드밸런스 생성. 타겟그룹(대상그룹) 생성.라우터53 세팅ACM 세팅APACHE 세팅앞서 구매한 도메인을 연결하는 작업을 위한 세팅..?입니다.이때 route53 페이지에서 도메인등록을 클릭하면, aws에서 도메인을 구매하는 것이라 비용이 좀 나갑니다;;왼쪽 "호스팅 영역"을 클릭합니다. 우측 상단 호스팅 생성을 클릭합니다.www은 제외하고 구매하신 도메인만 작성합니다.그 후 호스팅 영역 생성 클릭subdomain으로 적힌 곳에 www은 본 도메인으로 사용할 것이니 www을 작성합니다.레코드 유형은 CNAME으로 작성합니다.값을 넣을 차례입니다.해당 화면을 유지한 상태로새창을 열고 앞서 로드밸런서 페이지로 만들어두신 곳으로 이동해서오른쪽 하단 dns값을 복..

코딩/AWS 2024.10.22

[AWS] 웹페이지 세팅기-1부

도메인구매 Ec2인스턴스 생성. 보안그룹 생성. 로드밸런스 생성. 타겟그룹(대상그룹) 생성.라우터53 세팅ACM 세팅APACHE 세팅방법은 간단합니다.도메인 구매https://www.hosting.kr/domain/search?q=kasumitech 도메인 검색 - 호스팅케이알 Hostingkr도메인/일반 상담 : 09:00~20:00 (평일) 호스팅 장애 상담 : 00:00~24:00 (365일)www.hosting.kr해당 페이지에서 회원 가입을하고, 도메인을 구매합니다.DNS서버를 설정하라는데, 그냥 무시하고 놔둡시다.  AWShttps://aws.amazon.com/ko/AWS에서 회원가입을 진행합니다.EC2에 접속해서 "인스턴스 시작"을 클릭합니다.서버이름은 원하는대로 하고 ec2를 접미사 또는..

코딩/AWS 2024.10.22

[Next.js] 캐싱 관련 코드

import Messages from "@/components/messages";import { unstable_noStore } from "next/cache";// export const revalidate = 5; // 모든 페이지에서 요청시 캐싱 진행 5초간 백엔드 요청 안함// export const dynamic = "force-dynamic"; // 모든 페이지에서 캐싱안함export default async function MessagesPage() { // unstable_noStore() // 해당 페이지에서 캐싱안함. const response = await fetch("http://localhost:8080/messages", { // cache: 'force-cache',..

코딩/Next.js 2024.09.27

[next.js] 서버사이트 통신 방식

import NewsList from "@/components/news-list";async function NewsPage() { const response = await fetch("http://localhost:8080/news"); if (!response.ok) { throw new Error("Failed to fetch news"); } const news = await response.json(); return ( News Page ; );}export default NewsPage;  이렇게 되는 이유는 Next.js에서 node 기능을 지원한다.추가로 캐싱도 지원하는데 그냥 넘기고, 원래는 에러나 로딩중에 대한 상태 처리도 적용해야하나더미..

코딩/Next.js 2024.09.20
728x90