[TIL]

Sarahsea 사라씨·2021년 9월 2일
0

TIL

목록 보기
62/128
post-thumbnail

정규

🐬 스프린트- short.ly-mvc
Goal:bit.ly처럼 url을 단축시켜서 돌려주는 서버 구현

  • MVC 패턴 - 다양한 소프트웨어 디자인패턴의 존재, 코드 가독성, 독립성 등 효율과 유지보수를 위한 필요성
  • ORM의 개념 - 객체가 익숙한 개발자에게 RDB의 접근을 쉽게 해주는 도구
  • sequelize 기본 사용법
    • 설치, 환경설정
    • sequelize-cli 모듈
    • 모델 생성
    • 마이그레이션
    • 관계설정 📌 (테이블 추가로 하나더 생성하고 외래키 지정하는 예-마이그레이션 이용)
      api링크 - addConstraint
// 1 필요한 테이블 추가 
model:generate --name
// 2 마이그레이션 스켈레톤(새파일 생성) 
migration:generate --name
// 3-1 마이그레이션(up,down)에 테이블 추가 
queryInterface.addColumn(테이블명, 추가할컬럼명, 타입설정)
// 3-2 마이그레이션에서 제약조건 추가 ✨ (요걸몰랐네)
queryInterface.addConstraint(테이블명, 옵션)
// 마이그레이션 항상 up/down 둘다 작성해야 하고(generate/ undo), 
// down은 up의 역순으로 동작하게끔
// constraint - mysql문을 생각(UNIQUE,FOREIGN KEY,PRIMARY KEY 등)
// 주의: 다 Promise 임, async/await 비동기 처리!!

// 4 model의 각 테이블에(매치되는 해당 메소드 각 테이블에 따로) or
// index.js에 hasOne,hasMany,belongsTo,belongsToMany 등 작성
  • 라우팅 - 일반적으로 앱에서 라우팅폴더내의 파일로, 각 파일에서 해당 컨트롤러로, 필요하다면 파일을 나누어서 분기,
  • 컨트롤러 - 모델은 db와, 컨트롤러는 그 모델에서 필요한 정보를 가져와서 가공 뷰로 보내주고, 또 필요한 정보를 가공해서 모델로, (뷰:클라이언트 니까 이 스프린트에서는 x)
  • require모듈 - 경로 /슬러쉬에 파일명을 직접 지정하지 않는 경우는 해당 폴더내의 index 파일을 가져옴 - 각 파일이 무엇을 리턴하는지 잘 볼것
  • module/utils.js - 정규식을 이용해 url 형태가 맞는지 체크/
    request 모듈을 이용해 html의 타이틀 태크 내의 텍스트를 가져올수 있음 (db title컬럼에 저장 위해)
    콜백으로 타이틀을 넘겨주는 이유 (?) 아모른직다..

+ sequelize 외래키 설정, 다른 방법이 있는지
+ transaction에 대해 더 추가 공부 필요

🐬 토이: binary Heap, max / min 방식 heapSort
min heap 시각화 참고사이트 링크

🐬 코스리플렉션

  • 학습방법팁 : 직접해보기 강추, 개념(A.G) 나만의 위키화- 노션 (나중에 - 찾아볼시간 줄이도록 정리)
  • 수료후: 취업스터디 (프엔45, 백엔드17,풀스택19 정도의 비율 취업현황)
  • 프로젝트동안: 데브로그, 에러핸들링을 꼭꼭 기록해둘것, 자산
  • 뭐든 부딪치고 도움을 구하라/ 하지만 스택오버플로우 등 스스로 해결연습

+ 재미, 하고싶은 플젝 아이디어 적어두고 취미로 구현해보기
++ 개발자 로드맵 따라 포폴 사이트 만들어 볼까나, 수료후 학습 지표

개인

  • react -실습, 간단 게임 tictactoc 구현

    • 클래스에서 함수형으로 변환 ing
    • 트위틀러spa 참고 - 언더더씨
  • 알고리즘 : lv1 2개

    • replaceAll
    • regex
    • map/reduce 옵션을 좀 더 잘 활용하자 idx랄지, 순회 횟수를 줄이도록 가급적 한번 순회할때 같이 처리할 것들 생각
    • 수도코드, 가독성

내일은

  • NoSQL : 지난 학습 때, 혼공이라 제대로 안한듯, 다시 잘보자
  • 리액트 킵고잉
profile
생각하는 사람

0개의 댓글