chaesunbak 님의 블로그
close
프로필 사진

chaesunbak 님의 블로그

github: @chaesunbak

  • 분류 전체보기 (33) N
    • 회고 (12)
    • 트러블슈팅 (4)
    • 위키 (12) N
    • 후기 (1)
    • 분석 (4)
  • 홈
  • 태그
  • GitHub
NestJS 유효성 검사 동작원리 딥다이브 : 왜 interface 대신 class를 사용할까?

NestJS 유효성 검사 동작원리 딥다이브 : 왜 interface 대신 class를 사용할까?

Nestjs란?NestJS는 TypeScript를 기반으로 강력하고 확장 가능한 서버 애플리케이션을 구축할 수 있게 해주는 Node.js 프레임워크다. 특히 Spring Framework와 유사한 의존성 주입(DI), 모듈 시스템 등은 대규모 프로젝트의 구조를 체계적으로 관리하는 데 큰 강점이 있다.의존성 주입(DI)이란?의존성 주입이란 클래스가 필요로 하는 의존성(다른 클래스의 인스턴스 등)을 내부에서 직접 생성하는 것이 아니라, 외부(NestJS 모듈)에서 주입받아 사용하는 디자인 패턴이다. 이를 통해 코드 간의 결합도를 낮추고 테스트 용이성과 재사용성을 높일 수 있다.Pipe를 통한 유효성 검사NestJS의 여러 기능 중, 파이프는 컨트롤러의 핸들러로 들어오는 요청 데이터를 처리하는 역할을 하며, ..

  • format_list_bulleted 분석
  • · 2025. 6. 22.
Supabase + 임베딩으로 비슷한 문장 찾아주기

Supabase + 임베딩으로 비슷한 문장 찾아주기

임베딩 활용하여 추천 서비스 만들기사용자가 인상 깊은 문장을 수집하면, 비슷한 문장을 수집한 다른 사용자와 연결해주는 서비스 글모이를 개발하면서 문장간 유사도 비교를 위해서 문장을 벡터로 변환하는 '임베딩(Embedding)' 기술을 사용하여, 생성된 임베딩 벡터를 데이터베이스에 저장할 필요가 있었다.임베딩(Embedding)이란 단어나 문장 같은 텍스트 데이터를 컴퓨터가 처리하고 이해할 수 있는 숫자 형태, 즉 벡터(Vector)로 변환하는 기술이다. 이 벡터는 고차원 공간(수많은 차원을 가진 가상의 공간)에 표현되는데, 이때 의미적으로 유사한 단어나 문장은 이 공간에서 서로 가까운 위치에 배치된다.예를 들어, "사과"와 "배"는 과일이라는 공통점 때문에 벡터 공간에서 가깝게 위치하고, "자동차"와 "..

  • format_list_bulleted 회고
  • · 2025. 6. 16.
독학사 컴퓨터공학 2과정 시험 후기와 팁

독학사 컴퓨터공학 2과정 시험 후기와 팁

학점은행제로 컴퓨터공학 학위를 취득하기 위해 독학학위제 전공기초과정(독학사 2과정) 시험에 응시했다. 학위 취득 과정을 기록하고, 시험을 준비하는 분들께 도움이 될 만한 정보를 공유하고자 후기를 작성해본다.결과약 2주간 하루 1~2시간을 투자해 8과목 중 7과목에 합격했다.공부방법기초 지식으로는 이전에 정보처리기사 자격증을 준비하고 코딩 테스트를 연습했던 경험이 있었다.교재는 (ebook, 18,900원) 을 선택했다. ebook으로 구매해 주로 태블릿으로 학습했고, 이동 중에는 스마트폰을 활용했다. 이해가 어려운 부분은 여러 유튜브 강의 영상을 참고하며 보충했다.시험문제는 대부분 교재의 문제와 비슷하게 나오는 것 같다. 교재에 나온 기출문제와 연습문제를 쉽게 풀 수 있다면 가볍게 합격할 수 있어 보인..

  • format_list_bulleted 후기
  • · 2025. 6. 10.
Tailwind CSS 4.0 주요 변경점 정리 : CSS 우선 설정 (굿바이 config.ts)

Tailwind CSS 4.0 주요 변경점 정리 : CSS 우선 설정 (굿바이 config.ts)

Tailwind CSS 4.0 정식 출시2025년 1월 Tailwind CSS 4.0이 정식 출시되었다. 이번 업데이트에서는 성능과 편의성 개선 뿐만아니라, 설정 방식이 크게 변경되었다. 따라서, 이번 포스팅에서는 4.0 버전의 변경사항을 간략히 정리하고, 설정 방식이 어떻게 변경되었는지 그것이 시사하는바는 무엇인지 정리해보려고 한다.주요 변경점CSS 우선 구성 (CSS First Configuration): tailwind.config.js에서 벗어나 CSS 파일 내에서 직접 설정을 관리합니다.간소화된 설치Rust 기반 Lightning CSS 엔진 도입을 통한 빌드 성능 개선새로운 유틸리티 클래스 추가CSS 우선 구성(CSS First Configuration)Tailwind CSS 4.0에서 가장 ..

  • format_list_bulleted 위키
  • · 2025. 5. 29.
Supabase 타입스크립트 완벽 가이드 : 타입 생성부터 활용까지

Supabase 타입스크립트 완벽 가이드 : 타입 생성부터 활용까지

Firebase 대체제로 주목받고 있는 Supabase는 PostgSQL에 기반한 오픈소스 프로젝트다. Supabase를 사용하면 보다 빠르게 인증, DB 등을 구현할 수 있다. Supabase는 데이터베이스 스키마에서 타입스크립트 타입을 추출할 수 있는 강력한 기능을 제공하며, 이는 개발자가 타입을 일일히 작성해야하는 수고로움을 줄여 매우 유용하다. 이 글에서는 Supabase로 프로젝트를 진행하며 학습한 Supabase의 타입 생성 방법과 실제 활용법을 정리하고 공유한다.타입 생성하는 2가지 방법대쉬보드에서 다운로드받기Supabase 프로젝트 대시보드에 접속한 후, 좌측 메뉴에서 API Docs > TABLES AND VIEW > Introduction 선택Generate and download ty..

  • format_list_bulleted 위키
  • · 2025. 5. 14.
React.memo()로 무거운 컴포넌트의 불필요한 리렌더링 막기

React.memo()로 무거운 컴포넌트의 불필요한 리렌더링 막기

AI 어시스턴스 앱을 개발하면서 채팅 UI를 구현하면서, 사용자와 어시스턴트 간의 대화 메시지를 보여주는 Message 컴포넌트를 만들었다. 메시지 목록은 부모 컴포넌트인 Chat 컴포넌트가 배열 상태(messages)로 관리하며, 이 배열을 순회하며 각 Message 컴포넌트를 렌더링한다.//Chat.jsximport { useState } from "React";import { Mesasge } from "./Message.jsx"export fucntion Chat(){ const [messages, setMessages] = useState([]); ... return ( ... {messages.map((message) => ( ..

  • format_list_bulleted 회고
  • · 2025. 5. 4.
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • navigate_next
Copyright © chaesunbak All rights reserved. Powered by Tistory.

티스토리툴바