개인프로젝트

    [개인프로젝트] Nostanding 팀프로젝트 typescript로 리빌딩 - 6~8일차

    진행상태 모든 기능 확인 및 계획했던 코드 작업중 현재까지의 문제점 multerS3에서 'S3' 형식은 'S3Client' 형식에 할당할 수 없습니다.ts(2322) 에러가 발생한다. 해결 tsconfig.json에 "module": "ESNext" 를 "module":"CommonsJS" 로 변경하여 require 구문을 이용해 불러와서 사용으로 오류를 해결해둠. 현재 Bookmark 테이블의 'Bookmark[]' 형식에 'is_marked' 속성이 없습니다.ts(2339) 에러가 발생한다. 해결 데이터를 깔끔하게 보내고싶어서 사용했던 .map 함수를 제거 후, findOne 으로 데이터를 보내주는 방식으로 변경 mysql 데이터를 가지고오기 위한 index.js 파일을 .ts 로 변경시 'Error..

    [개인프로젝트] Nostanding 팀프로젝트 typescript로 리빌딩 - 2~5일차

    현재까지의 진행사항 지난주에 이런저런 일들이 있어서 조금 지체되기도 했고, 블로그에 글 작성을 하지 못하게 된거 같다. 프로젝트는 짬 날때마다 꾸준히 작업을 했다. 팀 프로젝트 때, sequelize-auto로 데이터베이스 기반을 다져놨었는데 MySQL Workbench를 사용해서 데이터 관리 및 ER다이아그램으로 스키마를 만드는 등 너무 유용하게 사용해서 이번 ts 리빌딩에서도 sequelize-auto를 사용했는데, 생각치 못한 문제들에 직면하게되었다. 우선, 첫째로 models폴더에 index.js 파일을 만들어서 mysql 데이터를 가지고왔었는데 이걸 .ts로 변경하니 계속 'Error: No Sequelize instance passed' 이 에러를 만나게되었다. 약 2일~3일간 계속 검색을 하..

    [개인프로젝트] Nostanding 팀프로젝트 typescript로 리빌딩 - 1일차

    타입스크립트에서 require보다 import로 모듈을 불러오는 경우가 많은거 같아, package.json에 "type": "module" 을 입력해두게 되면, ts-node를 사용해서 파일을 실행 시키면 Unknown file extension ".ts" for 이 오류가 발생하게 되는데, stackoverflow에 솔루션 중 하나인 // tsconfig.json { "compilerOptions": { "module": "ESNext", "moduleResolution": "Node", /* ... your props ... */ }, "ts-node": { "esm": true } } 을 입력해주니까 모든 오류가 해결이 됐다. *여기서 문제가 compilerOptions 중 module : ESN..

    [개인프로젝트] WebSocket 실시간 채팅창 구현

    [개인프로젝트] WebSocket 실시간 채팅창 구현

    만들게 된 계기? 프로젝트 진행하면서 실시간 알람을 구현하려했으나, 실패했었다. 실패의 원인을 분석하기 위해 WebSocket에 대해 공부를 하면서 실시간 채팅창을 만들어봤다. HTTP? 웹소켓을 이해하기 위해 http를 먼저 이해해야한다. 인터넷 데이터 교환(업로드, 다운로드, 이미지, 문서 등등)을 http덕분에 소통할 수 있는 것 이다. 1.브라우저는 서버에게 http request(요청)을 보낸다. 2.브라우저의 요청을 확인한 서버는 http response를 돌려 보내준다. 위와 같은 과정이 끝나게되면 브라우저-서버간의 통신은 끝나게 된다. 이러한 특징을 단방향 통신이라한다. 여기서 핵심은 서버가 브라우저에게 데이터를 보낼 수 있는건, 브라우저가 요청을 했을 때 뿐이다. 무조건 1번의 과정이 있..