| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 엑셀 프린트하기
- 카카오뷰N잡
- 위드굿즈
- 자기관리
- 성공에 대한 거짓말
- ppt 도형 색
- express.js 환경 셋팅
- 위드굿즈 굿즈샵
- 30일 글쓰기
- HTML
- 카카오뷰 초보
- 카뷰 수익 인증
- 원씽
- 카카오뷰 수익
- 카카오뷰 성장
- 이석증
- git 협업하기
- ppt 다이어그램
- 도서 원씽
- 카카오뷰 부업
- 성공비법
- Axios 라이브러리
- 실시간 통신
- 웹기초
- CSS
- 엑셀 기초 함수
- 카카오뷰 탭이동
- Git 팀 작업
- 책 원씽
- 카카오뷰 온라인 수익화
- Today
- Total
김데이의 개발공부
[ TIL ] Day 59 - NodeJS 아키텍쳐 / SQL 실행 순서 정리 본문
[ TIL ] Day 59 - NodeJS 아키텍쳐 / SQL 실행 순서 정리
theday365 2025. 12. 17. 18:31🗓️ 수업 일자 : 2025.12.17
✨ 오늘의 수업 평가 : [ REVIEW ] 기본기 다시 점검 완료! 🧩📚
오전 수업은 정말 무슨 말인지 1도 모르겠..을.. ㅠㅠ
오후에 다시 봐도 정말 모르겠..을.. ㅎㅎ
일단 접어두고 스프린트 미션을 시작 해 본다!
Prisma로 이미 Schema 작업 해 둔거 쓰면 되겠구나 싶었는데,
생각보다 설정 해 줘야할 게 많았다 ㅎㅎ
역시 쉬운거 하나 없구만 😉
👩💻 [개인 프로젝트] 오늘 작업 내용 💻
- 스프린트 미션에 맞는 DB 구현 with SQL
- SQL 쿼리로 데이터 생성 / 수정 / 삭제
📝 오늘 배운 내용
- NodeJs 아키텍쳐
- SQL 실행 순서
- SQL 기본 setup
1. NodeJs 아키텍쳐
- 수업 링크 : https://www.digitalocean.com/community/tutorials/node-js-architecture-single-threaded-event-loop
Node JS Architecture - Single Threaded Event Loop | DigitalOcean
www.digitalocean.com
NodeJS 아키텍쳐 핵심 요약
Nodejs는 싱글 스레드 이지만, 백그라운드 작업 처리 후 결과만 가져오는 이벤트 루프 시스템 덕분에 많은 요청을 빠르게 처리.
이벤트 루프의 특징
- CPU 연산은 바로 처리
- IO 요청은 기다리지 않고 백그라운드에서 해결
- 작업 끝나면 알림받아서 처리
이벤트 루프 작업 순서 (1~4 반복)
- 콜스택에 함수가 쌓인다
- 비동기 작업이 있다면 백그라운드로 보낸다
- 작업 끝나면 콜백/프로미스를 이벤트 큐에 넣는다
- 스택이 비면 큐에서 꺼내 처리
NodeJs 싱글 스레드 특징
- 논블로킹 + 이벤트 루프 작업 : IO(파일/DB/네트워크)를 기다리는 동안 멈추지 않음 → 비동기로 여러 작업이 계속 처리 가능
- 메모리 사용량 적음 : 요청마다 스레드를 만들지 않아서 전통적인 멀티 스레드 서버보다 자원 효율 좋음
2. SQL 실행 순서
SQL 실행 순서
- 쿼리 단위로 보았을 때, 먼저 입력한 쿼리가 우선 실행됨
- 메인 / 서브 쿼리가 있는 경우, 의존 관계에 의해 실행 순서가 정해짐.
- 조회(Read) 쿼리의 경우 작성 순서와 무관하게 논리적 실행 순서가 적용 되지만,
생성(Create) / 수정(Update) / 삭제(Delete)의 경우 "대상 확정 → 값 계산 → 제약/트리거 → 반영" 순으로 이루어짐
Select (조회 쿼리) 논리적 실행 순서
- FROM : 데이터를 조회 할 테이블을 결정
- JOIN : FROM 테이블과 함께 볼 추가 테이블 결합
- ON : 결합 할 때 사용 할 조건, 매칭 방식에 따라 다른 결과 생성
- WHERE : FROM절에서 가져온 행에 대해 필터링
- GROUP BY : WHERE절을 통과한 행에 대해 그룹화
- HAVING : 그룹에 대해 한번 더 필터링
- SELECT : 최종 표현 될 데이터를 컬럼/표현식으로 계산, 별칭(AS, alias)을 생성하기도 함
- DISTINCT : 중복 제거
- ORDER BY : 최종 데이터를 사용자가 지정한 순서로 정렬
- LIMIT / OFFSET : 정렬 된 데이터를 기준으로 잘라내거나, 페이징화
SELECT DISTINCT u.id, u.name, COUNT(o.id) AS order_count
FROM users u
JOIN orders o ON o.user_id = u.id
WHERE u.is_active = true
GROUP BY u.id, u.name
HAVING COUNT(o.id) >= 1
ORDER BY order_count DESC
LIMIT 10 OFFSET 0;
3. SQL 기본 setup
데이터 베이스 & 테이블 생성 / 삭제
-- 데이터베이스 생성
CREATE DATABASE "데이터베이스_이름";
-- 데이터베이스 삭제
DROP DATABASE "데이터베이스_이름";
-- 테이블 생성
CREATE TABLE users ( ... 컬럼 입력 ... );
-- 테이블 삭제
DROP TABLE users;
테이블 타입 종류
- table (테이블) 📊
- 실제 데이터가 저장되는 공간
- 행(row)과 열(column)으로 구성 됨
- sequence(시퀀스) 🔢
- 데이터 저장 없이 상태만 관리
- 보통 id 자동 증가용 숫자 생성 객체로 사용

테이블 데이터 타입 종류 with PostgreSQL (관련 링크 : https://www.postgresql.org/docs/current/datatype.html)
📃 내일은 뭘 배울까 🤔
- 중급 팀 프로젝트 작업!
'코드잇 Node.js(BE) 부트 캠프 > TIL (Today I Learn) 📑' 카테고리의 다른 글
| [ TIL ] DAY 78, 79 - 웹소켓 실시간 통신 (0) | 2026.01.16 |
|---|---|
| [ TIL ] Day 60, 61 - SQL 과 Prisma ORM / PostgreSQL 데이터 타입 (1) | 2025.12.19 |
| [ TIL ] Day 58 - SQL 데이터 관리 / 데이터 모델링 (0) | 2025.12.16 |
| [ TIL ] Day 57 - SQL 데이터 관리 (테이블 생성/삭제, CRUD 작업 등) (0) | 2025.12.15 |
| [ TIL ] Day 55, 56 - SQL 실습 : 초급 / 중급 문제 풀이 (0) | 2025.12.12 |