전체 글

· ORM
초기 설정 - prisma 패키지 다운로드 npm install prisma @prisma/client - prisma 시작 / 초기화 npx prisma init : prisma/model , .env, gitignore 파일 생성된다. - env, prisma 변경 - prisma 모델 작성 - prisma 모델 작성 후 db 연동 npx prisma db push : 이 때 mongoose,sequelize 와 prisma의 다른점은 mongoose, sequelize는 모델/ 테이블을 수정하기 위해서 테이블을 내렸다가 다시 올려야하고 올리는 순서도 중요한데, prisma는 prisma의 모델 부분을 수정한 뒤에 다시 npx prisma db push 명령어를 사용하게 되면 테이블을 자동으로 변경할..
· ORM
개요 sequelize로 생성된 API에서 3 layered architecture로 바꾼 뒤 prisma로 변경하는 과정에서 prisma model을 생성할 일이 있었다. 상품의 status를 나타내는 부분에서 type에 enum값을 쓸 일이 있었는데 prisma 모델 설정시 enum 값을 넣는 방법을 몰라서 찾아봤는데, 블로그 글은 없고 공식 문서에만 적혀있길래 한 번 정리해봤다. (내용자체는 진짜 짧다) ENUM 값 추가하기 prisma 공식 문서에서는 다음과 같이 enum 값을 쓰라고 정리되어 있다. model User { id Int @id @default(autoincrement()) email String @unique name String? role Role @default(USER) } ..
· TIL
Node.js 주특기 심화 [11일차] 오늘 한 일 오늘도 어제에 이어 3 layered architecture로 코드를 구현하는 작업을 계속 진행했다. 어제 만들어둔 기본적인 뼈대에서 유효성이라던지 토큰발급, 에러처리, 미들웨어 작성 및 연결하는 작업을 했다. 전체적으로 만들고나서 Thunder client를 이용해 만들어둔 부분에서 에러는 없는지 작동은 잘 되는지 확인하는 시간을 가졌다. 현재 로그인, 로그아웃, 상품조회까지 잘 돌아가고 사용자 인증이 필요한 인증 미들웨어에서 문제가 걸리길래 확인하는 중이다. prisma model에 enum값 사용하기 https://yoonchan1121.tistory.com/111 [Prisma] model에 ENUM값 추가하기 개요 sequelize로 생성된 A..
· 기타
실시간 채팅방 만들기에 앞서 필요사항, 통신 방법의 종류와 특징에 대해 정리한 부분이다.
· TIL
Node.js 주특기 심화 [10일차] 오늘 한 일 어제 배운 단위 테스트 코드 작성을 바탕으로 Jest를 이용해 3 layered architecture로 구현된 코드를 리팩토링 함과 동시에 각 계층별 테스트 코드를 작성하고 배우는 시간을 가졌다. 테스트코드는 주로 mock 객체를 사용해서 db를 직접 연동하는 것 없이 작업을 진행했고 성공적으로 테스트 코드를 만들 수 있었다. 그리고 지난 숙련주차 개인과제였던 sequelize로 구현한 상품, 유저, 인증 API를 3 layered architecture로 변경한 후 prisma로 바꾸는 프로젝트를 시작했다. 폴더를 나누고 3개의 계층을 연결한 뒤 req, res가 전달되게끔 기본틀을 완성시켰다.(아직 손 볼 곳은 많음) (내일은 유효성 검사 및 에러..
· TIL
Node.js 주특기 심화 [9일차] 오늘 한 일 객체지향 프로그래밍과 객체지향 설계의 5원칙(SOLID), 아키텍처 패턴의 종류와 계층형 아키텍처 패턴 구현을 해봤다. 추가적으로 Jest 프레임워크를 이용한 간단한 테스트 코드를 작성해 보는 법을 배웠다. 아키텍처 패턴을 통해 코드의 가독성 뿐만 아니라 코드의 유지 / 보수 관리가 용이해질 수 있다는 것을 알게 되었다. 배운 부분 아키텍처 패턴 / 계층형 아키텍처 패턴 https://yoonchan1121.tistory.com/106 계층형 아키텍처 패턴(Layered Architecture Pattern) 아키텍처 패턴? 아키텍쳐 패턴은 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대를 제시한다. 각각의 시스템들과 그 역할이 정의되어 있고, 여러..
· Architecture
아키텍처 패턴? 아키텍쳐 패턴은 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대를 제시한다. 각각의 시스템들과 그 역할이 정의되어 있고, 여러 시스템 사이의 관계와 규칙 등이 포함되어 있다. 따라서, 검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능하다. 복잡한 도메인 문제를 해결할 때 아키텍처 패턴을 사용하면 모델이나 코드를 더 쉽게 변경할 수 있다는 측면에서 이점을 가질 수 있다. 대표적인 아키텍처 패턴 대표적인 아키텍처 패턴으로는 아래의 4가지를 들 수 있다. - MVC 패턴 (Model View Controller Pattern) - 계층형 아키텍처 패턴 (Layered Architecture Pattern) - 클린 아키텍처 패턴 (Clean Architecture) - 마이크로 ..
· Error
문제상황 yarn을 이용해 테스트 코드를 작성하고 테스트를 시작하려고 yarn test를 실행시켰더니 제목과 같은 에러가 발생했다. 그제와 비슷한 오류같아서 시스템 환경변수 설정을 만들어주었지만 해결되지 않았다. package.json에 jest를 실행시키기 위한 설정은 아래의 사진과 같다. 해결 문제는 생각보다 간단했다. 여러가지 블로그 글들을 참고하다보니 jest를 불러오는 경로가 문제라는 것을 깨달았다. (jest가 모듈을 잘 못 불러온다나...) 기본적으로 root directory를 상대 경로로 지정해주면 해결되는 문제이다. 기존 : node_modules/ ... 변경 후: ./node_modules/ ... (코드스니펫 진짜 싫어...) 참고 https://github.com/jestjs/j..
· Algorithm
문제 설명 제한조건 - lottos는 길이 6인 정수 배열입니다. - lottos의 모든 원소는 0이상 45이하인 정수입니다. - 0은 알아볼 수 없는 숫자를 의미합니다. - 0을 제외한 다른 숫자들은 lottos에 2개 이상 담겨있지 않습니다. - lottos의 원소들은 정렬되어 있지 않을 수도 있습니다. - win_nums은 길이 6인 정수 배열입니다. - win_nums의 모든 원소는 1이상 45이하인 정수입니다. - win_nums에는 같은 숫자가 2개 이상 담겨있지 않습니다. - win_nums의 원소들은 정렬되어 있지 않을 수도 있습니다. 입출력 예 lottos win_nums result [44, 1, 0, 0, 31, 25] [31, 10, 45, 1, 6, 19] [3, 5] [0, 0,..
윤찬님
찬이_Devlog