๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (454)
Bibi's DevLog ๐ค๐
[210129] ์ค๋์ ํธ๋ ์ค ์์ ๋ฃ๊ณ ์ฝ๋ฉ, ๊ทธ๋ฃน๋ฆฌ๋ทฐ, ๊ทธ๋ฃน ํ๊ณ ๋ฅผ ํ๋ค. ๋ฏธ์ ์งํ์ด ํฐ๋ฌด๋์์ด ์ ๋์ด์ ๋๋ฌด ์ฌํ๋ค๐ญ ์ด๋ผํ ๋์ gist.. ๊ทธ๋๋ ๋ง์นจ ์ฃผ๋ง์ ์๊ฐ์ด ์์ผ๋ ์ฃผ๋ง ๋์ ์ด์ด์ ๊ณต๋ถํด์ผ๊ฒ ๋ค. ๋ฏธ์ ์ ์์ฑํ๋ ๊ฒ๋ ์ค์ํ์ง๋ง ๋ฏธ์ ์์ฑํ๋ ๋ฐ์ ํ์ํ ์ง์๊ณผ ๊ธฐ์ ์ ์ตํ์ผ๊ฒ ๋ค.. (ํนํ JDBC) TIL MySQL ํ ์ด๋ธ ์คํค๋ง ์กฐํ DESC ํ ์ด๋ธ๋ช : ํด๋น ํ ์ด๋ธ์ ์คํค๋ง๋ฅผ ์กฐํํ๋ ๋ช ๋ น์ด ํ ์ด๋ธ์ ์์ฑํ ๋ ์ค์ ํ ํ๋๋ช , ํ์ , ์ ์ฝ์กฐ๊ฑด ๋ฑ์ด ์๊ฐ์ด ๋์ง ์์์ ๊ฒ์ํจ. MySQL ์์ฝ์ด.. ์๋ฌด๋ฆฌ ํ ์ด๋ธ์ ์์ฑํด๋ ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that correspo..
[210128] ์ค๋์ docker, MySQL์ ๋ํด ๊ณต๋ถํ๊ณ , ์ค์นํ๊ณ , SQL ์ธ์ด์ ๋ํด ์กฐ๊ธ ์ตํ๋ ์๊ฐ์ด์๋ค. ์ค์น๋ ์ด๊ธฐ ์ค์ , ๊ณต๋ถ ์ข ํ๋ ํ๋ฃจ๊ฐ ๋ค ๊ฐ๋ค๐ ํ๋ก๊ทธ๋จ ์ง๋ ๊ฑด ๋ด์ผ ์์นจ๋ถํฐ ์ด์ฌํ ํด์ผ๊ฒ ๋ค. ๋ฏธ์ ๋ชฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋ค๋ฃจ๊ธฐ ์ํ ๊ธฐ์ด SQL๋ฌธ๋ฒ ์ตํ๊ธฐ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ๋ณธ๊ฐ๋ , ๋์ ์ดํดํ๊ธฐ (MySQL ๊ถ์ฅ) TIL ๋์ปค๋ ๋ฌด์์ธ๊ฐ? ๋ฐฐ๊ฒฝ ์๋ฒ ๊ด๋ฆฌ๋ฅผ ๋ ๋ณต์กํ๊ณ ํธํ๊ฒ ํ๊ธฐ ์ํด ๋ฑ์ฅํจ. ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ ์ปดํจํฐ์ OS, ํ๋ก๊ทธ๋จ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ์ ์ค์น/์์ ํ๋ ๊ฒ์ ์๋ฌ, ์ค๋ฅ๊ฐ ๋ฐ์ํ ์ ์๋ค. OS/ํ๋ก๊ทธ๋จ/๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํด์ผ ํ๋ฉฐ, ์๋ฒ ํ๊ฒฝ๋ ์๊ฐ์ด ํ๋ฅด๋ฉด์ ์กฐ๊ธ์ฉ ๋ฐ๊ฟ์ฃผ์ด์ผ ํ๋ฏ๋ก ์๋ฒ๋ฅผ ๋ค๋ฃจ๋ ์์ ์ ๋ถ๊ฐํผํ๋ฉด์๋ ๋ฆฌ์คํฌ๊ฐ ํฐ ์์ ..
์ด ๊ธ์ ์ธํ๋ฐ ์ํ์ฝ๋ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. MySQL CRUD CRUD = ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ์ 4๊ฐ์ง ๊ธฐ๋ฅ. → Create ๋ฐ์ดํฐ ์์ฑ, Read ๋ฐ์ดํฐ ์กฐํ, Update ๋ฐ์ดํฐ ์์ , Delete ๋ฐ์ดํฐ ์ญ์ ์ด ์ค์์๋ DB๋ผ๋ฉด ๋ฐ๋์ ๊ฐ์ง๊ณ ์๋๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ฅ์? Create์ Read. ์ด๋ค ๋ถ์ผ(ํ๊ณ, ์ญ์ฌ ๋ฑ)์์๋ ๋ฐ์ดํฐ ์์ ๊ณผ ์ญ์ ๊ธฐ๋ฅ์ ์ ํ ์ฌ์ฉํ์ง ์๊ธฐ๋ ํ๋ค. โป DESC ํ ์ด๋ธ์ด๋ฆ; : ํด๋น ํ ์ด๋ธ์ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ช ๋ น์ด. Create : SQL์ INSERT ๊ตฌ๋ฌธ ํ์ ํ์ '์ฝ์ 'ํ๋ค๋ ์ ์์ INSERT๋ฅผ ์ฌ์ฉํ๋ค. auto_increment ์ธ ๊ฐ๋ง ์ ์ธํ๊ณ ํญ๋ชฉ๋ค์ ์ ์ด๋ฃ์ผ๋ฉด ๋๋ค. → INSERT INTO ํ ์ด๋ธ์ด๋ฆ (..
์ด ๊ธ์ ์ธํ๋ฐ ์ํ์ฝ๋ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. ํ ์ด๋ธ ์์ฑ : CREATE TABLE ํ ์ด๋ธ ์ด๋ฆ(... ๊ฐ column ์ด๋ฆ๊ณผ ๋ช ๋ น์ด๋ค ...); ํ ์ด๋ธ ์ญ์ : DROP TABLE ํ ์ด๋ธ ์ด๋ฆ; ํ ์ด๋ธ ์กฐํ : SHOW TABLES; TABLES ์ด๋ค! โป ํ์ฌ ๋ก๊ทธ์ธ๋ ์ฌ์ฉ์์ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ : SET PASSWORD = PASSWORD('๋น๋ฐ๋ฒํธ'); ์๋ฃํ Datatype SQL์ ํ ์ด๋ธ์ ์์ฑํ ๋๋ถํฐ ๊ฐ column์ ๋ค์ด๊ฐ datatype์ ์ ํด์ผ ํ๋ค. ์๋ฃํ์ MySQL Datatype์ผ๋ก ๊ตฌ๊ธ๋งํด์ ์ํ๋ ์๋ฃํ ๋ช ๋ น์ด๋ฅผ ๋ฃ๋๋ค. INT(์ต๋์ถ๋ ฅ์๋ฆฟ์) ์์์ ์๋ ์์, ์์, 0.(=INTEGER) string : ๋ฌธ์์ด , characte..
์ด ๊ธ์ ์ธํ๋ฐ ์ํ์ฝ๋ฉ-DATABASE 1&2๋ฅผ ๋ณด๊ณ ์ ๋ฆฌํ ๊ฒ์ ๋๋ค. MySQL ์ ๊ตฌ์กฐ MySQL์ ๊ตฌ์ฑ์์๋ ์ธ ๊ฐ์ง๊ฐ ์๋ค. : ํ, ๋ฐ์ดํฐ๋ฒ ์ด์ค(์คํค๋ง), ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ. MySQL๊ณผ ๊ฐ์ ๊ด๊ณํDB๋ _๋ฐ์ดํฐ_๋ฅผ 'ํ table'๋ก ์ ์ฅํ๋ค. ํ๊ฐ ์ฌ๋ฌ ๊ฐ๊ฐ ๋๋ฉด ํ๋ฅผ ์ ๋ฆฌํ ํ์๊ฐ ์๊ธด๋ค. = ํ์ผ์ ํด๋๋ก ๋ฌถ๋ ๊ฒ์ฒ๋ผ. ์ด๋ ๊ฒ _์๋ก ์ฐ๊ด๋ ๋ฐ์ดํฐ(ํ)๋ฅผ ๊ทธ๋ฃนํํ ๊ฒ_์ '๋ฐ์ดํฐ๋ฒ ์ด์ค database'๋ผ๊ณ ํ๋ค. ('๋ฐ์ดํฐ๋ฒ ์ด์ค'๋ผ๋ ๊ฐ๋ ๊ณผ ๋ฌ๋ฆฌ ๊ด๊ณํDB์์ ํ๋ฅผ ๋ฌถ๋ ๋จ์์. ์ด๋ฆ์ด ๊ฐ์ ๋ฟ) _MySQL_์์๋ ์ด๋ฐ ํผ๋์ ๋ฐฉ์งํ๊ธฐ ์ํด '๋ฐ์ดํฐ๋ฒ ์ด์ค' ๋์ '์คํค๋ง schema' ๋ผ๊ณ ๋ ํ๋ค. ๋ง์์ง ์คํค๋ง..
[210127] ์ด์ ๋ ๋ฏธ์ ์ฝ๋ฉ๋ง ํ๊ณ ์๋ฐ๋ฅผ ๊ฐ๋๋ผ TIL์ ๋ชป ์ ์๋ค. ์ค๋์ ์๊ณ ๋ฆฌ์ฆ ํ๋ ๋ . TIL ์ ์ ๊ฒ ๋ง์ ๊ฒ ๊ฐ์ผ๋ ์ ์ ๋ฆฌํด์ ์ฌ๋ ค์ผ๊ฒ ๋ค. ์ง๊ธ๊น์ง์ ์๊ณ ๋ฆฌ์ฆ๋ฐ์ด ์ค์ ๊ฐ์ฅ ๋๋ ์ ์ด ๋ง์ ๋ ์ด์๋ค(prisoner ๋ฌธ์ ). ๊ทธ๋ฆฌ๊ณ ์๊ฒ ๋ ์ ๋ ๋ง์ ๋ ์ด์๋ค(์๋จ์ด..๐ ) TIL ์๋ฐ ์ ๋๊ฐ ๊ตฌํ๊ธฐ Math.abs() Math.abs(num) : ์ซ์ num์ ์ ๋๊ฐ์ ๋ฐํํ๋ค. num์ int, double, float, long ์ซ์ ์๋ฃํ์ด ๋ ์ ์๋ค. ๋ฆฌํด ํ์ : num๊ณผ ๋์ผํ ํ์ . Hakerrank - kangaroo 1/3์ ๋์ ํ ์คํธ์ผ์ด์ค๊ฐ ํ๋ ธ์ ๋ ๋์ ํ ๋ชจ๋ฅด๊ฒ ์ด์ ๋ค๋ฅธ ์ฌ๋๋ค์ ํ์ด๋ฅผ ์ฐพ์๋ณด๊ณ ๋ค์ ์ฝ๋ฉํ๋ค. ๋ด๊ฐ ์๊ฐํ์ง ๋ชปํ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฒ ๋์๊ณ , ๊ทธ..
[210125] ๋ฒ์จ CS10์ 7๋ฒ์งธ ๋ฏธ์ ์ด๋ผ๋ ๊ฒ ์ ๊ธฐํ๋ค. ๋ถ๋ช ํ๋ฃจ๊ฐ ์ผ์ฃผ์ผ ๊ฐ์๋๋ฐ ์ด์ ๊ฑฐ์ ๋๋๊ฐ๋ค๋:open_mouth: ์ค๋ ๋ฏธ์ ๋ ์ด๋ ต์ง๋ง, ์ผํ ๋ด๋ ์ค์ํด ๋ณด์ฌ์ ์ด์ฌํ ๋ฐฐ์ฐ๊ณ ์ตํ์ผ๊ฒ ๋ค๋ ์๊ฐ์ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ต๊ทผ ๋ฏธ์ ์ ํ๋ฉด์ ๊ณต๋ถ๋ง ํ๋ค๊ฐ ๋ฏธ์ ์ ๋ค ๋ชป ํ ์ ์ด ๋ง์์, ์ด๋ฒ์๋ ์๊ฐ์ (๋์ถฉ) 1:1์ ๋๋ก ๋ถ๋ฐฐํด ๋ณด์๋ค - ํจ์ฌ ์ข์ ๊ฒ ๊ฐ๋ค! ํธ๋ ์ค์ ๊ฐ๋จ ๋ฏธ์ ์ค๋ช ์ด๋ฒ ๋ฏธ์ ์ ํต์ฌ ํค์๋๋ ๋น๋๊ธฐ. ์๋ฐ๋.. ''์๋ฐ ๋น๋๊ธฐ''๋ก ๊ฒ์์ ํด์ ๋ญ๊ฐ ๊ณ ๋ฅด๊ธฐ.. ๋๊ธฐ&๋น๋๊ธฐ, ๋ธ๋ก&๋ ผ๋ธ๋ก์ ์ฐจ์ด๋? ๋๊ธฐ-๋ธ๋ก, ๋๊ธฐ-๋ ผ๋ธ๋ก, ๋น๋๊ธฐ-๋ธ๋ก, ๋น๋๊ธฐ-๋ ผ๋ธ๋ก ํน์ง ์์๋ณด๊ธฐ. ๊ทธ๋ฐ ๋ค์ ๊ณผ์ ๋ฅผ ๋น๋๊ธฐ๋ก ์ํํ๊ธฐ. (์์) ๋๊ธฐ ์นดํ ์ฃผ๋ฌธ์ ํ๋ฉด ์ปคํผ๊ฐ ..
[210123] ์ค๋์ ๋ธ๋ก๊ทธ์ ๋งํฌ๋ค์ดCSS๋ฅผ ์ ์ฉํ๊ณ (ํจ์ฌ ๋ณด๊ธฐ ์ข๋ค!) ๊ฐ๋จํ๊ฒ ๋ฐ๋ฆฐ ์๋ฐ ๊ธฐ๋ณธ์ ๋ณต์ต(Map, Thread)๋ฅผ ํ๋ค. ๐ TIL ์๋ฐ Random ํด๋์ค nextInt() ์๋ฐ์์ ๋์๋ฅผ ๋ง๋ค ๋ ์์ฃผ ์ฌ์ฉํ๋ nextInt()์ ๋ํด ๋ชฐ๋๋ ์ฌ์ค. nextInt(int num) ์ผ๋ก boundary๋ฅผ ์ ํ๋ฉด 0๋ถํฐ ๊ทธ ์๊น์ง ๋ฒ์ ๋ด์ ๋ฌด์์ ์๋ฅผ ๋ฆฌํดํ๋ ๊ฑด ์ค ์์๋๋ฐ, 0๋ถํฐ num-1๊น์ง ๋ฒ์์ ์๋ ๋ฌด์์ ์๋ฅผ ๋ฆฌํดํ๋ ๊ฑฐ์๋ค(num์ ํฌํจ๋์ง ์๋๋ค.) ๊ทธ๋์ ๋ง์ฝ ๋์ ๋ฒ์๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ๋ค๋ฉด ๊ทธ ์๋งํผ ๋ํด ์ฃผ์ด์ผ ํ๋ค. ์ค๋ ํผ ๋ฌธ์ ์ฒ๋ผ 1-50 ์ฌ์ด์ ๋์๋ฅผ ์ถ์ถํ๊ณ ์ถ๋ค๋ฉด, nextInt(50)์ด ์๋ nextInt(50) + 1 ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ค. ..