[spring boot] @.์๋ฐ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ๊ธฐ๋ณธ ์ง์ ์๋ฒ์ ํด๋ผ์ด์ธํธโฆ ์๋ฒ ๋? ์๋ฒ(Server)๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ request ๋ฐ์ ์ฒ๋ฆฌํ๋ ์ฃผ์ฒด์ ๋๋ค. ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ (Post ๋ฐฉ์) , ์๋ฒ ๋ด์์ ์ฒ๋ฆฌ๋ง ํด๋ฌ๋ผ๋ ์์ฒญ์ ํ๋ฉด ํด๋น ์์ฒญ๋ง ์ฒ๋ฆฌํ ์ ๋ ์์ต๋๋ค. (Get๋ฐฉ์) โฆ ํด๋ผ์ด์ธํธ ๋? ํด๋ผ์ด์ธํธ(Client)๋ ์๋ฒ๋ก ์์ฒญํ๋ ํ๋ก๊ทธ๋จ์ ์ผ์ปซ๋ ๋ง์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ํํ ์ฌ์ฉํ๋ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ๋ํ์ ์ธ ํด๋ผ์ด์ธํธ ์ค ํ๋์ ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด URL์ ์ ๋ ฅํ๊ณ ํ๋ฉด์ ์์ฒญํ๋ ํ๋์ ํตํด ํด๋น ๋งํฌ๋ก์ ์ด๋์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด์ ๊ฐ์ด ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ ์ํฐ(Enter) ํค๋ฅผ ํตํด ์ ๋ณด๋ฅผ ์์ฒญํ๋ ๊ฒ์ "์๋ฒ์ ์์ฒญํ๋ค" ์ฆ, Request ํ๋ ๊ฒ์ด๋ฉฐ, ์ด ํ๋์ ํตํด ์๋ฒ๋ Response ํ๋.. [spring boot] Spring Security ๊ธฐ๋ณธ ๋ก๊ทธ์ธ ํ์ด์ง ์์ ๊ธฐ (6.1 ์ด์ ๋ฒ์ ) ํ๋ก์ ํธ ์งํ ์ค spring security๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ฐ๋ฒํธ๋ฅผ ์ํธํํ์ฌ DB์ ์ ์ฅํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ spring security ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ build.gradle์ ์ฃผ์ ํด์ฃผ์๋ค. implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'spring security๋ฅผ ์ฃผ์ ํ๊ฒ ๋๋ฉด ์๋์ผ๋ก login ํ์ด์ง๋ก ์ด๋ํ๊ฒ ๋๊ณ , ์ํ๋ url์ ์๋ฌด๋ฆฌ ์ ๋ ฅํด๋ ์ด๋ํ์ง ์๋๋ค. ํด๊ฒฐ๋ฐฉ๋ฒ๋จผ์ , application์์ ์คํ๋๋ Main.java ํด๋์ค ํ์ผ์ @SpringBootApplication ์ด.. [ํผ๊ณต์ปด์ด] Chapter 08-2. ๋ค์ํ ์ ์ถ๋ ฅ ๋ฐฉ๋ฒ ์ ์ถ๋ ฅ ์์ : CPU์ ์ฅ์น ์ปจํธ๋กค๋ฌ๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ ⇒ ์ฅ์น ์ปจํธ๋กค๋ฌ์ CPU๊ฐ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ๋ฒํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ ์ถ๋ ฅDMA ์ ์ถ๋ ฅํ๋ก๊ทธ๋จ ์ ์ถ๋ ฅ: ํ๋ก๊ทธ๋จ ์ ๋ช ๋ น์ด๋ก ์ ์ถ๋ ฅ์ฅ์น๋ฅผ ์ ์ดํ๋ ๋ฐฉ๋ฒ๋๋ณด๊ธฐโก Q. ์ด๋ป๊ฒ CPU๋ ์ ์ถ๋ ฅ ์ฅ์น๋ค์ ์ฃผ์๋ฅผ ์๋ ๊ฑธ๊น?- "ํ๋ฆฐํฐ ์ปจํธ๋กค๋ฌ์ ์ํ ๋ ์ง์คํฐ๋ฅผ ์ฝ์ด๋ผ" ์ ๊ฐ์ ๋ช ๋ น์ด๋ค์ ์ด๋ป๊ฒ ๋ช ๋ น์ด๋ก ํํ๋๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ์ด๋ป๊ฒ ์ ์ฅ๋์ด ์์๊น?๋ฉ๋ชจ๋ฆฌ ๋งต ์ ์ถ๋ ฅ: ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์ ๊ณต๊ฐ๊ณผ ์ ์ถ๋ ฅ์ฅ์น์ ์ ๊ทผํ๊ธฐ ์ํ ์ฃผ์๊ณต๊ฐ์ ํ๋์ ์ฃผ์๊ณต๊ฐ์ผ๋ก ๊ฐ์ฃผํ๋ ๋ฐฉ๋ฒ์ฆ, 1024๊ฐ์ ์ฃผ์๋ฅผ ํํํ ์ ์๋ ์ปดํจํฐ๊ฐ 1024๊ฐ ์ ๋ถ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ ํํํ๋๋ฐ ์ฌ์ฉํ์ง๋ ์๋๋ค. ์ด๋, 512๊ฐ๋ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๋ฅผ 512๊ฐ๋ ์ฅ์น ์ปจํธ๋กค๋ฌ์ ๋ ์ง.. [Java] ๋ณ๋ ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ "๋ณ๋ ฌ ์คํธ๋ฆผ" "๋ณ๋ ฌ ์คํธ๋ฆผ" ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ๋ณ๋ ฌํํ์ฌ ์ฑ๋ฅ์ ํฅ์ ์ํฌ ์ ์๋ ๊ธฐ๋ฅ์ด๋ค.๋ณ๋ ฌ ์คํธ๋ฆผ์ ์คํธ๋ฆผ API์ ํ ์ข ๋ฅ๋ก,๋ฐ์ดํฐ ์ฒ๋ฆฌ ์์ ์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ฐ ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ด๋ค. ์ฆ, ์คํธ๋ฆผ์ ์์๋ค์ ๋ณ๋ ฌ์ ์ผ๋ก ์ฒ๋ฆฌํจ์ผ๋ก์จ ๋ค์ค์ฝ์ด(CPU ์ฝ์ด) ์์คํ ์์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ฑ๋ฅ์ ๊ทน๋ํํ ์ ์๋ค. ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ๋ ํนํ ์ ์ฉํ๋ฉฐ, ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ํ์ฉํ๋ฉด ๋จ์ผ ์ค๋ ๋ ์ฒ๋ฆฌ๋ณด๋ค ํจ์ฌ ๋น ๋ฅธ ์๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ค. ๋ณ๋ ฌ ์คํธ๋ฆผ์ ๋ด๋ถ์ ์ผ๋ก Fork/Join ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ํ๋ค. Fork/Join ํ๋ ์์ํฌ๋ ์์ ์ ์์ ์์ ๋ค๋ก ๋ถํ ํ๊ณ , ์ด๋ฅผ ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ ํ ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ ๋ฐฉ์์ผ๋ก ๋์ํ๋ค. ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ณ๋ ฌ ์คํธ๋ฆผ์ ์์ ์ ๋ ์์ ์์ ๋จ์๋ก ๋๋์ด ๋ฉํฐ์ฝ์ด ํ๋ก์ธ์์์.. ๋ฐฑ์๋ ๊ฐ๋ฐ์์๊ฒ ์ค์ํ ํ ์คํธ์ฝ๋ ์์ฑํ๊ธฐ ํ ์คํธ ์ฝ๋๋ ์์ฑํ ์ฝ๋๊ฐ ์๋๋๋ก ์ ๋์ํ๊ณ ์์์น ๋ชปํ ๋ฌธ์ ๊ฐ ์๋๋ ํ์ธํ ๋ชฉ์ ์ผ๋ก ์์ฑํ๋ ์ฝ๋์ด๋ค. ํ์ฌ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ค๋ฌด์์ ํ ์คํธ ์ฝ๋์ ์ฌ์ฉ์ ๋งค์ฐ ์ค์ํด์ก๋ค. ์ฝ๋์ ๋์์ ๊ฒ์ฆํ๊ณ , ์ ์ง๋ณด์์ํ๊ธฐ์ ๋งค์ฐ ์ข๊ณ , ๊ฐ๋ฐ์ ์์ฒด๊ฐ ๋ฌด์์ ๋ง๋ค๊ณ ์๋์ง ์ ํํ ์ธ์งํ ์ ์๊ฒ ๋๋ฉฐ, ์์์น ๋ชปํ ๋ฌธ์ ๋ฅผ ๋ฏธ๋ฆฌ ๋ฐ๊ฒฌํด ๋ถ๋ด์ ๋์ด์ฃผ๋ ์ฅ์ ์ ์ป์ ์ ์๋ค. ๋ ๋ํ, ์ฌ์ค์ ํ ์คํธ ์ฝ๋๋ฅผ ์ฒ์ ์ ํ์ ๋๋ ์ด๋ ต๊ธฐ๋ ํ๊ณ , ์ด๊ฒ ๊ตณ์ด ํ์ํ ๋ถ๋ถ์ธ๊ฐ? ์ถ์ด ๋ฑํ ์ค์ํ์ง ์๋ค๊ณ ์๊ฐํ๋ค. ํ์ง๋ง, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ํ์คํ ํฐ ํ๋ก์ ํธ๋ฅผ ์คํํ ๋ ๋ง์ ๋์์ด ๋จ์ ๋๋ผ๊ณ ๊ณต๋ถ๋ฅผ ๋ณธ๊ฒฉ์ ์ผ๋ก ์์ํ๊ฒ ๋์๋ค. ํ ์คํธ ์ฝ๋๋ ์ฃผ๋ก V๋ชจ๋ธ์ ๋ฐ๋ผ ์๊ฐ ํด ๋ณผ ์ ์.. [ํผ๊ณต์ปด์ด] Chapter 05-2 ๋ช ๋ น์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ ๋ช ๋ น์ด ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ (ILP : Instruction - Level Parallelism) : ๋ช ๋ น์ด๋ฅผ ๋์์ ์ฒ๋ฆฌํ์ฌ CPU๋ฅผ ํ์๋ ์ฌ์ง ์๊ณ ์๋์ํค๋ ๋ฐฉ๋ฒ ILP ์ ์ข ๋ฅ 1. ๋ช ๋ น์ด ํ์ดํ๋ผ์ด๋ 2. ์ํผ์ค์นผ๋ผ 3. ๋น ์์ฐจ์ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๋ช ๋ น์ด ํ์ดํ๋ผ์ธ [ ๋ช ๋ น์ด ์ฒ๋ฆฌ ๊ณผ์ ] 1. Instruction Fetch (๋ช ๋ น์ด ์ธ์ถ) 2. Instruction Decode (๋ช ๋ น์ด ํด์) 3. Execute Instruction (๋ช ๋ น์ด ์คํ) 4. Write Back (๊ฒฐ๊ณผ ์ ์ฅ) [์ค์] : ๊ฐ์ ๋จ๊ณ๊ฐ ๊ฒน์น์ง ์๋๋ค๋ฉด CPU๋ ๊ฐ ๋จ๊ณ๋ฅผ ๋์์ ์คํํ ์ ์๋ค. ์ฆ, CPU๋ ํ ๋ช ๋ น์ด๋ฅผ '์ธ์ถ' ํ๋ ๋์ ๋ค๋ฅธ ๋ช ๋ น์ด๋ฅผ '์คํ' ํ ์ ์๊ณ , '์คํ' ํ๋ ๋์ ์ฐ์ฐ๊ฒฐ๊ณผ๋ฅผ '์ ์ฅ' ํ .. [Spring] ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์๋ ฅ์ ๋์ด๋ ๋ฐฉ๋ฒ Spring ์ ํ๋ฆฌ์ผ์ด์ ๋ณต์๋ ฅ์ ๋์ฌ์ผ ํ๋ ์ด์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์๋ ฅ์ ๋์ด๋ ์ด์ ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ , ์์คํ ์์ ์ฑ ๋ณด์ฅ, ๋น์ฉ ์ ๊ฐ, ๊ธฐ์ ์ ์ ๋ขฐ๋ ์ ์ง ๋ฑ์ด ํฌํจ๋๋ค. 1. ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์๋ ฅ์ด ๋์์๋ก ์ฌ์ฉ์๋ ์๋น์ค ์ค๋จ์ด๋ ์ฅ์ ๋ก ์ธํ ๋ถํธ์ ๊ฒฝํํ๋ ์๊ฐ์ ์ค์ผ ์ ์๋ค. ์ฌ์ฉ์๋ค์ด ์์ ์ ์ผ๋ก ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์์ผ๋ฉฐ, ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ํฅ์์ํค๊ณ ์ฌ๋ฐฉ๋ฌธ๋ฅ ์ ๋์ผ ์ ์๋ค. 2. ์์คํ ์์ ์ฑ ๋ณด์ฅ : ์ฅ์ ๊ฐ ๋ฐ์ํ์ ์ ๋น ๋ฅด๊ฒ ๋ณต๊ตฌํ ์ ์๋ ์์คํ ์ ๋น์ฆ๋์ค ์ฐ์์ฑ์ ๋ณด์ฅํ๋๋ฐ ์ค์ํ๋ค. ํนํ ์จ๋ผ์ธ ๋น์ฆ๋์ค๋ ๊ธ์ต ์๋น์ค์ ๊ฐ์ด ์์คํ ์ ๊ฐ์ฉ์ฑ์ด ์ค์ํ ์ ์ข ์์๋ ์ฅ์ ์ ๋น ๋ฅด๊ฒ ๋์ํ๋ ๊ฒ์ด ๋น์ฆ๋์ค์ ์์กด๊ณผ ์ง๊ฒฐ๋ ์ ์๋ค. 3. ๋น์ฉ ์ ๊ฐ : ์ฅ์ ๊ฐ .. [Java] hashCode()์ equals()๋? Java๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ฉด, ํ๋ก๊ทธ๋๋ฐ ์ 'hashCode()' ์ 'equals()' ๋ฉ์๋์ ๋ํด ๋ง์ด ์ ํ๊ฒ ๋๋ค. ์ด ๋ฉ์๋๋ค์ ๊ฐ์ฒด์ ๋๋ฑ์ฑ ๋น๊ต์ ํด์ ๋งต(HashMap) ๋ฑ์ ์๋ฃ ๊ตฌ์กฐ์์ ํจ์จ์ ์ธ ๊ฒ์์ ์ํด ์ฌ์ฉ๋๋ ์ค์ํ ๋ฉ์๋์ด๋ค. ์ด๋ฒ ๊ธ์์๋ hashCode()์ equals() ๋ฉ์๋์ ๋ํด ์์ธํ๊ฒ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. hashCode() Method hashCode() ๋ฉ์๋๋ ๊ฐ์ฒด์ ํด์์ฝ๋๋ฅผ ๋ฐํํ๋ ๋ฉ์๋์ด๋ค. ๋จผ์ , ํด์์ฝ๋๋ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ฅํ๊ณ ๊ฒ์ํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์์์ ๊ธธ์ด์ ๊ณ ์ ๋ ํฌ๊ธฐ์ ๊ฐ์ด๋ค. ์ด๋ hashCode() ๋ฉ์๋๋ฅผ ํตํด ๊ฐ์ฒด์ ํด์์ฝ๋๋ฅผ ์ป์ ์ ์๋ค. ์ผ๋ฐ์ ์ผ๋ก hashCode() ๋ฉ์๋๋ ๊ฐ์ฒด์ ํ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ, ์ฃผ์.. [Java] '๊น์ ๋ณต์ฌ'์ '์์ ๋ณต์ฌ'๋? ์ค๋ ์ ๋ฆฌํ ๋ด์ฉ์ ์๋ฐ์์์ ๊น์ ๋ณต์ฌ ์ ์์ ๋ณต์ฌ์ด๋ค. ๋ฐฐ์ด์ด๋ ๊ฐ์ฒด๋ฅผ ๋ณต์ฌํด์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์๋๋ฐ, ์ด๋ JAVA์์ ๊น์ ๋ณต์ฌ์ ์์ ๋ณต์ฌ์ ๋ํด ๋ฐฐ์ ์๋ค. ์ด ์ฐจ์ด์ ์ ๋ช ํํ ํด์ผ ํท๊ฐ๋ฆฌ์ง ์๊ธฐ ๋๋ฌธ์ ์ ๋ฆฌํด๋๊ณ ์ ํ๋ค. Deep Copy vs Shallow Copy ๊น์๋ณต์ฌ (Deep Copy) : '์ค์ ๊ฐ'์ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ณต์ฌํ๋ค. (ํ ์์ญ) ์์๋ณต์ฌ (Shallow Copy) : '์ฃผ์ ๊ฐ'์ ๋ณต์ฌํ๋ค. (์คํ์์ญ) ์ฌ์ค์, ์ด๋ ๊ฒ๋ง ์ค๋ช ํ๊ฒ ๋๋ฉด.. ์ดํด๋ฅผ ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ๋ฐ๋ผ์ ์๋ฅผ ๋ค์ด ์ค๋ช ํด๋ณด์ ์์๋ณต์ฌ(Shallow Copy) class Person { private String name; private int age; public Person(S.. [ํผ๊ณต์ปด์ด] Chapter 07-1 ๋ค์ํ ๋ณด์กฐ๊ธฐ์ต์ฅ์น ํ๋ ๋์คํฌ : ์๊ธฐ์ ์ธ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ณด์กฐ๊ธฐ์ต์ฅ์น (= ์๊ธฐ ๋์คํฌ_magnetic disk) ๋์ฉ๋ ์ ์ฅ ์ฅ์น๊ฐ ํ์ํ ์์ ์๋ฒ์ค์ ์์ฃผ ์ถ์ ํ๋ ์์ ํ๋ ๋์คํฌ ๊ตฌ์ฑ ํ๋ํฐ : ์ค์ง์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณณ ์๊ธฐ ๋ฌผ์ง๋ก ๋ฎ์ฌ ์์ด ์๋ง์ N๊ทน๊ณผ S๊ทน์ ์ ์ฅํ๋ค. N๊ทน๊ณผ S๊ทน์ 0๊ณผ 1์ ์ญํ ์ ์ํ ์คํ๋ค : ํ๋ํฐ๋ฅผ ํ์ ์ํค๋ ๊ตฌ์ฑ ์์ RPM (Revolution Per Minute) : ์คํ๋ค์ด ํ๋ํฐ๋ฅผ ๋๋ฆฌ๋ ์๋, ๋ถ๋น ํ์ ์ ex) RPM์ด 15,000์ธ ํ๋๋์คํฌ๋ 1๋ถ์ 15,000๋ฐํด๋ฅผ ํ์ ํ๋ ํ๋ ๋์คํฌ ํค๋ : ํ๋ํฐ๋ฅผ ๋์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ ๊ตฌ์ฑ ์์ ๋์คํฌ ์ : ํค๋๋ฅผ ์ํ๋ ์์น๋ก ์ด๋์ํค๋ ๋ถํ ํค๋๋ ๋์คํฌ ์์ ๋ถ์ฐฉ๋์ด ์๋ค ๐ก ํ๋ ๋์คํฌ๋.. SQL๊ณผ NoSQL์ ์ฐจ์ด๋? SQL์ ์ข ๋ฅ๋ฅผ ๊ณต๋ถํ๋ฉด์ SQL , NoSQL ์ ์์ฃผ ๋ค์ด๋ดค์ ๊ฒ์ด๋ค. ๋ณดํต Spring์ ๊ฐ๋ฐํ ๋๋ SQL์ธ MySQL์, Node.js์์๋ NoSQL์ธ MongoDB ๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ์ ๊ฒ์ด๋ค. ํ์ง๋ง ์ด์ฒ๋ผ ํ๋ ์์ํฌ์ ๋ฐ๋ผ ๋จ์ํ ์ ํฉํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ํด์ ธ์ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์๋๋ค. ๊ทธ๋ ๋ค๋ฉด, SQL๊ณผ NoSQL์ ๋ํด ๊ณต๋ถํด๋ณด์! SQL (๊ด๊ณํ DB) ํํ, ์ ์ ์ด๋ผ๋ฉด SQL์ ๋ํด ๋จผ์ ๊ณต๋ถํด๋ดค์ ๊ฒ์ด๋ค. ์ด์ฒ๋ผ SQL์ ์ฌ์ฉํ๋ฉด RDBMS์์ ๋ฐ์ดํฐ์ CRUD๋ฅผ ํ ์ ์๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ 1. ๋ฐ์ดํฐ๋ ๊ด๊ณ๋ฅผ ํตํด ์ฌ๋ฌ ํ ์ด๋ธ์ ๋ถ์ฐ๋๋ค. 2. ๋ฐ์ดํฐ๋ ์ ํด์ง ๋ฐ์ดํฐ ์คํค๋ง์ ๋ฐ๋ผ ํ ์ด๋ธ์ ์ ์ฅ๋๋ค. ์ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค. NoSQL(๋น๊ด๊ณํ DB) ์ด์ ๋นํด NoSQL.. JPA ์ Mybatis๋ ๋ฌด์์ธ๊ฐ? / JPA์ Mybatis์ ์ฐจ์ด ๋ฐฑ์๋์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ํ๋ ์์ํฌ๋ก, ๊ฐ์ฅ ๋ง์ด ์ฐ์ด๋ ๊ธฐ์ ์ด 'Mybatis' ์ 'JPA' ์ด๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ์์ ํธํ๊ฒ ์ฌ์ฉํ๊ธฐ ์ํด SQL Mapper ๊ธฐ์ ๊ณผ, ORM(Object Relational Mapping) ๊ธฐ์ ์ ์ ๊ณตํ๋ค. SQL Mapper ๋ '๊ฐ๋ฐ์๊ฐ ์์ฑํ SQL ์คํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ฒด์ ๋งคํ' ์์ผ์ฃผ๋ ํ๋ ์์ํฌ์ด๋ฉฐ, ORM์ ๊ฐ์ฒด์ DB์ ๋ฐ์ดํฐ๋ฅผ '์๋์ผ๋ก ๋งคํ' ์์ผ์ฃผ๋ ํ๋ ์์ํฌ์ด๋ค. SQL Mapper ๊ธฐ์ ์ ์ ๊ณตํ๋ ๊ฒ์ด Mybatis ์ด๋ฉฐ, ORM ๊ธฐ์ ์ ์ ๊ณตํ๋ ๊ฒ์ด JPA ์ด๋ค. ๐ JPA ๋? (Java Persistence API) ์๋ฐ์ ORM ๊ธฐ์ ์ ์ฝ๊ฒ ๊ตฌํํ๋๋ก ๋์์ฃผ๋ API์ด๋ค. ์ฆ, ์๋ฐ์์ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๊ธฐ ์ํ .. ์ด์ 1 2 3 ๋ค์