daily 44

23, 23주차

22~23주차 이번에도 두 주 간 프론트엔드와 백엔드 몇명이 모여 클론 프로젝트를 진행했다. 클론 프로젝트라고 해서 서비스 되고 있는 것을 완전히 따라하는 것은 아니지만 거의 비슷하게 구현하는 것을 목표로... 1. ChapGPT(짭GPT) ChatGPT 다른조는 유투브, 블라인드, 익스피디아 등 여러 사이트를 클론했고 우리는 ChatGPT를 클론하기로 했다. 이름하야 ChapGPT(짭GPT). ㅎㅎ 간단하게 생긴 투박한 공대감성 너낌의 ChatGPT도 알고보면 자잘한 기능이 많다. 지금와서 100% 똑같게 구현하려면 해야할 일이 한두가지가 아니지만 기획 당시에는 별거 없겠지 했던 것도 사실이다. (사실 쉬워보여서 제안했고, 다른 사이트보다는 거의 완성도있고 대부분의 기능을 구현한 것은 사실이지만, 쉬운..

daily 2023.06.08

Dockerization [3] - Synology NAS에 docker로 웹페이지 배포하기

docker이미지를 만들었으니 다양한 환경에 배포해서 docker의 편리함을 누려보자는 차원으로, 이번에는 집에서 놀고 있는 Synology NAS에 docker로 API 서버를 올려봤다. Synology NAS는 여러 기능을 제공하는데, 그 자체로 리눅스 웹서버, 웹스토리지 등 다양한 방식으로 활용이 가능한 장점이 있다. 사실 다른 NAS보다 비싼 가격을 가진 이유를 생각하면 그런 편리한 기능들이 있기 때문이 아닐까 싶다. 우선 내가 진행한 환경은, 모델: DS220+, DSM: 7.1.1 이다. 1. Synology NAS에서 패키지 설치 패키지 센터에서 Docker와 Web Station을 설치하고 Docker 이미지 파일을 NAS에 넣어주면 준비는 완료되는데, 2. Docker 이미지 파일 넣기 ..

daily 2023.06.06

Dockerization [2] - awsebcli로 deploy할 때 알아야 할 세 가지

이번에는 awsebcli 를 통해서 배포해봤다. 사실 압축파일을 올리는것과 다른 것이 없지만 몇가지 차이가 있어서 잠시 삽질한 것을 기록한다. 앞의 글에서 Dockerfile과 .dockerignore를 만들어서 프로젝트 폴더에 갖고 있다고 하면, eb init 을 통해 AWS EB에 연결하고, eb deploy 를 통해 배포할 수 있다. 이때 Dockerfile이 있으면 Docker환경인걸 식별하고 물어보니 따라가면된다. 이때, 1. git commit 한 것만 deploy awsebcli를 이용해서 배포할 때 잠깐잠깐 수정을 했으나 배포에서 변화가 없어서 찾아보니, git으로 관리할 때, commit한 것만 배포에 반영된다고 한다. 해결은 아래 2번과 한번에 할 수 있어서 우선 다음 문제를 보면, 2..

daily 2023.06.03

23.05.27. SSE(Server-Sent-Event) 구현해보기

ChatGPT 사이트를 클론 코딩하기로 했을 때 가장 궁금한 건 두가지였다. 1. node.js환경에서 openAI API연결하는 것 (두 글에 걸쳐 구현 완료 했다. [0], [1]) 2. 실제 타이핑 치듯 글자가 나오는 인터페이스 2.는 어떻게 구현하나 했더니, 우선 openAI API에서 stream 옵션을 true로 해서 조각내어 받고, SSE(Server-Sent-Event)라는 기능으로 구현하는 것이었다. 처음엔 소켓으로 하는가 싶었는데, 그것보다 간단하고, 일방향으로 전송하는 방식의 기능으로 쉽게 구현할 수 있었다. 1. 서버 서버에서는 아래와 같이 헤더에 text/event-stream이라는 content-type으로 설정하고, cache는 없게 설정해주고, 데이터를 setInterval을..

daily 2023.05.27

23, 21주차

20~21주차 두 주간 프론트엔드와 백엔드 몇명이 모여 미니 프로젝트를 진행했다. 간단한 웹사이트를 만드는 것으로 기획하고, 컨텐츠는 "이어쓰는 동화". 기본적인 CRUD를 구현하는 많은 예제에서 사용하는 게시판, 블로그와 동일한 형식이라 새로운 건 없지만, 그간 배운것을 실제 배포하고, FE와 같이 협업해본다는 점에서 새롭고 많은 것을 배울 수 있었다. 1. github 사용 팀원과 함께 쓰는 github은 처음이었고, 의외로 별다른 문제 없이 쉽게 흘러갔다. 다만 사용하며 아쉬운 것은 main 브랜치에 서로 푸시를 한 점이다. 서로 어떤 부분을 작성하는지에 대한 논의가 잘 되어서 다행이었으나, 꼬이기 시작하면 한도 끝도 없었을 듯. 그래도 API 명세서가 자세했고, 역할분담이 명확했기 때문에 문제가 ..

daily 2023.05.27

23.05.27. openAI API + node.js, express로 연결해보기[1]

2023.05.27 - [daily] - 23.05.26. openAI API + node.js, express로 연결해보기[0] 23.05.26. openAI API + node.js, express로 연결해보기[0] openAI에서 제공하는 API를 연결하는 것은 openAI에서 제공하는 기술문서에 친절하게 설명되어 있어서 파이썬으로는 기술문서를 따라 쉽게 연결했었는데 node.js로는 어떻게 하는지 기술문서를 보며 dailydevelop.tistory.com 지난번에 이어, 대화를 이어가려면 앞의 정보를 openAI API에 같이 보내야한다. 웹이나 앱의 서비스라면 사용자별로 데이터베이스에 대화를 저장해야겠지만, 간단하게 구현해보기 위해 json으로 저장하는 방식으로 대강 구현해 봤다. json으로..

daily 2023.05.27

23.05.26. openAI API + node.js, express로 연결해보기[0]

openAI에서 제공하는 API를 연결하는 것은 openAI에서 제공하는 기술문서에 친절하게 설명되어 있어서 파이썬으로는 기술문서를 따라 쉽게 연결했었는데 node.js로는 어떻게 하는지 기술문서를 보며 따라해봤다. 1. 라이브러리 설치 openai 기술문서를 보면, node.js에서 어떻게 구현하는지 예제코드가 친절하게 나와있다. 코드 예제 우측 상단에 curl, node.js, python 세가지 예시를 제공해주고 있다. requir('openai')를 보니, 패키지를 설치해야 하는 것 같아서 찾아보니, 여기에서 openai npm 라이브러리를 확인할 수 있다. 그리고, API키는 .env 파일로 저장하는것이 안전하니.. dotenv도 설치해주고, 편리한 express도 같이 설치해주자. npm i ..

daily 2023.05.27

Swagger

swagger... 실제로 스웩이 넘치는 ui로 프론트와 백 사이를 멋지게 연결해주지만, 이게 맞나 싶은 주석 달기... autogen 라이브러리도 있는것 같고, ORM과 연결해서 모두 자동화가 될 것 같은데 싶다. 여튼, 설치하고, npm i -D swagger-jsdoc swagger-ui-express swagger ui를 사용하기 위해 swagger.js파일을 만들어 옵션을 적고, app.js에 연결해준다음 // ./swagger/swagger.js const swaggerJsdoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express'); // Swagger 문서 정의 const swaggerOptions = { sw..

daily 2023.05.16

Dockerization [1] - AWS EB에 docker 배포하기

이제 Elastic Beanstalk에 올려서 배포하는걸 해보자. AWS Elastic Beanstalk AWS에서 EB라고 검색하면 나온다. 설명대로 쉽게 배포할 수 있긴 한데, 늘 그렇듯 어떻게 쓰는지에 대한 자료가... 어딘가 있겠으나 내눈엔 잘 안보인다. 위 화면에서 애플리케이션 생성을 누르면, 프리티어만 체크되면 된다. 플랫폼은 Docker로, 플랫폼 브랜치는 Docker running on 64bit Amazon Linux 2로 선택했다. 다른 옵션은 ECS running on 64bit Amazon Linux 2인데, 잘 모르겠기도 하고, 검색해보면 aws에서 컨테이너를 관리하고 배포하는 서비스 같아 보인다. 어쨋든 나는 바로 docker를 올리려고 생각했으니 이건 아니다. 다른 선택지는 헛..

daily 2023.05.15

Dockerization [0] - docker build 하기

Node.js 환경에서 만든 API를 Docker 이미지로 만들어 배포하기를 해보고 있다. 우선 Docker Desktop 설치에서부터 문제 해결을 하고, Docker image를 만들고 실행하면서 생긴 문제를 기록해본다. "Cannot enable Hyper-V service" 문제. 1. AMD에 MSI Bios에서 AMD IOMMU 옵션을 찾아서 enable, SVM 옵션을 찾아서 enable로 바꿔주고, 2. 윈도우 시작메뉴 우클릭 > 앱 및 기능 > 프로그램 및 기능 > Windows 기능 켜기/끄기 > Hyper-V 체크, 가상머신 플랫폼 체크 두가지 적용하고나니 Hyper-V 문제가 해결되었다. 그 다음은, "WSL 2 installation" 에러 이건 팝업에 있는 해결 방법 링크에서 알려..

daily 2023.05.15
728x90