목록전체 글 (138)
나의 개발일지(김지헌)
오늘은 오전에 기술 멘토링 사전노트를 작성한것을 토대로 이야기를 기술매니저님과 이야기를 나누었다. 백앤드의 기술스택이고 : NodeJS, ExpressJS, Typescript, MySQL, library : multer, aws-sdk ,bycript, cookie-parser, jwtwebtoken, nginx, passport multer : 이미지 업로드시 사용 bycript : 개인정보 암호화 시 사용 등등 Typescript와 Nest.js를 많이 사용하는데 ExpressJs고른 이유를 물어보셨다. 공부는 Typescript와 Nest.js같이 하고 있었는데 기간도 짧고 팀원중에 진도를 못따라오는거 같아서 Nest.js는 진입장벽이 조금 높은거 같아서 Express를 사용하기로 했다. Mysq..

12일에 멘토링이 있다고 해서 오후부터 작업을 했다 하면서도 햇갈리고 정리가 잘 안된거같아서 힘들었던거 같다. 차근차근 기능들을 정리해나가면서 api명세서를 작성했다. api명세서 이번 실전 프로젝트의 ERD를 작성하고 식별관계와 비식별관계가 많이 햇갈렸다. 식별관계 더보기 부모테이블(상품, 주문테이블) 기본키(PK)가 자식 테이블(주문_상품)의 외래키이자 기본키로 사용되는 관계이다. 자식 테이블의 행(정보)를 추가할 때 부모테이블의 참조 행(상품번호 또는 주문번호)이 없다면 자식테이블의 행을 추가 할 수 없다. : 주문_상품테이블은 상품번호와 주문번호 중 하나라도 없다면 기본키를 만들 수 없게 되고(두개의 외래키가 합쳐 기본키가 되므로) 기본키가 없어 정보를 식별할 수 없으므로 데이터를 넣을 수 없다...
오늘은 open api 인증키를 발급받아서 하나하나 까보았다. 처음에 주소를 입력 받았을때는 XML 파일로 받아오기 때문에 json파일로 변경을 해줘야 한다. const options = { 'method': 'get', 'url': `http://apis.data.go.kr/B551011/GoCamping/basedList?numOfRows=3300&pageNo=1&MobileOS=ETC&MobileApp=ZZ&serviceKey=발급받은인증키&_type=json`, 'headers': { }, form: { } }; 처음에 JSON파일에 들어있는 정보를 찾을려고 하니 undefind가 떴고 body로만 찾을려고 하니 분류가 너무 어려웠다 찾아본 결과 let info = JSON.parse(body);..
우리가 할려고 하는 실전 프로젝트는 오픈 api를 많이 활용하는 프로젝트여서 어떻게 사용해서 정보를 가공할 것인가를 가지고 이야기를 나눴는데 전부다 처음 사용을 해보는거라서 이야기가 재대로 안되는거 같았고 회의에서 이야기를 했을 때 차이가 조금 생겼던거 같다. 이야기를 했던거 중에는 1. 프론트에서 요청을 해서 사용한다. -문제점 : 백앤드에서 어떤 정보가 있는지 모른다 2. 백앤드에서 요청을 하여 디비에 저장해서 사용한다. -요청을 어떻게 할 것인가? : 검색을 하다보니 axios 요청으로 디비에 저장을 해야하는 것을 알아 냈다. 3. 좌표를 사용하는데 어떤 로직으로 구현을 할 것인가? -디비에 저장한 데이터를 토대로 로직을 구현하기 등등 이야기를 나눴었고 이번에는 타입스크립트로 써보자고 이야기를 해서..
기본 적인 api 틀을 잡고 팀원이 다 모였을 때 좀 더 상세하게 기록할 예정이다. /제네릭 type Player = { name: string; extraInfo: E; }; type NicoExtra = { favFood: string; }; type NicoPlayer = Player; const nico: NicoPlayer = { name: 'nico', extraInfo: { favFood: 'nnoon', }, }; const lynn: Player = { name: 'lynn', extraInfo: null, }; /*객체 지향 class 타입스크립트는 constructor 안에 파라미터 넣어주면 함수를 만들어줌 this.firstName = firstName private 밖에서 접근 금..
어제 티스토리 접속이 안되어서 예비군 갔다와서 지금 씁니당. 이번 프로젝트에서 타입스크립트를 쓰고 싶어서 공부하는 내용을 적었습니다. 직접 타입을 지정할 때 let car :String = "123" //문자열만 가능 let a :Number = 1 //숫자만 가능 let a :boolean = true 위의 방법 처럼 지정 해주는거 보다 타입스크립트가 타입추론을 통해서 사용하는게 가장 좋다 let a = 1 let b = "1" let c = [true] 1 . 객체에서 타입을 지정 해줄 cosnt player : {name : string, age : number} = {키:벨류} 로 사용 가능 하다 //타입지정 const player : {name : string , age: number} = { ..
이번 WIL의 키워드 이번 주차를 진행하며 내가 가장 신경 쓴 부분/기술에 대한 정리 클론 코딩을 하였는데 핵심은 많은 데이터를 디비에 저장하는것이 제일 핵심이였다. 몇만개가 되는 데이터들을 어떻게 넣을 수 있을까를 많이 고민했고, 디비에 바로 넣을시 서버가 과부하가 와서 서버가 다운되어 버리는 현상이 나타났고 해결하기 위해서 많은 정보를 bulkCreate를 사용하였다.사용하는 이유는 일괄등록이 가능하고 하나씩 넣는것이 아니여서 서버에 부하가 덜 되기때문에 사용했다. bulkCreate는 promise값을 반환하는데 이 메서드를 사용하기 위해서는 비동기 방식으로 실행 하여야 한다. 즉시 호출 함수로 사용한다. (async ()=>{ //실행할 함수 })() 많은 데이터지만 잘 나누어서 넣으니깐 부하가 ..
어제부터 크롤링을 했었는데 web scraper를 사용하여 홈페이지를 접속해서 단일 페이지는 크롤링을 할 수있었는데 페이지안에 하나 하나 가져오는게 너무 어려웠고 파이썬으로 크롤링을 할려고 했지만 접속을 막아 버려서 포기를 하고 캠핑으로 주제를 틀었다. 캠핑을 주제로 하고 어떤 기능을 구현할지와 어떤 기술 스택을 사용할지를 고민했고 일단 타입스크립트를 공부해서 사용 하기로 했다. 실전 프로젝트라서 너무 떨리고 책임감도 많이 생기고 압박도 많이 드는 밤인거 같다.