์ ์ง์ฅ์ ์ ์ฌ ํ ๋ค์ํ ์ ๊ท ์๋น์ค ๊ฐ๋ฐ๊ณผ ์ด์ ์ ๋ฌด๋ฅผ ์งํํ์์ง๋ง, ๋น์ ๊ฐ์ฅ ํฐ ๋ชฉํ๋ ์ฑ๋ฅ ๊ฐ์ ์ด์์ต๋๋ค.
์ ์ฌ ๋น์ ์นดํกํ์น ๋ฐ์ก๋ง ๋์ด๋ ์ ๋ํผ๊ฐ ๋ถ๋ฐ๋ค๊ฐ ๋๋ ์ํฉ์ด์๊ธฐ์ ๋ค์ํ ๋ฐฉ๋ฒ์ ํตํ ์ฑ๋ฅ ๊ฐ์ ์ด ํ์ํ์์ฃ .
์ ๋ํผ์ x-view ๊ฐ ์๋์ ๊ฐ์ด ๋๋ ์ํฉ์ ๊ฒช์ด๋ณธ ์ฌ๋๋ง์ด ๊ทธ ๊ณตํฌ๊ฐ์ ์ ๊ฒ์ ๋๋ค. ๐คฏ๐คฌ
๊ทธ ๊ณผ์ ์์ ์ ๊ฐ ๊ฒฝํํ ๊ฐ๋จํ ์ฑ๋ฅ ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ค์ผ์ผ Out & ์ค์ผ์ผ Up
๋จผ์ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํ ๋ ๊ฐ์ฅ ๊ฐ๋จ(?)ํ๊ฒ ์งํํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ค์ผ์ผ Out ๊ณผ ์ค์ผ์ผ Up ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๋น์ฉ์ด ํ๋ฝํ๋ค๋ฉด ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๋จ์ํ๊ฒ ์งํํ ์ ์๋ ๋ฐฉ๋ฒ์ด์ฃ ๐ธ๐ธ๐ธ
์ค์ผ์ผ Out - ์๋ฒ(๋ฌผ๋ฆฌ or ๋ ผ๋ฆฌ)๋ฅผ ์ถ๊ฐํ์ฌ ์ฒ๋ฆฌ๋ ๋ถ์ฐ์ ํตํ ์ฑ๋ฅ๊ฐ์
์ค์ผ์ผ Up - ์๋ฒ์ ์คํ(Cpu, Memory)์ ๋๋ ค ์ฒ๋ฆฌ ๋ฅ๋ ฅ ํฅ์์ ํตํ ์ฑ๋ฅ๊ฐ์
์ฟผ๋ฆฌ ํ๋
์ค์ผ์ผ Out/Up ์ ํ์ฌ๋ ์๋ ์๋ต์๋๊ฐ ๋๋ฆฐ ๋ก์ง์ ๊ฐ์ ์ด ๋์ง ์์ฃ . ๊ฒฝํ์ ์๋ต์๋๊ฐ ๋๋ฆฐ ๊ฐ์ฅ ๋ง์ ์ด์ ๋ ์ฟผ๋ฆฌ์ ์ํ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ์์ต๋๋ค.
๋ฌผ๋ก , ์์ฆ์ ๋ณต์กํ๊ฒ ์ค๊ณ๋ ํ ์ด๋ธ์ด ์กด์ฌํ๋ RDB ์ฌ์ฉ ๋น์ค์ด ์ ์ ๋ฎ์์ง๊ณ , ORM ์ด๋ NoSql ์ ์ฌ์ฉ์ด ๋์ด๋๋ ์ํฉ์๋ ๋น์ค์ด ๋ง์ด ์ค์์๊ฒ ๊ฐ๋ค์. (์๋ ์ฌ๋..๐ค)
๊ฐ๋ฐ์๊ฐ ํ ์ ์๋ ์ฟผ๋ฆฌ ํ๋์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์์ฑํ ์ฟผ๋ฆฌ์ ์ธ๋ฑ์ค ์ฌ์ฉ ์ฌ๋ถ์ด์ง ์์๊น ์ถ์ต๋๋ค.
์ฟผ๋ฆฌ๊ฐ ํ ์ค์บ์ ํ๋์ง ์ธ๋ฑ์ค ์ค์บ์ ํ๋์ง์ ๋ฐ๋ผ ์๋ต ์๋์ ์์ ์ฌ์ฉ์ ์์ฒญ๋ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์กฐ๊ฑด์ ๊ฑธ๋ ์ธ๋ฑ์ค๊ฐ ์๋ ์ปฌ๋ผ์ ์ฌ์ฉํด์ผ ํ๋ฉฐ, ์ธ๋ฑ์ค ์ปฌ๋ผ์ ๋ณ๊ฒฝํ๋ฉด ์๋ฉ๋๋ค.
๋จ, ์ํฉ์ ๋ฐ๋ผ ํ ์ค์บ์ด ์ธ๋ฑ์ค ์ค์บ ๋ณด๋ค ํจ์จ์ ์ธ ๊ฒฝ์ฐ๋ ์์ผ๋ ๋ฌด์กฐ๊ฑด ํ ์ค์บ์ด ๋์ ๊ฒ์ ์๋๋๋ค.
๊ฐ๋ฐ์๋ค์ด ์์ฃผ ์ค์ํ๋ ๊ฒฝ์ฐ๋ฅผ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
- ์๊ฑด : 2021๋ 9์ ๊ฐ์ ํ ๊ณ ๊ฐ(CUSTOMER)์ ์๋ฅผ ๊ตฌํ์!
- ์ธ๋ฑ์ค ์ปฌ๋ผ : JOIN_DATE
์๋ชป๋ ์
SELECT COUNT(ID) AS CNT
FROM CUSTOMER C
WHERE TO_CHAR(C.JOIN_DATE,'YYYYMM') = '202109'
์๋ ์
SELECT COUNT(ID) AS CNT
FROM CUSTOMER C
WHERE C.JOIN_DATE BETWEEN TO_DATE('20210901','YYYYMMDD') AND TO_DATE('20210930235959','YYYYMMDDHH24MISS')
์์ ๊ฐ์ด JOIN_DATE ์ปฌ๋ผ์ TO_CHAR ํจ์๋ก ๋ณ๊ฒฝํ๋ ๊ณผ์ ์์ ๊ธฐ๊ป ๋ง๋ค์ด๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ๋ฉ๋๋ค.
SQL ํ๋์ ๋๋ฌด๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์์ด, ์ ๋ฌธ๊ฐ์ธ ํ๋๋ DBA ๋ถ๋ค์ ๋์์ด ํ์ํฉ๋๋ค.
๋์ ๊ทธ ๊ฒฐ๊ณผ๋ ๊ฐ๋ฐ์์ธ ์ ๋ก์ฌ ๊ฒฝ์ด๋ก์ธ ์ ๋์ ํจ๊ณผ์ ์ ๋๋ค. ๐๐ป๐๐ป
์บ์(Cache) ๋์
์บ์๊ฐ ๋์ ๋๊ธฐ ์ ์๋ ํธ๋ํฝ์ด ์ฆ๊ฐ๋ก ์ง์ฐ์ด ๋ฐ์ํ๋ฉด, ์๋ฒ(Web, Was, DB) ์ค์ผ์ผ Out & Up ๋๋ ์ฟผ๋ฆฌ ํ๋ ๊ณผ์ ๋ง ๋ฐ๋ณตํด ์์ต๋๋ค.
ํ์ง๋ง ํธ๋ํฝ ๋ถ์ฐ๊ณผ ๋น ๋ฅธ ์๋ต์๋๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ค์ํ ์บ์ ์๋น์ค๊ฐ ์๊ธฐ๋ฉด์, ์น์๋น์ค ์์ผํ ์ฒ๊ฐ ์ข ๋ ๋ณต์กํด์ง๊ฒ ๋์์ฃ .
์น์๋ฒ ์์๋ ์น์บ์(ex. Ston)๊ฐ DB์๋ฒ ์์๋ ๋ฉ๋ชจ๋ฆฌ ์บ์(ex. Redis)๊ฐ ๋์ ๋๋ฉฐ ์์ ํ์ ํฐ ๋์์ ์ฃผ๊ฒ ๋ฉ๋๋ค.
๋จ, ์บ์ฑ๋ ๋ฐ์ดํฐ๋ก ์ธํด ๊ณ ๋ คํด์ผํ ๊ฒ๋ค๊ณผ ๊ด๋ฆฌ ํฌ์ธํธ๋ ๋ง์ด ๋์ด๋๊ฒ ๋์์ฃ . ๐คฆ๐ป
๊ฐ๋จํ ์๋ฅผ ๋ช๊ฐ์ง ๋ค๋ฉด
- ์คํ์์ค์ธ ์บ์ ์๋ฒ์ ๋ํ ๊ด๋ฆฌ๋ ๋๊ฐ ํ ๊ฒ์ด๋ฉฐ, ํด๋น ์์คํ Down ์ ๋์ฑ ์?
- ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๊ฐ ๊ณ ๊ฐ ํ๋ฉด์๋ ๋ฐ๋ก ๋ฐ์์ด ๋์ง ์๋ ๊ฒ์ ๋ํ ํ์ ์ ๋ถ๋ง์?
- ์บ์ฑ๋ ๋ฐ์ดํฐ์ ์บ์ฑ ๋์ง ์์ ๋ฐ์ดํฐ๋ ์ด๋ป๊ฒ ๊ตฌ๋ถํ์ง?
- ์บ์ฑ ์ ์ฑ , ๋ง๋ฃ ์ฃผ๊ธฐ, ์์ธ ์ผ์ด์ค ๋ฑ๋ฑ๋ฑ..๐คข๐คข
์ ๊ฐ ์ธ๊ธํ ์บ์ ์์คํ ์ธ์ ๋ค์ํ ์บ์ฑ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ฉฐ, ํ์์ ๋ฐ๋ผ ์ ํฉํ ์บ์๋ฅผ ์ ์ฉํ๋ฉด ํ์คํ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์๋ ์ฑ๋ฅ ๊ฐ์ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
๊ธ ๋ง๋ฌด๋ฆฌ
๋ฒ์จ 2์๊ธฐ ๋ค ๋์ด ๊ฐ๋ ๊ด๊ณ๋ก ์ฑ๋ฅ ๊ฐ์ ๊ด๋ จ ํฌ์คํ ์ ๋ค์ ํธ์ ๊ธฐ์ฝํ๋ฉฐ..๐ฅ๐๐ผ๐๐ผ
์ฐธ๊ณ ์๋ฃ
์ค์ผ์ผ Out & Up ์ด๋? https://asfirstalways.tistory.com/66
ORM ์ด๋? https://gmlwjd9405.github.io/2019/08/04/what-is-jpa.html
์ธ๋ฑ์ค ๋? https://mangkyu.tistory.com/96
ํ ์ค์บ๊ณผ ์ธ๋ฑ์ค ์ค์บ ์ด๋?
์น์บ์(Ston) : https://ston.readthedocs.io/ko/latest/admin/intro.html
๋ฉ๋ชจ๋ฆฌ์บ์(Redis) : https://aws.amazon.com/ko/redis/