분류 전체보기
-
[혼자 공부하는 SQL] 2장. 실전용 SQL 미리 맛보기DB 2024. 4. 4. 01:32
데이터베이스 모델링 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업이 데이터베이스 모델링입니다. 예시로 슈퍼마켓의 물건들을 온라인으로 판매한다고 합시다. 슈퍼마켓이 고객, 물건, 직원 등을 데이터베이스에 각각의 테이블 이라는 개체로 변환합니다. 데이터베이스 모델링에는 정답이 없습니다. 좋은 모델링과 나쁜 모델링은 분명이 존재하는데, 이는 다양한 학습과 실무 경험에서 우러나옵니다. 데이터베이스 용어 데이터 : 하나하나의 단편적인 정보 테이블 : 회원이나 제품의 데이터를 입력하기 위해 표 형태로 표현한 것 데이터베이스 : 테이블이 저장되는 저장소 열(필드) : 테이블의 세로, 필드명 행 : 실질적인 진짜 데이터, 테이블에서 행 데이터의 개수 = 데이터의 개수 기본 키(Primary Key, PK) : 기본..
-
[혼자 공부하는 SQL] 1장. 데이터베이스와 SQLDB 2024. 4. 4. 01:29
데이터베이스 데이터베이스란 데이터의 집합입니다. DBMS DBMS(Database Management System)는 데이터베이스를 관리하고 운영하는 소프트웨어 데이터베이스는 여러 명의 사용자나 응용 프로그램과 공유하고 동시에 접근이 가능해야 합니다. 예시로 은행의 예금 계좌는 많은 사람들이 가지고 있는데, 여러 명의 예금 계좌 정보를 모아 놓은 것이 데이터베이스입니다. 예금 계좌 주인, 은행 직원 등 모두 접근이 가능한 이유는 DBMS가 있기 때문입니다. DBMS 종류 DBMS와 같은 소프트웨어는 특정 목적을 처리하기 위한 프로그램입니다. 데이터 베이스를 사용하기 위해서는 DBMS를 설치해야 하는데 MySQL, 오라클, SQL 서버, MaraDB등이 있습니다. DBMS 대두와 보급 파일의 편집 기능을 ..
-
MongoDB와 샤딩DB 2024. 3. 6. 04:17
MongoDB MongoDB는 NoSQL의 한 종류로 Document라는 형식의 자료구조 사용 대용량 데이터를 처리할 때 우수한 성능을 발휘하는 데이터베이스 NoSQL? Not-Only SQL, Non Relational SQL 등등 여러 의미로 사용 되는 기존의 관계형 데이터베이스와는 다른 새로운 방식의 데이터베이스 대량의 분산된 데이터의 조회에 특화되고 유연한 스키마를 제공하는 저장소 NoSQL 분류 Wide Columnar Store : 카산드라 Document Store : MongoDB Key-Value Store : 다이나모, 레디스 Graph Store: Neo4j NoSQL의 등장배경 기존 RDBMS에서는 Storage 비용의 문제로 관계형 DB를 나누어 관리하여 중복 데이터를 줄이는 방향..
-
[Nest.js] Test CodeBackend/Nest.js 2023. 11. 25. 18:36
Test Code를 작성해야 하는 이유 개발 과정 중 예상치 못한 문제를 미리 발견할 수 있는데, 에러를 클라이언트보다 빨리 발견할 수 있습니다. 작성한 코드가 의도한 대로 작동하는지 검증할 수 있습니다. 테스트 코드를 통해 동작하는 방식과 결과 확인이 가능합니다. 코드 수정이 필요한 상황에서 유연하고 안정적인 대응할 할 수 있게 해줍니다. 즉, 테스트 코드는 코드 변경에 대한 사이드 이펙트를 줄이는 예방책이 됩니다. 또한 코드 변경 시, 변경 부분으로 인한 영향도를 쉽게 파악할 수 있습니다. 리팩토링 시 기능 구현이 동일하게 되었다는 판단을 내릴 수 있습니다.리팩토링은 기존에 잘 동작하는 코드를 변경하여 발전시키는 작업인데, 리팩토링으로 인하여 기존 기능이 동작하지 않으면 굉장한 손해라고 볼 수 있습니..
-
[Nest.js] TypeORM, Repository PatternBackend/Nest.js 2023. 10. 2. 18:59
TypeORM Type ORM은 TypeScript를 기반으로 한 ORM(Object-Relational Mapping) 라이브러리로, 데이터베이스와의 상호작용을 추상화하여 개발자가 SQL 쿼리 대신 객체 지향적인 방식으로 데이터베이스를 다룰 수 있도록 도와줍니다. 즉, Typescript를 사용해 DB에 접근하고, DB를 다룰 수 있게 합니다. ORM(Object Relational Mapping) : ORM은 객체와 관계형 DB의 데이터를 자동으로 변형 및 연결하는 작업을 담당합니다. ORM을 이용하게 되면 객체와 DB의 변형을 유연하게 다룰 수 있습니다. TypeORM 주요 기능 1. Entity, Repository TypeORM은 엔티티 클래스를 통해 데이터베이스 테이블과의 매핑을 정의합니다. ..
-
Nest.jsBackend/Nest.js 2023. 9. 18. 22:59
Nest.js는 효율적이고 확장 가능한 서버 사이드 애플리케이션을 구축하기 위한 고성능의 Node.js 프레임워크입니다. 기업 친화적인 프레임워크이고, express보다 우리가 선호하는 구조를 적용할 수 있습니다. Typescript를 기반으로 하지만, Javascript로도 사용이 가능하며 OOP(Object Oriented Programming) FP(Functional Programming) FRP(Functional Reactive Programming) 와 같은 다양한 개발 방법론을 사용할 수 있습니다. 1. OOP (객체 지향 프로그래밍, Object-Oriented Programming) 객체 지향 프로그래밍은 컴퓨터 프로그래밍 패러다임 중 하나로, 프로그램을 객체들의 집합으로 보고 이들이 ..
-
CSR vs SSR, Next.jsFrontend 2023. 6. 12. 01:42
CSR(Client Side Rendering) 💡 렌더링이 클라이언트에서 일어나는 방식입니다. 즉, 서버는 요청을 받으면 클라이언트에 HTML과 JS를 보내줍니다. 클라이언트는 그것을 받아 렌더링을 시작합니다. 사용자가 페이지 접근 서버가 웹이 필요로 하는 스크립트와 스타일이 포함된 기본 html 마크업만 전송 클라이언트가 html과 js 다운 받음 다운 완료된 js가 실행, 데이터를 위한 api 호출 서버가 api로부터의 요청에 응답 api로부터 데이터를 받은 후 페이지 상호작용 가능 💡 자바스립트가 모두 다운로드 되고 실행이 끝나기 전까지 사용자는 볼 수 있는 것이 없습니다. 장점 초기 로딩 이후에 페이지 일부를 변경할 때는 구동 속도가 빠름 서버 부하 적음 단점 초기 로딩 속도 느림 SEO에 불리..
-
Vite로 번들러 마이그레이션 및 에러 해결Frontend 2023. 5. 24. 02:08
원티드 프리온보딩 4월 챌린지를 수강할 때 vite를 얕게 배웠었고, 빌드 속도가 매우 빨라진다는 점을 듣고 현재 진행하고 있는 프로젝트에도 적용하면 좋을 것 같아 Vite를 사용해보고자 했습니다. 이미 많이 진행된 프로젝트에 번들러를 webpack에서 vite로 바꾸는 과정을 진행했습니다. Vite Vite는 Vue.js 팀이 개발한 웹 개발용 빌드 도구입니다. 인기 비결은 뭐니해도 ‘속도’입니다. 개발과 빌드 속도가 매우 빠릅니다. Vite가 빠른 이유 개발 서버: Webpack의 번들 기반 개발 서버는 소스 코드와 모든 종속 관계의 모듈을 번들링 후 서버가 준비됩니다. 반면에 Vite는 극단적으로 빠른 Esbuild로 미리 번들링 한 모듈을 필요시 동적으로 가져오므로 명령 시 즉각적으로 서버가 구동..