[TypeORM] @Many-to-Many 저장하고 불러오기

개발/TypeORM 2021. 9. 3. 08:20

서로 다른 두 개의 Entity(Story, Tag)에서 Story와 Tag를 @Many-to-Many로 Relation을 생성하고 @JoinTable을 통해 StoryId와 TagId를 JOIN하는 테이블을 생성하였다. 이러한 상황에서 JOIN 시킨 테이블에 StoryId와 TagId를 저장하는 순서는 다음과 같다.(태그 3개, 스토리 1개를 DB에 저장하는 상황으로 가정한다.) 1. Tag1, Tag2, Tag3를 각각 Tag 테이블에 저장한다. 2. Story를 저장할 때, Story.tags로 JoinTable한 부분에 Story.tags = [Tag1, Tag2, Tag3]와 같이 입력하여 Story 테이블로 저장한다. 위의 과정을 코드로 구현하면 다음과 같다. const tag1 = new T..

BOJ에서 solved.ac 문제 난이도 안보임 해결

Algorithm & BOJ 2021. 9. 2. 08:20

한동안 프로그래머스로 알고리즘 문제를 풀다가 오랜만에 백준 사이트에 왔는데 solved.ac 난이도 보이던 것이 없어져서 당황했다. 알고보니 solved.ac가 백준 서비스 자체에 내장이 되어서 설정에서 처리하면 되었다. 설정을 눌러서 들어가서 사이드 내비게이션 바의 solved.ac를 클릭하면 아래와 같이 나타난다. 사용하기만 누르면 알아서 뜰 줄 알았는데 보기 설정에서 한번 더 설정해야되었다.

Article Thumbnail
1. mask-on

프로젝트 회고/mask-on 2021. 9. 1. 08:20

Mask_ON 깃헙 링크 2021년 1월 4일부터 2월 5일까지 Flagly에서 주관한 2021 Silicon Valley(SV) Online Internship에 아시는 분의 권유로 참여하였다. 5주라는 대부분의 시간을 팀 프로젝트로 개발하고, 실리콘밸리에서 현엽에 계신 연사분들의 강의를 들으면서 인턴쉽 프로그램이라기 보단 부트캠프와 비슷하였던 것 같다. 5주 동안 End-to-End 팀 프로젝트를 진행하게 되었는데 팀 결성부터 아이디어 선택. 개발까지 거의 모든 과정에서 다사다난하였지만, 프로젝트를 완성할 수 있었고, 얻기 힘든 값진 경험들을 얻을 수 있었다. 5주 동안 만든 팀 서비스는 매장별로 설치된 카메라로 마스크 착용, 미착용 인원을 측정하여 착용 현황을 데이터로 활용하여 웹 서비스에 시각화해..

Article Thumbnail
[TypeORM] AfterUpdate (Executed not after update, but during update)

개발/TypeORM 2021. 8. 31. 08:20

NestJS SubScriber에서 TypeORM AfterUpdate를 활용하여 알림을 구현하던 중, AfterUpdate가 사실상 WhileLoading(?)으로 작동하는 이슈가 발생하게 되었다. 왜 그런가 찾아보니 typeorm 깃헙 이슈에도 등록이 되어있는 이슈였다. 원인은 아마도 typescript가 오래된 버전의 javascript로 컴파일되면서 async & await 쪽에 문제를 일으키는 것 같다고 되어있었다. 어찌됐든 해결책은 AfterUpdate 함수의 맨 앞에 commitTranscation()과 startTrasnsaction()을 아래와 같이 추가하여 현재의 트랜잭션을 커밋하고, 새로운 트랜잭션을 시작하는 것이었다. async afterUpdate(event: UpdateEvent..

Ably.io 와 NestJS를 활용한 실시간 채팅

개발/NestJS 2021. 8. 30. 08:20

Ably.io에 대한 글을 쓰게된 계기 PCUP(가칭)이라는 sns 서비스를 만들면서 채팅 기능을 구현할 일이 생기게 되었고, 정석적으로라면 socket.io와 Redis를 활용하여 채팅을 구현하는 것이 맞겠지만, Redis 서버를 사용함으로서 발생하는 비용면에서 Ably.io를 활용해보는 것이 좋겠다 라는 조언에 삽질을 하게 되었고 아아아악, Ably.io를 쓰시는 다른 분들이 삽질을 하지 않았으면 좋겠어서 이 글을 쓰게 되었다. 주의) 제가 0개 국어라 설명이 외계어처럼 느껴지실 수도 있습니다. :D Ably.io에 대해 Ably.io는 채팅, GPS, Multi-User, 그래프나 차트의 실시간 업데이트를 위한 Realtime 서비스이다. Ably.io의 사이트에 들어가보면 Publish, Subs..

Article Thumbnail