๋ชฉ๋กBackend๐งฑ (24)
๊ฐ๋ฐ์ผ์ง
1. ๋ฌธ์ ์ํฉDBeaver๋ผ๋ DBํด์ ์ฌ์ฉํด, ๋ก์ปฌ Mysql์๋ฒ์ ์ ์ํ๋ ค๋๋ฐ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ๊ฐ ๋์๋ค. "Public Key Retrieval is not allowed" 2. ์์ธ์ด ์ค๋ฅ๋ MySQL 8.0 ์ด์์์ ๋ณด์ ์ค์ ๋๋ฌธ์ ๋ฐ์ํ๋ ๋ฌธ์ ์ ๋๋ค. DBeaver์์ ์ฐ๊ฒฐ ์ค์ ์ ์์ ํ๋ฉด ํด๊ฒฐํ ์ ์์ต๋๋ค3. ํด๊ฒฐ์ฑ 1. DBeaver์์ ์ฐ๊ฒฐ ์ค์ ์ ์ด๊ณ 2. "Driver Properties" ํญ์ ์ ํ 3. "allowPublicKeyRetrieval" ์์ฑ์ ์ฐพ์์ ๊ฐ์ true๋ก ์ค์

[์ฐธ๊ณ ๊ฐ์]https://www.inflearn.com/course/%EB%B9%84%EC%A0%84%EA%B3%B5%EC%9E%90-docker-%EC%9E%85%EB%AC%B8-%EC%8B%A4%EC%A0%84/dashboard ๋น์ ๊ณต์๋ ์ดํดํ ์ ์๋ Docker ์ ๋ฌธ/์ค์ ๊ฐ์ | JSCODE ๋ฐ์ฌ์ฑ - ์ธํ๋ฐJSCODE ๋ฐ์ฌ์ฑ | , ๐คฌ ์๋ผ์ด, ๋ชป ํด๋จน๊ฒ ๋ค!๋น์ ๊ณต์๋ก ๊ฐ๋ฐ์ ์์ํด ์ฌ๋ฌ ํ์ฌ์์ CTO๋ก ํ๋ํ๋ค๊ฐ, ํ์ฌ๋ ๊ต์ก์๋ก ํ๋ํ๊ณ ์๋ ๋ฐ์ฌ์ฑ์ด๋ผ๊ณ ํฉ๋๋ค. ์ ๋ ๋น์ ๊ณต์๋ก ๊ฐ๋ฐ์ ์์ํด ์๋ฒwww.inflearn.com 1. ๋์ปค๋ ์ ๋ฐฐ์ฐ๋ ๊ฑธ๊น?์ฌ๋ฌ ์ฅ์ ์ด ์์ง๋ง, ํต์ฌ ์ฅ์ ํ ๊ฐ์ง๋ง ๊ผฝ์๋ฉด์ด์์ฑ : ํน์ ํ๋ก๊ทธ๋จ์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ฝ๊ฒ ์ฎ๊ฒจ์ ์ค์น ๋ฐ ์คํํ ์ ์๋ ํน์ฑ ..

์ฟผ๋ฆฌ์ต์ ํ ๋์ค, ๊ถ๊ธ์ฆ์ด ๋ค์๋ค. ํ ์ด๋ธ์ ์ฌ๋ฌ๊ฐ ์กฐ์ธํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ๊ทผ๋ฐ ์ฌ๋ฌ๊ฐ ์กฐ์ธ์ ํ๋ฉด ์ฌ๋ฌ ํ ์ด๋ธ๋ค์์ ์กฐ๊ฑด์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ๋ถ์ฌ์ผ๋์ง ์๋? ๊ทธ๋ผ ์กฐ์ธ ๋์ ์ ์๋ธ์ฟผ๋ฆฌ๋ก ํด๊ฒฐํ ์ ์๋๊ฒฝ์ฐ์๋ ๋ ์ฑ๋ฅ์ด ๋ซ์ง ์์๊น? ์๊ฐ์ด๋ค์๋ค. ์๋๋ ์๋ฌธ์ ์ ๋ํ ํ ์คํธ ๊ฒฐ๊ณผ์ด๋ค. 1. ๋ฐฐ๊ฒฝ์กฐ์ธ์ด 4๋ฒํ๋ ์ฟผ๋ฆฌSELECT small.id, small.large_category_item_id, small.title, small.due_date, assignee.name, status.name "status_name", small.amount FROM small_category_item small JOIN large_category_item large ON..

[์ฐธ๊ณ ์์]https://www.youtube.com/watch?v=LyGikAQHt54&list=PLtUgHNmvcs6rJBDOBnkDlmMFkLf-4XVl3&index=10 ๋๋ ค์ง๋ค.์ธ๋ฑ์ค๊ฐ ๋ง์์ง ์๋ก write์ฐ์ฐ(create, update, delete)์์ ์๋๊ฐ ๋๋ ค์ง๋ค๋ ๊ฒ์ ์ฐ๋ฆฌ๋ ์๊ณ ์๋ค.๊ทธ๋ฌ๋ฉด, ์ ํํ ์ผ๋ง๋ ๋๋ ค์ง๋์ง ๋์ผ๋ก ํ์ธํด๋ณด์. 1. ํ ์ด๋ธ ์์ฑcreate table test_table_no_index(id INT AUTO_INCREMENT primary key,column1 INT,column2 INT,column3 INT,column4 INT,column5 INT,column6 INT,column7 INT,column8 INT,column9 INT);create tab..

1. ํ์์ธ๋ฑ์ฑ์ ํตํด ์ฟผ๋ฆฌ ์ต์ ํ๋ฅผ ๊ณต๋ถํ๊ณ ์๋ ๋์ค,ํ ์ด๋ธ์ ์ธ๋ํค๊ฐ ์ง์ ๋ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์๋ ์์ฑ๋๋ ๊ฒ์ ๋ณด์๋ค. ์๋๋ ๋ด๊ฐ ๋ง๋ ์์ ํ ์ด๋ธCREATE TABLE `small_category_item`( `id` bigint PRIMARY KEY NOT NULL AUTO_INCREMENT, `large_category_item_id` bigint NOT NULL, `title` varchar(255), `due_date` date COMMENT 'this item should be done before this date', `assignee_id` ..

์ฐธ๊ณ ์์https://www.youtube.com/watch?v=IMDH4iAQ6zM 1. ์ธ๋ฑ์ค ์ฐ๋ ์ด์ 2. ์ธ๋ฑ์ค ์ฌ์ฉ๋ฒ3. ์ธ๋ฑ์ค ๋์ ๋ฐฉ์4. ์ฃผ์์ฌํญ 1. ์ธ๋ฑ์ค ์ฐ๋ ์ด์ : ์กฐ๊ฑด์ ๋ง์กฑํ๋ ํํ์ ๋น ๋ฅด๊ฒ ์กฐํํ๊ธฐ ์ํด. ์กฐ์ธ๊ณผ ๊ทธ๋ฃนํ์ ๋ ๋น ๋ฅด๊ฒ ํ๊ธฐ ์ํด. ์ ์ฌ์ง์์ ๋ณด๋ฉด, ์ฟผ๋ฆฌ์ ์กฐ๊ฑด๋ฌธ์ ์๋ first_name์ปฌ๋ผ์ index๊ฐ ์๋ค๋ฉด O(N)์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.ํด๋น ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ๊ฑธ๋ฉด, O(logN)์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ์ด๋ ๋น์ฝ์ ์ธ ์๊ฐ ๊ฐ์์ด๋ค. 2. ์ธ๋ฑ์ค ์ฌ์ฉ๋ฒ2-1. ์ธ๋ฑ์ค ์์ฑ:1) ์ฟผ๋ฆฌ๋ก ์์ฑCREATE INDEX INDEX์ด๋ฆ ON ํ ์ด๋ธ์ด๋ฆ(์ปฌ๋ผ๋ช )ex) CREATE INDEX idx_first_name ON CUSTOMER(first_name) 2) ํ ์ด๋ธ ์..

์ฐธ๊ณ ์์https://www.youtube.com/watch?v=qnVKEwjG_gM&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=8 ๊ธฐ๋ณธ ์ฉ์ด์ ๋ฆฌCPU: ํ๋ก์ธ์ค์ ๋ช ๋ น์ด๋ค์ ํด์ํ๊ณ ์คํํ๋ ์ฐ์ฐ์ฅ์นIO: ํ์ผ์ ์ฝ๊ณ ์ฐ๊ฑฐ๋, ๋คํธ์ํฌ์ ์ด๋๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ. ์ ์ถ๋ ฅ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ฑฐ๋ ๋ฐ๋ ๊ฒ. ๋ฒ์คํธ: ์ด๋ค ํ์์ด ์งง์ ์๊ฐ ์์ ์ง์ค์ ์ผ๋ก ์ผ์ด๋๋ ์ผ- CPU ๋ฒ์คํธ: ํ๋ก์ธ์ค๊ฐ CPU์์ ํ ๋ฒ์ ์ฐ์์ ์ผ๋ก ์คํ๋๋ ์๊ฐ- I/O ๋ฒ์คํธ: ํ๋ก์ธ์ค๊ฐ IO์์ ์ ์์ฒญํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ=> ํ๋ก์ธ์ค ์ธ์์ CPU ๋ฒ์คํธ์ IO๋ฒ์คํธ์ ์ฐ์์ด๋ค CPU๋ฐ์ด๋ ํ๋ก์ธ์ค: CPU ๋ฒ์คํธ๊ฐ ๋ง์ ํ๋ก์ธ์ค. ex) ๋์์ ํธ์ง ํ๋ก๊ทธ๋จ, ๋จธ์ ๋ฌ๋..

์ฐธ๊ณ ์์ https://www.youtube.com/watch?v=QmtYKZC0lMU&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=6 ๊ธฐ๋ณธ ์ฉ์ด์ ๋ฆฌํ๋ก๊ทธ๋จ: ์ปดํจํฐ๊ฐ ์คํํ ์ ์๋ ๋ช ๋ น์ด๋ค์ ์งํฉ ํ๋ก์ธ์ค: ์ปดํจํฐ์์ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ. ๊ฐ๊ฐ์ ํ๋ก์ธ์ค๋ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ๊ณต๊ฐ์ ํ ๋น๋ฐ์. CPU: ๋ช ๋ น์ด๋ค์ ์คํํ๋ ์ฐ์ฐ์ฅ์น ๋ฉ์ธ๋ฉ๋ชจ๋ฆฌ: ํ๋ก์ธ์ค๊ฐ CPU์์ ์คํ๋๊ธฐ ์ํด ๋๊ธฐํ๋ ๊ณณ. ๋์คํฌ๋ฉ๋ชจ๋ฆฌ์์ ์ฌ๋ผ์ค๊ณ , ๋ด๋ ค๊ฐ๋ค.IO: ํ์ผ์ ์ฝ๊ณ ์ฐ๊ฑฐ๋, ๋คํธ์ํฌ์ ์ด๋๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ. ์ ์ถ๋ ฅ ์ฅ์น์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ฑฐ๋ ๋ฐ๋ ๊ฒ. ์ค๋ ๋: CPU์์ ์คํ๋๋ ๋จ์ ํ๋ก์ธ์ฑ์ ๋ฐ์ ๊ณผ์ 1. ๋จ์ผ ํ๋ก์ธ์ค: ํ ๋ฒ์ ํ๋์ ํ๋ก๊ทธ๋จ๋ง ์คํ 2. ๋ฉํฐ ํ๋ก๊ทธ๋๋ฐ..

์ฐธ๊ณ ์์https://www.youtube.com/watch?v=GIsr_r8XztQ&list=PLcXyemr8ZeoT-_8yBc_p_lVwRRqUaN8ET&index=4 ๋ฉ๋ชจ๋ฆฌ ์ข ๋ฅ์๋ ํฌ๊ฒ 2๊ฐ์ง๊ฐ ์๋ค. ์คํ ๋ฉ๋ชจ๋ฆฌ์ ํ ๋ฉ๋ชจ๋ฆฌ. ์คํ ๋ฉ๋ชจ๋ฆฌ๋ ํจ์๋ ๋ฉ์๋์ ์ง์ญ๋ฒ์, ๋งค๊ฐ ๋ณ์๊ฐ ์ ์ฅ๋๋ค. ๊ทธ๋ฆฌ๊ณ ํจ์๋ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์คํํ๋ ์์ด ์์ฑ๋๋ค. ์ฐ๋ฆฌ๊ฐ Ctrl+z๋ฅผ ๋๋ฌ ์คํ์ ๋๋๋ฆด ์ ์๋ ์ด์ ๋, ์คํ์ ์ฐ๋ฆฌ๊ฐ ์์ ํ ๋ด์ฉ๋ค์ด ์ฐจ๊ณก์ฐจ๊ณก ์์ฌ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ ๋ฉ๋ชจ๋ฆฌ๋ ๊ฐ์ฒด๊ฐ ์ ์ฅ๋๋ค. ์ ์ด๋ java์์๋ ๊ทธ๋ ๋ค. ์์ ์ด๋ฏธ์ง์์ ๋ณด๋ฉด ์ฝ๋๊ฐ ์๋ํจ์ ๋ฐ๋ผ ๋ณ์์ ๊ฐ์ฒด๋ค์ด ์ด๋ค ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋์ง ๋ํ๋ด๊ณ ์๋ค. ๊ฐ์ฒด๋ heap๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋ค. ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋๊ณ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋..

๊น์ํ ๊ฐ์ฌ๋์ Spring ๊ฐ์๋ฅผ ๋ฃ๋ค๊ฐ,@Overridepublic List findAll() { return new ArrayList(store.values());} ArrayList ์์ฑ์ ํ๋ผ๋ฏธํฐ์ HashMap ์ค๋ธ์ ํธ์ values()๊ฐ ์๋ค. ์์ ๋ถํฐ ArrayList ์์ฑ์ ํ๋ผ๋ฏธํฐ๋ก ์ด๊ฒ ์ ๊ฒ ๋ฃ์ด์คฌ์ ๋ ์๋๋ ๊ธฐ์ต์ด ๋งค์ฐ ๋ง๋ค.(ํ์ด์ฌ์ ์ฐ๋ ๋ฒ๋ฆ ๋๋ฌธ์ ์ด๊ฒ์ ๊ฒ ๋ฃ์ด๋ดค๋ค...) ๊ทธ๋ฐ๋ฐ ์์ธ๋ก ํด์ฌ๋งต์ values()๊ฐ ๊ฐ๋ฅํ ๊ฒ์๋ณด๊ณ , ๊ทธ๊ฒ ์ด๋ป๊ฒ ๊ฐ๋ฅํ๊ฑด์ง ๊ถ๊ธํด์ก๋ค. ๊ทธ๋ฆฌ๊ณ , ArrayList ์์ฑ์ ํ๋ผ๋ฏธํฐ๋ก ๊ฐ๋ฅํ ๊ฒ๋ค๋ ์ ๋ฆฌํด๋ณด๊ณ ์ ํ๋ค. A. ๊ฒฐ๋ก ์?ArrayList๋ ์์ฑ ์ Collection์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ค. ArrayListํด๋์ค์ ์์ฑ์๋ฅผ ๋ณด๋ฉด, ํ๋ผ..