๋ฒ์จ 2. DB ์ฐ๊ฒฐ ์น ์ฑ ํํธ์ ๋ค์ด๊ฐ๋ฉด์ ์๋ ํ์ต ๋ชฉํ๋ค์ ๋ํ ๋ด์ฉ์ ๋ฐฐ์ฐ๊ฒ ๋๋๋ฐ ์ค๋์ ๊ทธ ์ค JavaScript์ ๋น๊ต-๋ฐ๋ณต-๋ฌธ์์ด์ ๋ํ์ฌ ์์๋ณด๊ฒ ์ต๋๋ค.
ํ์ต ๋ชฉํ
- JavaScript์ ๊ธฐ๋ณธ๋ฌธ๋ฒ์ ์ดํดํ๋ค.
- DOM, Browser Event, Ajax์ด ๊ฐ๊ฐ ๋ฌด์์ธ์ง ์ดํดํ๊ณ , ์ด๋ฅผ ํ์ฉํด ์นํ๋ฉด์ ์ ์ดํ ์ ์๋ค.
- JSP์ ๋ผ์ดํ์ฌ์ดํด์ ์ดํดํ๊ณ redirect & forward ์ scope๋ฅผ ์ดํดํ๊ณ ์ฌ์ฉํ ์ ์๋ค.
- JSTL๊ณผ EL์ ์ฌ์ฉํ ์ ์๋ค.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ค์นํ๊ณ ๊ฐ๋จํ SQL์ ์ฌ์ฉํ ์ ์๋ค.
- Maven์ ์ดํดํ๊ณ Maven์ ์ด์ฉํ ์น ์ดํ๋ฆฌ์ผ์ด์ ์ ์์ฑํ ์ ์๋ค.
- JDBC ํ๋ก๊ทธ๋๋ฐ์ ํ ์ ์๋ค.
- Web API๋ฅผ ์ดํดํ๋ค.
2) ์๋ฐ์คํฌ๋ฆฝํธ ๋น๊ต-๋ฐ๋ณต-๋ฌธ์์ด
ํ์ต ๋ชฉํ
- ๋ถ๊ธฐ, ๋ฐ๋ณต๋ฌธ์ ๋ค๋ฃฌ๋ค.
- ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์กฐ์(parsing)์ ํ ์ ์๋ค.
ํต์ฌ ๊ฐ๋
- If
- switch
- for
- while
- String replace๋ฉ์๋
์กฐ๊ฑด๋ฌธ
์กฐ๊ฑด๋ฌธ์ ํน์ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์ฐ์ ์คํํ๋ ๋ช ๋ น์ ์งํฉ์ ๋๋ค. JavaScript๋ ๋ ๊ฐ์ง ์กฐ๊ฑด๋ฌธ์ ์ง์ํฉ๋๋ค: if...else and switch.
- if else
- switch
๋น๊ต๋ฌธ: if else ๋ฌธ
ํน์ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์ฐ ๋ฌธ์ฅ์ ์คํํ๊ธฐ ์ํด if ๋ฌธ์ ์ฌ์ฉํฉ๋๋ค. ๋ํ ์ ํ์ ์ผ๋ก ์กฐ๊ฑด์ด ๊ฑฐ์ง์ธ ๊ฒฝ์ฐ ๋ฌธ์ฅ์ ์คํํ๊ธฐ ์ํด์๋ else ์ ์ ์ฌ์ฉํฉ๋๋ค. ์กฐ๊ฑด์ด ์ฌ๋ฌ๊ฐ์ผ ๋๋ else if๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์กํ๊ฒ ํ ์ ์์ต๋๋ค.
1
2
3
4
5
6
7
8
9
|
if (condition_1) {
statement_1;
} else if (condition_2) {
statement_2;
} else if (condition_n) {
statement_n;
} else {
statement_last;
}
|
cs |
๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ๊ฑฐ์ง์ผ๋ก ํ๊ฐ๋ฉ๋๋ค:
- false
- undefined
- null
- 0
- NaN
- the empty string ("")
์กฐ๊ฑด๋ฌธ์ ์ ๋ฌ๋์์ ๋ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ์ฌ ๋ค๋ฅธ ๋ชจ๋ ๊ฐ์ ์ฐธ์ผ๋ก ํ๊ฐํฉ๋๋ค.
if...else๋ฌธ ๋์ ์ผํญ์ฐ์ฐ์๋ฅผ ๋์ ํด์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ถ๊ธฐ - switch
๋ก์ง์ ๋ถ๊ธฐํ๊ธฐ ์ํด์ if๋ฌธ ์ด์ธ์๋ switch ๋ฌธ์ ํตํด์๋ ํด๊ฒฐํ ์ ์์ต๋๋ค. ์ผ์ด์ค๊ฐ ๋ช ํํ ์๊ณ ์ฃผ์ด์ง ์ผ์ด์ค์ ๋ํด์ ์ฒ๋ฆฌํ๋ ๊ฐ๋ ์ผ๋ก ๊ฐ๋ ์ฑ์ด ์ข๊ณ ๋๋ฑํ๊ฒ๋ค์ด ๋์ดํ ๋ ์ฌ์ฉํฉ๋๋ค.
default ์ ์ ๋ชป ์ฐพ๊ฒ ๋๋ค๋ฉด ํ๋ก๊ทธ๋จ์ switch๋ฌธ์ ์ข ๋ฃ๋ฉ๋๋ค. break๋ฌธ์ ํ๋ก๊ทธ๋จ์ switch๋ฌธ์ ๋ฒ์ด๋๊ฒ ํฉ๋๋ค. ๋ง์ฝ break๋ฌธ์ด ์๋ต๋๋ค๋ฉด ๊ทธ ํ๋ก๊ทธ๋จ์ switch๋ฌธ์์์ ๋ค์ ๋ฌธ์ฅ์ ๊ณ์ ์ํํฉ๋๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
switch (fruittype) {
case "Oranges":
console.log("Oranges are $0.59 a pound.");
break;
case "Apples":
console.log("Apples are $0.32 a pound.");
break;
case "Bananas":
console.log("Bananas are $0.48 a pound.");
break;
case "Cherries":
console.log("Cherries are $3.00 a pound.");
break;
case "Mangoes":
console.log("Mangoes are $0.56 a pound.");
break;
case "Papayas":
console.log("Mangoes and papayas are $2.79 a pound.");
break;
default:
console.log("Sorry, we are out of " + fruittype + ".");
}
console.log("Is there anything else you'd like?");
|
cs |
๋ฐ๋ณต๋ฌธ
- for
- while
- forEach
- for in
- for of
for ๋ฌธ์ด๋ while๋ฌธ์ ์ฌ์ฉํด์ ๋ฐ๋ณต๋ฌธ์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ผ๋ฐ์ ์ธ ๊ฒฝ์ฐ for๋ฅผ ์ฌ์ฉํฉ๋๋ค.
for ๋ฌธ
for ๋ฐ๋ณต๋ฌธ์ ์ด๋ค ํน์ ํ ์กฐ๊ฑด์ด ๊ฑฐ์ง์ผ๋ก ํ๋ณ๋ ๋๊น์ง ๋ฐ๋ณตํฉ๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐ๋ณต๋ฌธ์ C์ ๋ฐ๋ณต๋ฌธ๊ณผ ๋น์ทํฉ๋๋ค. for ๋ฐ๋ณต๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
for ([์ด๊ธฐ๋ฌธ]; [์กฐ๊ฑด๋ฌธ]; [์ฆ๊ฐ๋ฌธ]) ๋ฌธ์ฅ
1
2
3
4
5
6
7
8
9
|
function howMany(selectObject) {
var numberSelected = 0;
for (var i = 0; i < selectObject.options.length; i++) {
if (selectObject.options[i].selected) {
numberSelected++;
}
}
return numberSelected;
}
|
cs |
forEach
forEach๋ for๋ฌธ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ๋ณต์ ์ธ ๊ธฐ๋ฅ์ ์ํํ ๋ ์ฌ์ฉํฉ๋๋ค.
ํ์ง๋ง for๋ฌธ์ฒ๋ผ index์ ์กฐ๊ฑด์, increase๋ฅผ ์ ์ํ์ง ์์๋ callback ํจ์๋ฅผ ํตํด ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค.
for๋ฌธ์ ๋นํด ์ข ๋ ๊น๋ํ๊ณ ์ง๊ด์ ์
๋๋ค. ๋ณ์น์์ด arr๋ด ๋ชจ๋ ์์๋ค์ด callback์ ํธ์ถํฉ๋๋ค.
1
2
3
4
5
6
7
|
const arr = [0,1,2,3,4,5,6,7,8,9,10];
arr.forEach(function(element){
console.log(element); // 0 1 2 3 4 5 6 7 8 9 10
});
// ํน์ arrow ํจ์ ๊ฐ๋ฅ
arr.forEach(element => console.log(element));
|
cs |
for...in ๋ฌธ
for...in ๋ฌธ์ ๊ฐ์ฒด์ ์ด๊ฑฐ ์์ฑ์ ํตํด ์ง์ ๋ ๋ณ์๋ฅผ ๋ฐ๋ณตํฉ๋๋ค. ๊ฐ๊ฐ์ ๊ณ ์ ํ ์์ฑ์ ๋ํด, JavaScript๋ ์ง์ ๋ ๋ฌธ์ ์คํํฉ๋๋ค. for...in ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
1
2
3
4
5
6
7
8
|
function dump_props(obj, obj_name) {
var result = "";
for (var i in obj) {
result += obj_name + "." + i + " = " + obj[i] + "<br>";
}
result += "<hr>";
return result;
}
|
cs |
for...of ๋ฌธ
for...of ๋ฌธ์ ๊ฐ๊ฐ์ ๊ณ ์ ํ ํน์ฑ์ ๊ฐ์ ์คํํ ๋ช ๋ น๊ณผ ํจ๊ป ์ฌ์ฉ์ ์ง์ ๋ฐ๋ณต ํํฌ๋ฅผ ํธ์ถํ์ฌ, ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด(๋ฐฐ์ด, Map, Set, ์ธ์ ๊ฐ์ฒด ๋ฑ์ ํฌํจ)๋ฅผ ํตํด ๋ฐ๋ณตํ๋ ๋ฃจํ๋ฅผ ๋ง๋ญ๋๋ค.
๋ค์ ์๋ for of ์ for in ๋ฃจํ์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์์ฑ ์ด๋ฆ์ ํตํด for in์ด ๋ฐ๋ณตํ๋ ๋์, for of๋ ์์ฑ ๊ฐ์ ํตํด ๋ฐ๋ณตํฉ๋๋ค.
1
2
3
4
5
6
7
8
9
10
|
let arr = [3, 5, 7];
arr.foo = "hello";
for (let i in arr) {
console.log(i); // logs "0", "1", "2", "foo"
}
for (let i of arr) {
console.log(i); // logs "3", "5", "7"
}
|
cs |
for in์ ๊ฐ์ ๋ฉ์๋์ ์ฌ์ฉ๋ฒ์ด ์ต์ํ์ง ์๋ค๋ฉด, ์ฐ์ ์ for๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ํ์ํ๋ ๊ฒ์ผ๋ก ์ถฉ๋ถํฉ๋๋ค.
๋ฌธ์์ด ์ฒ๋ฆฌ
- split
- replace
- trim
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฌธ์์ ๋ฌธ์์ด์ ๊ฐ์ ํ์ ์ผ๋ก ๋ชจ๋ ๋ฌธ์์ด์ ๋๋ค.
๋ฌธ์์ด์ ๋ค์ํ ๋ฉ์๋๊ฐ ์์ต๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ํน์ง์๋ณด๋ฉด ๋ฌธ์์ด, ๋ฐฐ์ด ๋ฑ์ ์ ์ธํด๋๊ณ . ๋ค๋ก ๋ฉ์๋๋ฅผ ์ธ ์ ์์ต๋๋ค. ์ด๋ ๋ด๋ถ์ ์ผ๋ก ๋ฌธ์์ด์ด ๊ฐ์ฒด๋ก ๋ณํ์ด ๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด๋ ์๊ฐ์ ์ผ๋ก ๊ฐ์ฒด๋ก ๋ณํ์ด ๋ผ์ ์ด๋ค ๊ฐ์ฒด ๋ด์ ์๋ ๋ฉ์๋๋ฅผ ์ธ ์ ์๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ ๋ฌธ์์ด ๊ฐ์ฒด๋ผ๊ณ ๋งํ ์ ์๊ณ ๋ชจ๋ ๋ฌธ์์ด์ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
split
.split()์ ๋ฌธ์์ด์ ๋ถํ ํ๋ ๋ฉ์๋์ ๋๋ค.
string.split(separator , limit)
separator์๋ ๋ถํ ์ ๊ธฐ์ค์ ๋ฃ์ต๋๋ค. ์ผํ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ถํ ํ ๋๋ ','์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. limit์ผ๋ก ์ต๋ ๋ถํ ๊ฐ์๋ฅผ ์ ํฉ๋๋ค. ์ ํ ์ฌํญ์ผ๋ก, ๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด ์ ์ฒด๋ฅผ ๋ค ๋ถํ ํฉ๋๋ค.
1
|
"ab:cd".split(":"); //["ab","cd"]
|
cs |
replace
.replace()๋ ํน์ ๋ฌธ์์ด์ ์ฐพ์ ๋ค๋ฅธ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๋ ๋ฉ์๋์ ๋๋ค.
string.replace('string1' , 'string2')
string์์ string1์ ์ฐพ์ string2๋ก ๋ฐ๊ฟ๋๋ค.
1
|
"ab:cd".replace(":", "$"); //"ab$cd"
|
cs |
trim
.trim()์ ๋ฌธ์์ด ์ข์ฐ์์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํ๋ ํจ์๊ฐ trim() ํจ์ ์ ๋๋ค.
1
|
" abcde ".trim(); //"abcde"
|
cs |
[๋ณด๊ฐ]
๋ฐ๋๋ก ๋ฐ๋ณต๋ฌธ์ ๋์์ํค๋(reverse iteration์ด๋ผ๊ณ ํจ) ๊ฒฝ์ฐ๊ฐ ์ค์ ๋ธ๋ผ์ฐ์ ์์ ์ผ๋ง๋ ์ฑ๋ฅ์ฐจ์ด๊ฐ ์์๊น์?
ํ๋์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์ต์ ํ๋ฅผ ํตํด ๋ฐ๋ณต๋ฌธ์ ์ต๋ํ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ๋ ๊ณผ์ ์ ๊ฑฐ์ณ์์ต๋๋ค. ์ค์ ๋ก ์คํ์ ํด๋ณด๋ฉด ๊ทธ ์ฐจ์ด๊ฐ ๋ฏธ๋ฏธํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์ for๋ฌธ์ ๋ฌด์กฐ๊ฑด ๋ฐ๋๋ก ๊ตฌํํ ํ์๋ ์์ต๋๋ค. ์ด๋ฐ ์ํฉ์ด์ธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ตฌํ๋ฐฉ๋ฒ์ ๋ฐ๋ผ (for ๊ฐ ๋น ๋ฅผ๊น while ๋น ๋ฅผ๊น? ๋ฑ) ์ฑ๋ฅ์ฐจ์ด๋ ๊ทธ๋ฆฌ ํฌ์ง ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก๋ ์ฝ๋์ ๊ฐ๋ ์ฑ์ ์ข๋ ์ฐ์ ์ง์คํ๋ ๊ฒ ์ข์ต๋๋ค.
์ด๋ ๊ฒ ์๋ฐ์คํฌ๋ฆฝํธ์ ์กฐ๊ฑด๋ฌธ, ๋ฐ๋ณต๋ฌธ, ๋ฌธ์์ด์ ๋ํ์ฌ ์์๋ณด์์ต๋๋ค. ๋ ๋์๊ฐ ์ ๊ทํํ์์ด๋ผ๋ ๊ฒ๋ ์๋๋ฐ ์ ๊ทํํ์์ ๊ด๋ จ๋ ๋ด์ฉ์ ๋ค์๊ธฐํ์ ์์๋ณด๋๋ก ํ๊ณ ๋ค์์๊ฐ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจ์์ ๋ํ์ฌ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๋๊ธ