TIL-0201

목표 React-native 다뤄보기 IOS 화면 띄우기 android 화면 띄우기 Android-studio 설정 xcode를 설치해서 IOS가상 디바이스로 띄워서 확인했고, android-studio를 이용해서 android 환경의 가상 디바이스를 확인했고, expo를 이용해서 실제 디바이스에서 확인하였다. 웹과 다르게 모바일은 환경을 구성해줘야하는데 그런 환경설정 부분들만 잘 해준다면 쉽게 react-native로 hello world를 띄울수 있었다. !! 다양한 실험을 했고, 매우 좋은 공부였다. 파일을 열고 App.js 에서 <Text>텍스트</Text>, <View>뷰<View/>, <Image>이미지</Image> 와 style을 주는법, style 객체로 빼서 여러 효과 적용시켜보고, 사용했다. 버튼을 만들었는데 버튼은 잘 되지 않았다…...

TIL-0202

목표 server get, post 조작하기 database 공부하기 npm 이해하기 서버를 다루다가 서버가 꺼지지 않고 계속 동작해서 테스트를 돌릴 수가 없을 때가 있었다. lsof -i:[포트번호] 를 이용해서 적어넣은 포트번호가 실행되고 있는지를 확인한다. kill -9 [PID] 실행되고 있다면 PID번호가 나오는데 적어 넣고 사용하면 강제종료된다. post를 보내려고 하다 보니 데이터를 담을곳과 꺼내올 곳이 필요해 데이터베이스를 공부했다.,… database 공부하기 이전에 공부하긴 했지만 한번더 확인하고 정리해본다. mysql -u root -p; 패스워드까지 입력하면 mysql에 들어간다. SHOW DATABASES;...

TIL-0203

목표 socket.io 공부하기 socket.io 공부하기 어제 서버를 만들어 보다가 오늘 socket.io에 대하여 공부를 하였다. socket.io란 모듈을 이용해서 서버와 클라이언트를 지속적으로 통신하도록 만들어준다. npm install --save socket.io 설치를 먼저 해야한다. const express = require('express'); const http = require('http'); const path = require('path'); const socketIO = require('socket.io'); const app = express(); const publicPath = path.join(__dirname, '../client'); app.use(express.static(publicPath)); let server = http.createServer(app).listen(3000, () => { console.log('listening.....3000'); }); let io = socketIO(server); io.on('connection', socket => { console....

TIL-0206

한 일 회원가입 DB 저장하기 로그인 DB 탐색하기 주소변경 DB 변경하기 database 공부하기 회원가입 처음에 회원가입을 만들면서 간단한 클라이언트 페이지를 만들고 시작했는데 fetch로 POST요청을 보내도 서버로 요청이 오고 응답도 잘 오는데 보내는것이 잘 되지 않았다. 1시간정도 해메다가 이유는 content-type이 바뀌질 않아서 요청이 가도 body를 읽을수가 없는 것이였다. 크롬 개발자 도구에 네트워크 탭을 잘 확인 해야겠다… 이후에 postman으로 계속 회원가입을 만들었고, 그 다음 문제점은 DB에 넣고 중복을 체크하는 문제였다. 쿼리문 다음에 쿼리문을 넣는것이 잘 되지 않았고, 이것도 한두시간 헤메다가 결국 비동기 문제라는 것을 깨달았고, 비동기를 처리하기 위해 여러 방법을 찾았다....

TIL-0207

한 일 mysql로 만든 DB nosql(mongoDB)로 변경 회의 kick off meeting 회의 프로젝트 팀 내부에서 회의를 했다. 간략하게 solo week 동안 무엇을 공부했는지 서로 공유하고, 어떻게 맞춰볼지를 토의했다. DB변경 제안이 나왔고, DB마다 장단점이 있어서 시도해보는 것도 좋을것 같고, 프로젝트와 소소하게 더 맞는 nosql로 변경했다. 그리고 android studio와 expo의 차이점도 얘기를 나누고, AWS에서 어떤식으로 적용할지도 토의 했다. kick off meeting 우리가 어떠한 방식으로 진행할지와 앞으로 어떤식으로 하면 좋을지 엔지니어님과 얘기를 나누었다. 우선 시도해보는 것에 매우 큰 중점을 두고 방향성만 잃지 않으면 된다고 말씀하셨다....

TIL-0208

한 일 AWS DocumentDB 사용법 - 실패 AWS Document DB 사용법 AWS를 이용해 mongoDB를 사용하는 방법을 공부했다. 로컬에서만 동작하던 데이터베이스를 클라우드 컴퓨터에 올려놓고 사용하기 위해 사용법을 익히고 시도했다. brew install mongo 생성하고 클러스터를 만들고, 인스턴스 3개가 만들어졌다. 금방만들어져서 된건가 싶은 정도였는데 역시나 되지 않았다. 연결하는 방법자체에 문제도 있었고, 계속 검색하면서 명령어를 이것저것 시도하다보니 엄청나게 꼬인 기분이였다. 그 이후에 엔지니어님의 도움을 받아서 mongo DB를 잘못 했던 것이 아닌 권한문제때문에 collection을 저장할 database의 폴더를 읽지 못하는 문제였다....

TIL-0209

한 일 AWS DocumentDB - 중단 AWS EC2 - 성공 팀 프로젝트 체크인 AWS Document DB 시간투자를 조금 하다가 잘 되지 않았는데 크레딧이 사용되었다. 그래서 삭제하였다. AWS EC2 이후에 그냥 EC2를 이용해서 시도를 해봤는데 되었다. 권한없이 연결만 되는지 보았는데 너무 수월하게 연결이 되었다. 인스턴스를 생성하고 pem키를 이용해 연결을 하였다. 그리고 이후에 mongo DB 공식문서를 읽으면서 순서대로 진행하니 쉽게 되었다. 팀 프로젝트 체크인 오후에 막히는 부분이나 앞으로 해야되는 부분들에 대해 궁금증을 가지고 있었는데 명확해졌다....

TIL-0210

한 일 API문서 수정 카테고리 + 주소 JEST API문서 수정 API를 보내는 문서를 수정해서 notion 에 작성했다. 로그인,회원가입,회원탈퇴,음식점(카테고리+주소)에 맞게 요청을 받으면 응답해준다. 어떤값을 보내줘야 하는지와 어떻게 결과가 나오는지, 어떤 status code를 보내주는지 작성했다. 앞으로 작성하면서 계속해서 수정하게 될 것이다. 카테고리 + 주소 이전엔 카테고리만 분류해서 데이터를 보내줬으나, 오늘 주소를 같이 확인해서 데이터를 보내주게 변경했다. 그리고 데이터를 리스트따로, 메뉴따로, 보내려고 했으나, 서버로 쓰는 컴퓨터가 좋지않아서 속도가 오래걸렸다. 그래서 한번에 보내주고 클라이언트에서 보관하고 있는 방식으로 다시 리팩토링을 하였다....

TIL-0212

한 일 Json 토큰 리팩토링 cors JSON 요청을 받아서 응답을 해주는 과정에서 res.end() 를 하면 잘 전달이 되는데 res.json() res.send() 의 경우에는 전달이 되지 않는다….. 이문제는 계속해서 찾아봐야 겠다…. 로그인을 성공할 때 토큰을 클라이언트에 전달해줘야 하는 과정에서 필요한 부분이다. 토큰( JWT ) 토큰은 클라이언트와 서버가 로그인을 한 이후로 로그인정보를 필요로 하는 작업등에서 계속해서 로그인 정보를 요청하고 응답할때마다 전송해주는 경우에는 너무나도 보안이 취약하기 때문에 세션,쿠키 와 토큰등등의 방법으로 보안적인 이슈를 해결한다....

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 주문자가 배달주문을 하면 음식점이 배달을 해주고 배달이 완료되면 배달완료버튼을 눌러 주문자에게 푸시알람이 가게 되어있는데 거기서 한번더 리뷰를 작성하면 다시 서버로 들어와 데이터베이스에 저장이 되도록 만들었다. 버그들을 수정하고 테스트를 통해 리뷰 작성하는 것이 데이터 베이스에 들어가는 것을 팀과 함께 확인했다.