Back-end/Nest.js

[Nest.js] Nest.js에서 Firestore 커스텀 모듈 만들어서 활용하기

요즘 회사 프로젝트에서 Firestore를 사용하고 있습니다. GCP 생태계에서 개발을 하고 있기 때문인데요. Nest.js에서 Firestore을 사용하다 보니 구글에서 제공해주는 sdk를 사용하고 있지만 한계에 부딪혔습니다. 바로 하나의 서비스에서 여러 개의 Firestore 프로젝트를 가져와서 연결을 해줘야 하는 것이었습니다. 열심히 찾아봤지만 multiple instance를 single project에서 사용할 수 없다는 결과만 나왔죠.. Firebase(Firestore) doesn't support multiple instance in a single project. How to create multi environment DB's with Firestore I've been looking ..

2022.04.03 게시됨

Back-end/Server & Cloud

[Server] Restful API란?

Rest API, 백앤드 개발자들은 물론이고 많은 개발자들이 알고 있는 정의인데요. 이전 게시물에서 Restful API에 대해서 간단하게 정리를 했었습니다. 단순히 HTTP 기반으로 필요한 자원에 접근하는 방식을 정해놓은 규칙을 뜻하면서 url을 정하는 Rule이 있다 정도만 알고 있었는데 알고 보니 그렇게 간단하게 끝낼 개념이 아니라는 걸 알았습니다. 특히 백앤드 개발자는 Restful이 무엇이고, 왜 사용하는지에 대해 자세히 알아야할 필요가 있다고 판단했고 이번 기회에 자세히 살펴보려고 합니다. 0. 먼저 Restful 이란? Rest는 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, D..

2022.03.29 게시됨

Back-end/Spring

[Spring / TIL] @Transactional(readOnly=true) 가 꼭 필요한가?

Spring 학습을 위해 프로젝트를 진행하던 도중 조회한 값을 return 해주는 메소드에 당연하게 @Transactional(readOnly=true) 어노테이션을 사용했습니다. 막연하게 롤백(rollback) 때 사용하니까 @Transactional 어노테이션을 사용하긴 하지만, C, U, D 메소드가 아닌 읽어 오는 메소드는 @Transactional(readOnly=true)를 왜 사용하지? 아예 @Transactional 어노테이션을 안 붙이면 되지 않나?라는 궁금증이 들었고, 이번 기회에 확실하게 알아보려고 합니다. 트랜잭션(Transaction) 이란? 데이터베이스의 상태를 변경하고자 할 때, 한번에 수행되어야 하는 연산들을 의미합니다. Nest.js의 예를 먼저 들어보겠습니다. async ..

2022.02.19 게시됨

Back-end/Nest.js

[Nest.js]DTO란? Entity란?

요즘 진행 중인 백앤드 리뉴얼 프로젝트는 express 기반에서 Nest.js 기반으로 migration 하고 있습니다. 프레임워크를 바꾸는 만큼 대공사가 진행 중인데요, express에서는 mongoose로 하나의 controller에서 모든 쿼리를 수행했습니다. (어마어마하게 비효율적으로 코드가 짜여 있었지만, 차마 손댈 엄두가 나지 않았었습니다..) Nest.js를 사용해서 하나하나 진행하다 보니, 작업을 할 때 사용하던 entity 와 dto에 대해서 누군가에게 entity가 뭐고 dto가 뭐야? 왜 써야하는 거야?라고 질문을 받았다면 과연 정확하게 말할 수 있나? 를 생각해봤을 때 답은 아니오 였습니다. 그래서 이번 게시물에서는 아래의 내용들을 확실하게 짚고 넘어가려고 합니다. entity, d..

2021.11.27 게시됨