TIL-0213

한 일 headers socket.io headers 어제 마무리 하던 부분이지만 토큰을 전달 해주는 과정이 잘 되지 않아서 토큰을 전해줄 방법을 계속해서 찾았다. JSON, SEND, END 등을 이용해 토큰을 전달해보려 했지만 잘 되지 않아서 헤더부분에 담아서 보내니 잘 보내졌다. 클라이언트에서 사용할수도 있게 되었다. socket.io 오후에 시작해서 공부를 조금 하고 바로 적용해보려 했으나 잘 되지않았다. 계속해서 문제를 찾고 있었는데 저녁이 다되서 문제점을 발견했다. 문제는 socket.io를 받아오는 클라이언트의 스크립트주소가 잘못 되어 있었다. 공식문서나 다른 자료들을 찾으며 되는지 확인 했는데 잘 되지 않았다....

TIL-0214

한 일 socket.io socket.io 어제 못했던 socket 을 했다. 클라이언트에서 쓰는 소켓을 받아오는 주소를 변경하니 해결되었다. 이 문제 때문에 거의 반나절을 고생했고, 이 문제를 해결하고 나니 진행은 순식간에 되었다. 주문자 클라이언트에서 서버를 통해 식당 클라이언트로 전달되고, 다시 주문자에게 전달되는 과정까지를 진행하였다.

TIL-0217

한 일 token review token access token 을 만들었다. 토큰을 통해 이제 보안이 강화 되었다. 로그인이 필요한 작업들의 경우에 토큰을 이용해 인증을 하고 유효기간이 만료되면 사용할 수 없게 되는 구조로 만들었다. 내일 refresh token을 만들어서 좀더 편한 인증시스템을 만들게 될 예정이다. review 리뷰를 시작했다. socket.io를 통해 통신을 하고 마지막에 review를 작성하고 별점을 남기는 것이 DB에 들어 가게 할 수 있도록 api를 만들고 데이터베이스와 주문자 클라이언트를 연결했다.

TIL-0218

한 일 token review token refresh token 을 마무리하였다. 코드를 정리하고 두개의 토큰을 생성하는데 하나는 사용할 수 있는 토큰을 생성하는 토큰 하나는 통신에 이용되는 토큰으로 두가지 토큰을 이용해 보안을강화했다. review 주문자가 배달주문을 하면 음식점이 배달을 해주고 배달이 완료되면 배달완료버튼을 눌러 주문자에게 푸시알람이 가게 되어있는데 거기서 한번더 리뷰를 작성하면 다시 서버로 들어와 데이터베이스에 저장이 되도록 만들었다. 버그들을 수정하고 테스트를 통해 리뷰 작성하는 것이 데이터 베이스에 들어가는 것을 팀과 함께 확인했다.

TIL-0219

한 일 mongodb 권한 설정 mongodb 권한 설정 며칠전 코드리뷰를 통해 매우매우 중요한 파일을 github에 올려버렸다는걸 알게 되었다. config 파일이였는데 토큰의 암호와 DB의 접속하는 url을 적어두었는데 커밋이 되어버려서 우선 config파일을 숨기고, 급하게 암호를 바꾸고 DB의 접근을 막기 위해 권한설정에 대해 다시 공부했다. 처음에 시도할때는 잘 되지 않아서 그냥 풀어뒀는데 해결했다. 다시는 config파일을 깃에 올리지 말자…. 사용자 목록 확인 use admin show users 모든 데이터베이스내의 사용자 use admin cur = db.system.users.find()...

TIL-0222

gelato라는 기업과 함께 하게 된 프로젝트의 첫번째 날이다. kick off meeting을 하였다. 앞으로 어떤 프로젝트를 하게 될지 이전에 이미 간략하게 들었지만 어떤 목표때문에 이 project를 진행하는지, 어떤 tech stack을 사용할지에 대해서 많은 이야기를 전달 받았다. google cloud vision이라는 API를 사용해야해서 사용해봤는데 신기했다. 구글의 머신러닝으로 학습된 API 로써 이미지를 판별해서 어떤 것인지 정보를 준다.! 예시로 받아온 JSON object "labelAnnotations": [ { "mid": "/m/04030j", "description": "Nail polish", "score": 0.9875899, "topicality": 0.9875899 }, { "mid": "/m/023j4r", "description": "Nail", "score": 0....

TIL-0304

EC2 안에서 puppeteer 와 google cloud vision 같이사용하고 있었고, 크롬을 찾을수 없다는 메세지와 대충 이런 메세지가 떳다. Failed to launch chrome! , TROUBLESHOOTIN 대략적으로 libx11-xcb.so.1이라는 라이브러리를 찾을수 없었고, 이것을 설치해주는 듯했다. sudo apt-get update && sudo apt-get install gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget 검색을 통해서 찾을 수 있었고, 해결했다....

TIL-0402

알고리즘 문제를 풀었다….. 문서가 주어지는데 각 문서마다 중요도가 담겨져있다. 문서와 중요도가 주어질때에 중요도에 따라서 문서를 출력하는 배열을 만드시오. 조건 문서는 50개까지만 들어올 수 있다. 1 ~ 9 까지의 중요도를 가지고 있고, 더 높거나, 낮으면 버린다. 같은 중요도일 경우에는 나중에 들어오는 문서가 더 먼저 출력된다. 예제 const test1d = ['A', 'B', 'C', 'D']; const test1i = [2, 1, 4, 3]; const output1 = ['C', 'D', 'A', 'B']; const test2d = ['A', 'B', 'C', 'D', 'E']; const test2i = [1, 3, 2, 2, 4]; const output2 = ['E', 'B', 'D', 'C', 'A']; const test3d = ['A', 'B', 'C', 'D', 'E']; const test3i = [1, 12, 0, 1, 4]; const output3 = ['E', 'D', 'A']; 처음에는 for문 안에 for문으로 O(n^2)으로 생각을 했지만 이건 좋지 못한 시간복잡도이기 때문에 어떻게 하면 시간복잡도를 줄일수 있을지 고민을 했다....

TIL-0408

요즘 typeScript와 React hooks를 공부하고 있어서 두개를 접목시켜서 가볍게 캘린더라는것을 만들어 보고 있다. 매우 흔한 라이브러리이지만 구조를 만들어 봄으로써 공부도 하고 있다. 오늘은 타입스크립트에 대해서 기본적인 것들만 읽어봄으로써 익히고 있는 중이다. typeScript 자바스크립트는 1995년 넷스케이프사의 브렌던 아이크(Brendan Eich)가 자사의 웹브라우저인 Navigator 2에 탑재하기 위해 개발한 스크립트 언어이다. HTML5가 등장하기 이전까지 웹 애플리케이션은 플래시, 실버라이트, 액티브엑스와 같은 플러그인에 의존하여 인터랙티브한 웹페이지를 구축해왔다. 그러다가 HTML5가 등장함으로써 플러그인에 의존하던 구축방식은 자바스크립트로 대체되었다. 또한 AJAX의 활성화로 데스크탑 애플리케이션과 유사한 사용자 경험을 제공할수 있는 SPA(Single Page Application)가 대세가 되었다....