thumbnail

멋쟁이사자처럼 그로스 마케팅 부트캠프 1기 수강 후기

멋쟁이사자처럼 그로스 마케팅 부트캠프 1기 수강후기

멋쟁이사자처럼 오늘 공부 후기 챌린지 - 그로스 마케팅 편

이런 고민을 하고 있다면, 지금 이 순간에도 멋쟁이사자처럼에서 그로스 마케팅 과정을 수강하며 자신만의 속도로 성장 중인 수강생들을 주목해보세요.


배우고 잊어버리는 건 누구나 겪는 일이에요. 하지만 멋쟁이사자처럼 부트캠프는 단순히 배우는 것에 그치지 않고, 배운 내용을 내 것으로 만드는 방법까지 고민하고 있어요. 그렇다면, 배운 것을 가장 효과적으로 습득하는 방법은 무엇일까요? 바로 기록하고 정리하는 것이죠. 배운 내용을 정리하고 기록하면, 기억은 오래 남고 실전에서도 활용할 수 있으니까요!

멋쟁이사자처럼 부트캠프는 수강생들이 배운 내용을 정리하고 공유할 수 있도록 TIL (Today I Learned) 블로그 챌린지를 진행하고 있어요. 그래서 오늘, 강사님과 멘토님에게 배운 내용을 체계적으로 기록하며 성장하고 있는 수강생의 이야기를 가져왔어요. 작고 사소해 보일지라도 배운 내용을 정리하고, 기록하면서 성장한 이들의 소중한 경험을 지금 확인해 보세요.


요즘 멋사 그로스 마케팅 부트캠프 수업을 듣고 있다. 2025.01.31 OT를 시작해서 8일차다. 완전 제로베이스라서 저번 한 주는 (파이썬, 팬더스) 이해도 못 하고 너무 어려웠는데, 그래도 코딩에 (입문,,ㅎ) 그 모양새는? 눈은 익었는지 아주 간단한 코드는 해석이 살짝 되는 게 신기할 따름이다.

< mydb라는 데이터베이스에 적용시키기>

리눅스에서 아래 과정을 거쳐 꼭 var로 바꿔줘야 실수로 삭제하고 그랬을 때 피해가 없다!!!

cd /

cd var

ls

mysql -u user1 -p (패스워드 1234 (초기에 지정함))

use mydb; (마리아 디비로 들어감)

show databases;

show tables;

drop table ~~~~; (해당 테이블 삭제)

(* drop table~~~; 했는데 안 지워지면 해당 테이블이랑 연결되어 있는 자식 테이블을 먼저 지워야 함. )

◎ 데이터 베이스 모두 삭제 명령어

= drop database mydb;

◎ 세미콜론 (;)

= 명령어의 끝

◎ 데이터 삽입

= Insert로 시작하는 쿼리문

SQL 용어 정리

SQL은 관계형 데이터 베이스에서 테이터를 관리하기 위한 언어

데이터베이스 (Database)

데이터를 체계적으로 저장하고 관리하는 공간

DBMS (Database Management System)

데이터베이스를 관리하는 소프트웨어 시스템

스키마 (Schema)

데이터베이스의 구조(테이블, 뷰, 인덱스 등)를 정의하는 설계도

테이블 (Table)

데이터를 행(Row)과 열(Column)으로 저장하는 구조.

관계형 데이터베이스의 기본 단위.

레코드 (Record)

테이블에서 하나의 데이터 행(Row)을 의미.

테이블의 한 개 데이터 항목을 표현

필드 (Field)

테이블의 컬럼(Column)으로, 각 레코드의 속성(attribute)을 의미

인덱스 (Index)

데이터 검색 속도를 높이기 위해 특정 컬럼에 생성하는 자료구조

뷰 (View)

특정 SQL 쿼리 결과를 저장하는 가상의 테이블

키 (Key)

데이터의 무결성과 중복 방지를 위해 사용하는 속성

트랜잭션 (Transaction)

여러 SQL 연산을 하나의 단위로 묶어 일관성을 유지하는 개념.

제약 조건 (Constraint)

데이터 무결성을 유지하기 위해 테이블에 적용하는 규칙

정규화 (Normalization)

데이터 중복을 최소화하고 데이터 무결성을 유지하기 위해 테이블을 구조적으로 최적화하는 과정

조인 (Join)

여러 테이블을 연결하여 데이터를 조회하는 방법

서브쿼리 (Subquery)

하나의 SQL문 내에서 또 다른 SQL문을 실행하는 방식

머티리얼라이즈드 뷰 (Materialized View)

일반 뷰(View)와 달리 물리적으로 저장되는 뷰

기타 SQL 주요 문법

WHERE - 조건문

SELECT * FROM users WHERE age > 25;

age가 25보다 큰 사용자만 조회

ORDER BY - 정렬

SELECT * FROM users ORDER BY age DESC;

age 값을 기준으로 내림차순 정렬하여 조회

GROUP BY - 그룹화

SELECT age, COUNT(*) FROM users GROUP BY age;

age 별로 그룹을 묶고, 각 그룹의 사용자 수를 출력

HAVING - 그룹화된 데이터 필터링

SELECT age, COUNT() FROM users GROUP BY age HAVING COUNT() > 2;

age별 사용자 수가 2명 이상인 그룹만 출력

JOIN - 여러 테이블 조인

SELECT users.name, orders.amount FROM users JOIN orders ON users.id = orders.user_id;

users 테이블과 orders 테이블을 id와 user_id를 기준으로 조인하여 사용자 이름과 주문 금액을 조회

UNION - 여러 SELECT 결과 합치기

SELECT name FROM users UNION SELECT name FROM employees;

users 테이블과 employees 테이블의 name 데이터를 합쳐서 출력

SQL-주요 집계 함수

함수

설명

COUNT (*)

행의 개수 계산

SUM(컬럼명)

해당 컬럼 값의 합계

AVG(컬럼명)

평균 값 계산

MAX(컬럼명)

최대 값

MIN(컬럼명)

최소 값

JOIN : 여러 테이블 다루기

  • 두 개 이상의 테이블을 기준이 되는 공통 필드를 통해 결합하여 새로운 데이터를 생성하는 방식.

  • 주로 고객 정보, 마케팅 캠페인, 거래 데이터 등을 통합하여 보다 정밀한 분석을 수행할 때 사용됨.

JOIN 유형

유형

설명

INNER JOIN

공통된 데이터만 표시 (교집합)

LEFT JOIN

왼쪽 테이블의 모든 데이터 표시 + 오른쪽 테이블에서 일치하는 데이터

RIGHT JOIN

오른쪽 테이블의 모든 데이터 표시 + 왼쪽 테이블에서 일치하는 데이터

FULL OUTER JOIN

모든 데이터 표시 + 일치하지 않는 데이터는 NULL

1. INNER JOIN

SELECT customers.name, customers.email, orders.product, orders.price, orders.order_date

FROM customers -- 왼쪽(Left) 테이블

INNER JOIN orders ON customers.id = orders.customer_id; -- 오른쪽(Right) 테이블

  • 왼쪽 테이블(Left Table): FROM 절에 등장하는 테이블 → customers

  • 오른쪽 테이블(Right Table): JOIN 절에서 합쳐지는 테이블 → orders

  • 조인 조건: ON customers.id = orders.customer_id

  • customers.id(왼쪽 테이블)과 orders.customer_id(오른쪽 테이블)의 값이 일치하는 행만 반환

  • ON 키워드는 SQL에서 JOIN을 수행할 때 두 테이블을 결합하는 기준(조인 조건)을 지정하는 역할을 한다. 즉, 테이블 간 관계를 설정하여 원하는 데이터를 효율적으로 조인하는 것이 목적

<주석 VER.>

SELECT

customers.name, -- 고객 이름 (customers 테이블에서 가져옴)

customers.email, -- 고객 이메일 (customers 테이블에서 가져옴)

orders.product, -- 주문한 제품명 (orders 테이블에서 가져옴)

orders.price, -- 주문한 제품 가격 (orders 테이블에서 가져옴)

orders.order_date -- 주문 날짜 (orders 테이블에서 가져옴)

FROM customers -- 고객 정보를 포함하는 테이블

INNER JOIN orders -- 고객과 주문 데이터를 결합

ON customers.id = orders.customer_id; -- 고객 ID를 기준으로 두 테이블을 연결 (조인 조건)

2. LEFT JOIN

SELECT customers.name, customers.email, orders.product, orders.price, orders.order_date

FROM customers

LEFT JOIN orders ON customers.id = orders.customer_id;

  • 주문이 없는 고객도 조회됨

3. RIGHT JOIN

SELECT customers.name, customers.email, orders.product, orders.price, orders.order_date

FROM customers

RIGHT JOIN orders ON customers.id = orders.customer_id;

  • 주문을 한 고객만 출력됨

4. FULL OUTER JOIN

SELECT customers.name, customers.email, orders.product, orders.price, orders.order_date

FROM customers

LEFT JOIN orders ON customers.id = orders.customer_id

UNION

SELECT customers.name, customers.email, orders.product, orders.price, orders.order_date

FROM customers

RIGHT JOIN orders ON customers.id = orders.customer_id;

  • MariaDB는 FULL OUTER JOIN을 지원하지 않기 때문에, UNION을 사용

UNION : 두 개 이상의 테이블에서 데이터를 가져와 동일한 컬럼 구조로 하나의 결과 집합으로 결합하는 SQL 연산자

즉, 여러 데이터 소스를 하나의 테이블처럼 합쳐 분석할 때 유용.

  • 여러 테이블에서 가져온 데이터를 동일한 컬럼 구조를 가진 경우 하나의 결과 집합으로 합치는 방식

  • 예를 들어, 여러 마케팅 채널(이메일, SNS, 광고 등)의 성과 데이터를 하나로 합칠 때 유용함

  • 컬럼 개수와 데이터 타입이 동일해야 함

  • 중복 데이터를 자동 제거함

  • 중복 데이터를 포함하려면 UNION ALL 을 사용함.

항목

UNION

JOIN

데이터 결합 방식

여러 테이블의 데이터를 위아래로 합침

공통 키를 기준으로 좌우로 결합

컬럼 개수

결합하려는 테이블의 컬럼 개수와 데이터 타입이 동일해야 함

테이블 간의 공통 키를 사용하여 여러 개의 컬럼을 조합

중복 데이터

기본적으로 제거됨 (UNION ALL 사용 시 제거 안 됨

중복 데이터가 있을 경우 그대로 유지됨

이렇게,, 오늘 수업 복습,,, 끝

하도!! Ctrl + c 가 손에 익어서 SSH 안에서 쓰다 보니 강제 종료돼서... 마리아 디비로 들어가는 순서? 랑 select * from --- ; 이거는 진짜 이제 외워졌다 ㅋㅋㅋㅋㅋㅋ 이런 거 라도 장족의 발전이다ㅠ

오늘도 좋은 수업 감사했습니다. 강사님


공부는 배울 때 끝나는 게 아니라, 되새기고 활용할 때 완성돼요. 그런 의미에서 오늘 소개한 이야기는 단순한 후기가 아니라, 학습을 더 효과적으로 만들고 나만의 것으로 만드는 과정이었을 거예요. 여러분도 배운 내용을 정리하고, 더 오래 기억하는 습관을 만들어 보세요. 작은 차이가 결국 큰 결과를 만들 테니까요!

내가 배운 것을 글로 정리하는 것이 처음에는 어렵게 느껴질 수도 있지만 멋쟁이사자처럼과 함께 꾸준히 기록하다 보면 스스로 변화하고 있다는 걸 깨닫게 될 거예요. 자! 이제 여러분 차례에요. 언제나 여러분의 곁에는 멋쟁이사자처럼이 있으니 고민하지 말고 배움을 기록하고, 성장의 발자취를 남겨보세요!

홈 : 멋사 부트캠프

멋쟁이사자처럼의 13년 교육 노하우로 IT 취업의 꿈을 현실로!

홈 : 멋사 부트캠프