분류 전체보기
-
최근 Github Trending 탭을 구경하다가 신기한 프로젝트가 나와 소개해드리려 글을 쓰게 되었습니다. 바로 Spotube라는 오픈소스 프로젝트인데요. 무려 Spotify 프리미엄을 구독하지 않고도 Spotify 계정을 사용하여 크로스 플랫폼, 즉 여러 기기(데스크탑, 핸드폰)에서 "Spotube"라는 플레이어를 사용하여 무료로 음악을 들을 수 있는 프로그램인 것입니다. Star 히스토리를 보시면 아시겠지만 갑자기 폭등한 것을 볼 수 있습니다. 이 애플리케이션은 Spotify의 데이터를 사용하여 음악을 식별하지만 오디오 자체는 Youtube에서 스트리밍을 한다는 굉장히 신기한 구조를 가지고 있습니다. Spotify API를 사용하여 대량의 음악 목록을 관리하고 이를 Youtube API를 통해 오디..
[IT 소식] Spotube - 무료로 이용하는 Spotify? Youtube Music? (무료 음악 플레이어)최근 Github Trending 탭을 구경하다가 신기한 프로젝트가 나와 소개해드리려 글을 쓰게 되었습니다. 바로 Spotube라는 오픈소스 프로젝트인데요. 무려 Spotify 프리미엄을 구독하지 않고도 Spotify 계정을 사용하여 크로스 플랫폼, 즉 여러 기기(데스크탑, 핸드폰)에서 "Spotube"라는 플레이어를 사용하여 무료로 음악을 들을 수 있는 프로그램인 것입니다. Star 히스토리를 보시면 아시겠지만 갑자기 폭등한 것을 볼 수 있습니다. 이 애플리케이션은 Spotify의 데이터를 사용하여 음악을 식별하지만 오디오 자체는 Youtube에서 스트리밍을 한다는 굉장히 신기한 구조를 가지고 있습니다. Spotify API를 사용하여 대량의 음악 목록을 관리하고 이를 Youtube API를 통해 오디..
2024.01.24 -
데이터베이스와 데이터베이스 연결을 지원하는 ORM 모듈을 사용하는지 여부에 따라 CRUD 생성 프로젝트 수준이 달라지게 됩니다. NestJS CLI가 제공하는 framing은 굉장히 강력하기 때문에 데이터베이스를 사용하지 않는 수준에서 CRUD 프로젝트를 만든다면 5분이 채 걸리지 않을 수 있습니다. 이번 포스팅에서는 데이터베이스를 사용하는 방식과 그렇지 않은 방식으로 CRUD API를 손쉽게 만들어보는 방법에 대해서 알아보도록 하겠습니다. 1. 데이터베이스를 사용하지 않는 5분 버전 CRUD 1-1. 프로젝트 생성 우리는 NestJS CLI를 통해서 특정 기능의 CRUD 코드 구조를 곧바로 생성해낼 수 있습니다. 다음 명령어를 입력하여 우선 프로젝트를 생성해줍시다. nest new crud-projec..
[NestJS] NestJS CLI로 REST API를 사용한 CRUD 기능 만들기(5분버전 vs. 심화버전) with TypeORM & MySQL데이터베이스와 데이터베이스 연결을 지원하는 ORM 모듈을 사용하는지 여부에 따라 CRUD 생성 프로젝트 수준이 달라지게 됩니다. NestJS CLI가 제공하는 framing은 굉장히 강력하기 때문에 데이터베이스를 사용하지 않는 수준에서 CRUD 프로젝트를 만든다면 5분이 채 걸리지 않을 수 있습니다. 이번 포스팅에서는 데이터베이스를 사용하는 방식과 그렇지 않은 방식으로 CRUD API를 손쉽게 만들어보는 방법에 대해서 알아보도록 하겠습니다. 1. 데이터베이스를 사용하지 않는 5분 버전 CRUD 1-1. 프로젝트 생성 우리는 NestJS CLI를 통해서 특정 기능의 CRUD 코드 구조를 곧바로 생성해낼 수 있습니다. 다음 명령어를 입력하여 우선 프로젝트를 생성해줍시다. nest new crud-projec..
2024.01.24 -
1. Swagger 시작 API 개발 시에 개발할 API에 대한 정보를 시각적으로 표현된 것을 보기 위해서 종종 API 문서를 만들곤 합니다. Swagger라는 open-source 툴을 통해 이러한 작업을 할 수 있는데 NestJS에서도 Swagger와 관련된 라이브러리를 지원하기 때문에 이를 사용하여 API 문서화와 각 엔드포인트에 대한 테스팅을 진행하는 방식에 대해서 알아보도록 하겠습니다. 1-1. Swagger를 사용하는 이유 OpenAPI 사양은 언어에 구애받지 않는 정의 형식으로 RESTful API를 설명하는 데 사용됩니다. Nest는 데코레이터를 활용하여 이러한 사양을 생성할 수 있는 전용 모듈을 제공합니다. Swagger는 일반적으로 RESTful API를 디자인하고 구축하고 문서화할 때..
[NestJS] NestJS에서 Swagger 사용법 (feat. API Documentation)1. Swagger 시작 API 개발 시에 개발할 API에 대한 정보를 시각적으로 표현된 것을 보기 위해서 종종 API 문서를 만들곤 합니다. Swagger라는 open-source 툴을 통해 이러한 작업을 할 수 있는데 NestJS에서도 Swagger와 관련된 라이브러리를 지원하기 때문에 이를 사용하여 API 문서화와 각 엔드포인트에 대한 테스팅을 진행하는 방식에 대해서 알아보도록 하겠습니다. 1-1. Swagger를 사용하는 이유 OpenAPI 사양은 언어에 구애받지 않는 정의 형식으로 RESTful API를 설명하는 데 사용됩니다. Nest는 데코레이터를 활용하여 이러한 사양을 생성할 수 있는 전용 모듈을 제공합니다. Swagger는 일반적으로 RESTful API를 디자인하고 구축하고 문서화할 때..
2024.01.23 -
이제 드디어 NestJS로 어떻게 백엔드 서버를 만들 수 있는지에 대해 알아보도록 하겠습니다. NestJS는 강력한 typing, interfaces, decorator와 같은 기능을 추가하는 TypeScript를 기반으로 구축됩니다. NestJS는 Angular로부터 강한 영감을 받았고 실제로 Dependency Injection, modules, controller와 같은 대부분의 동일한 기능들을 제공합니다. Angular의 이러한 요소는 확장가능하도록 디자인 되어 개발자들이 NestJS의 기능을 확장하기 위해 자기들의 모듈과 플러그인을 만들 수 있다는 것을 의미합니다. 이번 포스팅에서는 NestJS 공식문서를 참고하여 우리가 앞서 배워왔던 개념들을 실제로 어떻게 적용할 수 있는지, 코드 위주로 살..
[NestJS] NestJS 시작 (설치 & 구성요소 맛보기)이제 드디어 NestJS로 어떻게 백엔드 서버를 만들 수 있는지에 대해 알아보도록 하겠습니다. NestJS는 강력한 typing, interfaces, decorator와 같은 기능을 추가하는 TypeScript를 기반으로 구축됩니다. NestJS는 Angular로부터 강한 영감을 받았고 실제로 Dependency Injection, modules, controller와 같은 대부분의 동일한 기능들을 제공합니다. Angular의 이러한 요소는 확장가능하도록 디자인 되어 개발자들이 NestJS의 기능을 확장하기 위해 자기들의 모듈과 플러그인을 만들 수 있다는 것을 의미합니다. 이번 포스팅에서는 NestJS 공식문서를 참고하여 우리가 앞서 배워왔던 개념들을 실제로 어떻게 적용할 수 있는지, 코드 위주로 살..
2024.01.22 -
NestJS는 기본적으로 NodeJS 기반에서 동작합니다. 그렇기에 자연스레 NodeJS의 동작 방식에 큰 영향을 받았는데요. NestJS에서는 Express.js를 기본적으로 사용하기 때문에 이번 포스팅에서는 Node.js와 Express.js에 대해서 알아보는 시간을 가져보도록 하겠습니다. 1. Node.js 1-1. Node.js 철학 모든 프로그래밍 플랫폼은 각자 자신들만의 철학과 각종 커뮤니티에서 관례로 따르는 일련의 원칙들과 지침을 제시하고 있습니다. Node.js에서는 이러한 원칙들 중 일부가 제작자인 Ryan Dahl에 의해서 직접 만들어졌으며, 일부는 코어모듈에 기여한 사람들, 커뮤니티에서의 카리스마 있는 인물들, JavaScript의 추세 등으로부터 생겨났습니다. NodeJS에서는 다양..
[NestJS] NestJS를 위한 선수지식 Node.js & Express.js 이해 (feat. Logging, 폴더 구조)NestJS는 기본적으로 NodeJS 기반에서 동작합니다. 그렇기에 자연스레 NodeJS의 동작 방식에 큰 영향을 받았는데요. NestJS에서는 Express.js를 기본적으로 사용하기 때문에 이번 포스팅에서는 Node.js와 Express.js에 대해서 알아보는 시간을 가져보도록 하겠습니다. 1. Node.js 1-1. Node.js 철학 모든 프로그래밍 플랫폼은 각자 자신들만의 철학과 각종 커뮤니티에서 관례로 따르는 일련의 원칙들과 지침을 제시하고 있습니다. Node.js에서는 이러한 원칙들 중 일부가 제작자인 Ryan Dahl에 의해서 직접 만들어졌으며, 일부는 코어모듈에 기여한 사람들, 커뮤니티에서의 카리스마 있는 인물들, JavaScript의 추세 등으로부터 생겨났습니다. NodeJS에서는 다양..
2024.01.21 -
1. 애플리케이션 패러다임 용어 정리 1-1. DI(Dependency Injection) 의존성 주입을 알아보기 전에 먼저 Dependency, 즉 "의존성"이라는 것이 무엇을 말하는지 알아보겠습니다. 어떤 객체가 다른 객체와 직접 상호작용하거나, 어떤 객체가 다른 객체를 참조하고 있다면 '그 객체는 다른 객체에 의존성을 갖는다'고 말합니다. 또한 그러한 의존성을 직접 갖도록 하는 것이 아니라 제 3자로부터 주입 받는 것을 의존성 주입이라고 합니다. 이렇게만 들으면 이해하기 어려우니 위키피디아에 나와있는 5살에게 DI 설명하기를 한 번 볼까요? 너가 스스로 냉장고로 가서 무언가를 꺼내오려고 할 때 문을 닫지 않고 열어두거나 엄마나 아빠가 너가 안먹었으면 좋겠다고 생각하는 것들을 갖게 되는 문제가 생길 ..
[NestJS] NestJS와 관련된 기술 용어 정리 (DI, IoC, AOP 등...)1. 애플리케이션 패러다임 용어 정리 1-1. DI(Dependency Injection) 의존성 주입을 알아보기 전에 먼저 Dependency, 즉 "의존성"이라는 것이 무엇을 말하는지 알아보겠습니다. 어떤 객체가 다른 객체와 직접 상호작용하거나, 어떤 객체가 다른 객체를 참조하고 있다면 '그 객체는 다른 객체에 의존성을 갖는다'고 말합니다. 또한 그러한 의존성을 직접 갖도록 하는 것이 아니라 제 3자로부터 주입 받는 것을 의존성 주입이라고 합니다. 이렇게만 들으면 이해하기 어려우니 위키피디아에 나와있는 5살에게 DI 설명하기를 한 번 볼까요? 너가 스스로 냉장고로 가서 무언가를 꺼내오려고 할 때 문을 닫지 않고 열어두거나 엄마나 아빠가 너가 안먹었으면 좋겠다고 생각하는 것들을 갖게 되는 문제가 생길 ..
2024.01.19 -
NestJS에 대해서 모든걸 샅샅이 알아보도록 합시다. 이번 포스팅은 그 대장정의 첫 발걸음으로 NestJS에 대한 간략한 소개와 백엔드 관련 용어의 의미를 정리해보는 시간이 될 것 입니다. 아무리 NestJS에서 제공하는 모듈이나 테크닉들을 사용한다고 해도 그것을 왜 사용하는지를 모르면 결국은 말짱 도루묵입니다. 1. NestJS란? 우선 NestJS에 대해 깊이 공부하기 위해서는 그와 관련되어 상당히 많은 것들을 알아야 합니다. 우선 당연하게도 NestJS는 백엔드 프레임워크이기 때문에 백엔드와 관련된 지식들은 물론이거니와 NestJS가 채택한 수많은 소프트웨어적 아키텍처와 이를 뒷받침 하는 기술들도 마찬가지이죠. 아래 관계도에서 화살표는 크게 의미 없지만 NestJS에서 뻗어나올 수 있는 것들을 정..
[NestJS] NestJS 시작 전에 알아야 하는 백엔드 지식NestJS에 대해서 모든걸 샅샅이 알아보도록 합시다. 이번 포스팅은 그 대장정의 첫 발걸음으로 NestJS에 대한 간략한 소개와 백엔드 관련 용어의 의미를 정리해보는 시간이 될 것 입니다. 아무리 NestJS에서 제공하는 모듈이나 테크닉들을 사용한다고 해도 그것을 왜 사용하는지를 모르면 결국은 말짱 도루묵입니다. 1. NestJS란? 우선 NestJS에 대해 깊이 공부하기 위해서는 그와 관련되어 상당히 많은 것들을 알아야 합니다. 우선 당연하게도 NestJS는 백엔드 프레임워크이기 때문에 백엔드와 관련된 지식들은 물론이거니와 NestJS가 채택한 수많은 소프트웨어적 아키텍처와 이를 뒷받침 하는 기술들도 마찬가지이죠. 아래 관계도에서 화살표는 크게 의미 없지만 NestJS에서 뻗어나올 수 있는 것들을 정..
2024.01.10 -
1. 분산데이터베이스(Distributed Database) - 1 분산 데이터베이스 데이터가 다른 physical location에 저장되는 데이터베이스 분산 데이터베이스의 장점 Fault tolerance High performance Low cost 해결해야 할 이슈들 data 분산 분산 데이터를 활용한 병렬처리 Distributed Transaction / Distributed Locking Semi join Distributed Database 분산 데이터베이스의 종류 Homogeneous distributed database 각 distributed node에 같은 종류의 DBMS 가 실행 Heterogeneous distributed database 각 distributed node에 다른 ..
[데이터베이스-simple 버전] 10. 데이터베이스 최신기술1. 분산데이터베이스(Distributed Database) - 1 분산 데이터베이스 데이터가 다른 physical location에 저장되는 데이터베이스 분산 데이터베이스의 장점 Fault tolerance High performance Low cost 해결해야 할 이슈들 data 분산 분산 데이터를 활용한 병렬처리 Distributed Transaction / Distributed Locking Semi join Distributed Database 분산 데이터베이스의 종류 Homogeneous distributed database 각 distributed node에 같은 종류의 DBMS 가 실행 Heterogeneous distributed database 각 distributed node에 다른 ..
2023.11.07