Wecode -기업협업 인턴 (부트캠프)/기업협업 인턴(프로젝트) 22

soft delete로 short url 삭제 추가 (orm, queryBuilder)

url.service orm 쓰는 방법 찾은 URL 엔터티의 deletedAt 속성을 현재 날짜 및 시간으로 설정합니다. 이것은 소프트 삭제(soft delete)의 일종으로, 실제로 데이터를 삭제하는 대신 삭제 시각을 기록하여 데이터를 보존하는 방식 위에서, 혹시 deletedAt에 해당되는 칼럼을 만들어주지 않은 상태라면 entity 를 통해 만들 수 있다. (나는 mysql로 처음부터 만들었다,, 근데, 아래와 같이 name 을 추가할 수 있길래 name으로 칼럼명을 바꿔서 코드를 쳐보니, sync가 되어 있어서인지 데이터베이스에 연결되어 반영되었다) createQuery Builder로도 가능하다 query builder던 urlEntity 에서 findOne으로 가져온다는건, select한다는거..

기업협업 2번째 프로젝트: 프론트엔드와 통신 시, cors error 해결

Documentation | NestJS - A progressive Node.js framework Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea docs.nestjs.com 공식문서 참고해서 코드 한 줄이면 된다. app.enableCors(); (Npm 패키지 안에 들어 있을 것이기에. 그렇기..

기업협업 2번째 프로젝트: 추가보완

Exception filter 1. 파일 새로 생성 HttpExceptionFilter 라는 예외 필터를 생성 2. main.ts 파일에서 애플리케이션에 이 필터를 적용 3. 예외를 발생시키는 서비스에서 해당 예외를 던진다 service파일 왜냐하면 여기에서 이렇게 쓰이니까 에러 메세지 -> 확인 controller 성공하면, 에러이면, 왜냐하면 service에서 이렇게 설정했기에 Util -> service에 있는 함수 그대로 빼서, 연결은 import 파일을 만들어서, service에 있는 함수 그대로 복사, export만해주면 된다. 원래 있던 service에는 import query builder던 urlEntity 에서 findOne으로 가져온다는건, select한다는거니까 = orm 쓰는 것...

기업협업 2번째 프로젝트 설명 및 구조화

Util -> 함수 그대로 빼서, 연결은 import 혼자 환경세팅, 데이터베이스 연결, crud, API 한바퀴 도는 거 = 그래야 구조를 아니까 Status code -> 프론트가 그대로 내보내 줄 수도 있고, 메세지를 바꿔서 줄 수도 있고 Http Exception filter를 하면status code별 메세지를 일일이 보내줄 필요 없지 내가 적어준 에러 메세지가, 터미널/postman에 떠야 하는거죠? console.log로 찍어서 확인하거나, postman에 response를 보내니까 찍히지 -> res.error로 내가 코드를 써야 postman에 response를 찍힘 🙌 short Url의 활용 어느 서비스에서나 쓰일 수 있는 url 주소 단축 기능은, 주로 주소 복사 및 공유할 때 쓰입..

기업협업 2번째 프로젝트: short url 통신 성공

api는 urlController. 전체 url.controller body 값은 urlService short url 생성 전에, 확인해야 할 작업이 있다. 에러 핸들링 : user ip 로 하루 30회 short url 변환 가능 횟수 확인 - userIp와 일치하는 거를 가져와라 const today = new Date(); today.setHours(0, 0, 0, 0); if 30회 이상이면, 에러 실제로 에러를 내보면, 아래 postman을 보면, userIp : r234로 30회 이상 만들었기에 아래와 같은 메세지가 뜬다 만약 위 단계를 통과했다면, 이제 create short url 가능 우리는 short url 에 디폴트 값으로 http://localhost:3000/를 도메인 부분으로 ..

기업협업 2번째 프로젝트- 4일차 shorturl 생성 기능 api 작성 (service 추가,repository)+ 에러 모음

생각해보니, [칼럼에 Unique 제약 조건을 추가] ALTER TABLE dblog ADD CONSTRAINT unique_shortUrl UNIQUE (shortUrl); terminal 말고 dBeaver에서도 바로 수정 가능했다. 각종 오류 모음 TypeScript에서는 늘 타입을 지정해주는지 알았는데, 받아올 때만 형태를 지정해주고, 사용할 때에는 필요 없다. alnum을 alum으로 스펠링 오류 shortUrl을 shrotUrl urlEntity를 UrlEntity ...... 이런 실수들로 에러들이 많이 난다. return을 하지 않아서 난 오류 --> "function generateUniqueShortUrl(length: number): string {에 대해서, 다음과 같은 에러가 떴어..

기업협업 1번째 프로젝트 - 프론트와 통신

admin 로컬 폴더에서, admin 깃허브 브랜치를 pull 받고 npm run으로 서버 키고 (그러면 자동으로 localhost:3300으로 창이 띄어진다) nest ( 백엔드) 로컬 폴더에서도 npm run start:dev로 서버 키면, 로그인 가능하고 관리자 목록 조회, 관리자 목록에서 삭제/ 해제 / (새로고침하지 않아도 바로 반영되는 '랜더링'기능) / 관리자 등록 (create) 가능하다. 그리고, 내 정보에서 상세페이지 조회해서, 수정 가능하다.

기업협업 2번째 프로젝트- 3일차 shorturl 생성 기능 api 작성 (service, controller)

Entity service const today = new Date(); today.setHours(0,0,0,0); const urlCount = await this.urlRepo .createQueryBuilder('url') .where('url.userIp = :userIp', { userIp }) .andWhere('url.createAt >= :today', { today }) .getCount(); ---> userIp로 하루 short URL 변환 횟수 확인 const urlCount = await this.urlRepo .createQueryBuilder('url') .where('url.userIp = :userIp', { userIp }) .andWhere('url.createAt >..

기업협업 - 2번째 프로젝트: 3일차 [전체 초기세팅 하는법]-추가 ormconfig.js

api를 짜다보니 ormconfig.js 가 필요하겠단 생각이 들어서 추가하기 github에 개인 정보, 비밀번호가 올라갔을 경우 [reset --hard], local commit 내역으로 확인! 현재 나의 문제 상황: github remote 에 내 데이터베이스 비밀번호가 올라가 있다. 내가 한 액션: 1. 로컬에서 ormconfig.js 파일 생성, gitignore 에 ormconfig.js를 추가한 뒤 2. git add, git commit, push 3. 깃허브 브 pm-developer-justdoit.tistory.com 초기세팅 순서 nest new 프로젝트 생성 의존성 설치 ormconfig.js entity repository service controller module main...

기업협업 2번째 프로젝트: 깃허브 브랜치 에러 해결

나는 지금 같은 깃허브 레포 안에 있어, 초기세팅 브랜치와 url 기능 브랜치를 둘다 만들었어, url 기능 브랜치 안에는 초기세팅이 들어있어, 이후에 초기세팅 브랜치를 내가 수정했어, 이게 Url 기능 브랜치에 반영됐으면 좋겠어, 어떻게 해 (원래 같았으면 깃허브 브랜치 띄어놓고, 복사 붙여넣기 하나하나 했는데 혹시 방법 이 있는지 하고 물어봤다)