๊ฐ์๊ธฐ ํ์๋คํํ
ํ
์คํธ ์๋ฒ๊ฐ ์ ์์ด ์๋๋ค๊ณ ์ฐ๋ฝ์ด ์๋ค. ๋ถ๋ช
์ด์ ๋ ๋ฐฐํฌ workflow๊ฐ ๋์ํ๊ณ ์ ์ ์๋ํ๋ ๊ฒ์ ํ์ธํ๊ธฐ ๋๋ฌธ์ ์ด์ํด์ ๋ก๊ทธ๋ฅผ ํ์ธํ๋๋, ์ฒ์ ๋ณด๋ ๋ก๊ทธ๊ฐ ์์๋ค. ํ์ธํด๋ณด์.Caused by: org.redisson.client.RedisAuthRequiredException: NOAUTH Authentication required. NOAUTH Authentication required. ๋NOAUTH Authentication required๋ ๋น๋ฐ๋ฒํธ๊ฐ ์ค์ ๋์ด ์์์๋ AUTH ์ค์ ์ด ์๋์์ด์ ๋ฐ์ํ๋ ์๋ฌ์ด๊ธฐ๋ ํ๋ค. ์ด๋ฅผ ํ์ธํ๋ ค๋ฉด redis-cli์ ์ ์ํด๋ณด์. ํ์๋ Docker container๋ก redis๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ผ๋ฏ๋ก ์กฐ๊ธ ๋ค๋ฅธ ๋ช
๋ น์ด๋ฅผ ์ฌ..
์๋ง ๋ฉํ ๋๊ณผ ๋ฐฐํฌ DB์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์์ ํ๋ ์ผ์ ๋ํด ์ด์ผ๊ธฐํ๋ ๋์ค์ ํฐ๋ฏธ๋์ ์ผ๋ ๋๋ฅผ ๋ณด๊ณ ๊น์ง ๋๋ผ๋ฉฐ ํฐ๋ฏธ๋๋ก ๊ด๋ฆฌ๋ฅผ ํ๊ณ ์๋๊ณ ๋ฌผ์๋ ๊ฒ์ด ์์ง๋ ๊ธฐ์ต๋๋ค. ์ปฌ๋ผ๋ช
์กฐ์ฐจ๋ ์ ๋๋ก ๋ณด์ด์ง ์๋ mysql cli๋ฅผ ์ผ๋ ์ด์ ๋ฅผ ์๊ฐํด๋ดค๋๋, ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ฌ๊ธฐ์ ๊ธฐ์ ๋ฐฐ์ธ ๋ ์ด๋ ๊ฒ ํ๋ ๊ฒ๋ง ๋ด์๊ณ ํ๋ก์ ํธ ๊ฐ๋ฐ๊น์ง๋ง ํ๊ณ ์ ์ง๋ณด์ ๋จ๊ณ๊น์ง ๊ฐ๋ณด์ง ์์ ๋ถํธํจ์ ํฌ๊ฒ ๋๊ปด๋ณด์ง ๋ชปํด์ ์๋ ๊ฒ ๊ฐ๋ค. Datagrip์ ๋ฐฐ์ฐ๋ฉด์ ์ ์ธ๊ณ๋ฅผ ๋ง๋ณด๊ณ ์ฌ๊ธฐ์ ๊ธฐ์ ์ธ๋ผ์ดํด์๋๋ฐ, ๋ถํธํ๋ ์ฌ๋์ ๋ชป๋ณธ ๊ฒ ๊ฐ๋ค. ํ๋ ์์ฌ์ด ์ ์ public subnet์ ์์ด์ผ๋ง ๊ฐ๋ฅํด์ ๋ณด์์ ์ผ๋ก ์์ฝ๋ค๋ ๊ฒ์ด์๋๋ฐ, ๋ด๊ฐ ๋ชจ๋ฅด๋ ๊ฒ์ด์๋ค.... SSH Tunneling์ ํตํด ์์ ํ๋ฉด์๋ ํธํ๊ฒ DB๋ฅผ ๋ค๋ฃฐ ์ ์..
์ด์ ๋
ธ์
๋ธ๋ก๊ทธ์ SQL Tutorial (2021.01.17)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. Aggreate Functions aggregate functions(์ง๊ณ ํจ์)์ ํญ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด๋ ์ต์ํด์ ธ์ผ ํ๋ค. arithmetic operators๋ ํ ํ์ ์ด๊ฐ์ ์ฐ์ฐ๋ง ์ํํ์ง๋ง, aggregate functions์ ํ ์ ์ฒด์ ๊ฑธ์ณ์ ์ํํ ์ ์๋ค. COUNT Counting all rows COUNT ๋ ํน์ ์ด์ ์ซ์๋ฅผ ์ธ๋ฆฌ๋ aggregate function์ด๋ค.. ์๋์ ๋ SQL ๋ฌธ์ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค. SELECT COUNT(*) FROM tutorial.aapl_historical_stock_price SELECT * FROM tutorial.aapl_historical_sto..
์ด์ ๋
ธ์
๋ธ๋ก๊ทธ์ [MySQL] DB Authentication ๋ฌธ์ | ERROR 1698 | Access denied for user 'root' (2021.07.26)๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. MariaDB 10.0 ๋ฒ์ ๋ถํฐ๋ ๋ณด์ ๋ฐฉ์์ด 'Unix Socket' ๋ฐฉ์์ด ์ ์ฉ๋๋ค. mysql -u root -p password spring datasource ์ ์ ๋ฐ๋ผ์ ์ด ๋ ๊ฐ์ง๋ฅผ ์ํด์๋ plugin ์ ๋ฐ๊ฟ์ผํ๋ค. ๋ง์ฝ ์ด๊ธฐ ์ ์์ด๋ผ๋ฉด, ๋น๋ฐ๋ฒํธ๋ ์ค์ ํด์ค์ผํ๋ค. $ sudo mysql mysql> use mysql; mysql> CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; mysql> CREATE USER 'user'@'%' ..
์ด์ Velog์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กฐํ ์ฑ๋ฅ์ ๊ฐ์ ํด๋ณด์ (2) : ์ธ๋ฑ์ค ํ๋ (2023.11.12) ๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. Github main repo / Github server repo ๋๊ธฐ 1ํธ์ ์นดํ
๊ณ ๋ฆฌ๋ณ ๋ฆฌ๋ทฐ ์กฐํ๋ฅผ ์์์ผ๋ก 500ms๊ฐ ๋์ด๊ฐ๋ ์์ฒญ๋ค์ ์์ฃผ๋ก Cardinality/Selectivity๋ฅผ ๊ณ ๋ คํ์ฌ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ๋ค. ํ์ง๋ง 1ํธ๊น์ง๋ ์ง์ง ๋์ฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋์๋ค. 2ํธ๋ถํฐ ์ฌ๊ธฐ์ด๋์ปดํผ๋ ๋ฒค์ฒ ํ๋ก์ ํธ์ธ๋งํผ ์ฌ๊ธฐ์ด๋ ํ๋ณด์๋ฃ์ ์๋ ๋ฐ์ดํฐ ๊ท๋ชจ์์ ์ฑ๋ฅ์ ์ธก์ ํด๋ณด๊ณ ํ์ํ๋ค๋ฉด ๊ฐ์ ๊น์ง ์งํํด๋ณด์. ๊ธฐ์กด ํ
์คํธ ๋ฐ์ดํฐ ์ค์ผ์ผ ์ฌํ์ํ: 30 (๊ฐ ์นดํ
๊ณ ๋ฆฌ 10๊ฐ์ฉ, ์์, ์๋น, ๋ ํฐ์นด) ์์ฝ: 540,000 (์นดํ
๊ณ ๋ฆฌ ๋ณ 180,000) - ์ฌํ์ํ ๋ง..
์ด์ Velog์ ๋์ฉ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์กฐํ ์ฑ๋ฅ์ ๊ฐ์ ํด๋ณด์ (1) : ์ธ๋ฑ์ค ์ ์ฉ (2023.10.27) ๋ก๋ถํฐ ๋ง์ด๊ทธ๋ ์ด์
๋ ๊ธ์
๋๋ค. Github main repo / Github server repo ๋๊ธฐ ์ง๋ ๋ฒ์ ๋ค์ํ JPA ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ๋นํจ์จ์ ์ผ๋ก ์์ฑ๋๋ ์ฟผ๋ฆฌ๋ฅผ ์ต์ ํํด ์ ์ฒด์ ์ธ ์๋ฒ ์ฑ๋ฅ์ด ๋ํญ ํฅ์๋์๋ค. ํ์ง๋ง ๋ฆฌ๋ทฐ ์กฐํ API์ ์ผ๋ถ ์์ฒญ์ ๊ฒฝ์ฐ ๋ํญ ํฅ์๋์์์๋ ๋ง์กฑ์ค๋ฌ์ด ์ฟผ๋ฆฌ ์ฒ๋ฆฌ ์๊ฐ์ ๋๋ฌํ์ง ๋ชปํ๋ค. ๋ค์ํ ์ ๋ ฌ๊ณผ ํํฐ๋ง์ ์ง์ํ๋ ์กฐํ ์ฟผ๋ฆฌ์ธ๋งํผ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด์ , ์ ๋ ฌ ์ ์ฉํ๋๋ฐ ๋ง์ ๋น์ฉ์ด ๋ค๊ณ , ํนํ ๋ฆฌ๋ทฐ์ ๋ถ์ ๊ฒฐ๊ณผ ์ค '์ฒญ๊ฒฐ' ์์ฑ์ด ํฌํจ๋ ๋ฆฌ๋ทฐ๋ค์ด๋ ๋ฆฌ๋ทฐ์ ๋ถ์ ๊ฒฐ๊ณผ ์ค '์ฒญ๊ฒฐ' ์์ฑ์ '๋จผ์ง' ํค์๋๊ฐ ํฌํจ๋ ๋ฆฌ๋ทฐ๋ค๊ณผ ๊ฐ์ด review ํ
์ด๋ธ๊ณผ..
๋ํ๋ง 14๊ธฐ์์ ์ฐธ์ฌ ์ค์ธ ํ๋ก์ ํธ์์ ๋ฐฑ์๋ ๋ฆฌ๋ ๋ถ์ด ์ํฐํฐ์ id๋ฅผ UUID, ULID๋ก ์ค์ ํ ๊ฒ์ ๋ณด์๋ค. ๋ IDENTITY๋ก ์ค์ ํ์ฌ MySQL์ด AUTO_INCREMENT๋ก ๊ด๋ฆฌํ๋๋ก ์์ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ๋ฐฉ์๊ณผ ๋๋นํด์ ์ด๋ค ์ฅ์ ์ด ์๊ธธ๋ ์ฌ์ฉํ๋์ง ์์๋ณด์๋ค. AUTO_INCREMENT ์ ๋ต์ ๋จ์ ์ธ๋ถ์์ ์์ธกํ๊ธฐ ์ฌ์ด PK PK๊ฐ ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๋ ์ ์์ด๊ธฐ ๋๋ฌธ์, ํน์ ๋ฐ์ดํฐ์ PK๋ฅผ ์์ธกํ๊ธฐ ์ฌ์์ง๋ค. ์ค์ ๋ก request๋ค์ ํ๋ผ๋ฏธํฐ๋ฅผ ํ
์คํธํ ๋ ์ข
์ข
๋๊ผ๋ ๊ฒ์ด๋ค. ํ์ฌ ์ ์ ์ id 2000์ด๋ฉด 1 ~ 1999๊น์ง์ id๋ฅผ ๊ฐ์ง ์ ์ ๊ฐ ์กด์ฌํ ํ๋ฅ ๋ ๋์ ๊ฒ์ด๋ค. ์ด๋ ๋จ์ํ ๋
ธ์ถ๋๋ค์ ๋ฌธ์ ๋ฅผ ๋์ด SQL Injection ๊ณต๊ฒฉ์๋ ์ทจ์ฝํด์ง๋ค. DB์ ์์กด์ ์ธ PK ๊ฐ๋ฐ..