* 프로그래머스, 타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js) 5기 강의 수강 내용을 정리하는 포스팅.
* 원활한 내용 이해를 위해 수업에서 제시된 자료 이외에, 개인적으로 조사한 자료 등을 덧붙이고 있음.
데이터를 체계적으로 저장하고 관리하는 시스템
다양한 형태의 데이터를 효율적으로 저장하고 검색할 수 있도록 고안된 구조로, 필요한 데이터를 쉽게 찾고 업데이트할 수 있도록 설계되어있다.
열(Column): 데이터의 속성 또는 필드라고 불리며, 같은 테이블 안의 모든 행에서 동일한 종류의 데이터를 저장.
행(Row): 각 개별 데이터 항목으로, 테이블에서 하나의 레코드(Record)를 나타낸다.
데이터베이스 관리 및 조작을 위해 사용되는 표준화된 언어.
관계형 데이터베이스 관리 시스템(RDBMS)에서 데이터를 정의, 검색, 삽입, 수정, 삭제하는 데 사용.
SQL은 다양한 작업을 수행할 수 있는 여러 종류의 명령어로 구성되어 있습니다. 주로 사용되는 SQL 기능은 다음과 같습니다:
컨테이너라는 독립된 환경에 패키징하고 배포할 수 있게 해주는 오픈 소스 플랫폼.
다양한 개발 및 배포 환경에서 일관성 있게 애플리케이션을 운영할 수 있게 해줘서, 특히 클라우드 환경이나 CI/CD(지속적 통합/지속적 배포) 파이프라인에서 많이 사용되고 있다.
Docker는 개발자가 동일한 환경에서 작업할 수 있도록 지원합니다. 팀원들이 모두 동일한 Docker 이미지를 사용하면, "내 컴퓨터에서는 되는데..." 같은 문제가 줄어든다.
Docker 이미지를 통해 애플리케이션의 모든 설정과 필요한 요소들을 하나의 패키지로 묶을 수 있다. 이를 통해 코드, 환경설정, 라이브러리 등이 모두 포함된 상태로 애플리케이션을 배포할 수 있어, 배포 과정이 단순해지고 효율적으로 관리된다.
공식 홈페이지에서 자신의 OS에 맞는 설치 파일을 내려받아 설치하면 된다.
설치는 간단하다, Use WSL 2 instead of Hyper-V 옵션을 선택할 것인지만 물어본다.
- Hyper-V는 Windows에서 제공하는 가상화 기술 / WSL 2는 Windows 10과 Windows 11에서 제공하는 리눅스 호환 레이어.
- Docker가 Hyper-V 대신 WSL 2를 사용하여 컨테이너를 실행하는 옵션.
- 더 효율적인 파일 시스템 접근 및 리소스 사용 / 커널 레벨의 가상화 기능이므로 시스템 리소스를 덜 사용 / 리눅스 기반 애플리케이션 및 도구들과의 호환성 향상 / 개발 시 로컬 파일을 컨테이너에서 빠르게 읽고 쓸 수 있다 등의 장점이 존재한다.
- 다만, Windows 10의 일부 오래된 버전이나 Windows Server에서는 WSL 2가 지원하지 않고 / Hyper-V에서 실행해야 하는 다른 서비스가 있는 경우 등에서는 해당 옵션을 사용하지 않아야 한다.
Docker는 컴퓨터의 가상화 기능이 켜져있어야 정상적으로 사용할 수 있다.
강의에서는 그냥 설치파일만 누르면 된다고 하는데.. 그럴리가 있나..
AMD/Intel CPU 제조사에 따라서 방법이 다르고, 메인보드 제조사에 따라서도 방법이 또 다르다. 자기 컴퓨터에 맞는 스펙의 가상화 기능 키는 방법을 알아보고 설치할 것.
MySQL 데이터베이스 관리 시스템의 대안으로 개발된 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS).
모체는 MySQL. Oracle사가 MySQL을 인수하면서, 오픈 소스로 운영되던 MySQL이 유료화 될 것이라는 우려에 의해 MySQL 개발진들이 주축이 되어 독립. MariaDB를 개발하였다.
Oracle Corp. 미국에서 창립된 초대형 소프트웨어 기업. 주로 B2B 방식의 IT 소프트웨어 개발 및 요지보수 등을 주 사업 영역으로 삼고 있다.
자사의 저작권을 매우 적극적으로 활용해서 송사에 사용하고, 지독한 비즈니스 등으로 악명이 높다. 누구나 제한없이 소프트웨어를 사용할 수 있는 '오픈 소스' 원칙에 완전히 반하는 정책을 채택. 프로그램 사용료와 유지보수료 등을 꼬박꼬박 비싼값으로 요구하는 등으로 오픈 소스 진영에서는 Oracle을 상당히 비판적으로 바라보고 있다.
특히 거대 기업으로써 막강한 자금력을 바탕으로 타 기업을 인수한 뒤에, 무료 사용이던걸 유료로 돌리는 등의 행위로 여타 개발자들의 분노를 사기도..
한창 문어발식으로 기업을 경영할 때는 유지보수 비용은 받는데, 모든 수요를 감당할 능력이 안되서 정작 유지보수가 안되는 일도 있었다..
Java 언어의 경우 Oracle이 개발사 Sun Microsystems를 인수한 후 Java 관련 비용 문제를 일으키면서 여타 기업들과 마찰을 빚기도.
- 유료화, 그것도 업데이트과 보안 패치를 포함한 특정 버전을 돈 받고 팔았다..
- 여기에 시달리던 Google은 아예 Kotlin를 채택하고, Go를 따로 개발했을 정도..
MySQL 개발자들이 Oracle의 인수에 반발해서 MariaDB를 만든 것도 Oracle의 이런 전적 때문.
- 그런데 공교롭게도 Oracle은 MySQL에 한해서는 여타 개발자들의 걱정을 배신했다.
- 상업적 용도로 사용되는 MySQL Enterprise의 출시 이외에는 무료로 사용할 수 있는 MySQL Community Edition을 따로 내면서 오픈 소스 원칙을 비교적 잘 유지하고 있다.
docker exec -it mariadb mariadb -u root -p
INSERT INTO 테이블명 (컬럼1, 컬럼2, ...) VALUES (값1, 값2, ...);
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
SELECT 컬럼1, 컬럼2, ... FROM 테이블명 WHERE 조건;
SELECT * FROM users;
SELECT * FROM users WHERE name = 'Alice';
UPDATE 테이블명 SET 컬럼1 = 값1, 컬럼2 = 값2, ... WHERE 조건;
UPDATE users SET email = 'newalice@example.com' WHERE name = 'Alice';
DELETE FROM 테이블명 WHERE 조건;
DELETE FROM users WHERE name = 'Bob';