inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm을 더 좋아하는 이유

nodebird express clone

해결된 질문

257

작성자 없음

작성한 질문수 0

1

공부삼아 혼자서 이것저것 clone 을 하고있는데여 

hashtag 부분에서 

typeorm 에서는 findOrCreate 가 없는것 같은데 무슨 메서드를 사용해야할까요 ?

express nodejs TypeORM NestJS

답변 1

1

제로초(조현영)

https://github.com/typeorm/typeorm/issues/1090#issuecomment-634391487

orUpdate가 있습니다.

0

SJ

안녕하세요 ! ㅎㅎ 가르쳐주신대로 잘 되지않아서 ㅠㅠㅠ 다시 코드를 고쳐봤는데요 .

질문자가 많으셔서 다시 얘기해드리면 , node express 강좌를 nest 로 클론하고 있구용

hash 부분을 할려고합니다.

 

현재 이렇게 작성을해서 

hashtag 가 테이블에 존재하지 않는다면 , hashtag 를 insert 하고 있구요 .

hashtag 가 테이블에 존재한다면 insert 하지 않고 해당하는 hashtag 를 find 해서 가져오게 됩니다. 

그렇게 해서 manytomany 테이블에 boardId 와 hashId 를 insert 하고 있습니다.

 

현재 정상적으로 데이터베이스에 insert 되는것을 확인했는데여 .

코드가 너무... 길어진것 같아서 혹시나 다른 방법으로 코드를 효율적으로 짤수있을까해서 질문남깁니다. ㅎ

그럼 즐건 추석되세요 

0

제로초(조현영)

사실 반복문 안에서 쿼리를 돌리는 게 좋지 않습니다. 저라면 먼저 select 한번으로 해시태그를 검색하고, 없는 해시태그를 찾아낸 뒤 insert로 한번에 생성하고, 다시 걔네들을 find한 뒤 postHashtag에 관계설정해줄 것 같습니다. 그럼 네번에 됩니다

0

SJ

감사합니다 ㅎ 다시 해보고 답변 다시 남기겠습니다 ㅎㅎ 감사합니다 ! 

0

SJ

말씀하신대로 한번 바꿔봤는데 리뷰 다시 가능할까요 ?? ㅠ ㅎ

 반복문 안에서 쿼리 돌리는것을 제거해 봤습니다.

작동은 정상적으로 돌아가고 있습니다.

0

제로초(조현영)

HashSliceLowcase.map 안에 getMany 하는 것도 반복문 내부 쿼리입니다. hashtag.hash IN(...hash)을 사용해서 한 방에 쿼리하세요.

0

SJ

엇.. 감사합니다 ! :)

 

그리고 또 질문할것이 , hashtag 를 할때 , board 에서 body 로 받을땐 , hash 에 대한 값도 받기에 , 

1. boardService 에다가 hash 테이블에 insert 하는것까지 했는데 , 

그렇게 되면 , hash Controller 와 hash Service 에서는 사실 hash 리스트를 받고 get 하는 코드 밖에 없을것같은데 , 그래도 board Service 에 만들지 말고 

nest g mo hash

nest g s hash

nest g co hash

생성한뒤에 구현하는게 맞는거죠 ? 

2. 정상적으로 돌아가긴 했지만 .. 반복문 내에서 쿼리를 돌리는것이 왜 안좋은가요 ? 

0

제로초(조현영)

1. 분리하셔도 되긴합니다. 다만 라우터는 없으니 컨트롤러는 안 만드셔도 됩니다.

2. 쿼리를 많이 날리면 db에 무리가 많이 갑니다. 네트워크 비용도 만만치않고요. 그런데 반복문은 특성상 몇 번 반복될지 사용자의 입력에 따라 다릅니다. 해시태그가 백만 개면 쿼리를 백만 개 날리는 겁니다. 그런데 IN을 쓰면 한 방에 쿼리를 날릴 수 있습니다.

0

SJ

답변 감사합니다 :)

강의자료는 어디서 다운받나요?

0

141

4

질문 있습니다.

0

315

3

코드 편집기 확장 프로그램

0

220

2

(질문)비밀 저장소에 접근하기 위한 인증 정보는 로컬 .env에 저장하는지?

0

161

2

(질문)외부 저장소를 통한 환경변수 불러오기 비동기 질문

0

177

3

로그인을 해도 LoggedInGuard쪽에서 false값이 나옵니다.

0

161

2

로그인방법이 고민됩니다.

0

197

2

yarn seed 명령어 실행 시 데이터 삽입 안됨

0

305

4

yarn run db:create 시에 발생하는 데코레이터 오류

0

247

2

npm run db:create 시에 발생하는 decorating 오류

0

245

2

RxJS 디버깅 질문 있습니다.

0

198

3

CacheManager에 대해 질문 있습니다.

0

184

2

로깅은 어떻게 하는게 효율적일까요?

0

236

1

CORS 질문 있습니다.

0

425

2

쿠키 옵션에 대해서 질문 있습니다.

0

188

2

로그아웃 요청이 403 forbidden 에러가 나는데 왜그런걸까요??

0

458

1

401 unauthorized문제

0

304

1

가드의 장점에 대해서 질문이 있습니다.

0

232

1

로그 관리에 대해 질문 있습니다.

0

254

2

CORS 에러 질문 있습니다.

0

328

2

배포 환경 DB 연결 질문 있습니다.

0

417

2

socket io 미 연결 문제 (nest & flutter)

1

1166

3

no elements in sequence 에러 관해서 질문이 있습니다.

0

462

1

start:dev-backup으로 돌리면 핫 리로딩이 되요 정상인가요?

0

323

1