일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- type-safe configservice
- 코딩테스트
- 스터디
- HTTP
- npm
- nestjs
- 회고록
- 회고
- 와글와글
- node.js
- 이펙티브 타입스크립트
- Type Challenge
- network
- type challenge equal type
- 2024년 회고록
- TypeScript 타입챌린지
- 타입스크립트
- configmodule
- equal 타입
- typescript type challenge
- configservice
- 굿바이 2024년
- typeorm
- 월간cs
- 백엔드
- 타입 챌린지
- microsoft azure openai
- TypeScript
- 타입챌린지
- 해커톤
- Today
- Total
목록전체 글 (58)
iamkanguk.dev
오늘은 그냥 가벼운 마음으로 한번 블로그에 써놔야겠다 했었던 RDBMS와 NoSQL은 각각 무엇이고, 장단점은 무엇이 있을지 한번 쭈욱 정리해보려고 한다. 약간 이제... 면접 준비용? 이라고 할 수 있겠다 ㅎㅎ! DB와 SQL 그리고 DBMS - DB는 컴퓨터 시스템에 전자방식으로 저장되어 있는 구조화된 정보 또는 데이터의 체계적인 집합을 말한다. - SQL은 Structed Query Language의 약자로 관계형 데이터베이스 관리시스템인 RDBMS의 관리를 위해 제작된 언어이고, 자료의 검색과 재조합 그리고 스키마 생성등 데이터베이스 객체의 접근을 조정하고 관리하기 위해 나온 개념이다. - DBMS는 Database Management System의 약자로 사용자와 데이터베이스 사이에서 사용자의 ..
최근에 Hard-Delete에서 Soft-Delete로 변경하면서 repository method와 entity 쪽에 전반적으로 변경이 일어났는데.. 오늘 개발한 API들을 점검하면서 글 제목과 같이 에러가 발생했다. JoinColumns는 FK를 연결할 때 쓰는건데 아무리 봐도 잘못된 부분이 없는데 어디가 문제인지 도저히 모르겠는 것이다. 위의 에러는 Soft-Delete를 하는 과정에서 발생한 이슈이다. 필자가 참여하고 있는 프로젝트에서는 Schedule과 ScheduleArea 엔티티가 각각 있다. 기존 고드를 제공해보겠다. // ScheduleEntity @OneToMany( () => ScheduleAreaEntity, (scheduleArea) => scheduleArea.scheduleId,..
오늘은 약 3일 동안 개-고생을 한 것에 대해서 블로그를 써보려고 한다. 고생을 한 내용은....? 필자는 Nest에서 특별한 경우가 아니고서는 Response DTO를 만들어서 반환한다. 이때 Expose와 Exclude 메서드를 사용한다. 그리고 최근에는 Get 메서드에 대해서 캐싱을 시도해보고 있는데 이 부분에 있어서 있었던 이슈를 공유해보고자 한다. Response DTO에 Class-transformer의 Expose와 Exclude 사용 import { Exclude, Expose } from 'class-transformer'; import { MarkCategoryDto } from './mark-category.dto'; export class GetMarkCategoriesRespons..
필자는 Nest를 개발할 때 Service와 Repository를 거쳐온 결괏값을 Client로 반환할 때 Response DTO 객체로 만들어서 Controller 계층으로 넘기고 Controller에서 클라이언트로 결괏값을 반환할 때 ResponseEntity 객체에 넣어서 반환한다. ResponseEntity를 사용한 이유는 무엇인가요? ResponseEntity는 뭐 특별한 라이브러리나 그런것이 아니다. 원래 초기에는 개발할 때 그냥 return { age: 10, name: '' } 이런 식으로 했었는데 가시성 측면으로도 좋지 않아 보였고, 추후 유지보수적으로도 좋지 않다고 생각했다. Response DTO를 도입한 것도 그 이유다. 그래서 뭔가 객체를 하나 만들어서 반환해준다면 코드적으로 더욱..
지금 NestJS 커뮤니티에 들어와 있는데 samchon 님이 개발하신(?) Nestia 라이브러리를 다들 많이 사용하시는 것 같아서 나도 프로젝트 하면서 부담가지지 않으면서 생각날때마다 조금씩 해보려고 한다. 개인적으로 문서를 보는 능력이 많이 부족하다고 생각되어서 문서를 보면서 직접 공부겸 프로젝트를 해보는 경험도 해보려고 한다. Nestia란? Nestia는 NestJS를 위한 helper library 라고 할 수 있다. Nestia를 사용하게 되면 다음과 같은 도움을 받을 수 있다고 한다. - class-validator에서 런타임 유효성 검사기는 기존보다 20,000배 빠르다. - class-transformer에서 JSON Serialization은 기존보다 200배 빠르다. - Swagge..
지금 하는 맵필로그 프로젝트 이전에는 모두의 여행, 트리퍼라는 프로젝트를 했는데, 그 프로젝트는 express와 javascript로 개발을 했었다. 단순히 express로 개발을 할 때는 DTO와 Entity 그리고 OOP에 대해서는 진짜 아예 사용하지도 않았고 무지했던 것 같다. 하지만, Nest를 시작해 보면서 자연스럽게 DTO와 Entity를 알아야 했고, 프레임워크 특성상 OOP의 개념도 가지고 있어야 개발에 차질이 없을 것 같아서 이렇게 공부를 시작하게 되었다. 그래서 이번 포스팅에서는 DTO와 Entity 개념이 간단하게 무엇인지, 그리고 Nest에서 그 둘의 상관관계에 대해서 알아보도록 하자. Entity Entity는 실제 DB 테이블과 매핑되는 핵심 클래스이고, 데이터베이스 테이블에 있..
async findMarkOnSpecificId( mark: MarkDto, ): Promise { const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect(); await queryRunner.startTransaction(); try { const markCategoryName = await this.markCategoryRepository.findOne({ select: { title: true, }, where: { id: mark.getMarkCategoryId, status: StatusColumnEnum.ACTIVE, }, }); // metadata 부분 조회하기 const markMetadatas ..
최근에 express를 가지고 프로젝트를 진행해보고 요즘에는 Node.js 기반 백엔드 개발하시는 분이시라면 알고 계시는 NestJS를 가지고 프로젝트를 시작해 봤다. 프로젝트의 주제는 캘린더 기능 및 일정을 기록할 수 있는 애플리케이션이다. 모임 기능도 있지만 모임 기능은 추후 2차 개발에서 진행될 계획이다. 서론은 이정도로 마치고 캘린더 화면을 어떻게 구현을 했는지, 어떻게 마무리를 했는지에 대해서 쭉 정리를 해보려고 한다. 참고로 길이 아주 길 수 있으니,,, 참고! 캘린더 화면 사진을 보시면 달력에 일정블록들을 배치할 수 있는 그런 화면이다. 일정이 추가될 때마다 유동적으로 블록을 잘 배치해줘야 하는 부분이 제일 골치 아픈 부분이다. 구현 스토리 1. 처음 필자가 생각한 로직 일단 설명하기 전에 ..