Nest 최신글
-
Nest
NestJS의 DI(의존성 주입)와 IoC(제어의 역전)
NestJS를 공부하다 보면 꼭 등장하는 개념이 있다.IoC (Inversion of Control, 제어의 역전)DI (Dependency Injection, 의존성 주입)Singleton (싱글턴 패턴)내가 사용했던 Spring과 비교하면서, NestJS의 DI와 IoC 개념을 쉽게 정리해 보겠다.1. 싱글턴 패턴(Singleton Pattern)이란? 👀 “하나의 클래스에 대해 하나의 인스턴스만 생성해서 공유하는 패턴” 예를 들어 계산기 클래스를 쓸 때 매번 새로 생성 X :const calc1 = new Calculator();const calc2 = new Calculator();const calc3 = new Calculator(); 싱글턴 방식 (개념적 표현):const calculato..
-
Nest
Express + RDB에서 자주 쓰이는 ORM, TypeORM
TypeORMExpress와 관계형 데이터베이스(MySQL, PostgreSQL 등)를 함께 사용할 때ORM(Object Relational Mapping)은 거의 필수적인 존재다.기존에는 Sequelize가 많이 사용되었지만, 최근에는 TypeScript의 인기와 함께 TypeORM이 주목받고 있다.TypeORM은 TypeScript 친화적인 ORM으로, 모델을 잘 설계하면 정적 타입의 장점을 최대한 활용할 수 있고,복잡한 엔티티 간 관계(1:N, N:M 등)를 직관적으로 표현할 수 있다는 강점이 있다. TypeORM의 특징- TypeScript에 최적화된 ORMEntity, Column, Relation 등을 데코레이터 기반으로 정의컴파일 단계에서 타입 오류를 잡을 수 있음IDE 자동완성, 리팩토링..
-
Nest
[Nest.js] 모듈 생성
모듈@Module () 데코레이터로 주석이 달린 클래스@Module({})export class UserModule {} @Module () 데코레이터는 ->Nest가 애플리케이션 구조를 구성하는 데 사용하는 메타 데이터를 제공합니다. 각 응용 프로그램에는 하나 이상의 모듈 (루트 모듈)이 있습니다. 루트 모듈Nest가사용하는 시작점이며 최소 1개의 모듈 존재보통 AppModule이 루트 역할@Module({ imports: [UserModule, BoardModule],})export class AppModule {} 모듈의 역할모듈은 밀접하게 관련된 기능 집합으로 구성 요소를 구성하는 효과적인 방법입니다.(기능별로 만듭니다) ex) 유저 모듈, 주문 모듈, 챗 모듈... -> 단위 모듈 같..
JAVA 최신글
-
자료구조
[Java] 컬렉션 프레임워크 List Map Set
[Java] 컬렉션 프레임워크 정리배열은 크기가 고정되어 있고, 삽입·삭제 시 많은 비용이 든다는 단점이 있다.이를 보완하기 위해 자바에서는 동적 자료구조를 제공하는 컬렉션 프레임워크를 사용한다.컬렉션 프레임워크는 자료의 삽입, 삭제, 검색이 용이하고,자료형에 상관없이 저장할 수 있으며 크기가 자동으로 증가한다.대표적인 인터페이스로는 List, Map, Set이 있다. ▣ List순서 있고, 중복 가능인덱스로 원소 접근 가능크기 가변적List 종류ArrayList배열 기반 자료구조데이터 검색 속도가 빠름중간 삽입·삭제 시 느림단방향 포인터 구조로 데이터 순차적 접근에 강점이 있다.LinkedList이중 연결 리스트 구조양방향 포인터 구조로 데이터 삽입, 삭제 빠르다.ArrayList보다 검색 느림 ..
-
자료구조
메서드 호출 및 기능 분할 (1) : a의 b 승 계산, 소수 찾기
a의 b승을 계산해라1. power를 호출하면 매개변수로 정수 a와 b의 값을 건낸다.2. 메서드 power는 매개변수 두 개의 정수 받아 m과 n으로 이름이 지어진다.3. 메서드 power는 계산결과, 즉 result이 값을 return 문을 이용해 자신을 호출한 이에게 넘겨준다.4. 메서드 power가 return문으로 넘겨준 값을 받아서 result에 저장한다. package Main;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int a = kb.nextInt(); int b = kb.nextInt(); int ..
-
Spring Boot
스프링 gemini 연결
나는 학생이라서 유료 버전을 무료로 사용하고 있는 gemini ai를 사용해 보기로 했다. 1. 먼저 여기서 api key를 받아준다.Get API key | Google AI Studio 로그인 - Google 계정이메일 또는 휴대전화accounts.google.com 2. application.yml 파일 설정 # Gemini API 설정gemini: api: key: ${GEMINI_API_KEY} 3. 키 등록디버그 옆에 점 세개를 눌러준다 -> Edit...을 눌러준다. Environment variables 칸에다가 아까 받은 gemini 키를 넣어 주면 됩니다. 혹시 이 칸이 보이지 않으신 분들은 Modify options를 눌러 추가하시면 됩니다. 작성하실 때는 아까 적은 키 이..