DB 6

[RealMySQL8.0] 아키텍쳐

MySQL 엔진 아키텍쳐 MySQL 엔진 - 클라이언트 접속, 쿼리 요청 및 SQL 파서 및 전처리, 옵티마이저를 담당하는 부분 스토리지 엔진 - 요청된 SQL을 처리를 수행 ( 기본적인 CRUD 로직을 처리 ) - 여러 개의 스토리지 엔진을 동시에 사용하여 처리할 수 있음.- MyISAM, InnoDB, Memory 등이 있음. - CREATE 명령어로 테이블을 생성할 때, ENGINE={스토리지명}을 정의하면 정의된 엔진을 사용할 수 있음. # INNODB 기반 테이블 생성 CREATE TABLE iwant_innodb (fd1 INT, fd2 INT) ENGINE=INNODB;# MYISAM 기반 테이블 생성 CREATE TABLE iwant_myisam (fd1 INT, fd2 INT) ENG..

DB 2025.07.28

[RealMySQL8.0] 사용자 및 권한

사용자 식별 (Authentication)사용자 계정은 사용자명 + 접속 지점(IP 또는 호스트)으로 구성된다. MySQL에서는 사용자 계정을 '사용자명'@'호스트명' 형태로 지정한다. 이때 호스트명은 실제 접속 위치(IP 주소 또는 호스트 이름)를 의미하며, 계정의 일부로 간주한다. 예를 들어 다음 두 계정은 서로 다른 계정이다.'user'@'127.0.0.1''user'@'%' %는 모든 IP 주소 또는 호스트에서의 접속을 허용한다는 의미이다.중첩 계정과 우선순위MySQL은 동일한 사용자명에 대해 접속 지점만 다른 계정이 여러 개 존재할 수 있다. 이 경우 접속 시점에 일치하는 계정을 찾을 때 보다 구체적인 호스트명(IP 주소 등)이 우선적으로 선택된다. 예를 들어 다음과 같은 두 계정이 있다고 가..

DB 2025.07.09

[RealMySQL 8.0] 역사 & 설정

역사MySQL은 1979년 스웨던의 TcX사의 터미널 인터페이스 라이브러리인 UNIREG로 부터 시작되었고, UNIREG라는 라이브러리가 1994년 웹 시스템의 테이터베이스로 사용하기 시작하면서 MySQL 1.0 버전이 완성되어 사내에서 사용되다 1996년 최초로 공개되었다. 2000년대에 TcX사에서 MySQL을 개발한 몬티와 데이빗이 MySQL AB라는 회사로 독립하여, FPL(Free Public License)정책으로 바꾸고 2006년 최종적으로 엔터프라이즈(별도의 라이선스 계약이 필요하며 추가 기능 및 지원을 제공), 커뮤니티(별도의 라이스선 계약없이 일반 사용자가 내려받아 사용하는 버전) 정책을 취하게 되었다. MySQL은 개인 및 기업 사용자가 웹 애플리케이션을 위한 강력 하면서 비용 효율적..

DB 2025.07.08

[RealMySQL 8.0] Intro

Real MySQL 8.0 (1권) | 백은빈 - 교보문고Real MySQL 8.0 (1권) | MySQL 서버를 활용하는 프로젝트에 꼭 필요한 경험과 지식을 담았습니다!《Real MySQL 8.0》은 《Real MySQL》을 정제해서 꼭 필요한 내용으로 압축하고, MySQL 8.0의 GTID와 InnoDB 클러스product.kyobobook.co.kr 나는 아직 저연차 개발자이지만, 정말 운이 좋게도 회사에서 많은 책임과 권한을 부여받게 되었다.그 이유는 서비스의 초기 멤버로 합류하여, 기획 단계부터 개발, 출시까지 전 과정을 함께했기 때문이다.초기 MVP부터 시작하여 1차, 2차 기능 개발을 거쳐 상용화까지 진행한 애플리케이션이 현재 실제 사용자에게 제공되고 있으며, 운영과 유지보수까지 전반을 ..

DB 2025.07.02

[TypeORM] cross-env 환경에서 마이그레이션 하기

ORM을 사용하면 SQL 질의어 없이 코드로 테이블을 정의하고 관리할 수 있다. Node 진영에서 많이 사용하는 TypeORM 또한 이와 마찬가지로 편리한 기능들을 제공한다. 마이그레이션은 데이터베이스 스키마의 변경사항을 버전 관리하고 적용하는 과정으로, 개발 과정에서 데이터베이스 구조가 변경될 때마다 안전하게 업데이트할 수 있게 해준다. 특히 팀 단위 개발이나 여러 환경(개발, 스테이징, 프로덕션)에서 일관된 데이터베이스 구조를 유지하는 데 필수적이다. 오늘은 평소에 TypeORM을 사용할 때 내가 사용하는 마이그레이션 방식에 대해서 정리하고자 한다. 마이그레이션 방식 설명에 앞서 TypeORM은 0.3.20 버전을 사용중이고 NestJS는 10.x.x 버전을 기준으로 작성했다. 추가로 cross-en..

DB 2025.04.13

[DB] 뷰(View) 란?

뷰(view) 란?뷰(view)는 데이터베이스 작업 시 기본 테이블에서 유도된 가상 테이블이다. 뷰 테이블 (view table)이라고도 한다. 뷰는 사용자에게 접근이 허용된 데이터만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도되며, 저장장치 내에 물리적으로 존재하지 않지만 사용자에게 있는 것처럼 간주되고 데이터 보정작업, 처리과정 시험 등 임시적인 작업을 위한 용도로 활용된다. 뷰는 조인문의 사용 최소화로 사용상의 편의성을 최대화한다. 데이터베이스에서 뷰(view)는 위와 같은 사전적인 의미를 갖는다. 위의 내용을 요약하면 아래와 같다.데이터베이스에 존재하는 일종의 가상 테이블실제 데이터베이스에 데이터를 적재하지 않음실제 존재하는 테이블처럼 보임 뷰(view)의 주요 이점 중 하나는 ..

DB 2024.05.09