TIL

· TIL
Node.js 백오피스 프로젝트 [1일차] 오늘 한 일 이번에는 prisma와 MySQL을 사용하여 실제로 배포하여 사용할 수 있는 pet sitter 서비스를 만드는 프로젝트를 시작하게 되었다. 오전 코드카타와 새로운 프로젝트에 대한 발제 시간, 팀원들과 회의하는 시간을 가졌고 오후에는 팀 계획표, 코드작성 규칙, API 명세서 작성, ERD 작성, 와이어프레임 작성하는 시간을 가졌다. 저녁에는 주어진 내용들을 기반으로 코드를 작성하는 시간을 가졌는데 내가 오늘 맡은 부분은 사용자가 마음에 드는 pet sitter를 선정하고 원하는 날짜에 예약을 할 수 있도록하는 reservation API CRUD 구현을 맡게 되었다. 배운 부분 prisma의 dateTime 타입 데이터 넣기 prisma 의 데이터..
· TIL
Node.js 주특기 심화 [14일차] sequelize를 3-layered architecture로 바꾸고 prisma로 변경하는 작업을 마무리 했다. 그리고 피드백 나온 부분을 수정하는 시간을 가졌다. 생각보다 에러난 부분을 찾는 시간이 많았던 것 같다. 확실히 mongoose를 sequelize로 바꿀때보다 sequelize를 prisma로 바꾸는게 훨씬 편했다. 아마 3-layered architecture로 바꿨기 때문에 모델 / 테이블 부분과 repository부분의 메서드만 바꿔주면 되서 편했던 것 같다. 하지만 API 를 구분함에 있어 여러가지 고민 사항들이 많았는데 잘 해결한 것 같다. 주어진 코드로 진행했기 때문에 아쉬운 부분은 조금 남지만 이번 주 남는 시간 틈틈히 리팩토링 해보는 시..
· 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) 아키텍처 패턴? 아키텍쳐 패턴은 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대를 제시한다. 각각의 시스템들과 그 역할이 정의되어 있고, 여러..
· TIL
Node.js 주특기 심화 [8일차] 오늘 한 일 오늘은 어제 prisma로 만든 기본 API 뼈대에서 게시글 API 구현 및 게시글에 해당하는 댓글 API를 구현했다. (게시글, 댓글 CRUD) 거기에 더해 트랜잭션(Transaction)에 대해 배우고 트랜잭션을 이용하여 리팩토링, express-session 패키지를 이용해 jwt대신 session으로 리팩토링하는 작업을 했다. 배운 부분 1. 트랜잭션(Transaction) : 트랜잭션이란 작업의 완전성을 보장해주기 위해 사용되는 개념이다. 특정한 작업을 전부 처리하거나, 전부 실패하게 만 들어 데이터의 일관성을 보장해주는 기능이다. 트랜잭션의 특징으로 ACID가 있는데, Atomicity(원자성), Consistency(일관성), Isolatio..
· TIL
Node.js 주특기 심화 [7일차] 오늘 한 일 오늘은 prisma를 이용한 API 설계 및 쿠키와 세션, 토큰을 직접적으로 보내는 법, winston 패키지를 이용한 로그 미들웨어 만들기를 배웠다. 조금은 큰 단원들을 빠르게 배우다보니 전체적인 정리는 힘들 것 같고, 중간에 중요하고 기억해야 할 필요가 있다고 생각해서 메모해뒀던 부분들을 파편적으로라도 적어두려고 한다. 배운 부분 1. 얼마 전 프로젝트를 구현하며 헷갈렸던 cookie 전달에 관련한 부분 cookie의 key값으로 name, value값으로 sparta를 넣어두었을 때, res.cookies로 보낸 쿠키는 req.headers.cookies로 받을 수 있다. 이 때, 받은 쿠키 값의 형태는 name=sparta와 같은 형태를 지니기 때..
· TIL
Node.js 주특기 심화 [4일차] 기념할 일 사실 오늘은 아니고 어제 프로그래머스 1300점에 도착했다. 집중 안되고 피곤할 때마다 조금씩 풀어봤는데 점수가 꽤나 쌓인 것 같아 기분이 좋다. 오늘 한 일 오늘은 prisma 사용시 기본 설정과 prisma를 이용한 테이블 생성 및 조회, 등록, 수정, 삭제 API를 만들어봤다. 신기했던게 지금까지 사용해왔던 ORM ODM 중에 제일 쉬웠던 것 같다. 실제로 mongoDB나 MySQL을 쓸 때 사용했던 mongoose 나 sequelize 같은 경우에는 스키마와 모델, 마이그레이션과 모델을 굳이 왜 나눴지? 한 번에 조건을 설정해주고 DB와 연동된 javascript 부분을 다루면 되는거 아닌가? 라는 생각이 들었었다. 하지만 prisma는 내가 생각하..
· TIL
Node.js 주특기 심화 [3일차] 오늘은 sql 구문으로 vscode에서 테이블을 만들고 수정하고 삭제하는 것에 대해서 배웠다 많이 써보긴 했는데 아직 확실하게 머릿속에 들어온 부분은 아니라 내일 완벽해지면 정리해야겠다. 오늘 알고리즘 스터디를 하며 평소에 써보지 못했던 메서드 몇 개를 접하게 되었다. 조금 신기하기도 하고 낯설기도 해서 몇 개 정리해보려 한다. Math.abs() parameter에 들어온 값을 절대값으로 리턴해주는 메서드이다. join() join 메서드는 배열의 모든 요소를 연결해 하나의 문자열로 만들어주는 메서드이다. join안에 특정 문자열을 넣어 배열의 요소를 연결할 때 중간 중간에 join에 넣었던 문자를 끼워넣을 수 있다. const elements = ['Fire', ..
윤찬님
'TIL' 카테고리의 글 목록 (3 Page)