๋ฐ์ํ CS/Database10 ์ ๋ฌด์ ๋ฐ๋ก ์ฐ๋ SQL ํ๋ 2 - SQL ํ๋ ์ค์ต (1) ์ง๋ ํฌ์คํ ์์ SQL ํ๋ ์ด๋ก ์ ๋ํด ์ดํด๋ณด์๋๋ฐ์, ์ด๋ฒ ํฌ์คํ ์์๋ ์ค์ ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฟผ๋ฆฌ์ ๋ฌธ์ ์ ์ ํ์ ํ๊ณ , ํ๋ํ์ฌ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค.(์ค์ ํ๋ ์ SQL ๋ฌธ์ ํ์ธํ์ฌ ๋ฌด์์ด ๋ฌธ์ ์ธ์ง ํ์ ํด๋ณด๊ณ , ์ง์ ๊ฐ์ ํด๋ณด๊ณ ํ๋ ํ SQL ๋ฌธ์ ํ์ธํ๋ ๋ฐฉ์๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.) ์ ์ฑ SQL ํ๋์ผ๋ก ์ด๋ณด์ ํ์ถํ๊ธฐ์ค๋ฌด์ ์ธ SQL ํ๋ ์ ์ฐจ ์ดํดํ๊ธฐ1. SQL ๋ฌธ ์คํ ๊ฒฐ๊ณผ & ํํฉ ํ์ ๊ฒฐ๊ณผ ๋ฐ ์์์๊ฐ ํ์ธ์กฐ์ธ / ์๋ธ์ฟผ๋ฆฌ ๊ตฌ์กฐ๋๋ฑ / ๋ฒ์ ์กฐ๊ฑด2. ๊ฐ์์ ํ ์ด๋ธ์ ๋ฐ์ดํฐ ๊ฑด์SELECT ์ ์ปฌ๋ผ ๋ถ์์กฐ๊ฑด์ ์ปฌ๋ผ ๋ถ์๊ทธ๋ฃจํ / ์ ๋ ฌ ์ปฌ๋ผ3. ๋น๊ฐ์์ ์คํ๊ณํ์ธ๋ฑ์ค ํํฉ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ถ์ด์ ๋ฌด์ ํน์ง4. ํ๋ ๋ฐฉํฅ ํ๋จ & ๊ฐ์ / ์ ์ฉ (ํ ์คํธ) SQL ๋ฌธ ๋จ์ ์์ ์ผ๋ก ์ฐฉํ ์ฟผ๋ฆฌ .. 2024. 10. 8. ์ ๋ฌด์ ๋ฐ๋ก ์ฐ๋ SQL ํ๋ 1 - SQL ํ๋ ์ด๋ก ํด๋น ํฌ์คํ ์ ์ ๋ฌด์ ๋ฐ๋ก ์ฐ๋ SQL ํ๋ ๋์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ฑํ์์ต๋๋ค. ์ด์ ์ง์ฅ์์๋ ์ฃผ๋ก ์ค๋ผํด์ ์ฌ์ฉํ์๊ณ , ์์ผ๋ก๋ MySQL(MariaDB, Postgresql...) ์ ์ฌ์ฉํ ์์ ์ด๊ธฐ์ ๊ด๋ จํ์ฌ ์คํ ๊ณํ ๋ฐ ์ฌ๋ฌ SQL ํ๋ ๊ธฐ๋ฒ๋ค์ ๋ํด ์ ๋ฆฌํด ๋ณด๊ณ ์ ํฉ๋๋ค. ์์ ์ Real MySQL ๋์๋ฅผ ํตํด ์ด๋ก ์ ์ผ๋ก ํ์ตํ์์ง๋ง, ์ค๋ผํด์ ์ฃผ๋ก ์ฌ์ฉํ๋ค๋ณด๋ MySQL์ ์ฃผ์ ์คํ ๊ณํ์ ๋ํด์๋ ์ ๋ฆฌ ์ฐจ์์์ ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ฑ ์ ์์ ๋ค์ ํตํด ํ์์ ์ด๋ก ์ผ๋ก๋ง ์๊ณ ์์๋ ๋ด์ฉ๋ค์ด๋ ๊ฒฝํ์ด ์์๋ ํ๋๋ค ๋ฑ ๋ค์ํ๊ฒ ๊ฒฝํํด๋ณผ ์ ์์ด ์ข์์ต๋๋ค.์ฑ ์ ์์ ๋ค์ ํตํด ์ ํ ์๋ก์ด ์ ๊ทผ์ด๋, ํ์์ ์ด๋ก ์ผ๋ก๋ง ์๊ณ ์์๋ ๋ด์ฉ๋ค, ์กฐ๊ธ์ด๋๋ง ๊ฒฝํ์ด ์์๋ ์ฟผ๋ฆฌ ๋ฑ ์ ํด์ง ๋ฐ์ดํฐ ํ์์ด๊ธด .. 2024. 10. 7. MySQL EXPLAIN ์คํ๊ณํ ๋ง์คํฐํ๊ธฐ(feat. RealMySQL 8.0) ๐ฏ MySQL EXPLAIN ์คํ๊ณํ ๋ง์คํฐํ๊ธฐ(feat. RealMySQL 8.0) ์คํ ๊ณํ(EXPLAIN) ์ด๋? ๋๋ถ๋ถ์ DBMS๋ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ , ๋น ๋ฅด๊ฒ ์ ์ฅ ๋ฐ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ฃผ๋ชฉ์ ์ด๋ค. ์ด๋ฌํ ๋ชฉ์ ์ ๋ฌ์ฑํ๊ธฐ ์ํด ์ฌ์ฉ์์ ์ฟผ๋ฆฌ๋ฅผ ์ตํฐ๋ง์ด์ ๊ฐ ์ต์ ์ผ๋ก ์ฒ๋ฆฌ๋ ์ ์๋๋ก ์ฟผ๋ฆฌ์ ์คํ ๊ณํ์ ์๋ฆฝํ ์ ์์ด์ผ ํ๋ค. ํ์ง๋ง ์ตํฐ๋ง์ด์ ๊ฐ ํญ์ ์ต์ ์ ์คํ ๊ณํ์ ๋ง๋ค์ด๋ผ ์ ์๋ ๊ฒ์ ์๋๋ฏ๋ก DBMS ์๋ฒ๋ ์ด๋ฌํ ๋ฌธ์ ์ ์ ๊ด๋ฆฌ์๋ ์ฌ์ฉ์๊ฐ ๋ณด์ํ ์ ์๋๋ก EXPLAIN ๋ช ๋ น์ผ๋ก ์ตํฐ๋ง์ด์ ๊ฐ ์๋ฆฝํ ์คํ ๊ณํ์ ํ์ธํ ์ ์๋ค. ํ ์คํธ ๋ฐ์ดํฐ๋ฒ ์ด์ค: https://github.com/datacharmer/test_db ์คํ ๊ณํ ์๋ฏธ id SELECT ์ฟผ๋ฆฌ ๋ณ ๋ถ์ฌ๋๋ ์๋ณ์ ๊ฐ se.. 2023. 1. 7. [Spring Data MongoDB] - Auto Increment Sequence ์ด๊ธฐํํ๊ธฐ ๐ [Spring Data MongoDB] - Auto Increment Sequence ์ด๊ธฐํํ๊ธฐ ์๋ ํ์ธ์, ์ ๋ฒ ์๊ฐ์๋ Spring Data MongoDB์์ Auto Increment Sequence ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ต๋๋ค. ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กด์ฌํ๋ ๊ฐ๋ค์ ์ ๊ฑฐํ๋ฉด์ Auto Increment ๊ฐ๋ ์ด๊ธฐํ ํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํ์์ต๋๋ค. MySQL์์๋ ๋จ์ ์ฟผ๋ฆฌ๋ฌธ์ผ๋ก Auto Increment๋ฅผ ์ด๊ธฐํ ํ ์ ์๋๋ฐ์, MongoDB์์๋ ๊ตฌ๊ธ๋ง์ ํด๋ด๋ ์๋ฃ๊ฐ ์ ๋์ค์ง ์์์ต๋๋ค.(๊ฒ์ ๋ฅ๋ ฅ์ด ๋ถ์กฑํด์...) ๋ฐ๋ผ์ ์ด๋ป๊ฒ ์ด๊ธฐํ๋ฅผ ํ ์ ์์์ง ๊ณ ๋ฏผ์ ํ๋ค๊ฐ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฐพ๊ฒ๋์๋๋ฐ์, ์๊ฐ์ธ๋ก ํจ์ฌ ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์์ต๋๋ค. 1) Sequence ๋ฉ์๋๋ฅผ ์ฆ๊ฐ์.. 2021. 9. 11. [Spring Data MongoDB] Auto-Increment Sequence ๋ง๋ค๊ธฐ ๐ Spring Data MongoDB Auto-Increment Sequence ๋ง๋ค๊ธฐ ์๋ ํ์ธ์, ์ด๋ฒ ์๊ฐ์ ์ ๋ฆฌํ ๋ด์ฉ์ Spring Data MongoDB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ ๋ ๋ง๋ค ์๋์ผ๋ก ์ฆ๊ฐํ๋ ํ๋๋ฅผ ์์ฑํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. ํด๋น ๊ธฐ๋ฅ์ MySQL์์์ AUTO INCREMENT์ ๋์ผํ๋ค๊ณ ๋ณด์๋ฉด ๋ฉ๋๋ค. โป Spring Data MongoDB์ ๊ฒฝ์ฐ ์ฒ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ํ๋ฆฐ ๋ด์ฉ์ด ์์ ์ ์์ต๋๋ค. Sequence Collection ์์ฑ package com.juhyun.shorturl.entity.sequence; import lombok.Getter; import lombok.Setter; import org.springframework.data.annotation.Id; .. 2021. 9. 10. [MySQL] - ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) ๐ ๊ธ๋ 6๊ธฐ ํฌ์คํ 1. ๋ฏธ์น๋๋ก ๋์ ๋ 7์์ ํ๊ณ 2. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ 3. Spring AOP - (1) ํ๋ก์ ํจํด, ๋ฐ์ฝ๋ ์ดํฐ ํจํด 4. [MySQL] - ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) 5. Spring AOP - (2) AOP ๊ฐ๋ ๋ฐ ์ค์ต 6. ์ธํ ๋ฆฌ์ ์ด(IntelliJ) - ๋๋ฒ๊น (Debugging) ํ๊ธฐ 7. [Java, ๋์์ธํจํด] - ์ฑ๊ธํด ํจํด(Singleton Pattern) 8. ์๊ฐ ์ฝ๋๋ฆฌ๋ทฐ Ver_0.1: ์ปค๋ฆฌ์ด ์ฑ์ฅ CODE ์ธ๋ฏธ๋ ์ ๋ฆฌ 9. ํฌ์คํธ๋งจ(API ํ ์คํธ) ํ์ฉํ๊ธฐ 10. ๋ป๊น์ 2021๋ ํ๊ณ ๐ MySQL ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) ์๋ ํ์ธ์, ์ด๋ฒ ์๊ฐ์ ์ ๋ฆฌํ ๋ด์ฉ์ MySQL์์.. 2021. 9. 5. DBCP(DataBase Conncetion Pool), ์ปค๋ฅ์ ํ ์ด๋? ๐ DBCP(DataBase Connection Pool) ์๋ ํ์ธ์, ์ด๋ฒ์ ์ ๋ฆฌํ ๋ด์ฉ์ DBCP(๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ) ์ ๋๋ค. ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด๋์ธ ์น ์ดํ๋ฆฌ์ผ์ด์ ์์, ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ๋ผ Connection์ด ์์ฑ๋๋ค๋ฉด ์ ๋ง์ ์ฌ์ฉ์๊ฐ ์์ฒญ์ ํ์ ๋ ์๋ฒ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฌ๊ฒ ๋ฉ๋๋ค. ์ด๋ฌํ ์ํฉ์ ์๋ฐฉํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ผ์ ๊ฐฏ์์ Connection์ ๋ง๋ค์ด Pool์ ์ ์ฅ์ ํ๊ณ , ์ฌ์ฉ์์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด Connection์ ์ ๊ณตํ๊ณ ์ฌ์ฉ์์์ ์ฐ๊ฒฐ์ด ์ข ๋ฃ๋๋ค๋ฉด Pool์ ๋ค์ ๋ฐํํ์ฌ ๋ณด๊ดํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ฆ, Connection Pool์ ๋ํด ์ ๋ฆฌํ์๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ์ฌ๋ฌ ๊ฐ์ DB Connection์ ํ๋์ Pool์ ๋ชจ์๋๊ณ ๊ด๋ฆฌ DB ์ปค๋ฅ์ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ ๊ฐ ์์ฑ.. 2021. 8. 10. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ ๐ ๊ธ๋ 6๊ธฐ ํฌ์คํ 1. ๋ฏธ์น๋๋ก ๋์ ๋ 7์์ ํ๊ณ 2. ์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ ๋์ ํธ๋์ญ์ ์ฒ๋ฆฌ 3. Spring AOP - (1) ํ๋ก์ ํจํด, ๋ฐ์ฝ๋ ์ดํฐ ํจํด 4. [MySQL] - ํธ๋์ญ์ ์ ๊ฒฉ๋ฆฌ ์์ค(Isolation level) 5. Spring AOP - (2) AOP ๊ฐ๋ ๋ฐ ์ค์ต 6. ์ธํ ๋ฆฌ์ ์ด(IntelliJ) - ๋๋ฒ๊น (Debugging) ํ๊ธฐ 7. [Java, ๋์์ธํจํด] - ์ฑ๊ธํด ํจํด(Singleton Pattern) 8. ์๊ฐ ์ฝ๋๋ฆฌ๋ทฐ Ver_0.1: ์ปค๋ฆฌ์ด ์ฑ์ฅ CODE ์ธ๋ฏธ๋ ์ ๋ฆฌ 9. ํฌ์คํธ๋งจ(API ํ ์คํธ) ํ์ฉํ๊ธฐ 10. ๋ป๊น์ 2021๋ ํ๊ณ ์๋ ํ์ธ์, ์ผ๋ง ์ ๋ฉด์ ์์ ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ฐ์ ์ ์ด ์์์ต๋๋ค. "์ฌ์ฉ์๊ฐ ๊ฒ์๋ฌผ์ ์์ฑํ๊ณ , ํ์ผ ์ ๋ก๋๋ฅผ .. 2021. 8. 5. MongoDB CRUD(์์ฑ, ์กฐํ, ์์ , ์ญ์ ) ์ฟผ๋ฆฌ๋ฌธ ๐ MongoDB CRUD(์์ฑ, ์กฐํ, ์์ , ์ญ์ ) ์ฟผ๋ฆฌ๋ฌธ ์๋ ํ์ธ์, ์ง๋ ์๊ฐ์๋ MongoDB ์ GUI Client์ธ compass์ ๋ํด ์ค์น๋ฅผ ํด๋ณด์๋๋ฐ์, ์ด๋ฒ์๋ MongoDB์์ ๊ฐ๋จํ CRUD ์์ ์ ์งํํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. (๋ณธ ํฌ์คํ ์์๋ MongoDB์์์ ๋ชจ๋ CRUD ์ฐ์ฐ์ ๋ค๋ฃจ์ง๋ ์์ต๋๋ค. ์ถ๊ฐ์ ์ธ ์ฟผ๋ฆฌ๋ ๋ฌธ๋ฒ ๋ฑ์ด ๊ถ๊ธํ์๋ฉด ๊ณต์๋ฌธ์๋ฅผ ๋ฐฉ๋ฌธํด์ฃผ์ธ์ !) ๐ฏ MongoDB Create(Insert) ์ฟผ๋ฆฌ -- ํ๊ฐ์ document ์ฝ์ db.collection.insert({ document }) -- ๋ค์์ document ์ฝ์ db.collection.insertMany([ document ]) db.collection.insert() db.collection.in.. 2021. 7. 26. MongoDB, compass(MongoDB GUI Client) ์ค์นํ๊ธฐ(MacOS) ์๋ ํ์ธ์! ์ด๋ฒ ์๊ฐ์๋ MacOS์ ๋ชฝ๊ณ ๋๋น๋ฅผ ์ค์นํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๋ชฝ๊ณ ๋๋น๋ฅผ ์ค์นํ๊ธฐ์ ์ ๋ชฝ๊ณ ๋๋น์ NoSQL์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ดํด๋ณด๊ณ , ์ค์น๋ฅผ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค. โป ๋ชฝ๊ณ ๋๋น๋ ์ฒ์ ์ฌ์ฉํด๋ณด๊ธฐ ๋๋ฌธ์ ์๋ชป๋ ๋ด์ฉ์ด ์กด์ฌํ ์ ์์ต๋๋ค๐ญ NoSQL ์ด๋? Wiki์๋ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ต๋๋ค. ๋จ์ด ๋ป ์์ฒด๋ฅผ ๋ฐ์ง๋ฉด "Not only SQL"๋ก SQL๋ง์ ์ฌ์ฉํ์ง ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ์ง์นญํ๋ ๋จ์ด์ ๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ ์๋ฏธ๊ฐ ์๋, ์ฌ๋ฌ ์ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค. ๋ํ ๊ธฐ์กด์ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํ๊ณ๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํ ๋ฐ์ดํฐ์ ์ ์ฅ์๋ก ๋ฌธ์, ๊ทธ๋ํ, key-value, ์ธ๋ฉ๋ชจ๋ฆฌ, ๊ฒ์ ๋ฑ์ ํฌํจํ ๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉ.. 2021. 7. 21. ์ด์ 1 ๋ค์ ๋ฐ์ํ