๐กCS11 [Database] ์ธ๋ฑ์ค (Index) ์ธ๋ฑ์ค๋? ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ ๊ฒ์ ์๋๋ฅผ ํฅ์์ํค๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ (ํน์ ์ปฌ๋ผ์ ๋ณต์ฌํด์ ์ ๋ ฌํด ๋๋ค!) ex) ์ฐ๋ฆฌ๊ฐ ์ฑ ์์ ์ํ๋ ๋ด์ฉ์ ์ฐพ๋๋ค๊ณ ํ๋ฉด, ์ฑ ์ ๋ชจ๋ ํ์ด์ง๋ฅผ ์ฐพ์๋ณด๋ ๊ฒ์ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฑ ์ ์ ์๋ค์ ๋ณดํต ์ฑ ์ ๋งจ ๋ค์ ์์ธ์ ์ถ๊ฐํ๋๋ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ index๋ ์ฑ ์ ์์ธ๊ณผ ๊ฐ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ํ ์ด๋ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ฉด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ์ ๋ฐ์ดํฐ์ ์ฃผ์๋ฅผ ํฌํจํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์์ฑํ์ฌ ๋น ๋ฅด๊ฒ ์กฐํํ ์ ์๋๋ก ๋๋๋ค. ์ธ๋ฑ์ค์ ๊ด๋ฆฌ DBMS๋ index๋ฅผ ํญ์ ์ต์ ์ ์ ๋ ฌ๋ ์ํ๋ก ์ ์งํด์ผ ์ํ๋ ๊ฐ์ ๋น ๋ฅด๊ฒ ํ์ํ ์ ์๋ค. ๋ฐ๋ผ์ ์ธ๋ฑ์ค๊ฐ ์ ์ฉ๋ ์ปฌ๋ผ์ INSERT, UPDATE, DELETE๊ฐ ์ํ๋๋ค๋ฉด, ๊ฐ๊ฐ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ.. 2023. 6. 16. [Database] ํธ๋์ ์ (Transaction) ํธ๋์ ์ ์ด๋? ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ๋ค ํธ๋์ ์ ์ ์ฑ์ง (ACID) Atomicity (์์์ฑ) - All or Nothing - ํธ๋์ญ์ ์ "์ ๋ถ ์ฑ๊ณต"ํ๊ฑฐ๋ "์ ๋ถ ์คํจ"ํ๋ ์์์ ์ธ ๋จ์๋ก ์ฒ๋ฆฌ๋์ด์ผ ํ๋ค. - ํ๋์ ํธ๋์ญ์ ๋ด์์ ์ํ๋๋ ๋ชจ๋ ์ฐ์ฐ์ ๋ชจ๋ ์ฑ๊ณตํด์ผ๋ง ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํ๊ฐ ๋ณ๊ฒฝ๋๊ณ , ์ด๋ ํ๋๋ผ๋ ์คํจํ๋ ๊ฒฝ์ฐ ์ด์ ์ํ๋ก ๋กค๋ฐฑ(ํธ๋์ ์ ์ ๋ถ ์ทจ์)๋๋ค. Consistency (์ผ๊ด์ฑ) - ํธ๋์ญ์ ์ํ ์ ๊ณผ ์ํ ํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋์ผํ ๊ท์น๊ณผ ์ ์ฝ์กฐ๊ฑด์ ๋ฐ๋ฅด๋ฉฐ, ๋ฐ์ดํฐ ๊ฐ์ ์ผ์น์ฑ์ด ์ ์งํด์ผ ํ๋ค. ex) ์ํ ์ก๊ธ ๊ธฐ๋ฅ์์ ํธ๋์ ์ ์ํ ์ด์ ์ ์ก๊ธ์์ ์๊ธ์์ ์์ฑ ํฉ์ด.. 2023. 6. 16. [Database] ์ ๊ทํ(Normalization) ์ ๊ทํ๋? Attribute ๊ฐ์ ์ข ์์ฑ์ผ๋ก ์ธํ ์ด์ํ์์ด ๋ฐ์ํ๋ ๋ฆด๋ ์ด์ ์ ๋ถํดํ์ฌ ์ฌ๋์์ธํจ์ผ๋ก์จ ์ด์ํ์์ ์์ ๋ ๊ณผ์ ๋ฐ์ดํฐ์ ์ค๋ณต ๋ฐฉ์ง, ๋ฌด๊ฒฐ์ฑ์ ์ถฉ์กฑํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค๊ณํ๋ ๋ฐฉ๋ฒ ์ ๊ทํ๊ฐ ์๊ฒจ๋ ๋ฐฐ๊ฒฝ ํ ๋ฆด๋ ์ด์ (Relation)์ ์ฌ๋ฌ ์ํฐํฐ์ ์์ฑ์ ํผํฉํ๋ฉด ์ ๋ณด๊ฐ ์ค๋ณต ์ ์ฅ๋๋ฉฐ ์ ์ฅ ๊ณต๊ฐ์ ๋ญ๋นํ๊ฒ ๋๋ค. ๋ ์ค๋ณต๋ ์ ๋ณด๋ก ์ธํด '์ด์ ํ์'์ด ๋ฐ์ํ๊ฒ ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๊ทํ ๊ณผ์ ์ ๊ฑฐ์น๋ ๊ฒ์ด๋ค. ์ ๊ทํ์ 3๊ฐ์ง ์์น - ์ ๋ณด์ ๋ฌด์์ค : ๋ถํด๋ ๋ฆด๋ ์ด์ ์ด ํํํ๋ ์ ๋ณด๋ ๋ถํด๋๊ธฐ ์ ์ ์ ๋ณด๋ฅผ ๋ชจ๋ ํฌํจํด์ผ ํ๋ค. - ์ต์ ๋ฐ์ดํฐ ์ค๋ณต : ์ด์ ํ์์ ์ ๊ฑฐ, ๋ฐ์ดํฐ ์ค๋ณต์ ์ต์ํ - ๋ถ๋ฆฌ์ ์์น : ํ๋์ ๋ ๋ฆฝ๋ ๊ด๊ณ์ฑ์ ํ๋์ ๋ ๋ฆฝ๋ ๋ฆด๋ ์ด์ ์ผ๋ก ๋ถ๋ฆฌํด.. 2023. 6. 16. [Java] String, StringBuffer, StringBuilder ์๋ฐ์์ ๋ํ์ ์ผ๋ก ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ์๋ฃํ ํด๋์ค๋ก String, StringBuffer, StringBuilder๋ฅผ ์ง์ํ๋ค. 3๊ฐ์ง ํด๋์ค๋ ๋ชจ๋ ๋ฌธ์์ด์ ๋ค๋ฃฐ ๋ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋์ง๋ง, ์ฌ์ฉ ๋ชฉ์ ์ ๋ฐ๋ผ ์ฐ์์๊ฐ ๋ฌ๋ผ์ง๋ค. String ์๋ฐ์์ String ๊ฐ์ฒด์ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์๋ค. ์ฆ, ๋ถ๋ณ์ ์์ฑ์ ๊ฐ๋๋ค.(immutable) ์ฐธ๊ณ ) String ๋ด๋ถ ์ฝ๋ public final class String implements java.io.Serializable, Comparable { private final byte[] value; } ์์ ๋ฅผ ํตํด ์ดํด๋ณด์. public static void main(String[] args) { String str = "Hello"; str += "Worl.. 2023. 6. 9. [Java] equals()์ hashCode()(+ ๋์ผ์ฑ, ๋๋ฑ์ฑ) equals์ hashCodeํจ์ ๋ชจ๋ Java ๊ฐ์ฒด์ ๋ถ๋ชจ ๊ฐ์ฒด์ธ Object ํด๋์ค์ ์ ์๋์ด ์๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ๊ฐ์ฒด๋ Object ํด๋์ค์ ์ ์๋ equals์ hashCodeํจ์๋ฅผ ์์๋ฐ๋๋ค. ๋์ผ์ฑ(Identity), ๋๋ฑ์ฑ(Equality) ํจ์๋ฅผ ์ค๋ช ํ๊ธฐ ์ ์์๋๋ฉด ์ข์ ๊ฐ๋ ์ธ ๊ฒ ๊ฐ์์ ๋จผ์ ์ ๋ฆฌํ์๋ค. ๋์ผ์ฑ(Identity) ๋์ผ์ฑ์ ๋น๊ต ๋์์ ๋ ๊ฐ์ฒด์ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ ๊ฐ์์ ์๋ฏธํ๋ค. ์๋ฐ์์ ๋น๊ต์ฐ์ฐ์(==)๋ฅผ ํตํด ํ์ธํ ์ ์๋ค. public class Main { static class Person{ int age; public Person(int age) { this.age = age; } } public static void main(String[] args) { Pe.. 2023. 6. 9. [Java] Call by value vs Call by reference ๋ฉ์๋๋ฅผ ํธ์ถํ ๋ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์๋ 2๊ฐ์ง๊ฐ ์๋ค. ๐ Call by value ๐ Call by reference Java์์์ ํ๋ผ๋ฏธํฐ ์ ๋ฌ ๋ฐฉ๋ฒ Java์์๋ ์ด ๋ ๊ฐ์ง์ ๋ฐฉ๋ฒ ์ค Call by value๋ง ์ฌ์ฉํ๋ค. Call by value (๊ฐ์ ์ํ ํธ์ถ) ๋ฉ์๋ ํธ์ถ ์์ ์ฌ์ฉ๋๋ ์ธ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์๋ ๊ฐ(value)๋ฅผ ๋ณต์ฌํ์ฌ ๋ณด๋ธ๋ค. ์์ ํ์ public class Main { public static void main(String[] args) { int a = 1; int b = 2; modify(a, b); System.out.println(a); System.out.println(b); } static void modify(int a, int b) { a .. 2023. 6. 8. ์ด์ 1 2 ๋ค์