일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이펙티브 타입스크립트
- node.js
- 타입챌린지
- typeorm
- type-safe configservice
- microsoft azure openai
- 2024년 회고록
- nestjs
- TypeScript 타입챌린지
- 굿바이 2024년
- 코딩테스트
- 타입 챌린지
- 해커톤
- 월간cs
- HTTP
- configservice
- mysql boolean
- TypeScript
- npm
- 타입스크립트
- 스터디
- Type Challenge
- 백엔드
- 와글와글
- typescript type challenge
- mysql
- 회고록
- network
- configmodule
- 회고
- Today
- Total
목록전체 글 (60)
iamkanguk.dev

오늘부터 인프런에 올라와있는 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 들어보려고 한다. 그 중에 첫번째 강의에서 IP에 대해서 설명해주셨는데 한번 간단하게 정리를 해보면 좋을 것 같아서 정리를 하게 되었다. 해당 포스팅은 김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 토대로 작성되었습니다. 모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술 www.inflearn.com IP (Internet Protocol) 인터넷 프로토콜은 송신 호스트와 수신 호스트가 패..

최근에 프로젝트를 하는 도중에 보일러 플레이트를 조금씩 만져보고 있는데.. 내가 놓치고 있던 부분이 있었다. 그냥 아무생각 없이 app.use(helmet()) 을 사용하고 있던 것이다. 정확히 helmet이 무엇이고 어떤 기능을 하는지를 놓치고 있는 것 같아서 이렇게 정리해보려고 한다. 참고로 Nest에서 helmet을 적용하는 것은 진짜 일도 아니다. 위처럼 app.use로 적용해주면 끝이다. 이 포스팅은 [Project] 프로젝트 삽잘기30 (feat helmet 구성) 글을 주로 참고했습니다! 좋은 글이니 한번씩 들어가셔서 읽어보시면 좋을 것 같습니다. [Project] 프로젝트 삽질기30 (feat helmet 구성) 들어가며 NestJS로 개발하면서, 외부로부터 오는 해커들의 공격에 어떻게 대..

오늘은 그냥 가벼운 마음으로 한번 블로그에 써놔야겠다 했었던 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. 처음 필자가 생각한 로직 일단 설명하기 전에 ..