팀프로젝트

    [CloseSea] swap페이지 만들기

    GitHub - TeTedo/NFT_market Contribute to TeTedo/NFT_market development by creating an account on GitHub. github.com swap 페이지는 위와 같이 만들었다. 수수료는 5%로 적용하여 처음 컨트랙트를 배포한 owner에게 보내도록 설정했다. 바꿀 이더를 입력하면 수수료를 계산하여 얼만큼의 토큰을 받을지 적용해준다.

    [CloseSea] eslint, prettier 설정

    개발을 하던 중간 서로 prettier의 설정이 달라 코드 정렬이 계속 달라졌다. 이를 해결하기 위해 eslinit와 prettier로 작업영역의 코드스타일을 통일 시키려고 했다. 루트폴더 /.vscode/setting.json { "editor.codeActionsOnSave": { "source.fixAll": true }, "eslint.workingDirectories": [{ "mode": "auto" }] } .vscode 폴더에 들어있는 setting.json은 루트 폴더 작업영역내의 설정을 해주는 것이다. "editor.codeActionsOnSave": { "source.fixAll": true }, 저장을 할때마다 formatter규칙에 따라 format을 해준다는 설정이다. "esli..

    [Docker] ERROR in [eslint] EACCES: permission denied, mkdir '/app/node_modules/.cache'

    도커를 배우고 처음으로 적용한 프로젝트이다. 윈도우를 사용하며 도커를 공부하면서 마운트가 안되는 오류가 있었다. 그래서 리눅스로 도커를 공부했었다. 루트폴더를 만들고 도커환경을 세팅하는 과정에서 문제가 발생했다. 리액트를 빌드하려고 하면 ERROR in [eslint] EACCES: permission denied, mkdir '/app/node_modules/.cache' 라는 오류문구가 떴다. 옆에 팀원이 맥을 사용하길래 도커를 깔고 해보라고 한 결과 맥은 이상없이 잘 빌드되고 실행됐다. 리눅스에서 구글링을 해보고 주변에 도움도 청하면서 온갖 방법을 시도했지만 해결할 수 없었다. 2일을 투자했지만 아무것도 얻지 못했다. 그래서 대안책으로 docker-compose를 통해 데이터베이스와 백엔드 두개의 ..

    [키보드워리어] textarea 공백, 줄바꿈

    게시글을 쓸때 textarea의 value를 그대로 데이터베이스에 넣고 사용하게 되면 띄어쓰기와 개행(줄바꿈)이 제대로 먹지 않았고 ejs로 데이터를 받을때 에러가 났다. 이를 해결하기 위해서 textarea를 input으로 바꾸고 onchange 이벤트를 이용해 띄어쓰기는 줄바꿈은 \n 으로 처리했다. 글쓰기와 보기 둘은 해결했지만 수정하기에서 또 문제가 됐다. 글을 수정할때에는 같은 문자들을 innerHTML로 넣을수가 없어서 input이 아닌 div에 contenteditable속성을 넣어서 안의 내용을 수정할수 있게 했다. 데이터베이스를 보낼때에는 ajax로 div에 있는 부분만 따로 작동하게 했다.

    [키보드워리어] table 생성 오류

    sequelize문으로 해당 테이블이 없다면 테이블을 만들라는 코드를 짰다. 하지만 위와같이 테이블이 없다는 에러를 마주했다. 이유는 다른 함수에서 mainposts를 require해서 사용했고 그 함수를 main.html 에서 사용했다. 서버를 키고 홈페이지에 들어가면 제일 먼저 나오는 화면인 main.html이 열리면서 콜스택에 해당 function이 들어가는 도중에 위와같은 에러가 난것 같다. 그래서 그 function에 mainposts 테이블을 만들라는 코드를 넣으니 해결됬다. 하지만 이 방법으로 mainposts를 만들면 외래키 설정도 여기서 해줘야 한다는걸 나중에 외래키 설정을 해보며 알았다. 그래서 이 function을 지워버렸다.

    [키보드워리어] Json 객체 파싱 main.html

    서버에서 sequelize를 통해 mySQL에 있는 데이터값을 findAll로 불러오고 객채형태인 데이터를 그대로 ejs로 클라이언트에 보냈다. 그리고 ejs문법을 써서 클라이언트 html에서 받아오려고 했지만 되지 않았다. 이유는 ejs로 객체를 받으면 그 데이터가 JSON형식으로 되어있기 때문에 [Object Object] 처럼 나타난다. 이를 해결하기 위해 다시 구글링을 해봤고 이는 그 데이터 자체를 JSON.stringify()로 파싱해주면 객체값이 나왔다. 하지만 이것만으로는 html의 script 에서 바로 사용할수 없었다. 원래 " 로 돼있어야 할 곳들이 " 로 바뀌어 있었다. replaceAll 로 " 를 " 로 바꿔준후 JSON.parse()로 자바스크립트 언어로 파싱한 후 사용할수 있었..