목록전체 글 (138)
나의 개발일지(김지헌)
WIL 타입스크립트 ORM 이번 실전 프로젝트는 타입 스크립트와 mysql을 사용하기로 했었다. ORM 중에서는 TypeORM과 sequelize 중에 하나로 하기로 했다. 한 번도 안 써본 TypeORM을 사용하려고 했는데 첫 주차 때 크롤링에 시간을 많이 뺏기고 타입 스크립트도 공부를 해서 사용해야 하기 때문에 시퀄 라이즈를 사용하기로 했다. 처음 시퀄라이즈를 사용하려고 했을 때 강의에서 자바스크립트 상태로 데이터베이스를 생성하고 타입 스크립트로 바꿔서 사용을 하길래 데이터베이스를 바꾼다면? 또 바꿔줘야 한다는 번거로움이 있었기 때문에 구글링을 하니깐 데이터베이스를 생성하는 코드를 찾을 수 있었다. const createDBOptions = new options(); createDBOptions.us..

오늘은 HTTPS 서버 배포 및 ec2 환경에서 mysql 설치를 했다. ec2 인스턴스 더보기 꼭 서울에서 시작하자 인스턴스 이름을 정하고 우분투 18.04 를 쓸꺼기 때문에 우분투 18.04를 선택한다. 인스턴스 유형을 t2.micro 를 사용 할꺼고 키페어는 새키페어 생성을 눌러서 만들어주자 케피어이름을 만들어주고 RSA와 pem을 선택한다. 그러면 키페어 파일이 다운로드 될껀데 잘 보관 하자 그리고 EC2대시보드 클릭후 우측에 나오는 인스턴스 ID를 눌러주자 누르면 위쪽에 퍼블릭 IPv4 주소가 우리가 쓸 IP주소다. 조금 내려서 보면 보안에 보안그룹이 있을꺼다, 눌러주자 인바운드 규칙 편집 눌러주고 규칙 추가하기 눌러서 다음과 같이 세팅 한다. 그러면 EC2는 세팅이 끝났다. 그리고 우리는 HT..
오늘은 날씨조회 및 마이페이지, 소셜로그인 구현을 했다. 날씨조회 바디값에 dt와 지역을 주면 그에 맞게 정보를 가공해서 보내줬다. open api에서 8일 치를 받아와서 저장을 하고 가공을 해서 보내준다. 월요일을 찍으면 그주 토요일 날씨도 같이 보내주게끔 코드를 작성 했다. 가공을 하는 과정에서 리턴 값이 중복이 되기 떄문에 따로 뺴서 함수로 만들어서 쓰도록 했다. 더보기 import { weathers } from '../../interface/weather'; import weatherRepo from './weatherRepo'; export default { getweather: async ({ pardo, dt }: weathers) => { const weathers = { pardo, d..
오늘은 로그인 회원가입 그리고 마이 페이지 조회를 코드를 작성했다. 타입스크립트라서 타입을 맞게 적어주는거 어려웠다. 타입스크립트를 쓰면서 내가 몰랐던 타입들을 많이 알아가고 있는거 갔다. import {Request, Response, NextFunction} from 'express' import dotenv from 'dotenv' import bcrypt from 'bcrypt' import User from '../database/models/user' import jwt from '../utils/jwt' dotenv.config() export default async (req:Request, res:Response, next:NextFunction) => { try{ //헤더 const a..
import Weather from '../models/weather'; //방금 만들어준 Weather import Camp from '../models/camp'; import User from '../models/user'; import Pick from '../models/pick'; import Review from '../models/review'; import Trip from '../models/trip'; /*table 리스트르르 받아서 배열로 저장 referenced by a foreign key constrain 에러로 인한 drop create 테이블 리스트분리 */ const dropTable = [Review, Trip, Pick, Camp, User, Weather]; cons..
오늘은 모델들의 관계 설정을 해주었다. 자바스크립트에서 관계 설정을 해줄때는 User Post의 모델들이 있으면 서로 테이블에서 참조를 했었는데 더보기 ---유저 모델--- //포스트로 유저 아이디를 보낸다. this.hasMany(models.Post,{ sourceKey : "userId",foreignKey : "userId" }) ---포스트 모델--- //포스트는 유저에서 보낸 유저아이디를 받아서 포링키로 보내준다 this.belongsTo(models.User,{targetKey : "userId",foreignKey : "userId" }) 이런식으로 모델 두개를 사용해서 관계 메소드를 사용했었고 타입스크립트에서도 똑같이 사용을 하니 처음에는 "'User[]' 형식에 'userId' 속성이 ..
오늘은 프로젝트 기본 틀을 잡았다. 타입스크립트 환경에서 ORM 으로 시퀄라이즈르르 사용하기로 했고 타입스크립트로는 처음 사용해보는 것이였다. 강의를 들을때 부터 생각했던 걱정이 시퀄라이즈 사용하는 방법이였는데 역시나 쉽게쉽게 사용할 수 있는게 아니였다. 구글링을 엄청 했고 그중에 찾은 블로그가 도움이 되었다 https://velog.io/@dlawogus/NodeJSExpressTypescript%EB%A1%9CSequelize%ED%99%98%EA%B2%BD%EA%B5%AC%EC%B6%95 타입스크립트 기본 셋팅 폴더 생성 깔아야 할 것들 더보기 npm init -y npm i -D typescipt tsconfig.json 만들기 npm i express @types/express sequelize..
WIL 실전 프로젝트를 진행하며 기술적으로 막혔던 부분은 무엇인가요? -이번에 진행하는 실전 프로젝트에서는 자바스크립트로 하는것이 아닌 타입스크립트로 구현을 할려고해서 공부를 했었다. 자바스크립트와는 다르게 타입을 하나하나 다 설정 해줘야하고 라이브러리도 @types/라이브러리이름 이런식으로 깔아야해서 하나하나 알아가는게 많이 버거웠던거 같다. - mysql도 자바스크립트와는 다르게 모델부분에서 큰 차이점도 보였고, npx sequelize model:generate --name 모델이름 --attributes 타입들 명령어를 터미널에 적어서 테이블을 생성 하는것이 아니였고 TypeORM으로 ts파일을 만들어서 사용을 해야하는데 초기 설정하는것이 많이 어려웠다. -OpenApi(공공데이터 포털의 고캠핑,..