본문 바로가기

Project/TypeORM

(7)
[번역] ManyToMany Relations ManyToMany Relations에 관한 내용을 번역과 동시에 제 생각을 넣은 글입니다. 더 정확한 사실을 알고 싶다면 해당 링크를 방문해 주세요. 번역 시작하겠습니다.A엔티티와 B엔티티를 갖고 있는 상태로 가정하겠습니다.Many-to-many는 A 엔티티가 B의 여러 인스턴스를 갖고 있고, B는 A의 여러 인스턴스를 갖고 있는 관계를 의미하는데요. 우리는 Question과 Categoy 엔티티로 예시를 들어볼 겁니다. A question은 여러 카테고리를 가질 수 있고, 각 카테고리는 여러 question들을 가질 수 있습니다. 아래는 Question와 Category 엔티티입니다.Category Entityimport { Entity, PrimaryGeneratedColumn, Column } f..
[번역] OneToMany / ManyToOne Relations OneToMany / ManyToOne Relations에 관한 내용을 번역과 동시에 제 생각을 넣은 글입니다. 더 정확한 사실을 알고 싶다면 해당 링크를 방문해 주세요. 번역 시작하겠습니다.A엔티티와 B엔티티를 갖고 있는 상태로 가정하겠습니다.Many-to-one과 One-to-many는 A엔티티는 B의 여러 인스턴스를 갖고 있는 관계입니다. 반대로 B는 A 엔티티의 하나의 인스턴스를 갖고 있습니다. 즉, A는 B의 여러 인스턴스 그리고 B는 오직 하나의 A 인스턴스를 갖고 있는 것을 의미합니다.이제 늘 그렇듯 예제를 살펴보도록 하겠습니다. 예시는 A는 User Entity, B는 Photo Entity로 정의하고 시작하겠습니다. 다시 말씀드리자면, 위의 내용을 토대로 User는 여러개의 Photo를 ..
[번역] @OneToOne Relations OneToOne Relations에 관한 내용을 번역과 동시에 제 생각을 넣은 글입니다. 더 정확한 사실을 알고 싶다면 해당 링크를 방문해 주세요. 번역 시작하겠습니다.일단 현재 A Entity가 있고 B Entity가 있다고 가정하고 시작해보겠습니다.One-to-one에서 A는 B의 딱 한 개의 인스턴스를 갖고 있습니다. B 또한 마찬가지로 딱 한개의 A의 인스턴스를 갖고 있는 관계를 의미합니다. 이제 A라고 부르지말고 A는 User Entity이고, B는 Profile Entity라고 정의하고 시작해 보겠습니다. User는 한개의 Profile을 갖고 있고, Profile 또한 오직 한 명의 User를 갖고 있다. import { Entity, PrimaryGeneratedColumn, Column ..
어떻게 데이터를 건드릴 수 있을까? 회사에서 데이터베이스 커넥션을 받고 쿼리를 작성해서 CRUD를 진행했습니다. TypeORM을 한 번도 사용해보지 않은 저는 어떤 방식으로 데이터를 건드릴 수 있을지 찾아보았습니다. 물론 이전 글에서 어떻게 접근하는지 약간씩 등장하긴 합니다. 자 이제부터, 데이터에 접근할 수 있는 방법 4가지에 대해서 글을 작성하도록 해보겠습니다. 4가지가 무엇인지 먼저 말씀드리고 글을 작성하겠습니다.첫번째, QueryRunner두 번째, Entity Manager세 번째, Repository네 번째, Query Builder순서대로 설명드리겠습니다.더보기약간의 배경지식코드에서 맨 위에 나오고 객체 불러올때 쓰이는 DataSource란 무엇인가? TypeORM에서 데이터베이스 연결 설정을 관리하는 객체입니다. 연결한 데이..
왜 ORM을 사용하려고 하는데요? ORM을 통해서 SQL 쿼리 없이 데이터를 데이터베이스에 저장하고 관리할 수 있게 되었습니다.그래서 개발자는 더욱 편해지게 되었던 것이었죠. 익숙한 언어로 데이터베이스의 데이터를 더 쉽게 조작할 수 있게 되었으니까요.더보기 'ORM을 배워야 하는 것은 문제가 되지만요? 사실은 SQL도 잘 짤 수 있어야 하기도 합니다. 사실 배워야 할 것이 늘었다고 볼 수 있습니다. 지금 당장 저도 배우고 있긴 하거든요..'근데 사실 ORM은 어떤 역할을 담당하냐면?애플리케이션은 객체로 데이터 처리반면에, 데이터베이스는 테이블로 데이터 처리어라? 서로 다르네?위와 같은 패러다임(paradigm)의 불일치를 ORM이 가운데에서 딱 조절을 해줍니다. 그래서 ORM이 뭔지에 대해서 조금 더 심화과정을 작성해보려고 합니다. 이래..
너랑 나랑 무슨 관계(relation)야? 제목이 심상치 않습니다. 이런 연락을 받아보신 적 있으신가요? 저는 없습니다. 어쨌든 별건 아니고 객체 간의 관계를 의미하는 것입니다. ORM에서는 여러 가지 관계가 존재하는데요? 그 관계들을 정리해 보도록 하겠습니다.여기서 설명 드릴 관계는 총 세 가지입니다.첫 번째, 일대일(@OneToOne())두 번째, 일대다(@OneToMany(), @ManyToOne())세 번째, 다대다(@ManyToMany()) 가 되겠습니다. 천천히 작성을 해보도록 하겠습니다. 왜 천천히 작성이냐면, 제가 아는 지식에서 더 늘어나거나 잘못된 지식인 것을 발견하거나 하면 차근차근 추가 또는 삭제해 나갈 것이기 때문입니다. 그래서 천천히 작성해 보겠다고 글을 먼저 작성해 봤습니다. 아래부터는 순서대로 작성해 보겠습니다.나도 하..
왜냐하면, ORM을 사용하기로 했다. 왜냐하면, ORM을 사용하기로 했다. 그중에서도 많고 많은 ORM 중에 TypeORM을 사용하기로 했다. 사용하기로한 이유를 아래 차례대로 나열해 보겠습니다.첫 번째, 데이터베이스와 상호작용하는 코드가 더 직관적인고 유지보수의 이점을 준다.두 번째, 자동화된 데이터베이스 스키마 관리와 타입 안전성을 제공해 개발자가 더욱 생산적이고 안전하게 코드를 작성할 수 있다.세 번째, 직접 SQL을 작성하는 경우보다, 코드의 복잡성이 줄어들며 여러 데이터베이스를 지원하여 유연성을 확보할 수 있다.위의 세가지 이유는 여러 블로그를 읽어보며 나와 있는 내용이다. 하지만, 가장 중요한 이유 중 하나는 이것이다.한 번도 사용해보지 않았기 때문에 사실 위의 세가지 이유는 형식적으로 작성을 할 수밖에 없습니다. 왜냐하면, 누군..