인사
안녕하신가? 나는 데이터 엔지니어를 꿈꾸고 있는 문과 비전공자다.
어떤 경로를 통해 이 글을 보고 있는지는 모르겠지만, 아래 셋 중에 한 경우일 것이다.
1. 내일배움캠프 수강 중인 동기 또는 관계자
2. 한번 읽어봐달라고 부탁 받은 나의 지인
3. 세계적인 개발자가 된 나의 첫 모습을 알고 싶은 개발 꿈나무
부디 세 번째 경우이기를 바란다. 다른 경우여도 환영하지만..
그렇다면, (원하건대) 세계적인 데이터 엔지니어인 나는 어디서 공부를 시작했는지 지금부터 알아보도록 하자.
데이터베이스의 기초, SQL
데이터베이스의 기초는 SQL이다.
SQL은 Structured Query Language의 약자로, 데이터 입출력 기능의 표준 언어이다.
여기서 중요한 건 표준이라는 점이다 - 즉, 실무에서는 이 표준을 활용하여 다양한 종류의 데이터베이스가 개발되어 있고, 데이터베이스마다 이를 adapt한 방식은 조금씩 차이가 있다.
대표적인 데이터베이스로는 MySQL, SQL Server, MS Access가 있다. 모두 SQL을 기반으로 개발된 데이터베이스이다.
여기서는 각각의 데이터베이스의 언어를 배우는 것이 아닌, 그 표준이 되는 표준 SQL을 다룬다.
참고로, 표준 SQL에 대해 깊게 다룬 문서는 아래와 같다(CHATGPT 답변)
✅ 1. ISO/IEC 공식 표준 문서(가장 정확함)
표준 SQL은 ISO/IEC 9075라는 이름으로 국제 표준화기구(ISO)에서 관리합니다.
- 정식 이름: ISO/IEC 9075 – Database Language SQL
- 종류: SQL/Foundation, SQL/Bindings, SQL/PSM(프로시저), SQL/CLI, SQL/XML 등 여러 파트로 나뉨
- 위치: ISO 공식 문서 구매 사이트에서 제공 (무료 X)
👉 단점: 유료, PDF가 매우 길고 기술적임
👉 장점: 가장 정확하고 공식적인 규격
SQL을 배워보자 - 데이터베이스와 테이블
[개념 정의]
두 가지 개념이 등장하는데, 혼동하지 않는 것이 중요하다
- 데이터베이스
- 테이블
먼저 여기서 말하는 데이터베이스는 여러 테이블을 포함하는 하나의 큰 틀이다.
상술한 데이터베이스가 SQL이 사용되는 실무 환경이자 프로그램으로서의 데이터베이스라면, 여기에서 데이터베이스는 여러 테이블을 하나의 객체로서 관리하는 틀이라고 할 수 있다. 엑셀의 시트 하나에 대응한다고 할 수 있다. 전자는 DBMS라고 한다.
테이블은 행과 열로 이루어진 데이터의 집합이다. 행에 있는 항목은 레코드라고 하며, 열에 있는 항목은 속성이라고 한다. 엑셀의 표 하나에 대응한다고 할 수 있다.
[데이터베이스와 테이블 생성하기]
후술할 CRUD 메서드에서 다루어도 되지만, 얘기한 김에 먼저 보도록 하자.
###데이터베이스 생성
CREATE DATABASE 데이터베이스명
###테이블 생성
CREATE TABLE 테이블명(
속성1 DTYPE1,
속성2 DTYPE2,
..);
우선 데이터베이스 생성은 쉬운 것처럼 보인다.
테이블 생성은 조금 복잡해 보이는데, 우선 괄호를 열고 각 속성과 그 속성의 데이터타입(DTYPE)을 명시해주어야 한다. 속성들 간에는 콤마(,)로 구분한다. 데이터타입은 굉장히 많고 데이터베이스 프로그램마다 비슷하면서도 다르지만, 표준 SQL에서는 INT, VARCHAR(길이)를 알고 있으면 좋다. 더 많은 데이터타입을 알고 싶다면 여기로
SQL을 배워보자 - CRUD 메서드
여기서는 SQL의 기본적인 CRUD 메서드(Create, Read, Update, Delete)에 대해서 알아본다.
1. Create 메서드
- Create (database or table) (데이터베이스 or 테이블명); : 위에서 다루었다.
2. Read 메서드 - SELECT, 집계 함수, WHERE, ORDER BY, LIMIT
#1. 조건에 부합하는 레코드 출력
SELECT (일부 또는 전체 속성) FROM 테이블명 WHERE (조건);
#전체 속성은 와일드카드(*)로 참조한다
#WHERE 이후 조건들은 AND 및 OR 연산자로 결합될 수 있고, NOT 연산자 뒤에 붙는다.
#2. 조건에 부합하는 레코드 집계 출력
SELECT COUNT(*) FROM 테이블명 WHERE (조건);
SELECT SUM(속성) FROM 테이블명 WHERE (조건);
SELECT AVG(속성) FROM 테이블명 WHERE (조건);
SELECT MAX(속성) FROM 테이블명 WHERE (조건);
SELECT MIN(속성) FROM 테이블명 WHERE (조건);
#당연하게도, 이게 다가 아니다.
#3. 출력 순서 및 상한선 설정 - ASC(오름차순), DESC(내림차순)
SELECT (속성1, 속성2) FROM (테이블명) ORDER BY 속성1 ASC LIMIT (10)
#조건에 부합하는 레코드 중 10개만 출력
3. Update 메서드 - INSERT, UPDATE
INSERT, UPDATE 모두 값을 넣는 건데 문법이 달라 조금 헷갈릴 수 있다. 나의 경우 그랬다.
INSERT의 경우 넣을 값이 많기 때문에 속성 먼저 한꺼번에, 이후에 값을 한꺼번에 넣어준다고 생각하자.
UPDATE의 경우 일부만 지정해서 수정하기 때문에 수정할 속성과 수정할 값을 일일이 대응시켜 준다고 생각하자.
#1. 삽입 함수 INSERT
INSERT INTO (테이블명)(속성1, 속성2) VALUES (값1, 값2);
#2. 수정 함수 UPDATE
UPDATE (테이블명) SET 속성1=값1, 속성2=값2 WHERE (조건);
4. DELETE 메서드 - DELETE
DELETE FROM (테이블명) WHERE (조건);
마치며
원래 오늘의 목표는 조금 더 거창했다. 하지만, 배운 내용을 수기로 정리하며 암기 정도를 확인하느라 시간이 오래 걸렸다.
다음부터는 최초 필기만 수기로 하고, 배운 내용 정리는 타자로 입력하여 암기 수준 확인에 걸리는 시간을 최소화해 봐야겠다. 핵심 키워드와 코드 스니펫을 비워 놓아 퀴즈 형식으로 확인할 수 있도록 해야겠다. CHATGPT를 이용해 빈칸 채우기 문제를 만들어 달라고 하는 것도 좋은 방법이겠다. 기초 문법은 확인했으니, 이제 더 많은 데이터타입과 메서드를 알아보기 위해 여기에서 추가 학습을 진행해야겠다.
이렇게 공부한 내용을 체계적으로 정리한 것 자체가 정말 오랜만인 것 같다. 생각했던 것보다 시간이 오래 걸려서 조금 조급한 마음이 들지만, 이렇게 하나 둘씩 블로그가 글로 채워지는 모습을 보니 뿌듯하다. 혼자 데이터 분석을 공부하던 2년 전과 비교했을 때에 비해 비약적인 성장이다. 예전에는 머릿속에 떠오르는 것을 일기 쓰듯 휘갈겨 썼다면, 이제는 구체적인 독자를 상정하여 설명하듯이 구조화하여 글을 쓰고 있다. 아직 거북이 걸음이지만 혼자서 성장하는 법을 조금씩 알아가는 중인 것 같아 성취감이 든다.
더 많은 정보가 궁금하다면?
2025.11.13 - [Backend] - [나의 개발일지] 1. Spring 부트캠프를 시작하며
[나의 개발일지] 1. Spring 부트캠프를 시작하며
1.내가 Spring 트랙에 참여한 계기는 무엇인가요?: 비전공자로서 데이터 엔지니어로 직무 전환을 하고 싶었는데, 현직자의 유튜브 영상들을 보고 백엔드 개발자로 업계에 진출하는 것이 가장 현실
montmer27.tistory.com
2025.11.14 - [커리어 파인튜닝] - [커리어 파인튜닝] 1. 데이터 엔지니어가 백엔드부터 배워야 하는 이유
[커리어 파인튜닝] 1. 데이터 엔지니어가 백엔드부터 배워야 하는 이유
데이터 엔지니어가 백엔드부터 배워야 하는 이유3줄 요약백엔드 업무 중에서 데이터 파이프라인 구축을 깊게 다루는 영역이 데이터 엔지니어링 업무이기에, 백엔드 업무에 대한 이해가 깊은 경
montmer27.tistory.com
2025.11.14 - [커리어 파인튜닝] - [커리어 파인튜닝] 2. AI가 개발자를 대체할 수 있을까?
[커리어 파인튜닝] 2. AI가 개발자를 대체할 수 있을까?
AI는 개발자를 대체할 수 있을까?[3줄요약]LLM은 리팩터링에 강하지만, 디버깅에 약하기에 AI의 코딩 결과를 평가하고 목적에 맞게 파인튜닝하는 역할은 인간이 계속 수행하게 될 것이다. LLM 자체
montmer27.tistory.com
2025.11.14 - [커리어 파인튜닝] - [커리어 파인튜닝] 3. 데이터 엔지니어 커리어 로드맵
[커리어 파인튜닝] 3. 데이터 엔지니어 커리어 로드맵
[3줄요약] 실패데이터엔지니어는 비정형 데이터를 구조화, 분석 가능한 형태로 전달하기 위해, 데이터 수집, 정제 및 처리, 저장, 전달, 품질 관리 및 자동화 업무를 수행한다.데이터 엔지니어링
montmer27.tistory.com
'ETC > etc3' 카테고리의 다른 글
| [SQL Exercise] 3. 필터링과 정렬 (0) | 2025.11.18 |
|---|---|
| [SQL Exercise] 2. WHERE과 집계 함수를 배워봅시다 (0) | 2025.11.18 |
| [나의 개발일지] 2. Java와 Spring을 배워봅시다 (0) | 2025.11.15 |
| [SQL Exercise] 1. SELECT, DISTINCT, BETWEEN, WHERE (0) | 2025.11.14 |
| [나의 개발일지] 1. Spring 부트캠프를 시작하며 (0) | 2025.11.13 |