본문 바로가기
728x90
반응형

분류 전체보기163

#5 서버 백엔드 올리기 + AWS EC2, MongoDB, Redis 야 너두 서버 올릴 수 있어! (반말 죄송) 지난 편에 클라우드 업체를 AWS로 선정했다. 그렇다면 AWS에 서버를 올려봐야 한다. 로컬에서 잘 돌아간다고 하더라도 클라우드에선 안되는 경우가 종종 있다. 그러니 꼭 미리 올려 테스트 해보자. 우선 개발자가 아니라도 서버를 올릴 수 있게 최대한 쉽게 작성해보려고 했다. 근데 클라우드는 개발자들도 어렵다고 생각하는 분야(따로 클라우드 개발자가 있을 정도)이기 때문에 어려워도 참고 하자. 0) 당연히 AWS 계정은 만들었겠죠? 없으면 AWS 계정을 만들도록 하자. 한국어로도 잘 되어져 있어 어려움은 없을거다. 1) EC2 생성 단일 서버로 갈 경우 EC2를 생성해주면 된다. 명칭만 EC2일 뿐 걍 하나의 서버라고 생각하면 된다. 검색창에 EC2를 치면 대시보드.. 2023. 11. 25.
#4 클라우드 업체 선택하기 - 돌고돌아 고향으로(?) 거기서 거기인데 어디로 하냐... 현재까지 AWS, Azure를 사용해본 사람으로써 클라우드 업체는 거기서 거기라는게 나의 평이다. 이름이 다를뿐 기본적으로 제공해주는건 똑같다. 그렇기에 매번 클라우드 선정할 때 업체 선정에 고민이 된다. (나만 그래...?) 그러다가 네이버 클라우드에 필이 왔다. 사유는 딱 하나, 국내 클라우드 업체를 써본적이 없으니 이번 기회에 써봐야지 싶었다. 한국 기업에서 만들었으니 디자인이나 서비스 측면에서 한국 친화적이지 않을까 싶기도 했다. 찾아본 결과 결제 정보 등록시 1년간 무료로 사용해주는 초소형 서버를 준다. AWS랑 비슷한데 사이드 프로젝트에 1년간 무료는 간지덕지다. 심지어 10만원 상당에 크레딧도 줘서 좋다. (사업자 어쩌고 하면 20만원 더 줌) 문제가 생겼다.. 2023. 11. 24.
#3 한시간 단위로 집계해서 Redis에 캐싱하기 뭉치에서 특정 작품의 전체 타래를 볼 수 있는 서비스를 만드려고 한다. 타래는 n개의 작품 별로 n회차마다 n개가 있다. ...(긁적) 그렇다보니 클라이언트의 요청이 있을 때마다 그 많은 데이터를 헤집고 쪼개고 붙이는 짓을 하기엔 자원이 많이 소비된다. 그래서 1시간 단위로 집계해 캐싱하는 방법을 택하게 방법을 선택했다. Redis 안쓰겠다고 요리조리 피했는데 결국엔 쓰고야 마는구만 👀 NodeJS에서 Redis 사용하기 brew install redis // 다운로드 후 시작하기 brew services start redis 맥이니깐 brew로 Redis로 깔아보도록 하자. start해서 successfully가 나오면 된거다. 굳 👍 NodeJS에서 Redis 사용하기 위해서는 npm install .. 2023. 11. 10.
#2 도메인 구매 시 호구 안되는 법 알려드림 개발도 안 끝났는데 도메인 구매부터 하는 놈이 있다? 접니다 ㅋㅋㅋ 이렇게 된 사정을 굳이 설명해보자면 저번 #1에서 nodemailer을 이용해서 사용자에게 사용자 인증 메일을 보냈다. 근데 내 개인 메일로 보내니 살짝 사짜 느낌도 들고 개인 정보 떨릴까봐 걱정이 됐다. 회사 메일을 만들어야 겠다는 생각에 바로 찾아보니 도메인이 있어야 가능하다는 걸 알았다. 그래서 도메인 구매를 하게 됐다. 도메인 구입 어디에서? 구글에 도메인 구매라는 검색어만 쳐도 나오는 업체가 엄청나다. 예전에 가비아에서 구매했는데 솔직히 업체들은 거기서 거기다. (클라우드 업체 고르는거랑 비슷한 st) 그러다가 나의 이목을 집중 시키는 글이 있었으니 '국내 도메인 등록업체 가격 비교'라는 제목이었다. https://blog.la.. 2023. 11. 9.
#1 가입 인증 메일 동적으로 바꿔보자 실 사용자가 이런 메일을 받는다고 생각하니... 참을 수 없어졌다. 바로 바꿔주도록 하자. 심플 이즈 베스트 👍 일러나 gif 좀 넣고 싶긴 했는데 지금은 개발이 더 급해서 패스했다. 뭉치 회원가입을 위해서는 아래 인증번호를 입력창에 넣어주세요 인증 코드 나올 곳 우리의 친구 chatGPT한테 이미지 주고 뜯어낸 코드다. (미리 말하는데 메일에선 css를 인라인으로 넣어줘야 한다.) 이대로 nodemailer에 집어 넣으면 '당신 코드 뚱뚱해요'가 된다. 그렇기 때문에 mail.html 코드를 만들어준다. import nodemailer from 'nodemailer'; import fs from 'fs'; import path from 'path'; const filePath = path.join(__.. 2023. 11. 7.
[Bun 시리즈] #3 Bun + React 조합으로 서버사이드 렌더링 구현하기 백엔드 개발자라면서요? 근데 왜 프론트 영역 공부하세요? Bun http 통신에 대해 알아보다가 우연히 라는 게시물을 보게됐다. (님아 그 강을 넘어가지 마시요...) 우선 Bun은 런타임이고 React는 라이브러리이기 때문에 Bun으로 React를 이용해서 프론트를 구축할 수 있다! 즉, 내가 찾은 글은 프론트 개발자 분들에게 좋을 글이었다. 나의 경우 프론트와 백이랑 같이 하는거라고 착각한거였다 🥹 ... (Bun을 순간적으로 백 프레임워크라고 생각함) (왜 React가 프레임워크가 아니라 라이브러리인지에 대해서는 따로 정리하겠다 - 런타임 vs 프레임워크 vs 라이브러리) 아무튼 나의 착각 덕분에 프론트 영역을 많이 공부하게 돼서 잘 정리해 봤다. 서버사이드 렌더링이란 따라하기에 앞서 서버사이드 렌.. 2023. 11. 6.
[Bun 시리즈] #2 Bun은 왜 빠를까? JSC vs V8 Bun은 뭔 짓을 했길래 빠를까? 🤔 Bun에 감동하자마자 든 생각이 👆였다. 그래서 이거저거 찾아보다가 Bun 공식 페이지에 AI로 물어보는게 있어서 사용해봤다. 만두가 귀엽다. Bun AI가 알려준이유는 2가지다. 1. JSC 엔진 사용 2. 내장된 파일 변환 파일러 두번째 내장된 파일 변환에 대해서는 1편 TypeScript에 대한 NodeJS와 BunJS 차이에서 다뤘다. 그래서 이번엔 첫번째 JSC 엔진 사용에 대해 알아보자. JavaScript 엔진 JSC는 JavaScriptCore 엔진이다. JavaScript 엔진 중 하나인데 우선 JavaScript 엔진이 무엇인지 알아보자. 한마디로 정리하면 JavaScript 언어로 짜인 코드를 해석하고 실행하는 *인터프리터다. 핵심 기능은 파싱, .. 2023. 11. 4.
[dayjs] JavaScript Date 객체는 불변성을 지켜주기 않는다 + dayjs의 필요성 JavaScript는 날짜 표현을 해줄 수 있는 Date 객체를 제공해준다. 따로 라이브러리를 사용하지 않더라도 손 쉽게 날짜을 얻을 수 있기 때문에 사용을 자주해줬다. 불변성 문제 발생 하지만 불편한 점이 발견됐다. 바로 불변성이다. const date = new Date(); // 2023-11-01T02:06:14.974Z date.setFullYear(2002); console.log(date); set 함수를 쓴 date를 콘솔로 찍으면 어떻게 될까? 당연히 2002-11-01T02:06:14.974Z로 바뀐다. 인제 date는 원래 값인 2023-11-01T02:06:14.974Z을 잃게 된다. 예를들어 우리가 date와 set 함수를 사용해 나온 date를 비교해주고 싶다면? 당연히 둘 다 .. 2023. 11. 1.
[Bun 시리즈] #1 Bun 공식문서에서 알려주는 Quickstart 따라해보기 NodeJS를 두고 지금 BunJS에 눈돌아갔니? 맞다. 어느날 우연히 본 영상 하나로 난 Bun으로 사이드프로젝트를 만들어야겠다 생각했다. https://youtu.be/a8uPDppckQk?si=OkesGXLDoiwBG1cR 코딩애플님의 'Bun 서버가 4배 빠르다는건 진짜인가(vs Node.js)'의 영상이었다. 이걸 보면 Bun에 관심이 갈 수 밖에 없다 👍 한 번씩 서버를 킬 때 느려터졌네 하는 순간들이 있었는데... 드디어 NodeJS를 대처할 수 있는 JS 런타임 및 패키지 관리자가 생겨서 너무 좋다 😆 (Bun은 최근에서야 1.0 버전을 출시하면서 그동안 많은 제약들을 벗어났다는 평을 받고 있다.) 맛보기로 공식문서가 제공하는 튜토리얼 따라하기 https://bun.sh/docs/quick.. 2023. 10. 22.
728x90
반응형