15주차 일정
11/13 - 11/15 가상화 클라우드
11/16 - 11/17 SQL
11/13 - 11/15 가상화 클라우드
클라우드 하면 네이버 클라우드, 구글 드라이브, 원드라이브 밖에 모르는 나레기가
지난주에 이어 이번 수업을 통해 가상화와 클라우드가 무엇인지는 확실히 개념이 잡힌 것 같다.
그리고 쿠버네티스를 처음으로 직접 해봤는데 얘는 진짜 범접하기 힘든 대상이다..
복습한다고 docs 찾아가면서 정리했는데도 정신이 몽롱한 상태 ㅋㅋㅋㅋㅋ
실습 때문에 강사님이 모든 에이블러들 멱살 잡고 끌고 가셨는데 극한직업 현실판 느낌 ㅠ
내용이 너무 많아서 아직 다 정리도 못했지만 언제 끝낼지도 미지수라 여기서 마치겠습니다.
여담으로 정부 24 서버 접속 안 되는 거 보고 저 서비스는 서버 어떻게 굴리고 있을까 궁금하더라고요?
이것도 수업의 효과라면 긍정적으로 받아들이겠습니다.
11/16 - 11/17 SQL
작년 요맘때 SQLD 자격증 이후로 진짜 1년 만에 보는 SQL이었어요.
그래도 이미 전공수업으로 한 번, 자격증 공부하면서 두 번 정도 보니 강의 중에 모르는 내용은 없어서 이론을 허투루 공부한 건 아니구나!! 깨달음
빠르게 복습 가보자구요
LIKE 연산자
- 문자 패턴을 비교
-- 김씨 성을 갖는 직원
SELECT emp_id, emp_name, dept_id, hire_date, email, phone
FROM employee
WHERE emp_name LIKE '김%';
-- 이메일 아이디가 4글자인 직원
SELECT emp_id, emp_name, dept_id, hire_date, email, phone
FROM employee
WHERE email LIKE '____@%'; -- 언더 바(_) 4개
NULL 값
- NULL 값은 0도 아니고 공백도 아닌 알 수 없는 값(Unknown Value)
- NULL값과 문자열 ‘NULL’은 완전히 다름
- IS NULL, IS NOT NULL을 사용해 NULL 값을 식별할 수 있음
- IFNULL() 함수를 사용해 NULL값 대신 다른 값을 표시할 수 있음
- COALESCE() 함수는 나열된 값 중에서 NULL이 아닌 첫 번째 값을 표시
CASE 문
CASE WHEN 조건1 THEN 값1
WHEN 조건2 THEN 값2
WHEN 조건3 THEN 값3
...
ELSE 값n END
IF 함수
IF(조건, 참일 때 값, 거짓일 때 값)
집계 함수
- SUM(): NULL 값을 제외한 나머지 값의 합
- AVG(): NULL 값을 제외한 나머지 값의 합을 NULL값을 제외한 값의 개수로 나눔
- MIN(): NULL 값을 제외한 나머지 값 중에서 가장 작은 값
- MAX(): NULL 값을 제외한 나머지 값 중에서 가장 큰 값
- COUNT(): NULL 값을 제외한 값의 개수
-- 근무중인 직원이 3명 이상인 부서별 근무중인 직원 수 조회
SELECT emp_id, SUM(duration) -- 5)
FROM vacation -- 1)
WHERE begin_date BETWEEN '2017-01-01' AND '2017-12-31' -- 2)
GROUP BY emp_id -- 3)
HAVING SUM(duration) > 5; -- 4)
ORDER BY emp_id ASC; -- 6)
순위 함수
- RANK() OVER: 정렬된 데이터에서 현재 행의 순위 반환
- DENSE_RANK() OVER: RANK 함수와 같으나 같은 순위가 있어도 다음 순위를 건너뛰지 않고 부여함
- ROW_NUMBER() OVER: 정렬된 결과에 일련의 번호를 부여함
- NTILE(n) OVER: 몇 개의 그룹으로 나누어 그룹마다 번호를 부여함
RANK() OVER(PARTITION BY gender ORDER BY salary DESC) AS rnk
DENSE_RANK() OVER(PARTITION BY gender ORDER BY salary DESC) AS rnk
ROW_NUMBER() OVER(PARTITION BY gender ORDER BY emp_id ASC) AS num
NTILE(3) OVER(PARTITION BY gender ORDER BY salary DESC) AS grp
서브 쿼리
- 괄호 안에 또 다른 쿼리문이 있는 쿼리문
- 대부분 JOIN 문으로 작성해서 같은 결과를 얻을 수 있음
-- 휴가를 간 적이 있는 근무중인 직원 정보 조회
SELECT emp_id, emp_name, dept_id, phone, email, salary
FROM employee AS e
WHERE EXISTS (
SELECT *
FROM vacation
WHERE emp_id = e.emp_id
) AND retire_date IS NULL;
그리고 2주 전에 봤던 AICE 시험 결과가 나왔습ㄴㅣ땅
빅분기도, SQLD도 턱걸이했던 내가 100점?!
진짜 내가 발전을 하긴 했나 보다 하고 느낀 순간이었다네요 (셀프 쓰담쓰담 🫳🫳)
나 이제 배지 두 개 ✌️
아 이제 Django 수업만 남았는데 내가 진짜 웹을 구현할 수 있나 진짜진짜진짜진짜 의문이다
동기들이랑 작게 토이 프로젝트 하려고 아이디어 구상 중인데 빅프 땐 진짜 잘 해내야 한다고 생각하니 좀 두렵드앙
그래도 장고 책 보고 한 번 따라 해 봤으니까 나 수업 잘 따라갈 수 있겠지? 잘할 거라고 말해.
휑~