티스토리 뷰

EK/업무일지

[업무일지] 2023.05.06 ~ 2023.05.07

개발하는 후딘 2023. 5. 6. 19:42
728x90
반응형

[링크프렌즈]

  • cafe24 다큐먼트 읽으면서 request/response dto 만들기
  • 엔티티 만들기
  • 테스트 케이스 만들기

[토이스쿼드]

  • 회원가입 / 일반 회원 가입 로직 만들기
    • 이거 용현님한테도 물어봐야겠다 ㅎㅎ
  • 연동회원 로그인작성하기
  • 레디스 만들기
    • 레디스 셋팅하여 회원 이메일 인증 하기 탬플릿 로직과
    • nodemailer와 aws sms 연결하기

Mysql(RDBMS)에 배열데이터를 어떻게 저장할까?

 

🐬 MySQL(RDB)에 배열을 저장하는 방법

MySQL에 배열 데이터를 저장 게시판을 제작하는데 있어, 게시글의 내용을 서버에 다음과 같이 보낸다고 가정해보자. 게시글 제목(title)과 게시글 제목(description) 그리고 게시글에 사용된 이미지(thu

inpa.tistory.com

 

데이터베이스에 배열을 그대로 하나의 레코드에 저장할 수 없다.

Join 관계를 맺어야만 조회가 가능하다.

1. 정규화

  • 역정규화
    • 정규화를 따르지 않는 것
    • RDBMS의 특징을 무시하고 Nosql처럼 데이터를 마구잡이로 저장
    • 괜히 조인해서 DB의 성능을 떨어뜨리지말고, 배열 그대로 테이블에 집어넣어서 꺼내놓는 방식

 

2. 배열 문자열 저장

배열 자료형을 문자열로 변환한 뒤에 그대로 테이블 스트링 컬럼에 저장

꺼내쓸때도 문자열을 불러와서 다시 파싱하여 배열 자료형으로 만들어서 사용.

const pokemons = ['pikachu', 'garchomp' , 'alakazam']

// JSON.stringify : 배열 -> 문자열 로 변환
let arr2Str = JSON.stringify(poketmons);	// '["pikachu","garchomp","alakazam"]'

// JSON.parse : 문자열 -> 배열 로 변환
let str2Arr = JSON.parse(arr2Str);	// ['pikachu', 'garchomp', 'alakazam']

 

3. Mysql에서 지원하는 Json 타입을 사용

mysql 5.7.8부터 json 데이터를 저장할 수 있게 필드타입 기능을 지원한다.

객체와 배열도 지원한다고 한다.

쿼리 성능자체는 스트링타입 컬럼에서 저장하고 꺼내쓰는게 훨씬 빠르다고한다.


typeorm에서 json(string array) 를 저장하는 방법

https://bluehorn07.github.io/2020/09/05/How-to-save-JSON-array-in-MySQL-with-TypeORM.html

 

How to save JSON array in MySQL with TypeORM

본 글은 제가 NestJS 프레임 워크를 통해 개발하면서 깨달은 노하우를 기록한 것입니다. 제가 제시한 방법보다 더 좋은 방법이 있을 수도 있습니다. 지적은 언제나 환영입니다 :)

bluehorn07.github.io


typeorm

https://orkhan.gitbook.io/typeorm/docs/entities#simple-array-column-type

 

Entities - typeorm

int, int2, int4, int8, smallint, integer, bigint, decimal, numeric, real, float, float4, float8, double precision, money, character varying, varchar, character, char, text, citext, hstore, bytea, bit, varbit, bit varying, timetz, timestamptz, timestamp, ti

orkhan.gitbook.io


https://blog-ko.superb-ai.com/nestjs-interceptor-and-lifecycle/

 

NestJS Interceptor와 Lifecycle

Introduction 이번 글은 Superb AI가 NestJS Interceptor를 어떻게 쓰고 있고, 사용하면서 겪었던 이슈들에 대해 공유하려고 합니다. NestJS를 도입을 결정하고 나서, 어떻게 하면 Logger를 구현할 때 코드 중복

blog-ko.superb-ai.com

Observable

Observable은 event가 흐르는 스트림입니다.

Observable은 누군가 구독(subscribe)을 해야 event를 발행(publish) 합니다.

Observer가 Observable 을 구독하면서 next, error, complete 키워드를 사용하여

Observable에 흐르는 event를 처리합니다.

 

Observer

Observer는 Observable을 구독하는 대상입니다.

Observer를 정의하고 next, error, complete 세가지를 정의해주고

Observable에 구독을 하면 완성합니다.

next는 Observable에 들어오는 event를 처리합니다.

error는 Observable에서 error가 발생했을 때 event 처리합니다.

Observable이 종료되면 complete가 호출하게됩니다.

마지막으로 Observable을 Observer가 구독하면 됩니다.


column의 타입이 enum array  일 경우에는, typeorm에서는 어떻게 나타낼까?

 

How to add an enum array in a TypeOrm entity?

I am doing a lot of research and experiment to use an enum array in my entity. import { Program } from '../../program/entities/program.entity' import { Column, Entity, JoinTable, ManyToMany...

stackoverflow.com


typeorm에서 enum 사용하는방법

 

 

Using ENUM Type in TypeORM - KindaCode

If you're working with PostgreSQL or MySQL and making use of TypeORM in your code then you can add a column with the ENUM (enumerated) data type like so:

www.kindacode.com


cors가 무엇일까?

 

CORS는 왜 이렇게 우리를 힘들게 하는걸까?

이번 포스팅에서는 웹 개발자라면 한번쯤은 얻어맞아 봤을 법한 정책에 대한 이야기를 해보려고 한다. 사실 웹 개발을 하다보면 CORS 정책 위반으로 인해 에러가 발생하는 상황은 굉장히 흔해서

evan-moon.github.io


sdk가 무엇일까? (feat. sdk vs api )

 

SDK, API의 개념과 차이점

🍙 API API란 Application Programming Interface의 약자로, 모듈화하여 만들어진, 어떤 기능을 제어/제공하는 인터페이스를 말한다. 우리가 사용하는 대부분의 애플리케이션은 API에 의존하고 있다. 🔔 예

doozi0316.tistory.com

---

Enum-Set 타입컬럼 정의하기

https://orkhan.gitbook.io/typeorm/docs/entities

 

Entities - typeorm

int, int2, int4, int8, smallint, integer, bigint, decimal, numeric, real, float, float4, float8, double precision, money, character varying, varchar, character, char, text, citext, hstore, bytea, bit, varbit, bit varying, timetz, timestamptz, timestamp, ti

orkhan.gitbook.io

 

Typeorm에서 BigInt타입 정의하기

https://www.kindacode.com/snippet/typeorm-how-to-store-bigint-correctly/

728x90
반응형

'EK > 업무일지' 카테고리의 다른 글

[업무일지] 2023.05.31  (0) 2023.05.31
[업무일지] 2023.04.28 ~ 2023.04.29  (0) 2023.04.28
[업무일지] 2023.04.17  (0) 2023.04.17
[업무일지] 2023.04.15 - 2023.04.16  (0) 2023.04.15
[업무일지] 2023.04.12  (0) 2023.04.12
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함