ย Hash
ย ํด์ฑ๊ณผ ํด์ํจ์
โ ์๋ฃ๊ตฌ์กฐ์์์ ํ์ฉ
[์ ์ฅํ๋ ๊ณผ์ ]
โข
์ถฉ๋ถํ ๊ณต๊ฐ์ ํ ๋น๋ฐ์ ๋ค์ ํด์ ํจ์๋ฅผ ์ด์ฉํ์ฌ ๊ณ ์ index๋ฅผ ์์ฑํ๊ณ , ์ด index์ ๊ฐ์ ์ ์ฅํ๋ค.
โข
์ถฉ๋ถํ ๊ณต๊ฐ์ ๊ธฐ์ค
โฆ
์ด์์ ์ผ๋ก๋ ๋ค๋ค์ต์ ์ผ๋ก ํด ์๋ก ํด์ ์ถฉ๋์ ๋ง์ ์ ์๋ค.
โฆ
๊ทธ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํด ์ ๋นํ ํฐ ๊ณต๊ฐ์ ํ ๋นํ๋ค.
โฆ
๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ธํ์ง ์๊ณ ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฐฉ๋ฒ๋ ์๋ค.
โฆ
ํต๊ณ์ ์ผ๋ก ํด์ ํ
์ด๋ธ ์ฌ์ฉ ๊ณต๊ฐ์ด 70~80% ์ ๋๊ฐ ๋๋ฉด ํด์์ ์ถฉ๋์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ์ฌ ์ฑ๋ฅ์ด ์ ํ๋๊ธฐ ์์ํ๋ค๊ณ ํ๋ค.
[๊บผ๋ด๋ ๊ณผ์ ]
โข
ํด์ ํจ์๋ ํญ์ ๋์ผํ ํด์๊ฐ์ ๋ฐํํ๊ธฐ ๋๋ฌธ์ key์ ๋ฐ๋ผ ํญ์ ๊ฐ์ index๋ฅผ ๋ฐํํ๋ค.
โข
๋ฐ๋ผ์, ์ ๋ ฌํ์ง ์๊ณ ๋ ํด์๊ฐ์ ์ด์ฉํด ๊ฐ์ ๋ฐ๋ก ์ฐพ์ ์ ์๋ค.
โฆ
์ด๋ฅผ ํ์ฉํ๊ธฐ ์ํด์๋ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ๋ณด๋ค ํด์ ํจ์ ์ฐ์ฐ์ด ๋ ํจ์จ์ ์ด์ด์ผ ํ๋ค.
โ ํด์ ์ถฉ๋
โข
๊ฐ์ ํด์๊ฐ์ด ๋์ค๋ ์ถฉ๋์ด ๋ฐ์ํ๋ฉด index๊ฐ ๋์ผํ ์ ์๋ค.
โข
๋ฐ์ดํฐ ๊ฐ์๊ฐ ์ ์ ๋๋ ์คํ ์ด๋๋ ์ฑ, ๋ฐ๋์ ๊ฒฝ์ฐ ์ฒด์ด๋์ด ํจ์จ์ด ์ข๋ค.
โข
ํด์ํ
์ด๋ธ์ ๊ธฐ๋ณธ ๋ฐฉ์
โข
๊ฐ๊ฐ์ index๋ฅผ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด์ ๊ฐ์ ํด์๊ฐ์ ๊ฐ์ ธ๋ ์ํ๋ ๋ฐ์ดํฐ์ ์ ๊ทผ
โข
JAVA์ HashMap์ด ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
โข
๋ค์์ ์์นํ index ์ค ๋น์ด์๋ ๊ณณ์ ๋ฃ์
โข
์ ์ฒด ์ฌ๋กฏ์ ๊ฐ์ ์ด์์ ์ ์ฅํ ์ ์๋ค.
โข
๋ชจ๋ ์์๊ฐ ๋ฐ๋์ ์์ ์ ํด์๊ฐ๊ณผ ์ผ์นํ๋ ์ฃผ์์ ์ ์ฅ๋๋ค๋ ๋ณด์ฅ์ ์๋ค.
โ ํด์ํ ์ด๋ธ ์๊ฐ ๋ณต์ก๋
โข
O(1) : key๊ฐ์ ํด์ํจ์์ ์ํด ๊ณ ์ index๋ฅผ ๊ฐ์ง๊ฒ ๋์ด ๋ฐ๋ก ์ ๊ทผํ ์ ์๋ค.
โข
๋ฐ์ดํฐ ์ถฉ๋์ด ๋ฐ์ํ ๊ฒฝ์ฐ chaining์ ์ฐ๊ฒฐ๋ ๋ฆฌ์คํธ๋ ํ์ํ๋ฏ๋ก O(N)๊น์ง ์ฆ๊ฐํ ์ ์๋ค.
โข
ํ
์ด๋ธ์ด ๊ฝ ์ฐจ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด ํ
์ด๋ธ์ ํ์ฅํด์ฃผ์ด์ผ ํ๋๋ฐ, ์ด๋ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ ๊ฐ๊ธ์ ํ์ฅ์ ํ์ง ์๋๋ก ์ค๊ณํด์ผ ํ๋ค.
โ HashTable vs HashMap
โข
๋์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋๊ธฐํ ๋ณด์ฅ ์ ๋ฌด, ํค์ ๊ฐ์ null ๊ฐ๋ฅ ์ฌ๋ถ์ด๋ค.
โข
๋๊ธฐํ : ๋๊ธฐํ๊ฐ ํ์ํ๋ฉด HashTable์ ์ฌ์ฉํ์ง๋ง, ํ์์๋ค๋ฉด ๋น ๋ฅธ HashMap์ด ์ ๋ฆฌํ๋ค.
โฆ
HashMap : ๋๊ธฐํ๋ฅผ ๋ณด์ฅํ์ง ์์ผ๋ฉฐ not-thread safeํ๋ค.
โฆ
HashTable : ๋๊ธฐํ๋ฅผ ๋ณด์ฅํ๋ค. ๋ฉํฐ์ฐ๋ ๋ ํ๋ก๊ทธ๋๋ฐ์์๋ ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ ์ ์ง๋ฅผ ์ํด ๋๊ธฐํ๊ฐ ํ์ํ๋ค. ๋์ , ๋๊ธฐํ๋ ์๋๋ฅผ ๋๋ฆฌ๊ฒ ํ๋ค.
โข
null ๊ฐ :
โฆ
HashMap : null๊ฐ์ ํ์ฉํ๋ค.
โฆ
HashTable : null๊ฐ์ ํ์ฉํ์ง ์๋๋ค.
โข
HashTable์ Collection ํ๋ ์์ํฌ๊ฐ ๋ง๋ค์ด์ง๊ธฐ ์ ์ ์กด์ฌํ๋ ๊ฒ์ผ๋ก ํธํ์ ์ํด ๋จ๊ฒจ๋์์ง๋ง ๊ฐ๋ฅํ๋ฉด ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
โ (์ค์ต) ํด์ํจ์ ๊ตฌํํ๊ธฐ
1.
์บ๋ฆญํฐ๋ก ๋ถ๋ฆฌ
2.
์์คํค์ฝ๋๋ก ๋ณํ
3.
์ฝ๋๋ฅผ ๋ชจ๋ ๋ํ๋ค.
4.
๋๋จธ์ง๋ฅผ ๊ตฌํ๋ค.
public int hash(String key) {
int asciiSum = 0;
for (int i = 0; i < key.length(); i++) {
asciiSum += key.charAt(i);
}
return asciiSum % 90;
}
Java
๋ณต์ฌ
โ (์ค์ต) ํด์ ํ ์ด๋ธ ๋ง๋ค๊ธฐ
public class HashTable {
private int size = 10000;
private int[] table = new int[size];
public HashTable() {
}
public HashTable(int size) {
this.size = size;
}
public int hash(String key) {
int asciiSum = 0;
for (int i = 0; i < key.length(); i++) {
asciiSum += key.charAt(i);
}
return asciiSum%size;
}
public void insert(String key, Integer value) {
int hashCode = this.hash(key);
this.table[hashCode] = value;
}
public int search(String key) {
return this.table[hash(key)];
}
}
Java
๋ณต์ฌ
ย ํ ๋น์ Spring3 ๋ณต์ต
๊ฐ์ธ์ ์ผ๋ก, ๋ณธ ์ค์ต์ ์คํ๋ง์ด ์ถ๊ตฌํ๋ ๊ฐ์น์ ์คํ๋ง์ ๊ธฐ์ ๋ค์ด ์ ํ์ํ๊ฒ ๋์๊ณ , ์ด๋ค ๋ฐฉ์์ผ๋ก ๋ฐ์ ๋์ด ์๋์ง๋ฅผ ์ดํดํ๊ธฐ ์ํ ์ค์ต์ด๋ผ ์๊ฐํ์์ต๋๋ค.
โ ์คํ๋ง์ด๋?
์คํ๋ง์ ์๋ฐ ์ํฐํ๋ผ์ฆ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ฌ์ฉ๋๋ ์ ํ๋ฆฌ์ผ์ด์
ํ๋ ์์ํฌ๋ค.
ํ๋ ์์ํฌ๋ ๊ฐ๋ฐ์ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ํ ์ ์๋๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐํ์ด ๋๋ ํ๊ณผ ๊ณตํต ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ, ๊ธฐ์ API ๋ฑ์ ์ ๊ณตํ๋ค.
์คํ๋ง์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ด ์ธ๊ฐ์ง ์์๋ฅผ ์ ๊ทน์ ์ผ๋ก ํ์ฉํด์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๋ค๋ ๊ฒ์ด๋ค.
ย ์คํ๋ง ์ปจํ
์ด๋
โข
์คํ๋ง์ ์คํ๋ง ์ปจํ
์ด๋ ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ปจํ
์คํธ๋ผ๊ณ ๋ถ๋ฆฌ๋ ์คํ๋ง ๋ฐํ์ ์์ง์ ์ ๊ณตํ๋ค.
โข
์ค์ ์ ๋ณด๋ฅผ ์ฐธ๊ณ ๋ก ํด์ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌ์ฑํ๋ ์ค๋ธ์ ํธ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ค.
โข
๋ณดํต ์น ๋ชจ๋์์ ๋์ํ๋ ์๋น์ค๋ ์๋ธ๋ฆฟ์ผ๋ก ๋ฑ๋กํด์ ์ฌ์ฉํ๋ค.
๋ฐ๋ผ์, ์คํ๋ง์ ๋์ํ๋ ค๋ฉด ๋จผ์ 1) ์คํ๋ง ์ปจํ
์ด๋๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๊ณผ ์คํ๋ง ์ปจํ
์ด๋๊ฐ ์ค๋ธ์ ํธ๋ฅผ ์ด์ฉํ๋๋ก 2) ์ค์ ์ ๋ณด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์์์ผ ํ๋ค.
ย ๊ณตํต ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ
ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ : ํ๋ ์์ํฌ๋ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋๊ฐ ์ด๋ป๊ฒ ์์ฑ๋์ด์ผ ํ๋์ง์ ๋ํ ๊ธฐ์ค๋ ์ ์ํด์ค๋ค.
์คํ๋ง์ ์ธ ๊ฐ์ง ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ์ง์ํ๋ค.
1.
IoC/DI
์คํ๋ง์ ์ ์ฐํ๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๊ฒ ๋์์ฃผ๋ ๊ฐ์ฒด์งํฅ ์ค๊ณ ์ฐ๋์น๊ณผ ๋์์ธ ํจํด์ ํต์ฌ ์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ IoC/DI๋ฅผ ํ๋ ์์ํฌ์ ๊ทผ๊ฐ์ผ๋ก ์ผ๊ณ ์๋ค.
2.
์๋น์ค ์ถ์ํ
์คํ๋ง์ ์ฌ์ฉํ๋ฉด ํ๊ฒฝ์ด๋ ์๋ฒ, ํน์ ๊ธฐ์ ์ ์ข
์๋์ง ์๊ณ ์ด์์ฑ์ด ๋ฐ์ด๋๋ฉฐ ์ ์ฐํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค ์ ์๋ค. ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ ๊ณผ ํ๊ฒฝ์ ์ข
์๋์ง ์๋๋ก ์ ์ฐํ ์ถ์ ๊ณ์ธต์ ๋๋ ๋ฐฉ๋ฒ์ด๋ค.
3.
AOP (Aspect Oriented Programming)
AOP๋ ์ ํ๋ฆฌ์ผ์ด์
์ฝ๋์ ์ฐ์ฌํด์ ๋ํ๋๋ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ๋
๋ฆฝ์ ์ผ๋ก ๋ชจ๋ํํ๋ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ด๋ค.
์๋ฅผ ๋ค์ด, ํต์ฌ์ ์ธ ๊ด์ ์ ํต์ฌ ๋น์ง๋์ค ๋ก์ง์ด ๋๋ค. ๋ํ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ด๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ, ๋ก๊น
, ํ์ผ ์
์ถ๋ ฅ ๋ฑ์ด ์๋ค.
์์ค ์ฝ๋์์์ ๋ค๋ฅธ ๋ถ๋ถ์ ๊ณ์ ๋ฐ๋ณตํด์ ์ฐ๋ ์ฝ๋๋ค์ ํฉ์ด์ง ๊ด์ฌ์ฌ (Crosscutting Concerns)๋ผ๊ณ ํ๋ฉฐ, ์ด๋ค์ ๋ชจ๋ํํ๊ฒ ๋ค๋ ๊ฒ์ด๋ค.
ย ๊ธฐ์ API
์คํ๋ง์ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐ์ ๋ค์ํ ์์ญ์ ๋ฐ๋ก ํ์ฉํ ์ ์๋ ๋ฐฉ๋ํ ์์ ๊ธฐ์ API๋ฅผ ์ ๊ณตํ๋ค. UI ์์ฑ, ์น ํ๋ ์ ํ
์ด์
๊ณ์ธต, ๋น์ง๋์ค ์๋น์ค ๊ณ์ธต, ๊ธฐ๋ฐ ์๋น์ค ๊ณ์ธต, ๋๋ฉ์ธ ๊ณ์ธต, ๋ฐ์ดํฐ ์ก์ธ์ค ๊ณ์ธต ๋ฑ์์ ํ์ํ ์ฃผ์ ๊ธฐ์ ์ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์๋๋ก ์ง์ํด์ฃผ๋ ๊ธฐ๋ฅ๊ณผ ์ ๋ต ํด๋์ค ๋ฑ์ ์ ๊ณตํ๋ค.
โ ์คํ๋ง ํ์ต ๋ฐฉํฅ
ย ์คํ๋ง์ ํต์ฌ ๊ฐ์น์ ์๋ฆฌ์ ๋ํ ์ดํด
โข
ํต์ฌ๊ฐ์น๋ฅผ ์ดํดํ๊ณ , ์ด๋ฅผ ์ด๋ป๊ฒ ์ ์ฉํด์ ๋ง๋ค์ด์ก๋์ง๋ฅผ ์ดํดํ์.
ย ์คํ๋ง์ ๊ธฐ์ ์ ๋ํ ์ง์๊ณผ ์ ํ ๊ธฐ์ค ์ ๋ฆฝ
โข
์คํ๋ง์ ๋ฒ์ฉ์ ์ธ ํ๋ ์์ํฌ์ด๊ณ ๋ชจ๋ ๋ ์ด์ด๋ฅผ ํญ๋๊ฒ ๋ค๋ฃจ๊ณ ์๋ค.
โข
๊ทธ ์ค์์ ์ด๋ค ๊ฒ์ ์ ํํ ์ง๋ ๊ฐ๋ฐ์์ ๋ชซ์ด๋ค.
โข
์ด๋ฐ ๊ณ ๋ฏผ๋๋ฌธ์ ๋จ๋ค์ด ๋ง๋ค์ด ๋์ ์์ ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์๊ฐ ์์ด ์ฌ์ฉํ๋ ์ผ์ ํผํด์ผํ๋ค.
โข
์คํ๋ง์ด ์ ๊ณตํ๋ ๊ธฐ์ ์ ์ข
๋ฅ์ ์ ๊ทผ ๋ฐฉ๋ฒ์๋ ์ด๋ค ๊ฒ์ด ์๋์ง ์๊ณ , ์ ํ์ ๊ธฐ์ค์ ๋ง๋ จํด์ ์ํฉ์ ๋ง๋ ์ต์ ์ ๊ธฐ์ ๊ณผ ์ ๊ทผ ๋ฐฉ๋ฒ์ ์ ํํ ์ ์์ด์ผ ํ๋ค.
ย ์คํ๋ง์ ์ ์ฉ๊ณผ ํ์ฅ
โข
์คํ๋ง์ ๋ค์ํ ๊ธฐ์ ์ ์ด๋ป๊ฒ ์ค์ ์ดํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐ์ ์ ์ฉํ๋์ง๋ฅผ ๊ณต๋ถํด์ผ ํ๋ค.
โข
๋ํ ๊ทธ๊ฒ์ ํ์ฅํ๊ฑฐ๋ ์ถ์ํํด์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์์ผํ๋ค.
โ ์์ ์ฝ๋
๋์์ ๊ฐ์
โ 10/18์ผ ์์ ๋ด์ฉ
๋์์ ๊ฐ์
์ค์ต ๋ด์ฉ | ๊ต๊ณผ์ | ์์์ผ ํ ๊ฒ |
Connection๋ถ๋ฆฌ | 1.2 DAO์ ๋ถ๋ฆฌ - p62 | ์ค๋ณต ์ฝ๋์ ๋ฉ์๋ ์ถ์ถ |
ConnectionMaker Class๋ก ๋ถ๋ฆฌ | 1.3 DAO์ ํ์ฅ - p73 | |
addAndGet ํ
์คํธ ๋ง๋ค๊ธฐ | 2.2 UserDaoTest ๊ฐ์ - p156 | ๋ณธ ์ค์ต์์ JUnit์ ์ด์ฉํ test ์งํ |
Interface์ ์ฉํด์ ๋ถ๋ฆฌ | 1.3.2 ์ธํฐํ์ด์ค์ ๋์
- p76 | ์ ๋ต ํจํด ์ ์ฉ์ผ๋ก ํด๋์ค์ ๋ฐํ์ ์ค๋ธ์ ํธ ์์กด๊ด๊ณ๋ client์์ ๋ด๋นํ๋ค. |
โ 10/19์ผ ์์ ๋ด์ฉ
์ค์ต ๋ด์ฉ | ๊ต๊ณผ์ | ์์๋ ๊ฒ |
Factory์ ์ฉ | 1.4 ์ ์ด์ ์ญ์ (IoC) - p90 | ๊ฐ์ฒด๋ฅผ ์กฐ๋ฆฝํ๋ ์ชฝ๊ณผ ์ฌ์ฉํ๋ ์ชฝ์ ์ญํ ์ ๋ถ๋ฆฌํ๋ค. |
Spring ๋์
| 1.5 ์คํ๋ง์ IoC - p97, p187 | ApplicationContext ์ค์ ์ผ๋ก ๊ฐ์ฒด๋ฅผ ์ฑ๊ธํค์ผ๋ก ํ์ฉ |
Test Code๋ฅผ ApplicationContext์ฌ์ฉํ๊ฒ ์์ | p99 | test code์์ factory ๊ฐ์ฒด๋ฅผ ์ง์ ์์ฑํ์ง ์๊ณ ๋น์ผ๋ก ๋ฑ๋ก๋ ๊ฐ์ฒด๋ฅผ ๋ฐ์์จ๋ค. |
โ 10/20์ผ ์์ ๋ด์ฉ
๋์์ ๊ฐ์
์ค์ต ๋ด์ฉ | ๊ต๊ณผ์ | ์์๋ ๊ฒ |
deleteAll(), GetCount()์ถ๊ฐ | 2.3.2 ํ
์คํธ ๊ฒฐ๊ณผ์ ์ผ๊ด์ฑ - p166 | ํ
์คํธ ์ฝ๋, TDD |
deleteAll(), GetCount() ํ
์คํธ ์ถ๊ฐ | p168 | |
Test Code @BeforeEach ์ ์ฉ | 2.3.5 ํ
์คํธ ์ฝ๋ ๊ฐ์ - p181 | |
get()์์ user==null์ธ ๊ฒฝ์ฐ Exception์ฒ๋ฆฌ | p175 | |
try / catch / final ์ฒ๋ฆฌ | 3.1.1 ์์ธ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ๊ฐ์ถ DAO - p212 | ์์ธ๊ฐ ๋ฐ์ํ์ฌ๋ Connection, PreparedStatement์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ฐํํ๋๋ก ํ๋ค. |
โ 10/21์ผ ์์ ๋ด์ฉ
์ค์ต ๋ด์ฉ | ๊ต๊ณผ์ | ์์๋ ๊ฒ |
Statement Strategy ์ธํฐํ์ด์ค ์ถ๊ฐ | ์ ๋ต ํจํด์ ์ ์ฉ - p221 | ๋ณํ๋ ๋ถ๋ถ์ ์ธํฐํ์ด์ค (์ ๋ต)์ผ๋ก ๋ถ๋ฆฌ์์ผ ํ์์ ๋ฐ๋ผ ๊ฐ์๋ผ์ธ ์ ์๋๋ก ํ๋ค. |
jdbcContextWithStatementStrategy๋ก ๋ถ๋ฆฌ | DI ์ ์ฉ์ ์ํ ํด๋ผ์ด์ธํธ/์ปจํ
์คํธ ๋ถ๋ฆฌ - p225 | ๋ณํ์ง ์๋ ๋ถ๋ถ(์ปจํ
์คํธ)๋ฅผ ๋ฉ์๋๋ก ๋ถ๋ฆฌ |
deleteAllStrategy() | p225 | ์ ๋ต ๊ตฌํ ํด๋์ค |
AddStrategy() | p227 | ์ ๋ต ๊ตฌํ ํด๋์ค |
โข
context๊ฐ ์ด๋ค ์ ๋ต์ ์ฌ์ฉํ ๊ฒ์ธ์ง๋ context๋ฅผ ์ฌ์ฉํ๋ ์๋จ์ client๊ฐ ๊ฒฐ์ ํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
โข
client๊ฐ ๊ตฌ์ฒด์ ์ธ ์ ๋ต์ ์ ํํ๊ณ ์ค๋ธ์ ํธ๋ก ๋ง๋ค์ด์ context์ ์ ๋ฌํ๋ค.
โข
Context method๋ clinet๋ก๋ถํฐ StatementStrategy ํ์
์ ์ ๋ต ์ค๋ธ์ ํธ๋ฅผ ์ ๊ณต๋ฐ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ณต๋ฐ์ ์ค๋ธ์ ํธ๋ PreparedStatement ์์ฑ์ด ํ์ํ ์์ ์ ํธ์ถํด์ ์ฌ์ฉํ๋ค.
โ 10/24์ผ ์์ ๋ด์ฉ
๋์์ ๊ฐ์
์ค์ต ๋ด์ฉ | ๊ต๊ณผ์ | ์์๋ ๊ฒ |
DataSource ์ ์ฉ | 1.8.3 DataSource ์ธํฐํ์ด์ค๋ก ๋ณํ - p138 | DB ์ปค๋ฅ์
์ ๊ฐ์ ธ์ค๋ ์๋ฐ์ ์ธํฐํ์ด์ค ํ์ฉ |
deleteAll()์ ์ต๋ช
ํด๋์ค ์ ์ฉ | p233 | ํด๋์ค ํ์ผ์ ์ค์ผ ์ ์์ |
add()์ ์ต๋ช
ํด๋์ค ์ ์ฉ | p232 | |
JdbcContext๋ก ๋ถ๋ฆฌ | 3.4.1 JdbcContext ๋ถ๋ฆฌ - p233 | ๋ค๋ฅธ DAO์์๋ ์ฌ์ฉ ๊ฐ๋ฅ (์ฌ์ฌ์ฉ) |
.executeQuery()๋ถ๋ฆฌ | 3.4 ํ
ํ๋ฆฟ๊ณผ ์ฝ๋ฐฑ - p248 | ์ค๋ณต ์ฝ๋ ์ ๊ฑฐ ๋ฐ ๊ฐ๋
์ฑ ์ฆ๊ฐ |
JdbcTemplate์ ์ฉ deleteAll(), add() | 3.6.1 update - p262,263 | ์คํ๋ง์ด ์ ๊ณตํ๋ ํ
ํ๋ฆฟ/์ฝ๋ฐฑ ๊ธฐ์ ์ ์ฉ
์ด๋๊น์ง ๋ณต์กํ๊ฒ ๊ตฌํํ ๊ฒ์ ๋ชจ๋ ๋์ฒดํ๋ค. |
JdbcTemplate์ ์ฉ getCount(), findById() | 3.6.2 queryForInt() - p266, p267 | qeuryForObject() |
getAll()์ถ๊ฐ | p270 | query() |
getAllTest()์ถ๊ฐ | p269, p272 |