닭발족발 나는 개발
TypeORM VS Sequelize 비교하기
DB 2024. 1. 27. 17:13

면접 전 사전과제 덕분에 TypeORM을 사용해 볼 기회가 생겼다. 그 김에 Sequelize와 비교, TypeORM에 대해서 간단하게 정리 🔎 Sequelize VS TypeORM ✔️ Sequelize 특징 유연성 : Sequelize의 폭넓은 호환성 덕분에 다양한 데이터베이스를 이용한 프로젝트에 많이 선택 됩니다. 활발한 생태계 : 다양한 문서와 대규모 커뮤니티를 통해 문제 해결을 위한 충분한 리소스를 찾을 수 있다. 원시 SQL 쿼리 : 원시 SQL이 필요한 경우 Sequelize를 사용하면, 쿼리를 직접 실행 시킬 수 있습니다. ✔️ TypeORM 특징 TypeScript 통합 : TypeORM은 기본적으로 TypeScript를 수용하여 타이핑, 컴파일 타입 검사합니다. Decorators : ..

article thumbnail
[간단정리]RDB vs NoSQL
📍 간단정리 2024. 1. 18. 10:21

RDB vs NoSQL RDB(Relational Database)와 NoSQL은 데이터베이스 시스템의 두 주요 유형을 나타냅니다. 각각은 데이터를 저장하고 관리하는데 다른 접근 방식을 채택하고 있습니다. RDB (Relational Database): 데이터 모델: 테이블 기반의 데이터 모델을 사용합니다. 데이터는 열과 행으로 구성된 테이블에 저장됩니다. 스키마: 강력한 스키마를 갖추고 있습니다. 데이터의 구조를 사전에 정의하고, 데이터의 일관성을 유지하기 위해 강력한 제약 조건을 제공합니다. 트랜잭션 지원: ACID 속성을 준수하여 데이터 일관성과 안전성을 보장합니다. 트랜잭션 처리가 가능하며, 롤백 및 복구 기능을 지원합니다. SQL 쿼리 언어: SQL(Structured Query Language..

article thumbnail
[간단정리] DB 부하관리
📍 간단정리 2024. 1. 17. 08:19

Master - Slave 구조 리플리케이션(Replication)은 복제를 뜻함. Master DBMS의 역할 웹 서버로부터 등록/수정/삭제 (CUD)의 요청을 담당하게 됨. Slave DBMS의 역할 Master DBMS로 부터 받은 데이터를 반영하고, 주로 읽기(R)에 대한 요청을 담당. Slave는 여러개 생성 가능 장점 CUD에 대한 요청과 R에 대한 요청들을 Slave DB 서버들에 분산시킬 수 있으므로 성능 향상을 기대해볼 수 있음 단점 Master DB 서버에서 Slave DB 서버로 데이터를 동기화 할 때, 비동기방식으로 동기화를 진행하기 때문에 일관성있는 데이터를 얻지 못 할 수도 있음 Sharding(샤딩) 각 DB 서버에서 데이터를 분할하여 저장하는 방식 DB 트래픽을 분산할 수 있..

article thumbnail
[간단정리] 정규화 vs 비정규화
📍 간단정리 2024. 1. 17. 02:22

정규화 데이터베이스 중복을 최소화하도록 설계된 데이터베이스 같은 데이터는 데이터베이스 내에 하나 정도만 놓으려고 노력함 하지만 상당수의 일상적인 질의를 처리하기 위해 JOIN을 많이 하게 되는 단점이 있음 비정규화 데이터베이스 읽는 시간을 최적화하도록 설계된 데이터베이스 JOIN 연산의 비용을 줄일 수 있음 비정규화는 높은 규모 확장성을 실현하기 위해 자주 사용되는 기법 장점 빠른 데이터 조회 → 조인 비용이 줄어들기 때문 살펴볼 테이블이 줄어들기 때문에 데이터 조회 쿼리가 간단해짐 → 따라서 버그 발생 가능성도 줄어듦 단점 데이터 갱신이나 삽입 비용이 높음 데이터 갱신 또는 삽입 코드를 작성하기 어려워짐 데이터 간의 일관성이 깨질수 있음 데이터를 중복하여 저장하므로 더 많은 저장 공간이 필요

article thumbnail
[Nest.js] winston 사용하여 로그 남기기
BACKEND💻 2024. 1. 2. 23:45

백엔드 로그는 소프트웨어 시스템의 동작 및 상태에 대한 기록으로, 여러 가지 중요한 이유로 인해 필수적입니다. 다음은 백엔드 로그의 중요성을 설명하는 몇 가지 이유입니다: 디버깅 및 문제 해결: 백엔드 로그는 시스템에서 발생한 에러, 경고, 예외 등과 같은 이벤트를 기록하므로 개발자들이 소프트웨어 버그를 신속하게 식별하고 해결할 수 있습니다. 로그를 통해 어떤 문제가 발생했는지 추적하고 디버깅하는 데 큰 도움이 됩니다. 성능 모니터링: 로그를 통해 시스템의 성능에 관한 정보를 수집하고 모니터링할 수 있습니다. 응답 시간, 요청 수, 자원 사용량 등의 지표를 기록하고 이를 분석하여 성능 향상을 위한 조치를 취할 수 있습니다. 보안 감시: 보안 이슈에 대비하기 위해 로그는 시스템에서 수행되는 모든 작업을 기..

article thumbnail
02. [모청프로젝트] 가비아 도메인 구입/aws DNS 설정
Memo/후기+회고 2023. 10. 25. 11:07

프로젝트를 시작하면서, 제일 먼저 시작하고 만만한,, 도메인 구입 ! 제일 유명한 "가비아" 에서 도메인 구입함. aws에서 도메인 구입하는게 좀 더 편했을 것 같다는 생각을 추후에 했다. 가비아 사이트 접속 💬 로그인 전에 구매하고싶은 도메인을 먼저 확인 할 수 있음. 원하는 도메인 검색 이 도메인 같은 경우에 이미 내가 구매했기때문에 [이미 등록된 도메인입니다] 라는 문구가 뜸 하단에 추가로 구매 할 수 있는 목록이 나오고, 가격도 잘 나옴 리스트에 표시된 가격과 실제 구매 가격은 다름. 구매하는 기간에 따라 할인율이나 이것저것 적용되서 그런것같음 필요한 도메인을 장바구니에 담아서 "신청하기" 클릭 신청서 작성 아래와 같이 등록기간에 따라서 결제해야할 비용이 다름 aws를 사용 할 것이라서, 타사네임..

article thumbnail
01. [모바일청첩장] 프로젝트의 시작
Memo/후기+회고 2023. 10. 24. 08:04

Introduce 사랑하는 사람의 결혼을 축하와 기념하기 위해서 모바일 청첩장을 제작하게 되었습니다 계획 도메인 구매 로컬 프론트 개발 로컬 백엔드 개발 및 로컬 DB 연결 테스트 aws 프론트 배포 aws 백엔드 배포 aws DB 세팅 Stack 〰️INFRA〰️ AWS Route53, CloudFront, S3, EC2, VPC 〰️BACKEND〰️ Node.js, Redis 〰️FRONTEND〰️ Vue3, tailwind

article thumbnail
DB 부하관리
DB 2023. 10. 23. 21:26

Master - Slave 구조 리플리케이션(Replication)은 복제를 뜻함. Master DBMS의 역할 웹 서버로부터 등록/수정/삭제 (CUD)의 요청을 담당하게 됨. Slave DBMS의 역할 Master DBMS로 부터 받은 데이터를 반영하고, 주로 읽기(R)에 대한 요청을 담당. Slave는 여러개 생성 가능 ✨ 장점 CUD에 대한 요청과 R에 대한 요청들을 Slave DB 서버들에 분산시킬 수 있으므로 성능 향상을 기대해볼 수 있음 ✨ 단점 Master DB 서버에서 Slave DB 서버로 데이터를 동기화 할 때, 비동기방식으로 동기화를 진행하기 때문에 일관성있는 데이터를 얻지 못 할 수도 있음 Sharding(샤딩) 각 DB 서버에서 데이터를 분할하여 저장하는 방식 DB 트래픽을 분산할..

article thumbnail
정규화 vs 비정규화 데이터베이스
DB 2023. 10. 23. 21:11

정규화 데이터베이스 중복을 최소화하도록 설계된 데이터베이스 같은 데이터는 데이터베이스 내에 하나 정도만 놓으려고 노력함 하지만 상당수의 일상적인 질의를 처리하기 위해 JOIN을 많이 하게 되는 단점이 있음 비정규화 데이터베이스 읽는 시간을 최적화하도록 설계된 데이터베이스 JOIN 연산의 비용을 줄일 수 있음 비정규화는 높은 규모 확장성을 실현하기 위해 자주 사용되는 기법 장점 빠른 데이터 조회 → 조인 비용이 줄어들기 때문 살펴볼 테이블이 줄어들기 때문에 데이터 조회 쿼리가 간단해짐 → 따라서 버그 발생 가능성도 줄어듦 단점 데이터 갱신이나 삽입 비용이 높음 데이터 갱신 또는 삽입 코드를 작성하기 어려워짐 데이터 간의 일관성이 깨질수 있음 데이터를 중복하여 저장하므로 더 많은 저장 공간이 필요 정규화, ..

article thumbnail
ORM의 장점과 그 종류
DB 2023. 10. 23. 20:23

ORM이란? Obect Relational Mapping(객체-관계-매핑)의 약자이다 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 도구이다 객체와 모델 사이의 관계를 기술하는 도구 MVC 패턴에서 모델을 기술하는 도구 ORM을 사용하는 이유 데이터베이스 접근을 프로그래밍 언어의 관점에서 볼 수 있음 sql문을 직접 작성하지 않고 엔티티를 객체로 표현 할 수 있음 객체를 통해 간접적으로 DB를 다룸 ORM의 장점 코드의 가독성이 좋아짐 재사용 및 유지보수 편리성 증가 DBMS에 대한 종속성 저하 ORM의 단점 ORM 만으로 서비스를 구현하기 어려움 🔥 나같은 경우에 쿼리로 날리면 조인 한두개로 해결 될 것이 ORM을 사용하려니 관계때문에 오히려 속도가 저하되는 경우가 ..