์ž๊ฒฉ์ฆ/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2020๋…„ 2ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ

hello_u 2023. 4. 2. 20:22

 

 

1. ์ •๋ณด์‹œ์Šคํ…œ ์šด์˜ ์ค‘ ์„œ๋ฒ„๊ฐ€ ๋‹ค์šด๋˜๊ฑฐ๋‚˜ ์ž์—ฐ์žฌํ•ด๋‚˜ ์‹œ์Šคํ…œ ์žฅ์•  ๋“ฑ์˜ ์ด์œ ๋กœ ๊ณ ๊ฐ์—๊ฒŒ ์„œ๋น„์Šค๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•œ๋‹ค. ์ด์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ๋น„์ƒ์‚ฌํƒœ ๋˜๋Š” ์—…๋ฌด์ค‘๋‹จ ์‹œ์ •๋ถ€ํ„ฐ ์—…๋ฌด๊ฐ€ ๋ณต๊ตฌ๋˜์–ด ๋‹ค์‹œ ์ •์ƒ ๊ฐ€๋™๋ ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•˜๋Š” ์šฉ์–ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์“ฐ์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

ํ•ด๋‹น ์šฉ์–ด๋Š” "์žฅ์•  ๋Œ€์‘ ์‹œ๊ฐ„ (Recovery Time Objective, RTO)" ์ž…๋‹ˆ๋‹ค.

 

RTO๋Š” ์žฅ์•  ๋ฐœ์ƒ ํ›„ ์‹œ์Šคํ…œ์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์‹œ๊ฐ„์„ ์˜๋ฏธํ•˜๋ฉฐ,

 

์ด๋Š” ๊ธฐ์—…์ด๋‚˜ ์กฐ์ง์ด ์ •ํ•œ ๋ชฉํ‘œ ์‹œ๊ฐ„ ๋‚ด์— ์žฅ์•  ๋Œ€์‘ ๋ฐ ๋ณต๊ตฌ๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•˜๋Š” ์ค‘์š”ํ•œ ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

RTO๋Š” ๊ธฐ์—…์ด๋‚˜ ์กฐ์ง์˜ ์—…๋ฌด์™€ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ, ๋น ๋ฅธ ๋ณต๊ตฌ ์‹œ๊ฐ„์„ ์œ„ํ•ด ์ฒ ์ €ํ•œ ๋Œ€๋น„ ๋ฐ ๊ณ„ํš์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 

 

2. ๋‹ค์Œ์€ ํŒŒ์ด์ฌ ์ฝ”๋“œ์ด๋‹ค. ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

a={'์ผ๋ณธ','์ค‘๊ตญ','ํ•œ๊ตญ'}
a.add('๋ฒ ํŠธ๋‚จ')
a.add('์ค‘๊ตญ')
a.remove('์ผ๋ณธ')
a.update(['ํ™์ฝฉ','ํ•œ๊ตญ','ํƒœ๊ตญ'])
print(a)

 

๋”๋ณด๊ธฐ
{'ํ•œ๊ตญ', 'ํƒœ๊ตญ', '๋ฒ ํŠธ๋‚จ', '์ค‘๊ตญ', 'ํ™์ฝฉ'}

 

 

์œ„ ์ฝ”๋“œ๋Š” ์„ธํŠธ(Set) ์ž๋ฃŒํ˜•์„ ๋‹ค๋ฃจ๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

 

์„ธํŠธ(Set) ์ž๋ฃŒํ˜•

- ์ˆœ์„œ๊ฐ€ ์—†๊ณ  , ์ง‘ํ•ฉ์•ˆ์—์„œ๋Š” unique ํ•œ ๊ฐ’์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

 

 

 

์ฒ˜์Œ์—๋Š” ์„ธ ๊ฐœ์˜ ๊ตญ๊ฐ€๊ฐ€ ํฌํ•จ๋œ ์„ธํŠธ a๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฐ ๋‹ค์Œ add() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ '๋ฒ ํŠธ๋‚จ'์„ ์ถ”๊ฐ€ (์ค‘๋ณต๋˜๋Š” ๊ฐ’์œผ๋กœ '์ค‘๊ตญ')

 

๊ทธ ๋‹ค์Œ์—๋Š” remove() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ '์ผ๋ณธ'์„ ์ œ๊ฑฐํ•˜๊ณ ,

 

update() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์š”์†Œ 'ํ™์ฝฉ', ๊ณผ 'ํƒœ๊ตญ'์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. (์ค‘๋ณต๋˜๋Š” ๊ฐ’์œผ๋กœ 'ํ•œ๊ตญ')

 

 

 

3. ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” XMLHttpRequest ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด์„œ ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜์ง€ ์•Š๊ณ ๋„ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋ถ„๋งŒ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋ฉฐ, ํ•˜์ดํผํ…์ŠคํŠธ ํ‘œ๊ธฐ ์–ธ์–ด(HTML)๋งŒ์œผ๋กœ ์–ด๋ ค์šด ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์›น ํŽ˜์ด์ง€์—์„œ ๊ตฌํ˜„ํ•ด ์ด์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€์™€ ์ž์œ ๋กญ๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ ๋ช…์„ ์“ฐ์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

์œ„ ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ์ˆ ์€ Ajax(Asynchronous JavaScript And XML)์ž…๋‹ˆ๋‹ค.

 

Ajax๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ ๋กœ,

 

์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜์ง€ ์•Š๊ณ ๋„ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋ฅผ ํ†ตํ•ด ์›น ํŽ˜์ด์ง€์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ๋น ๋ฅด๊ณ  ๋™์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋˜ํ•œ, Ajax๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— XML, JSON, HTML ๋“ฑ์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ,

 

์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์›น ํŽ˜์ด์ง€์—์„œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒ€์ƒ‰ ์ž๋™์™„์„ฑ, ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…, ๋™์ ์ธ ํผ ์ œ์ถœ ๋“ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

4. ์ ˆ์ฐจ๋ณด๋‹ค๋Š” ์‚ฌ๋žŒ์ด ์ค‘์‹ฌ์ด ๋˜์–ด ๋ณ€ํ™”์— ์œ ์—ฐํ•˜๊ณ  ์‹ ์†ํ•˜๊ฒŒ ์ ์‘ํ•˜๋ฉด์„œ ํšจ์œจ์ ์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์† ์ ์‘์  ๊ฒฝ๋Ÿ‰ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ, ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„์ด ์งง๊ณ  ์‹ ์†ํ•˜๋ฉฐ, ์›Œํ„ฐํด์— ๋Œ€๋น„๋˜๋Š” ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ ๊ฐ๊ด‘๋ฐ›๋Š” ๋ฐฉ๋ฒ•๋ก ์€ ๋ฌด์—‡์ธ๊ฐ€?

 

๋”๋ณด๊ธฐ

์œ„ ๋ฌธ์ œ์—์„œ ์„ค๋ช…ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์€ ์• ์ž์ผ(Agile) ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค.

 

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์€ ๊ธฐ์กด์˜ ์›Œํ„ฐํด ๋ฐฉ๋ฒ•๋ก ๊ณผ ๋‹ฌ๋ฆฌ, ๊ฐœ๋ฐœ์ž์™€ ๊ณ ๊ฐ์˜ ์ƒํ˜ธ์ž‘์šฉ๊ณผ ํ”ผ๋“œ๋ฐฑ์— ์ดˆ์ ์„ ๋งž์ถ˜ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค.

 

๋ถˆํ™•์‹ค์„ฑ์ด ๋†’์€ ํ”„๋กœ์ ํŠธ์—์„œ ์œ ์šฉํ•˜๋ฉฐ,

 

๋ฐ˜๋ณต์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐ˜๋ณตํ•˜๊ณ  ๊ณ ๊ฐ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋Œ€ํ•ด ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก ์—๋Š” Scrum, XP, Lean ๋“ฑ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

5. ๋‹ค์Œ์€ ์ž๋ฐ” ์ฝ”๋“œ์ด๋‹ค. ๋‹ค์Œ ๋ฐ‘์ค„์— ๋“ค์–ด๊ฐˆ ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ์‹œ์˜ค.

class parent
	public void show(){
    	system.out.println("Parent");
    }
}

class Child extends Parent{
	public void show(){
    	system.out.println("Child");
    }
}

public class good{
	public static void main(String[] args){
    	Parent pa = ____  Child();
        pa.show();
    }
}

 

๋”๋ณด๊ธฐ

์œ„ ์ฝ”๋“œ์—์„œ ____ ์— ๋“ค์–ด๊ฐˆ ํ‚ค์›Œ๋“œ๋Š” new ์ž…๋‹ˆ๋‹ค.

 

new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Child ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ ,

 

์ด๋ฅผ Parent ํด๋ž˜์Šค ํƒ€์ž…์˜ ์ฐธ์กฐ ๋ณ€์ˆ˜์ธ pa ์— ํ• ๋‹นํ•˜์—ฌ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์ด ๊ฒฝ์šฐ, pa ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ์ฒด๋Š” Child ํด๋ž˜์Šค์˜ ๊ฐ์ฒด์ด๋ฉฐ,

 

๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ์—๋Š” Child ํด๋ž˜์Šค์—์„œ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

 

 

6. ํ•™์ƒ ํ…Œ์ด๋ธ”์€ ํ•™๋ฒˆ, ์ด๋ฆ„, ํ•™๋…„, ์ˆ˜๊ฐ•๊ณผ๋ชฉ, ์ ์ˆ˜, ์—ฐ๋ฝ์ฒ˜๋ฅผ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง„๋‹ค. ์•„๋ž˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

1) ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ 3,4ํ•™๋…„์ธ ํ•™๋ฒˆ, ์ด๋ฆ„์„ ์กฐํšŒํ•œ๋‹ค.

2) IN ์—ฐ์‚ฐ์ž ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

[ํ•™์ƒ]

ํ•™๋ฒˆ ์ด๋ฆ„ ํ•™๋…„ ์ˆ˜๊ฐ•๊ณผ๋ชฉ ์ ์ˆ˜ ์—ฐ๋ฝ์ฒ˜
1000 ๊น€์ด๋ฆ„ 1 ์ˆ˜ํ•™ 90 010-1111-2222
2000 ์žฅ์ด๋ฆ„ 2 ๊ณผํ•™ 95 010-2222-2222
3000 ํ—ˆ์ด๋ฆ„ 3 ๋ฏธ์ˆ  90 010-3333-3333
4000 ์กฐ์ด๋ฆ„ 4 ์Œ์•… 95 010-4444-4444

 

๋”๋ณด๊ธฐ

 

 ํ•™์ƒ ํ…Œ์ด๋ธ”์—์„œ 3,4ํ•™๋…„์ธ ํ•™๋ฒˆ, ์ด๋ฆ„์„ ์กฐํšŒํ•˜๋Š” SQL๋ฌธ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

SELECT ํ•™๋ฒˆ, ์ด๋ฆ„ FROM ํ•™์ƒ WHERE ํ•™๋…„ IN (3,4);

 

๊ฒฐ๊ณผ  

ํ•™๋ฒˆ    ์ด๋ฆ„
-------------
3000   ํ—ˆ์ด๋ฆ„
4000   ์กฐ์ด๋ฆ„

 

 

7. ํŠธ๋žœ์žญ์…˜ Rollback์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

 

ํŠธ๋žœ์žญ์…˜ Rollback์€ ํŠธ๋žœ์žญ์…˜ ์‹คํ–‰ ์ค‘์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ํŠธ๋žœ์žญ์…˜์ด ์ค‘๋‹จ๋˜์—ˆ์„ ๋•Œ,

 

์ด์ „์— ์‹คํ–‰ํ–ˆ๋˜ ๋ชจ๋“  ์ž‘์—…์„ ์ทจ์†Œํ•˜๊ณ  ์ด์ „ ์ƒํƒœ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

 

 

Rollback์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์œผ๋กœ,

 

ํŠธ๋žœ์žญ์…˜์ด ์ค‘๋‹จ๋œ ํ›„์—๋Š” ์ด์ „์— ์‹คํ–‰ํ•œ ๋ชจ๋“  SQL ๋ฌธ์ด ์ทจ์†Œ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์ด์ „ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

 

 

 

8. ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ธ์ฆ์„ ๋ณด์žฅํ•˜๋Š” ์ธ์ฆํ•ด๋”(AH)์™€ ๊ธฐ๋ฐ€์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ์•”ํ˜ธํ™”(ESP)๋ฅผ ์ด์šฉํ•œ ํ”„๋กœํ† ์ฝœ๋กœ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต(Network Layer)์ธ ์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ(IP)์— ๋ณด์•ˆ์„ฑ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ํ‘œ์ค€ํ™”๋œ ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์“ฐ์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

์ธํ„ฐ๋„ท ํ”„๋กœํ† ์ฝœ ๋ณด์•ˆ(IPsec)์€ ๋„คํŠธ์›Œํฌ ๊ณ„์ธต์—์„œ ์ž‘๋™ํ•˜๋Š” ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

 

IPsec์€ ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ ๋ฐ ์ธ์ฆ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆํ•ด๋”(AH)์™€ ์•”ํ˜ธํ™”(ESP)๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 

์ธ์ฆํ•ด๋”(AH)๋Š” IP ํŒจํ‚ท์˜ ๋ฌด๊ฒฐ์„ฑ๊ณผ ์ธ์ฆ์„ ๋ณด์žฅํ•˜๋Š” ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

 

AH๋Š” IP ํŒจํ‚ท ํ—ค๋”์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ํ•ด์‹œ๊ฐ’์„ ์ƒ์„ฑํ•˜๊ณ , ์ด๋ฅผ ํŒจํ‚ท์— ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ํŒจํ‚ท์ด ์œ„๋ณ€์กฐ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์•”ํ˜ธํ™”(ESP)๋Š” IP ํŒจํ‚ท์˜ ๊ธฐ๋ฐ€์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.

 

ESP๋Š” ํŒจํ‚ท ๋ฐ์ดํ„ฐ๋ฅผ ์•”ํ˜ธํ™”ํ•˜๊ณ , ์ด๋ฅผ ํŒจํ‚ท์— ์ถ”๊ฐ€ํ•จ์œผ๋กœ์จ ํŒจํ‚ท์ด ์ค‘๊ฐ„์— ๋…ธ์ถœ๋˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ถœ๋˜์ง€ ์•Š๋„๋ก ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

IPsec์€ ๊ฐ€์ƒ ์‚ฌ์„ค๋ง(VPN)์„ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜, ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ํ†ต์‹ ํ•  ๋•Œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

IPsec์€ ๊ณต๊ฐœํ‚ค ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํ˜ธ์ธ์ฆ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๋ณด์•ˆ๋œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ  ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

9. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ , ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ฝ”๋”ฉ ํ‘œ์ค€, ์ฝ”๋”ฉ ์Šคํƒ€์ผ, ์ฝ”๋“œ ๋ณต์žก๋„ ๋ฐ ๋‚จ์€ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ๋Š” ๋ฌด์—‡์ธ์ง€ ์“ฐ์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•œ ์ฝ”๋”ฉ ํ‘œ์ค€, ์ฝ”๋”ฉ ์Šคํƒ€์ผ, ์ฝ”๋“œ ๋ณต์žก๋„ ๋ฐ ๋‚จ์€ ๊ฒฐํ•จ์„ ๋ฐœ๊ฒฌํ•˜๋Š” ๋„๊ตฌ๋ฅผ

 

์ •์  ๋ถ„์„ ๋„๊ตฌ(static analysis tool)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

์ •์  ๋ถ„์„ ๋„๊ตฌ๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ• ๊ทœ์น™, ์ฝ”๋”ฉ ํ‘œ์ค€, ์ฝ”๋”ฉ ์Šคํƒ€์ผ, ์ฝ”๋“œ ๋ณต์žก๋„, ์ž ์žฌ์ ์ธ ๊ฒฐํ•จ ๋“ฑ์„

 

ํ™•์ธํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ ์ •์  ๋ถ„์„ ๋„๊ตฌ๋กœ๋Š” SonarQube, PMD, FindBugs, ESLint ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

10. ๋‹ค์Œ ๋ณด๊ธฐ๊ฐ€ ์„ค๋ช…ํ•˜๋Š” ํŒจํ„ด์„ ์“ฐ์‹œ์˜ค. (์˜๋ฌธ Full-Name์œผ๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค)

[๋ณด๊ธฐ]

ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ทธ ๊ฐ์ฒด์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์ด ์—ฐ๋ฝ์ด ๊ฐ€๊ณ  ์ž๋™์œผ๋กœ ๋‚ด์šฉ์ด ๊ฐฑ์‹ ๋˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ผ๋Œ€ ๋‹ค์˜ ์˜์กด์„ฑ์„ ๊ฐ€์ง€๋ฉฐ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฐ์ฒด ์‚ฌ์ด์—์„œ๋Š” ๊ฐ€๋Šฅํ•˜๋ฉด ๋Š์Šจํ•˜๊ฒŒ ๊ฒฐํ•ฉํ•˜๋Š” ๋””์ž์ธ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

๋”๋ณด๊ธฐ

Observer pattern

 

Observer pattern์€ ๊ฐ์ฒด ๊ฐ„์˜ ์ผ๋Œ€ ๋‹ค์˜ ์˜์กด์„ฑ์„ ๊ฐ–๋Š” ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

์ด ํŒจํ„ด์—์„œ๋Š” ๊ฐ์ฒด ์‚ฌ์ด์— ์ผ์ข…์˜ ๊ด€์ฐฐ์ž(observer) ๊ด€๊ณ„๋ฅผ ํ˜•์„ฑํ•˜๋ฉฐ, ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ,

 

๊ทธ ๊ฐ์ฒด์— ์˜์กดํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์ž๋™์œผ๋กœ ๋‚ด์šฉ์ด ์ „๋‹ฌ๋˜์–ด ๊ฐฑ์‹ ๋ฉ๋‹ˆ๋‹ค.

 

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์‹ ์‹œ์žฅ์—์„œ ์ฃผ์‹ ๊ฐ€๊ฒฉ์„ ๊ฐ์‹œํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ด…์‹œ๋‹ค.

 

์ด๋•Œ, ์ฃผ์‹ ๊ฐ€๊ฒฉ์€ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๊ณ„์† ๋ณ€๋™๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ฃผ์‹ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ฃผ์ œ(subject)๋กœ ์ •์˜ํ•˜๊ณ ,

 

์ด ๊ฐ์ฒด์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์—ฌ๊ธฐ์—์„œ ๊ด€์ฐฐ์ž ๊ฐ์ฒด(observer)๋Š” ์ด๋Ÿฌํ•œ ์ฃผ์‹ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

 

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์‹ ๊ฐ€๊ฒฉ ์ •๋ณด๋ฅผ ์ด์šฉํ•ด ๊ฑฐ๋ž˜ ์ „๋žต์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ์ฒด๋‚˜, ๊ทธ๋ž˜ํ”„๋กœ ์‹œ๊ฐํ™”ํ•˜๋Š” ๊ฐ์ฒด ๋“ฑ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋Ÿฌํ•œ ๊ด€์ฐฐ์ž ๊ฐ์ฒด๋“ค์€ ์ฃผ์ œ ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์–ป์–ด๋‚ด์–ด ์ž์‹ ์˜ ์—ญํ• ์— ๋งž๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

 

Observer pattern์€ ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ๋†’์€ ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด์„ฑ์„ ๋‚ฎ์ถ”๋Š” ๋ฐ์—๋„ ํฐ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋ฅผ ํ†ตํ•ด ์‹œ์Šคํ…œ์ด ๋”์šฑ ์œ ์—ฐํ•˜๊ณ  ํ™•์žฅ์„ฑ์ด ๋†’์€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ, ์œ ์ง€๋ณด์ˆ˜์™€ ํ™•์žฅ์„ฑ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์œ ์šฉํ•œ ํŒจํ„ด์ž…๋‹ˆ๋‹ค.

 

11. Linux ์šด์˜์ฒด์ œ ์œ„์—์„œ ๊ตฌ๋™ํ•˜๋ฉฐ ํœด๋Œ€ํฐ ์ „ํ™”๋ฅผ ๋น„๋กฏํ•œ ํœด๋Œ€์šฉ ์žฅ์น˜๋ฅผ ์œ„ํ•œ ์šด์˜์ฒด์ œ์™€ ๋ฏธ๋“ค์›จ์–ด, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค ๊ทธ๋ฆฌ๊ณ  ํ‘œ์ค€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ(์›น ๋ธŒ๋ผ์šฐ์ € ๋“ฑ) ๋“ฑ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์Šคํƒ์ด์ž ๋ฆฌ๋ˆ…์Šค ๋ชจ๋ฐ”์ผ ์šด์˜์ฒด์ œ๋กœ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ”์™€ ์ฝ”ํ‹€๋ฆฐ ์–ธ์–ด๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ๊ณ , ์ปดํŒŒ์ผ ๋œ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋ฅผ ๊ตฌ๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋Ÿฐํƒ€์ž„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์šด์˜์ฒด์ œ๋Š” ๋ฌด์–ธ์ธ์ง€ ์“ฐ์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

์œ„์˜ ์„ค๋ช…์€ ์•ˆ๋“œ๋กœ์ด๋“œ(Android) ์šด์˜์ฒด์ œ์ž…๋‹ˆ๋‹ค.

 

12. ํ•™์ƒ ํ…Œ์ด๋ธ”์˜ name์†์„ฑ์— IDX_NAME ์ด๋ฆ„์œผ๋กœ ์ธ๋ฑ์Šค ์ƒ์„ฑํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 STID NAME SCORE DEPTID
1000 ๊น€์ด๋ฆ„ 90 1
2000 ํ—ˆ์ด๋ฆ„ 95 2
3000 ์กฐ์ด๋ฆ„ 90 3
4000 ์žฅ์ด๋ฆ„ 95 4

 

๋”๋ณด๊ธฐ

๋‹ค์Œ๊ณผ ๊ฐ™์€ SQL๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ IDX_NAME ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CREATE INDEX IDX_NAME ON ํ•™์ƒ (NAME);

 

์œ„์˜ SQL๋ฌธ์—์„œ, CREATE INDEX๋Š” ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ์ž…๋‹ˆ๋‹ค.

 

IDX_NAME์€ ์ƒ์„ฑ๋  ์ธ๋ฑ์Šค์˜ ์ด๋ฆ„์ด๋ฉฐ, 'ํ•™์ƒ' ์€ ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

 

๋งˆ์ง€๋ง‰์œผ๋กœ (NAME)์€ ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•  ์†์„ฑ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

 

13. ๋‹ค์Œ ์„ค๋ช… ์ค‘ ๋นˆ์นธ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ์šฉ์–ด๋ฅผ ์ž‘์„ฑํ•˜์‹œ์˜ค.

HTTP, HTTPS SMTP๋ฅผ ํ†ตํ•ด์„œ XML ๊ธฐ๋ฐ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ํ”„๋กœํ† ์ฝœ๋กœ ์›น ์„œ๋น„์Šค ๋ฐฉ์‹์— HTTP๊ธฐ๋ฐ˜์˜  (    ) ์„/๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†ก์ˆ˜์‹ ํ•œ๋‹ค. (    ) ๋Œ€์‹  ๋ ˆ์ŠคํŠธํ’€(RESTful) ํ”„๋กœํ† ์ฝœ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋”๋ณด๊ธฐ

SOAP(Simple Object Access Protocol)

 

 

SOAP (Simple Object Access Protocol)์€ ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

 

SOAP์€ XML ๊ธฐ๋ฐ˜์˜ ๋ฉ”์‹œ์ง€ ๊ตํ™˜ ํ”„๋กœํ† ์ฝœ๋กœ, ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”Œ๋žซํผ๊ณผ ์–ธ์–ด ๊ฐ„์˜ ํ†ต์‹ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

 

SOAP์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ํ‘œ์ค€ ๊ทœ์•ฝ์„ ์ •์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ,

 

๋ฉ”์‹œ์ง€์˜ ๊ตฌ์กฐ์™€ ์†์„ฑ์„ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•˜์—ฌ ์ƒํ˜ธ ๊ฐ„์— ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ†ต์‹  ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

SOAP ๋ฉ”์‹œ์ง€๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ HTTP, HTTPS, SMTP ๋“ฑ์˜ ํ”„๋กœํ† ์ฝœ์„ ํ†ตํ•ด ์ „์†ก

 

 

14. SQL Injection์ด ๋ฌด์—‡์ธ์ง€ ์„œ์ˆ ํ•˜์‹œ์˜ค.

 

๋”๋ณด๊ธฐ

SQL Injection์€ ์•…์˜์ ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•…์„ฑ SQL ์ฟผ๋ฆฌ๋ฌธ์„ ์‚ฝ์ž…ํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ๊ฒ€์ฆ ๊ณผ์ •์—์„œ ํ•„ํ„ฐ๋ง์„ ์ œ๋Œ€๋กœ ํ•˜์ง€ ์•Š์•„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํ•ด์ปค๋Š” SQL Injection์„ ์ด์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•…์„ฑ ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œ, ์ˆ˜์ • ๋˜๋Š” ์œ ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด ๊ณต๊ฒฉ์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ๊ณผ ๊ธฐ๋ฐ€์„ฑ์ด ๊นจ์ ธ์„œ ๋ง‰๋Œ€ํ•œ ํ”ผํ•ด๋ฅผ ์ž…์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

SQL Injection์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ž…๋ ฅ๊ฐ’ ๊ฒ€์ฆ๊ณผ ํ•„ํ„ฐ๋ง์„ ์ฒ ์ €ํ•˜๊ฒŒ ์ˆ˜ํ–‰ํ•˜๊ณ ,

 

์‚ฌ์šฉ์ž ์ž…๋ ฅ๊ฐ’์— ๋Œ€ํ•ด ์ธ์ฝ”๋”ฉ์„ ํ•ด์ฃผ๋Š” ๋“ฑ์˜ ๋ณด์•ˆ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋˜ํ•œ,Prepared Statement์„ ์‚ฌ์šฉํ•˜์—ฌ SQL Injection ๊ณต๊ฒฉ์„ ๋ง‰์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

15. ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ๊ธฐ / ์“ฐ๊ธฐ / ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ๊ทธ๋ฃน์—๊ฒŒ๋Š” ์ฝ๊ธฐ / ์‹คํ–‰์„ ๋ถ€์—ฌํ•˜๊ณ  ๊ทธ ์ด์™ธ์—๋Š” ์‹คํ–‰ ๊ถŒํ•œ์„  a.txt์— ๋ถ€์—ฌํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ํ•œ์ค„๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค (8์ง„๋ฒ•์„ ์‚ฌ์šฉํ•˜์‹œ์˜ค)

 

๋”๋ณด๊ธฐ

chmod 751 a.txt

 

8์ง„์ˆ˜ ๊ถŒํ•œ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•  ๋•Œ, ๊ฐ ์ˆซ์ž๋Š” ๊ฐ๊ฐ User, Group, Others๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ

 

๊ฐ ์ˆซ์ž๋Š” read, write, execute ๊ถŒํ•œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

 

7์€ rwx (4+2+1)          ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ฝ๊ธฐ/์“ฐ๊ธฐ/์‹คํ–‰

 

5๋Š” r-x (4+0+1)           ๊ทธ๋ฃน์—๊ฒŒ๋Š” ์ฝ๊ธฐ/์‹คํ–‰

 

1์€ --x (0+0+1)           ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์‹คํ–‰ ๊ถŒํ•œ

 

 

16. UI ์„ค๊ณ„ ์›์น™์—์„œ ์ •ํ™•ํ•˜๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ์‚ฌ์šฉ์ž์˜ ๋ชฉํ‘œ๊ฐ€ ๋‹ฌ์„ฑ๋  ์ˆ˜ ์žˆ๋„๋ก ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋‹ค์Œ ๋นˆ์นธ์— ๋“ค์–ด๊ฐˆ ํŠน์ง•์€ ๋ฌด์—‡์ธ๊ฐ€?

์ง๊ด€์„ฑ - ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

ํ•™์Šต์„ฑ - ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ณ  ์ตํž ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์œ ์—ฐ์„ฑ - ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ตœ๋Œ€ํ•œ ์ˆ˜์šฉํ•˜๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค.

(      )  - ์‚ฌ์šฉ์ž์˜ ๋ชฉ์ ์„ ์ •ํ™•ํ•˜๊ฒŒ ๋‹ฌ์„ฑํ•˜์—ฌ์•ผ ํ•œ๋‹ค. 

 

๋”๋ณด๊ธฐ

์œ ํšจ์„ฑ

 

  1. ์ง๊ด€์„ฑ(Intuitiveness): ์‚ฌ์šฉ์ž๋Š” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • UI ์š”์†Œ๋“ค์ด ์ง๊ด€์ ์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ๋˜์–ด์•ผ ํ•œ๋‹ค.
  • ์ผ๊ด€์„ฑ ์žˆ๋Š” UI ์š”์†Œ๋“ค์€ ์‚ฌ์šฉ์ž์˜ ๋ถˆํ•„์š”ํ•œ ํ•™์Šต์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.
  1. ํ•™์Šต์„ฑ(Learnability): ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๊ณ  ์ตํž ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ์‰ฝ๊ฒŒ UI๋ฅผ ๋ฐฐ์šฐ๊ณ  ์ตํ˜€์„œ ์ตœ์†Œํ•œ์˜ ๋…ธ๋ ฅ์œผ๋กœ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์ƒˆ๋กœ์šด ์š”์†Œ๋“ค์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์‰ฌ์›Œ์•ผ ํ•œ๋‹ค.
  1. ์œ ์—ฐ์„ฑ(Flexibility): ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์ตœ๋Œ€ํ•œ ์ˆ˜์šฉํ•˜๋ฉฐ ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•œ๋‹ค.
  • ์‚ฌ์šฉ์ž๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ UI ์š”์†Œ๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ์œ ์—ฐ์„ฑ์€ ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ๋น ๋ฅด๊ฒŒ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค.
  1. ์œ ํšจ์„ฑ(Robustness): ์‚ฌ์šฉ์ž์˜ ๋ชฉ์ ์„ ์ •ํ™•ํ•˜๊ฒŒ ๋‹ฌ์„ฑํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
  • UI๋Š” ๋ชฉ์  ๋‹ฌ์„ฑ์„ ์œ„ํ•ด ์ •ํ™•ํ•˜๊ณ  ์™„๋ฒฝํ•˜๊ฒŒ ๋™์ž‘ํ•ด์•ผ ํ•œ๋‹ค.
  • UI ์š”์†Œ๋“ค์€ ๋ชจ๋“  ์ƒํ™ฉ์—์„œ ์˜ค๋ฅ˜ ์—†์ด ์ž‘๋™ํ•ด์•ผ ํ•œ๋‹ค.

 

 

17. ์ „ ์„ธ๊ณ„ ์˜คํ”ˆ๋œ ์ •๋ณด๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ๋Š” ๋ฐฉ์‹์œผ๋กœ link data์™€ open data์˜ ํ•ฉ์„ฑ์–ด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์“ฐ์‹œ์˜ค.

๋”๋ณด๊ธฐ

Linked Open Data (LOD)

 

 

Linked Open Data (LOD)๋Š” ์ „ ์„ธ๊ณ„์˜ ์˜คํ”ˆ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์„œ ์œ ๊ธฐ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋ฐ์ดํ„ฐ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

 

์ด๋ฅผ ์œ„ํ•ด RDF(Resource Description Framework) ํ˜•์‹์œผ๋กœ ์ •๋ณด๋ฅผ ํ‘œํ˜„ํ•˜๋ฉฐ,

 

LOD๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‹จ์ˆœํžˆ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์˜๋ฏธ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

 

LOD์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ๋งํฌ๋“œ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ๋…์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ฐ„ ์ƒํ˜ธ ์—ฐ๊ฒฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

LOD๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ƒํ˜ธ ์—ฐ๊ฒฐ๋˜์–ด ์ผ๊ด€๋œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ,

 

ํŠน์ • ์ฃผ์ œ์— ๋Œ€ํ•œ ์ข…ํ•ฉ์ ์ธ ์ •๋ณด๋ฅผ ๋”์šฑ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

์ด๋ฅผ ํ†ตํ•ด ๊ฒ€์ƒ‰ ์—”์ง„์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋“ฑ์—์„œ ์ƒํ˜ธ ์—ฐ๊ฒฐ์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋”์šฑ ํšจ๊ณผ์ ์ธ ์ •๋ณด ํƒ์ƒ‰์ด ๊ฐ€๋Šฅํ•ด์ง€๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

18. ๋‹ค์Œ์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ ˆ์ฐจ์ด๋‹ค. ์ ˆ์ฐจ์— ๋งž๋„๋ก ๋ณด๊ธฐ์—์„œ ์ฐพ์•„ ์ฑ„์šฐ์‹œ์˜ค.

[๋ณด๊ธฐ]

1. ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

2. ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

3. ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ > (  1.  ) > (  2. )  > (  3.  )

 

๋”๋ณด๊ธฐ

๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง >  ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง > ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

 

 

 ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•˜์—ฌ ์—…๋ฌด์™€ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ๋…์„ ์ถ”์ถœํ•˜๊ณ ,

 

์—…๋ฌด์™€ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•œ ๊ฐœ๋…์  ๋ชจ๋ธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

 

 

๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ๊ฐœ๋…์  ๋ชจ๋ธ์„ ๋ฐ”ํƒ•์œผ๋กœ ์—…๋ฌด ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐ˜์˜ํ•œ ๋…ผ๋ฆฌ์  ๋ชจ๋ธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

์—”ํ„ฐํ‹ฐ์™€ ์†์„ฑ, ๊ด€๊ณ„ ๋“ฑ์„ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ƒ์„ธํžˆ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง: ๋…ผ๋ฆฌ์  ๋ชจ๋ธ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ด๋ธ”๊ณผ ์ธ๋ฑ์Šค, ๋ทฐ ๋“ฑ์„ ์ •์˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋  ํ˜•ํƒœ๋ฅผ ์ •ํ™•ํžˆ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„: ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์„ค๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ด๋ธ”, ๋ทฐ, ์ธ๋ฑ์Šค ๋“ฑ์„ ์ƒ์„ฑํ•˜๊ณ ,

 

์ œ์•ฝ ์กฐ๊ฑด, ๊ธฐ๋ณธ๊ฐ’ ๋“ฑ์„ ์„ค์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

 

 

19. ๋‹ค์Œ์€ ์ž๋ฐ” ์ฝ”๋“œ์ด๋‹ค. ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์“ฐ์‹œ์˜ค.

class A{
	private int a;
    public A(int a){
    	this.a = a;
    }
    public void display(){
    	system.out.println("a=" + a);
    }
}

class B extends A {
	public B(int a){
    	super(a);
        super.display();
    }
}


public class good {
	public static void main(String[] args){
    	B obj = new B(10);
    }
}

 

๋”๋ณด๊ธฐ

a = 10 

 

 

B ํด๋ž˜์Šค๊ฐ€ A ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๊ณ  ์žˆ์œผ๋ฏ€๋กœ, B ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด A ๊ฐ์ฒด๋„ ํ•จ๊ป˜ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 

B ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด, super(a) ๋ฌธ์žฅ์ด ๋จผ์ € ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 

super(a)๋Š” A ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ํ˜ธ์ถœํ•˜๋ฉฐ, ์ด๋•Œ a ๋ณ€์ˆ˜์— 10์ด๋ผ๋Š” ๊ฐ’์ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

 

A ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” ์ „๋‹ฌ๋ฐ›์€ ๊ฐ’์„ a ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ทธ ๋‹ค์Œ์œผ๋กœ, super.display() ๋ฌธ์žฅ์ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์žฅ์€ A ํด๋ž˜์Šค์˜ display() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

A ํด๋ž˜์Šค์˜ display() ๋ฉ”์†Œ๋“œ์—์„œ๋Š” a ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ํ˜„์žฌ a ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์˜ ๊ฐ’์€ 10์ž…๋‹ˆ๋‹ค.

 

๊ทธ ๊ฒฐ๊ณผ, "a=10" ์ด๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

 

20. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋ฒ•์€ (     ) ๊ธฐ๋ฒ•์ด๋ผ๊ณ  ํ•˜๋ฉฐ, (      ) ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•œ ๋„๊ตฌ๋กœ๋Š” CVS, SVN, Git ๋“ฑ์ด ์žˆ๋‹ค. ๋นˆ์นธ์— ์•Œ๋งž์€ ์šฉ์–ด๋ฅผ ์“ฐ์‹œ์˜ค.

๋”๋ณด๊ธฐ

ํ˜•์ƒ๊ด€๋ฆฌ SCM (Software Configuration Management)

 

์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ฒ„์ „, ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ฐ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ด€๋ฆฌ

 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ”„๋กœ์ ํŠธ์—์„œ ์†Œ์Šค ์ฝ”๋“œ, ๋ฌธ์„œ, ๋นŒ๋“œ ๋ฐ ๋ฆด๋ฆฌ์Šค์™€ ๊ฐ™์€ ํ•ญ๋ชฉ๋“ค์˜ ๋ณ€ํ™”๋ฅผ ๊ด€๋ฆฌ

 

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜์˜ ํšจ์œจ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.