728x90
๋ฐ˜์‘ํ˜•

***  ์ผ๋ฐ˜ + ์‹ ์œ ํ˜•

์˜ค๋ผํด, sql server ์ฐจ์ด ๋ด๋‘๊ธฐ

 

oracle์—์„œ ๋นˆ๋ฌธ์ž์—ด์€ null๋กœ ์ €์žฅ / sql server์—์„œ๋Š” ๋นˆ๋ฌธ์ž์—ด ๊ทธ๋Œ€๋กœ ์ €์žฅ๋˜์–ด 

4๋ฒˆ์€ null์ด ์•„๋‹ˆ์ž๋‚˜... ๊ทธ๋ž˜์„œ ์กฐํšŒ๊ฐ€ ์•ˆ๋ฉ๋‹ˆ๋‹ค...

 

๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž ์šฐ์„ ์ˆœ์œ„ : NOT > AND > OR

 

null ์€ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ๊ณ„์‚ฐํ•˜๋ฉด

 

1. (20 + 0) / 2 = 10

2. (20 + null (x)) / 1  = 20

3. (20 + null (x)) / 1  = 20

 

NVL(๋Œ€์ƒ๋ฐ์ดํ„ฐ , NULL์ผ๋•Œ ๋ฐ์ดํ„ฐ)

๊ฐ’์ด null ์ธ ๊ฒฝ์šฐ, 2๋ฒˆ์งธ ์ง€์ •๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋Œ€์ƒ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

SELECT TOP(3) WITH TIES ํŒ€๋ช…, ์Šน๋ฆฌ๊ฑด์ˆ˜   // TOP(3) ๋งŒ ์ ๋Š”๋‹ค๋ฉด ๊ทธ๋ƒฅ 3๊ฐœ๋งŒ ์ถœ๋ ฅ
	FROM ํŒ€๋ณ„ ์„ฑ์ 
    ORDER BY ์Šน๋ฆฌ๊ฑด์ˆ˜ DESC;

 

=> 3๋ฒˆ์งธ ํ–‰๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง„ ์ถ”๊ฐ€ ํ–‰์ด ์žˆ๋‹ค๋ฉด ์ด ํ–‰๋“ค๋„ ํฌํ•จ(SQL Server์—์„œ ์‚ฌ์šฉ)

 

SELECT ํŒ€๋ช…. ์Šน๋ฆฌ๊ฑด์ˆ˜
	FROM ํŒ€๋ณ„์„ฑ์ 
    WHERE ROWNM <= 3
    ORDER BY ์Šน๋ฆฌ๊ฑด์ˆ˜ DESC;

 

=> 3๋ฒˆ์งธ ํ–‰๊ณผ ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง€ ์ถ”๊ฐ€ํ–‰์ด ์žˆ๋”๋ผ๋„ ํฌํ•จ x (Oracle์—์„œ ์‚ฌ์šฉ)

=> Oracle์—์„œ์„œ TOP(3) WITH TIES์™€ ์œ ์‚ฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด DENSE_RANK()์˜ ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

RANK()์™€ DENSE_RANK()์˜ ์ฐจ์ด....

 

EmployeeIDNameSalary

1 Alice 5000
2 Bob 4000
3 Carol 4000
4 Dave 3000
5 Eve 2000

RANK() ์‚ฌ์šฉ ์˜ˆ์‹œ

SELECT *
FROM (
    SELECT e.*, RANK() OVER (ORDER BY Salary DESC) AS rnk
    FROM Employees e
)
WHERE rnk <= 3;

 

EmployeeIDNameSalaryrnk

EmployeeID Name Salary rank
1 Alice 5000 1
2 Bob 4000 2
3 Carol 4000 2
4 Dave 3000 4

 

RANK() ํ•จ์ˆ˜๋Š” Salary๊ฐ€ ๊ฐ™์€ Bob๊ณผ Carol์—๊ฒŒ ๋™์ผํ•œ 2์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ๋‹ค์Œ ์ˆœ์œ„์ธ 3์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  4๋ฅผ Dave์—๊ฒŒ ๋ถ€์—ฌ

DENSE_RANK() ์‚ฌ์šฉ ์˜ˆ์‹œ

SELECT *
FROM (
    SELECT e.*, DENSE_RANK() OVER (ORDER BY Salary DESC) AS rnk
    FROM Employees e
)
WHERE rnk <= 3;

 

EmployeeIDNameSalaryrnk

1 Alice 5000 1
2 Bob 4000 2
3 Carol 4000 2
4 Dave 3000 3

DENSE_RANK() ํ•จ์ˆ˜๋Š” Salary๊ฐ€ ๊ฐ™์€ Bob๊ณผ Carol์—๊ฒŒ ๋™์ผํ•œ 2์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ๋‹ค์Œ ์ˆœ์œ„๋ฅผ 3์œผ๋กœ ๋ถ€์—ฌํ•˜์—ฌ ์—ฐ์†์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

 

  • RANK(): ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰๋“ค์ด ์žˆ์œผ๋ฉด ์ˆœ์œ„์— ๊ณต๋ฐฑ์ด ์ƒ๊น๋‹ˆ๋‹ค.
  • DENSE_RANK(): ๋™์ผํ•œ ๊ฐ’์„ ๊ฐ€์ง„ ํ–‰๋“ค์ด ์žˆ๋”๋ผ๋„ ์ˆœ์œ„์— ๊ณต๋ฐฑ์ด ์ƒ๊ธฐ์ง€ ์•Š๊ณ  ์—ฐ์†์ ์œผ๋กœ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

 

๋‹จ, auto commit์€ false๋กœ ์„ค์ • ๋˜์–ด ์žˆ๋‹ค๋Š” ๋ง์€ sql server๋ผ๋Š” ๋ง..

oracle์€ ์ˆ˜์ •ํ›„์— createํ•˜๋ฉด ์ž๋™์œผ๋กœ ์ €์žฅ๋œ๋‹ค

    

ํ—ท๊ฐˆ๋ฆฌ๊ธฐ ์‰ฌ์šด ๋ฌธ์ œ...

ROWNUM ์„ ์ •๋ ฌ ์ „์— ์“ฐ๋ฉด ์•„๋ฌด ์˜๋ฏธ ์—†๋‹ค....

์ •๋‹ต์€ 3๋ฒˆ

 

' \d+', 'xxx', 1, 2 => ๋ฌธ์ž๋ฅผ xxx๋กœ ๋ฐ”๊พธ๋Š”๋ฐ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ 2๋ฒˆ์งธ ์œ„์น˜๊บผ๋ฅผ REPLACE ๋ฐ”๊ฟ”๋ผ

 

 

*** ๋…ธ๋žญ์ด ๋ชจ๋ฅด๋Š”๊ฑฐ

 

TCL :  ๋…ผ๋ฆฌ์ ์ธ ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋ฌถ์–ด DML์— ์˜ํ•ด ์กฐ์ž‘๋œ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์—… ๋‹จ์œ„(Transaction) ๋ณ„๋กœ ์ œ์–ดํ•˜๋Š” ๋ช…๋ น์–ด์ธ Commit, Rollback, Savepoint ๋“ฑ์ด ์—ฌ๊ธฐ์— ํ•ด๋‹นํ•˜๋ฉฐ, ์ผ๋ถ€์—์„œ๋Š” DCL๋กœ ๋ถ„๋ฅ˜ํ•˜๊ธฐ๋„ ํ•œ๋‹ค

 

UNIQUE๋Š” NULL ์ž…๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค!!! PK๋Š” ๋ถˆ๊ฐ€๋Šฅํ•จ ใ…‹ใ…‹ใ…‹

 

 

****  ๋…ธ๋žญ์ด ์ •๋ฆฌ

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

1. ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’๊ณ  ์—…๋ฌด์ค‘์‹ฌ์ ์ด๊ณ  ํฌ๊ด„์ ์ธ ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง ์ง„ํ–‰, ์ „์‚ฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง, EA ์ˆ˜๋ฆฝ์‹œ ๋งŽ์ด ์ด์šฉ

2. ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” ์—…๋ฌด์— ๋Œ€ํ•ด Key ์†์„ฑ, ๊ด€๊ณ„ ๋“ฑ์„ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„, ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์Œ

3. ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ด์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ฑ๋Šฅ, ์ €์žฅ ๋“ฑ ๋ฌผ๋ฆฌ์ ์ธ ์„ฑ๊ฒฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์„ค๊ณ„ 

 

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ํ•˜๋Š” ์ฃผ์š”ํ•œ ์ด์œ 

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

2. ๋ถ„์„๋œ ๋ชจ๋ธ์„ ๊ฐ€์ง€๊ณ  ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ฐœ๋ฐœ ๋ฐ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ

 

=> ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ด๋ผ๋Š” ๊ฒƒ์€ ๋‹จ์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋งŒ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ์“ฐ์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง ์ž์ฒด๋กœ์„œ ์—…๋ฌด๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ๋ถ„์„ํ•˜๋Š” ๋ถ€๋ถ„์—์„œ๋„ ๋งค์šฐ ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์œ ์˜์  : ์ค‘๋ณต, ๋น„์œ ์—ฐ์„ฑ, ๋น„์ผ๊ด€์„ฑ

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ 3๋‹จ๊ณ„

- ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ : ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ถ€๋ถ„์  ๋ทฐ๋ฅผ ์ •์˜

- ๊ฐœ๋… ์Šคํ‚ค๋งˆ : ํ†ตํ•ฉ ๊ด€์ ์˜ ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ์œผ๋กœ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์€ ํ†ตํ•ฉ๊ด€์ ์˜ ๋ทฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฐœ๋… ์Šคํ‚ค๋งˆ๋ฅผ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๊ณผ์ •์ž„.

- ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ : ๋ฐ์ดํ„ฐ์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ ๊ตฌ์กฐ๋ฅผ ์ •์˜

 

ERD ์ž‘์„ฑ ์ˆœ์„œ

1. ์—”ํ„ฐํ‹ฐ๋ฅผ ๊ทธ๋ฆฐ๋‹ค

2. ์—”ํ„ฐํ‹ฐ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋ฐฐ์น˜ํ•œ๋‹ค

3. ์—”ํ„ฐํ‹ฐ ๊ฐ„ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•œ๋‹ค

4. ๊ด€๊ณ„๋ช…์„ ๊ธฐ์ˆ ํ•œ๋‹ค

5, ๊ด€๊ณ„์˜ ์ฐธ์—ฌ๋„๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค

6. ๊ด€๊ณ„์˜ ํ•„์ˆ˜์—ฌ๋ถ€๋ฅผ ๊ธฐ์ˆ ํ•œ๋‹ค

 

์—”ํ„ฐํ‹ฐ์˜ ํŠน์ง•

1.๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ์—…๋ฌด์—์„œ ํ•„์š”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์—ฌ์•ผ ํ•œ๋‹ค

2. ์œ ์ผํ•œ ์‹๋ณ„์ž์— ์˜ํ•ด ์‹๋ณ„์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค

3. ์˜์†์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” (๋‘๊ฐœ ์ด์ƒ์˜)์ธ์Šคํ„ด์Šค์˜ ์ง‘ํ•ฉ์ด์–ด์•ผ ํ•œ๋‹ค

4. ์—”ํ„ฐํ‹ฐ๋Š” ์—…๋ฌด ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์ด์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค

5. ์—”ํ„ฐํ‹ฐ๋Š” ๋ฐ˜๋“œ์‹œ ์†์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค

6. ์—”ํ„ฐํ‹ฐ๋Š” ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ์™€ ์ตœ์†Œ ํ•œ ๊ฐœ ์ด์ƒ์˜ ๊ด€๊ณ„์•ผ ์žˆ์–ด์•ผ ํ•œ๋‹ค 

 

๊ธฐ๋ณธ์—”ํ„ฐํ‹ฐ(ํ‚ค์—”ํ„ฐํ‹ฐ) 

- ์›๋ž˜ ์กด์žฌํ•˜๋Š” ์ •๋ณด๋กœ์„œ ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ์™€์˜ ๊ด€๊ณ„์— ์˜ํ•ด ์ƒ์„ฑ๋˜์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ƒ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ž์‹ ์€ ํƒ€ ์—”ํ„ฐํ‹ฐ์˜ ๋ถ€๋ชจ์˜ ์—ญํ• ์„ ํ•˜๊ฒŒ ๋œ๋‹ค

- ๋‹ค๋ฅธ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ์ฃผ์‹๋ณ„์ž๋ฅผ ์ƒ์†๋ฐ›์ง€ ์•Š๊ณ  ์ž์‹ ์˜ ๊ณ ์œ ํ•œ ์ฃผ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค

- ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์›, ๋ถ€์„œ, ๊ณ ๊ฐ...

-  vs) ์ค‘์‹ฌ์—”ํ„ฐํ‹ฐ(๋ฉ”์ธ์—”ํ„ฐํ‹ฐ) : ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์—์„œ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์—”ํ„ฐํ‹ฐ์™€ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ์ค‘์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•˜๋Š” ์—”ํ„ฐํ‹ฐ๋กœ ์—ฌ๋Ÿฌ ์—”ํ„ฐํ‹ฐ์™€์˜ ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐํ•œ๋‹ค

 

์†์„ฑ(Attribute) 

: ์—…๋ฌด์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์ธ์Šคํ„ด์Šค์—์„œ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์˜๋ฏธ์ƒ ๋” ์ด์ƒ ๋ถ„๋ฆฌ๋˜์ง€ ์•Š๋Š” ์ตœ์†Œ์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„

=> ์—…๋ฌด์ƒ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ์˜ ์˜๋ฏธ ๋‹จ์œ„(์—”ํ„ฐํ‹ฐ์˜ ํ•œ ๋ถ„์•ผ)

 

์†์„ฑ์˜ ํŠน์„ฑ์— ๋”ฐ๋ฅธ ๋ถ„๋ฅ˜

- ๊ธฐ๋ณธ์†์„ฑ :  ์—”ํ„ฐํ‹ฐ๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ('๊ณ ๊ฐ' ์—”ํ„ฐํ‹ฐ์˜  '์ด๋ฆ„', '์ฃผ์†Œ', '์ „ํ™”๋ฒˆํ˜ธ')

- ์„ค๊ณ„ ์†์„ฑ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€๋œ ์†์„ฑ('์ฃผ๋ฌธ' ์—”ํ„ฐํ‹ฐ์˜ '์ฃผ๋ฌธ๋ฒˆํ˜ธ', '๊ณ ๊ฐID')

- ํŒŒ์ƒ ์†์„ฑ : ๋‹ค๋ฅธ ์†์„ฑ ๊ฐ’์—์„œ ๊ณ„์‚ฐ๋˜๊ฑฐ๋‚˜ ์œ ๋„๋˜๋Š” ์†์„ฑ, ์กฐํšŒํ•  ๋•Œ ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๋‚ด๋„๋ก ํ•จ('์ฃผ๋ฌธ' ์—”ํ„ฐํ‹ฐ์˜ ์ด๊ธˆ์•ก)

 

 ์†์„ฑ์˜ ๋„๋ฉ”์ธ

:  ๊ฐ ์†์„ฑ์€ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„๊ฐ€ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ์†์„ฑ์˜ ๋„๋ฉ”์ธ์ด๋ผํ•˜๋ฉฐ, ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ์†์„ฑ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐํƒ€์ž…๊ณผ ํฌ๊ธฐ ๊ทธ๋ฆฌ๊ณ  ์ œ์•ฝ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ

 

๋‘๊ฐœ์˜ ์—”ํ„ฐํ‹ฐ ์‚ฌ์ด์— ์ฒดํฌํ•ด์•ผ ํ•  ์‚ฌํ•ญ

1. ๋‘ ๊ฐœ์˜  ์—”ํ„ฐํ‹ฐ ์‚ฌ์ด์— ๊ด€์‹ฌ์žˆ๋Š” ์—ฐ๊ด€๊ทœ์น™์ด ์กด์žฌํ•˜๋Š”๊ฐ€?

2. ๋‘ ๊ฐœ์œ ์—”ํ„ฐํ‹ฐ ์‚ฌ์ด์— ์ •๋ณด์˜ ์กฐํ•ฉ์ด ๋ฐœ์ƒํ•˜๋Š”๊ฐ€?

3. ์—…๋ฌด๊ธฐ์ˆ ์„œ, ์žฅํ‘œ์— ๊ด€๊ณ„์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ทœ์น™์ด ์„œ์ˆ ๋˜์–ด ์žˆ๋Š”๊ฐ€?

4. ์—…๋ฌด๊ธฐ์ˆ ์„œ, ์žฅํ‘œ์— ๊ด€๊ณ„์—ฐ๊ฒฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋™์‚ฌ๊ฐ€ ์žˆ๋Š”๊ฐ€?

 

์ฃผ์‹๋ณ„์ž๋ฅผ ์ €์žฅํ•  ๋•Œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์‚ฌํ•ญ

- ์ฃผ์‹๋ณ„์ž์— ์˜ํ•ด ์—”ํ„ฐํ‹ฐ๋‚ด์— ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์ด ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„๋˜์–ด์•ผ ํ•œ๋‹ค(์œ ์ผ์„ฑ)

- ์ฃผ์‹๋ณ„์ž๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์˜ ์ˆ˜๋Š” ์œ ์ผ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์ตœ์†Œ์˜ ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค(์ตœ์†Œ์„ฑ)

- ์ง€์ •๋œ ์ฃผ์‹๋ณ„์ž์˜ ๊ฐ’์€ ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์–ด์•ผ ํ•œ๋‹ค(๋ถˆ๋ณ€์„ฑ)

- ์ฃผ์‹๋ณ„์ž๊ฐ€ ์ง€์ •์ด ๋˜๋ฉด ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ๋“ค์–ด์™€์•ผ ํ•œ๋‹ค(์กด์žฌ์„ฑ)                                                                                                                                                                                                                                                                              

์‹๋ณ„์ž์˜ ์ข…๋ฅ˜

- ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ๋Œ€ํ‘œ์„ฑ์„ ๊ฐ€์ง€๋Š”๊ฐ€์— ๋”ฐ๋ผ ์ฃผ์‹๋ณ„์ž์™€ ๋ณด์กฐ์‹๋ณ„์ž๋กœ ๊ตฌ๋ถ„

- ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ์Šค์Šค๋กœ ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‚ด๋ถ€์‹๋ณ„์ž์™€ ์™ธ๋ถ€์‹๋ณ„์ž๋กœ ๊ตฌ๋ถ„

- ๋‹จ์ผ ์†์„ฑ์œผ๋กœ ์‹๋ณ„์ด ๋˜๋Š”๊ฐ€์— ๋”ฐ๋ผ ๋‹จ์ผ์‹๋ณ„์ž์™€ ๋ณตํ•ฉ ์‹๋ณ„์ž๋กœ ๊ตฌ๋ถ„

- ์›๋ž˜ ์—…๋ฌด์ ์œผ๋กœ ์˜๋ฏธ๊ฐ€ ์žˆ๋˜ ์‹๋ณ„์ž ์†์„ฑ์„ ๋Œ€์ฒดํ•˜์—ฌ ์ผ๋ จ๋ฒˆํ˜ธ์™€ ๊ฐ™์ด ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“  ์‹๋ณ„์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๋ณธ์งˆ์‹๋ณ„์ž์™€ ์ธ์กฐ์‹๋ณ„์ž๋กœ ๊ตฌ๋ถ„

 

์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ˆ˜ํ–‰ ์ ˆ์ฐจ์— ๋Œ€ํ•œ ์„ค๋ช…..

1. ๋ฐ์ดํ„ฐ๋ชจ๋ธ๋ง์„ ํ•  ๋•Œ ์ •๊ทœํ™”๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์ˆ˜ํ–‰

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ๋Ÿ‰์‚ฐ์ •์„ ์ˆ˜ํ–‰

3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐœ์ƒ๋˜๋Š” ํŠธ๋žœ์žญ์…˜์˜ ์œ ํ˜•์„ ํŒŒ์•…

4. ์šฉ๋Ÿ‰๊ณผ ํŠธ๋žœ์žญ์…˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰

5. ์ด๋ ฅ๋ชจ๋ธ์˜ ์กฐ์ •, PK/FK ์กฐ์ •, ์Šˆํผ ํƒ€์ž…/์„œ๋ธŒํƒ€์ž… ์กฐ์ • ๋“ฑ์„ ์ˆ˜ํ–‰

6. ์„ฑ๋Šฅ๊ด€์ ์—์„œ ๋ฐ์ดํ„ฐ๋ชจ๋ธ์„ ๊ฒ€์ฆ                                                                                                                                         

 

 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

2023 ๊ธฐ์ถœ..

 

JavaScript ๋ฅผ ์‚ฌ์šฉํ•œ ๋น„๋™๊ธฐ ํ†ต์‹ ๊ธฐ์ˆ ๋กœ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์— XML๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ธฐ์ˆ ์ด๋‹ค. ์ „์ฒด ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜์ง€ ์•Š๊ณ ๋„ ํŽ˜์ด์ง€์˜ ์ผ๋ถ€๋งŒ์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ์–ด, ๋ฉ”๋‰ด ๋“ฑ ํ™”๋ฉด์ƒ์˜ ๊ฐ์ฒด๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์›€์ง์ด๊ณ  ๋‹คํˆด ์ˆ˜ ์žˆ๋‹ค. ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์˜ ์•กํ‹ฐ๋ธŒX ๋‚˜ ํ”Œ๋ž˜์‹œ ๋“ฑ์— ๋น„ํ•ด ๊ฐ€๋ณ๊ณ  ์†๋„๊ฐ€ ๋นจ๋ผ ์ฐจ์„ธ๋Œ€ ์›น ๊ธฐ์ˆ ๋กœ ๊ฐ๊ด‘๋ฐ›๊ณ  ์žˆ๋‹ค.

:AJAX(Asynchronmous JavaScript and XML, ๋น„๋™๊ธฐ์‹ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ XML)

 

 

 

์‹œ์Šค์ฝ”์˜ L2F์™€ PPTP ์„ ์กฐํ•ฉํ•˜์—ฌ ๋งŒ๋“  VPN์ด๋‹ค. ์ž์ฒด์ ์œผ๋กœ ์•”ํ˜ธํ™” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต IPsec๊ณผ ๊ฐ™์€ ๋ณด์•ˆ์šฉ ํ”„๋กœํ† ์ฝœ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ PPTP ๋ฐฉ์‹์„ ๋”ฐ๋ฅด๊ธฐ ๋•Œ๋ฌธ์—, ์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ํ†ต์‹  ๋ฐฉ์‹์€ ์œ ์‚ฌํ•˜๋‚˜ UDP 500๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ํ†ต์‹ ์„ ํ•œ๋‹ค๋Š” ์ ์ด PPTP์™€ ์กฐ๊ธˆ ๋‹ค๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ NAT ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ ๋ฐฉํ™”๋ฒฝ์— ์‰ฝ๊ฒŒ ์ฐจ๋‹จ๋  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋†’์€ ๋ณด์•ˆ์„ฑ๊ณผ ์„ค์น˜ ๋ฐ’ ์„ค์ •์ด ๊ฐ„๋‹จํ•˜๊ณ  ๋น ๋ฅธ ์†๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋‹ค,

- ๋ฐ์ดํ„ฐ๋งํฌ ๊ณ„์ธต์—์„œ ๊ตฌํ˜„๋˜๋Š” ํ„ฐ๋„๋ง(๋‘ ๋…ธ๋“œ ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๊ฐ„ ๊ฐ€์ƒ์˜ ๋งํฌ๋ฅผ ํ˜•์„ฑํ•˜๋Š” ๊ธฐ๋ฒ•) ๊ธฐ์ˆ 

: L2TP

 

 

 

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ ์—ฐ๊ฒฐ ๊ณผ์ •์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋กœํ† ์ฝœ

: SSH(Secure Shell, ์‹œํ์–ด ์‰˜)

 

 

 

ํฌํŠธ : ์ปดํ“จํ„ฐ ๊ฐ„ ์ƒํ˜ธ ํ†ต์‹ ์„ ์œ„ํ•ด ํ”„๋กœํ† ์ฝœ์—์„œ ์ด์šฉํ•˜๋Š” ๊ฐ€์ƒ์˜ ์—ฐ๊ฒฐ๋‹จ

- ์ปดํ“จํ„ฐ๋Š” ๋™์‹œ์— ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ  ๋–„๋ฌธ์—  IP์ฃผ์†Œ๋งŒ์œผ๋กœ๋Š” ํŠน์ง• ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ

ํฌํŠธ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ์„œ๋น„์Šค์— ํ• ๋‹น๋  ์ˆ˜ ์žˆ๊ณ , ์›ํ•˜๋Š” ์„œ๋น„์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ž˜ ์•Œ๋ ค์ง„ ํฌํŠธ

ํฌํŠธ ์„ค๋ช… ํฌํŠธ ์„ค๋ช…
20 FTP - ๋ฐ์ดํ„ฐ ํฌํŠธ 21 FTP - ์ œ์–ด ํฌํŠธ
22 SSH - ์›๊ฒฉ ์ ‘์† ๋ณด์•ˆ 23 TELNET - ์›๊ฒฉ ์ ‘์†
25 SMTP - ์ด๋ฉ”์ผ ์ „์†ก 80 HTTP - ์›น ํŽ˜์ด์ง€ ์ „์†ก
110 POP3 - ์ด๋ฉ”์ผ ์ˆ˜์‹  443 HTTPS - ์•”ํ˜ธํ™” ์ „์†ก

 

 

 

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

- ์ปดํ“จํ„ฐ ๋ฐ”์ด๋Ÿฌ์Šค๋‚˜ ์›œ๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ํŠธ๋กœ์ด ๋ชฉ๋งˆ๋Š” ๋ณดํ†ต ๋‹ค๋ฅธ ํŒŒ์ผ์— ์‚ฝ์ž…๋˜๊ฑฐ๋‚˜ ์Šค์Šค๋กœ ์ „ํŒŒ๋˜์ง€ ์•Š๋Š”๋‹ค.

: ํŠธ๋กœ์ด ๋ชฉ๋งˆ

 

 

 

์Šค์Šค๋กœ๋ฅผ ๋ณต์ œํ•˜์—ฌ ํŒŒ์ผ์„ ์†์ƒ์‹œํ‚ค๋Š” ์•…์„ฑ ํ”„๋กœ๊ทธ๋žจ

- ๋‹ค๋ฅธ ์‹คํ–‰ ํ”„๋กœ๊ทธ๋žจ์— ๊ธฐ์ƒํ•˜์—ฌ ์‹คํ–‰

- CD,. USB ๋“œ๋ผ์ด๋ฒ„ ๋“ฑ์„ ํ†ตํ•ด ์ „ํŒŒ => ์Šค์Šค๋กœ ์ „ํŒŒ ๋ถˆ๊ฐ€๋Šฅ

: ๋ฐ”์ด๋Ÿฌ์Šค

 

 

 

์Šค์Šค๋กœ๋ฅผ ๋ณต์ œํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์†์ƒ์‹œํ‚ค๋Š” ์•…์„ฑ ํ”„๋กœ๊ทธ๋žจ

- ๋…์ž์ ์œผ๋กœ ์‹คํ–‰๋˜์–ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ํ•„์š”ํ•˜์ง€ ์•Š์Œ

- ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ์„ ์Šค์Šค๋กœ ์ „ํŒŒ

: ์›œ

 

 

 

TCP/IP์—์„œ ์‹ ๋ขฐ์„ฑ ์—†๋Š” IP๋ฅผ ๋Œ€์‹ ํ•˜์—ฌ ์†ก์‹  ์ธก์œผ๋กœ ๋„คํŠธ์›Œํฌ์˜ IP ์ƒํƒœ ๋ฐ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ

- ์„œ๋ฒ„์™€ ๊ฒŒ์ดํŠธ์›จ์ด ์‚ฌ์ด์—์„œ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ์–ดํ•˜๊ณ  ์•Œ๋ ค์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ

: ICMP 

 

 

 

ํŠน์ • ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๊ฑฐ๋‚˜ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋””์ž์ธ ํŒจํ„ด์œผ๋กœ, ๊ฐ์ฒด์˜ ๋Œ€๋ฆฌ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์›๋ž˜ ๊ฐ์ฒด์˜ ์ž‘์—…์„ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ฆ‰, ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹น ๊ฐ์ฒด์— ๋Œ€์‘ํ•˜๋Š” ์ผ์ข…์˜ ๋Œ€๋ฆฌ์ž ์—ญํ• ์„ ํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด์„œ ๋Œ€์ƒ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง์ ‘ ์ฐธ์กฐํ•˜๋ ค๋˜ ๊ฐ์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์กด์žฌํ•˜์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ์ ์ธ ์ •๋ณด ์ฐธ์กฐ๋‚˜ ์‹ค์ œ ์‚ฌ์šฉ ์‹œ์ ๊นŒ์ง€ ์ƒ์„ฑ ์‹œ์ ์„ ๋ฏธ๋ฃจ๋Š” ๋“ฑ ํ–‰์œ„๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค

: Proxy

 

 

์ƒ์„ฑ ๋‹จ๊ณ„๋ฅผ ์บก์Šํ™”ํ•˜์—ฌ ๊ตฌ์ถ• ๊ณต์ ์„ ๋™์ผํ•˜๊ฒŒ ์ด์šฉํ•˜๋„๋ก ํ•˜๋Š” ํŒจํ„ด

: Builder(๋นŒ๋”)

 

 

 

๊ตฌํ˜„๋ถ€์—์„œ ์ถ”์ƒ์ธต์„ ๋ถ„๋ฆฌํ•˜์—ฌ  ๊ฐ์ž ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒํ•˜์—ฌ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜ ํŒจํ„ด

:Bridge(๋ธŒ๋ฆฟ์ง€)

 

 

ํ•œ ๊ฐ์ฒด์˜ ์ƒํƒœ ๋ณ€ํ™”๊ฐ€ ์ผ์–ด๋‚ฌ์„ ๋•Œ ๊ทธ ๊ฐ์ฒด์— ์˜์กด(์ƒ์†)ํ•˜๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค์—๊ฒŒ ์•Œ๋ฆฌ๊ณ , ์ž๋™์œผ๋กœ ๋‚ด์šฉ์ด ๊ฐฑ์‹ ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ผ๋Œ€๋‹ค(One-To-Many)์˜์กด์„ฑ์„ ๊ฐ€์ง€๋Š” ํŒจํ„ด

:Observer(์˜ต์ €๋ฒ„)

 

 

*** db ์š”์†Œ๋“ค

๋ฆด๋ ˆ์ด์…˜ ์ธ์Šคํ„ด์Šค :  ํŠœํ”Œ๋“ค์˜ ์ง‘ํ•ฉ(๋ฆด๋ ˆ์ด์…˜ ์‹ค์ œ๊ฐ’)

๋„๋ฉ”์ธ : ํ•œ ์†์„ฑ์— ๋‚˜ํƒ€๋‚  ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค์˜ ๋ฒ”์œ„

ํŠœํ”Œํ–‰(Row)

์ฐจ์ˆ˜ : ์†์„ฑ๋“ค์˜ ์ˆ˜

๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ : ์†์„ฑ ์ด๋ฆ„๋“ค(๋ฆด๋ ˆ์ด์…˜ ํ‹€, ๊ตฌ์กฐ)

์นด๋””๋„๋ฆฌํ‹ฐ : ํŠœํ”Œ๋“ค์˜ ์ˆ˜

 

 

 

*** ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ

์™ธ๋ถ€ ์Šคํ‚ค๋งˆ : ๊ฐœ๋… ์‚ฌ์šฉ์ž๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ ‘๊ทผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋ฅผ ์ •์˜

๊ฐœ๋… ์Šคํ‚ค๋งˆ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ „์ฒด์ ์ธ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ, ๊ฐœ์ฒด๊ฐ„์˜ ๊ด€๊ณ„์™€ ์ œ์•ฝ์กฐ๊ฑด์„ ๋‚˜ํƒ€๋ƒ„

๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฌผ๋ฆฌ์  ๊ตฌ์กฐ๋กœ, ๋ฐ์ดํ„ฐ์˜ ์‹ค์ œ ์ €์žฅ ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ 

 

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์ˆœ์„œ(์š”๊ดด๋ˆˆ๋ฌผ)

์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ -> ๊ฐœ๋…์  ์„ค๊ณ„ -> ๋…ผ๋ฆฌ์  ์„ค๊ณ„ -> ๋ฌผ๋ฆฌ์  ์„ค๊ณ„ -> ๊ตฌํ˜„

 

 

 

DROP VIEW ๊ณ ๊ฐ CASCADE

: [๊ณ ๊ฐ] ๋ทฐ๋ฅผ ์‚ญ์ œํ•˜๊ณ , [๊ณ ๊ฐ] ๋ทฐ์™€ ์˜์กด์„ฑ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๊ฐ์ฒด๋“ค์„ ๋ชจ๋‘ ์‚ญ์ œ\

 

 

 

๋Œ€์นญํ‚ค(=๊ฐœ์ธํ‚ค, Private) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์•”ํ˜ธํ™” ํ‚ค = ๋ณตํ˜ธํ™” ํ‚ค

- ์ข…๋ฅ˜ : LFSR, RC4, SEED. AES, DES. ARIA,

 

 

 

๋น„๋Œ€์นญํ‚ค(=๊ณต๊ฐœํ‚ค, Public) ์•Œ๊ณ ๋ฆฌ์ฆ˜ : ์•”ํ˜ธํ™” ํ‚ค <> ๋ณตํ˜ธํ™” ํ‚ค

- ์ข…ํœด : RSA, ECC 

 

 

 

**์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€

๊ตฌ๋ฌธ ์ปค๋ฒ„๋ฆฌ์ง€ : ๋ชจ๋“  ๊ตฌ๋ฌธ์ด ํ•œ ๋ฒˆ ์ด์ƒ ์ˆ˜ํ–‰๋˜๋„๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ค๊ณ„

๋‹ค์ค‘ ์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€ : ๊ฒฐ์ • ํฌ์ธํŠธ ๋‚ด์— ์žˆ๋Š” ๋ชจ๋“  ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์˜ ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ๋…ผ๋ฆฌ์ ์ธ ์กฐํ•ฉ์„ ๊ณ ๋ คํ•˜์—ฌ 100%์ปค๋ฒ„๋ฆฌ์ง€ ๋ณด์žฅ

๋ณ€ํ˜• ์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ : ์กฐ๊ฑด๊ณผ ๊ฒฐ์ •์„ ๋ณตํ•ฉ์ ์œผ๋กœ ๊ณ ๋ คํ•œ ์ธก์ • ๋ฐฉ๋ฒ•์ด๋ฉฐ, ๊ฒฐ์ • ํฌ์ธํŠธ ๋‚ด์˜ ๋‹ค๋ฅธ ๊ฐœ๋ณ„์ ์ธ ์กฐ๊ฑด์‹ ๊ฒฐ๊ณผ์— ์ƒ๊ด€์—†์ด ๋…๋ฆฝ์ ์œผ๋กœ ์ „์ฒด ์กฐ๊ฑด์‹์˜ ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ฃผ๋Š” ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€

๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ : ๊ฒฐ์ • ํฌ์ธํŠธ ๋‚ด์˜ ๋ชจ๋“  ๋ถ„๊ธฐ๋ฌธ(์กฐ๊ฑด๋ฌธ)์ด ์ ์–ด๋„ ํ•œ ๋ฒˆ ์ด์ƒ ์ˆ˜ํ–‰๋˜๋„๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ค๊ณ„

์กฐ๊ฑด/๊ฒฐ์ • ์ปค๋ฒ„๋ฆฌ์ง€ : ๋ชจ๋“  ์กฐ๊ฑด๋ฌธ๊ณผ ๊ฐ ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์ด ์ ์–ด๋„ ํ•œ ๋ฒˆ ์ด์ƒ ์ˆ˜ํ–‰๋˜๋„๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ค๊ณ„

๊ฒฝ๋กœ ์ปค๋ฒ„๋ฆฌ์ง€ : ๋ชจ๋“  ๋…ผ๋ฆฌ์ ์ธ ๊ฒฝ๋กœ๊ฐ€ ํ•œ ๋ฒˆ ์ด์ƒ ์ˆ˜ํ–‰๋˜๋„๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ค๊ณ„

์กฐ๊ฑด ์ปค๋ฒ„๋ฆฌ์ง€ : ๊ฒฐ์ • ํฌ์ธํŠธ ๋‚ด์˜ ๋ชจ๋“  ๊ฐœ๋ณ„ ์กฐ๊ฑด์‹์ด ์ ์–ด๋„ ํ•œ ๋ฒˆ ์ด์ƒ ์ˆ˜ํ–‰๋˜๋„๋ก ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์„ค๊ณ„

 

 

 

 

 

 

 

Tampering(๋ถ€์ • ์กฐ์ž‘)๊ฒ€์ถœ ์‹œ์Šคํ…œ์„ ํ†ตํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด์— ์ ์šฉ๋œ ์œ„,๋ณ€์กฐ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์˜ค์ž‘๋™ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ 

: ํ…œํผ ํ”„๋ฃจํ•‘(Tamper Proofing)

 

 

 

์ธํ„ฐ๋„ท ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ์ž ์ธ์ฆ์— ์‚ฌ์šฉ๋˜๋Š” ๊ณต๊ฐœ API(OpenAPI)๋กœ ๊ตฌํ˜„๋œ ํ‘œ์ค€ ์ธ์ฆ ๋ฐฉ๋ฒ•

- ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋„ค์ด๋ฒ„, ์นด์นด์˜คํ†ก, ๊ตฌ๊ธ€ ๋“ฑ์˜ ์ €์žฅ๋œ ์‚ฌ์šฉ์ž ์ •๋ณด์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

- ex) ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— Google๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ์—ฐ๋™๋œ ๊ณ„์ •์˜ Google Calendar  ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค

: OAuth(Open Authorization, ๊ณต๊ฐœ ์ธ์ฆ)

 

 

 

#include <stdio.h>
int main() {
	char*p = "KOREA";
    printf("%s\n", p);				// KOREA
    printf("%s\n", p+1);			// OREA
    printf("%c\n", *p);				// K
    printf("%c\n", *(p+3));			// E
    printf("%c\n", *p+4);			// O (์•„์Šคํ‚ค ์ฝ”๋“œ ๊ทœ์น™์— ๋”ฐ๋ผ *p(K = 75) + 4 = 79๋กœ ๊ณ„์‚ฐ)
}

 

 

 

 

๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž

: ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž(->)

 

 

 

 

** .super

: ์ƒ์œ„ ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์˜ˆ์•ฝ์–ด

** this 

: ๊ฐ์ฒด ์ž๊ธฐ์ž์‹ ์„ ์˜๋ฏธํ•˜๋Š” ์˜ˆ์•ฝ์–ด

 

 

A b = new B();
A : ์ƒ์œ„ ํด๋ž˜์Šค
B : ํ•˜์œ„ ํด๋ž˜์Šค

** ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding)
:ํ•˜์œ„(์ž์‹) ํด๋ž˜์Šค์—์„œ ์ƒ์œ„(๋ถ€๋ชจ) ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์žฌ์ •์˜ ํ•˜๋Š” ๊ณผ์ •
- ํ•˜์œ„ ํด๋ž˜์Šค์˜ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ฉ”์†Œ๋“œ๋Š” ์ƒ์œ„ ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค

 

 

 

                                                 

ATM(Asynchronous Transger Mode, ๋น„๋™๊ธฐ ์ „์†ก ๋ชจ๋“œ)

- ๊ธฐ์กด ํŒจํ‚ท๊ตํ™˜๋ฐฉ์‹๊ณผ ์œ ์‚ฌํ•˜๋‚˜, ํŒจํ‚ท ํฌ๊ธฐ๋ฅผ ์ผ์ •(์ƒCell)ํ•˜๊ฒŒ ํ•˜๊ณ  ์—๋Ÿฌ ๋ณต๊ตฌ ๋“ฑ์„ ๊ฐ„๋žตํ™”์‹œํ‚ด

- ATM ์ƒ๋“ค์„ ๋ชจ์•„์„œ -> ๋น„๋™๊ธฐ ์‹œ๋ถ„ํ•  ๋‹ค์ค‘ํ™”( ATDM)์ „์†กํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„ํผ์— ์šฐ์„  ์ €์žฅ  -> ์šฐ์„ ์ˆœ์œ„์— ๋”ฐ๋ผ ๋‹ค์ค‘ํ™” ์Šฌ๋กฏ(ATM ์ƒ๋“ค์˜ ์ „๋‹ฌ์—๋งŒ ๊ด€์—ฌ) ์— ์‚ฝ์ž…

 

 

 

 

*** ์ ‘๊ทผ ํ†ต์ œ(Access Control, ์ ‘๊ทผ ์ œ์–ด)

- ์ž„์˜ ์ ‘๊ทผ ํ†ต์ œ(DAC; Discretionary Access Control, ์‹ ๋ถ„ ๊ธฐ๋ฐ˜ ์ •์ฑ…)

: ์ž์›์— ์ ‘๊ทผํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์— ๋”ฐ๋ผ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹

 

- ๊ฐ•์ œ ์ ‘๊ทผ ํ†ต์ œ(MAC; Mandatory Access Control, ๊ทœ์น™ ๊ธฐ๋ฐ˜ ์ •์ฑ…)

: ์‚ฌ์šฉ์ž๋‚˜ ์ž์›(๊ฐ์ฒด) ๋ชจ๋‘ ๋ณด์•ˆ ๋ ˆ๋ฒจ(๋“ฑ๊ธ‰)์„ ๋ถ€์—ฌ ๋ฐ›์•„ ์„œ๋กœ์˜ ๋ ˆ๋ฒจ์„ ๋น„๊ตํ•˜์—ฌ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹

 

- ์—ญํ• ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ํ†ต์ œ(RBAC; Role-Based Access Control)

: ์‚ฌ์šฉ์ž์—๊ฒŒ ํ• ๋‹น๋œ ์—ญํ• ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ ‘๊ทผ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹ -> ์ง์ฑ…์— ๊ถŒํ•œ์„ ๋ถ€์—ฌ

 

 

 

*** RIP(Routing Information Protocol, ๊ฒฝ๋กœ ์„ ํƒ ์ •๋ณด ํ”„๋กœํ† ์ฝœ)

- ๊ฑฐ๋ฆฌ ๋ฐฑํ„ฐ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

- ๊ฒฝ์œ ํ•˜๋Š” ๋ผ์šฐํ„ฐ์˜ ๋Œ€์ˆ˜(ํ™‰์ˆ˜)์— ๋”ฐ๋ผ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๋™์ ์œผ๋กœ ๊ฒฐ์ • -> ์ตœ์ ์˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋ฐœ์ƒ(์™œ? ์†๋„๋‚˜ ์ง€์—ฐ ๋“ฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„)

- 30์ดˆ ์ฃผ๊ธฐ๋กœ ์ „์ฒด ๋ผ์šฐํŒ… ์ •๋ณด ๊ฐฑ์‹  -> ๋ณ€ํ™” ์—…๋ฐ์ดํŠธ ์‹œ ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š” -> ์†Œ๊ทœ๋ชจ ๋™์ข… ๋„คํŠธ์›Œํฌ์— ์ ํ•ฉ

 

 

 

**** ๊ด€๊ณ„๋Œ€์ˆ˜(์ˆœ์ˆ˜๊ด€๊ณ„ ์—ฐ์‚ฐ์ž)

- SELECT( σ ) : ๋ฆด๋ ˆ์ด์…˜์—์„œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํŠœํ”Œ๋“ค์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ

- PROJECT( Π ) : ๋ฆด๋ ˆ์ด์…˜์—์„œ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์†์„ฑ๋“ค์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ

- JOIN( โ‹ˆ ) : ๋‘๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜ A์™€ B์— ๊ณตํ†ต๋œ ์†์„ฑ์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ

- DIVISION(%)  : X > Y์ธ ๋‘ ๊ฐœ์˜ ๋ฆด๋ ˆ์ด์…˜ R(X)์™€ S(Y)๊ฐธ ์žˆ์„ ๋•Œ,  R์˜ ์†์„ฑ์ด S์˜ ์†์„ฑ ๊ฐ’์„ ๋ชจ๋‘ ๊ฐ€์ง„ ํŠœํ”Œ์—์„œ S๊ฐ€ ๊ฐ€์ง„ ์†์„ฑ์„ ์ œ์™ธํ•œ ์†์„ฑ๋งŒ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ

 

 


 

2022 ๊ธฐ์ถœ...

 

*** RAID(.Redundant Array of Inexpensive Disk)

: ๋””์Šคํฌ์˜ ๊ณ ์žฅ์— ๋Œ€๋น„ํ•ด ๋ฐ์ดํ„ฐ์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ธ ์ปดํ“จํ„ฐ์˜ ์ €์žฅ ์žฅ์น˜๋กœ์„œ, ํ•˜๋‚˜์˜ ๋Œ€ํ˜• ์ €์žฅ ์žฅ์น˜ ๋Œ€์‹  ๋‹ค์ˆ˜์˜ ์ผ๋ฐ˜ ํ•˜๋“œ๋ฅผ ๋ฐฐ์—ด๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•ด์„œ ๋ถ„์‚ฐ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋‹ค์ค‘ํ™”ํ•œ ์ €์žฅ ์žฅ์น˜

- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•˜๋“œ ๋””์Šคํฌ์— ์ผ๋ถ€ ์ค‘๋ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ ์„œ ์ €์žฅํ•˜๋Š” ๊ธฐ์ˆ 

- ๊ฐ’์‹ผ ๋””์Šคํฌ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฌถ์–ด ๋Œ€์šฉ๋Ÿ‰์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ณ ์ž ํ•จ

- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋””์Šคํฌ๋กœ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•˜๋‚˜์˜ ๋””์Šคํฌ์ฒ˜๋Ÿผ ๋ณด์ด๊ฒŒ ํ•œ๋‹ค

- ๋””์Šคํฌ ์–ด๋ ˆ์ด(Disk Array)๋ผ๊ณ ๋„ ํ•œ๋‹ค.

- RAID์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ 

์ŠคํŠธ๋ผ์ดํ•‘(Striping) ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ์— ๋ถ„์‚ฐ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ์ˆ 
๋ฏธ๋Ÿฌ๋ง(Mirroring) ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜๋Š” ๊ธฐ์ˆ 
ํŒจ๋ฆฌํ‹ฐ(Parity) ๋ฐ์ดํ„ฐ์˜ ์˜ค๋ฅ˜ ๊ฒ€์ถœ ํ™•์ธ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ์ˆ 

 

- RAID ์ข…๋ฅ˜

RAID 0 ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋˜‘๊ฐ™์ด ๋ถ„ํ• ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹
- ์ŠคํŠธํ•˜์ดํ•‘(Striping)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
- ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ๋ฅผ ํ•˜๋‚˜์˜ ๋””์Šคํฌ์ฒ˜๋Ÿผ ์ธ์‹ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ, ํ•˜๋‚˜์˜ ๋””์Šคํฌ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ „์ฒด์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค
RAID 1 ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋””์Šคํฌ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋˜‘๊ฐ™์ด ๋ณต์ œ(Mirroring)ํ•˜๋Š” ๋ฐฉ์‹
- ๋ฏธ๋Ÿฌ๋ง(Mirroring)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
- ๋””์Šคํฌ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์•ˆ์ •์„ฑ์ด ๋†’๋‹ค
RAID 2 ๊ธฐ๋ก์šฉ ๋””์Šคํฌ์™€ ๋ณต๊ตฌ์šฉ(ํŒจ๋ฆฌํ‹ฐ์šฉ, ํ•ด๋ฐ ์ฝ”๋“œ)๋””์Šคํฌ๋ฅผ ๋ณ„๋„๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹

 

 

*** TKIP(Temporal Key Integrity Protocol, ์ž„์‹œ ํ‚ค ๋ฌด๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ)

: IEEE 802.11 ๋ฌด์„ ๋žœ ๋ณด์•ˆ์— ์‚ฌ์šฉ๋œ WEP ๋ฐฉ์‹์˜ ์ทจ์•ฝ์„ฑ์„ ๋ณด์™„ํ•œ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ํ”„๋กœํ† ์ฝœ

 

 

** UI ์ข…๋ฅ˜

- CLI : ํ…์ŠคํŠธ ๋˜๋Š” ํ‚ค๋ณด๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

- GUI : ๊ทธ๋ž˜ํ”ฝ ๋˜๋Š” ๋งˆ์šฐ์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

- NUI : ์ธ๊ฐ„์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ์‹ ์ฒด ์›€์ง์ž„์œผ๋กœ ๊ธฐ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

- VUI : ์‚ฌ๋žŒ์˜ ์Œ์„ฑ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ๊ธฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค

- OUI : ๋ชจ๋“  ์ž์—ฐ ์ƒํƒœ๊ฐ€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ๋™์‹œ์— ์ด๋ค„์ง€๋Š” ์ธํ„ฐํŽ˜์ด์Šค

 

 

*** ISMS(Information Security Management System, ์ •๋ณด ๋ณดํ˜ธ ๊ด€๋ฆฌ ์ฒด๊ณ„)

: ์ •๋ณด ์ž์‚ฐ์˜ ๋น„๋ฐ€์„ ์œ ์ง€ํ•˜๊ณ  ๊ฒฐํ•จ์ด ์—†๊ฒŒ ํ•˜๋ฉฐ, ์–ธ์ œ๋“  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ ๋ณดํ˜ธ ์ ˆ์ฐจ์™€ ๊ณผ์ •

- ๊ธฐ์—…์˜ ์ •๋ณด ๋ณดํ˜ธ ์ˆ˜์ค€์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋ผ๋Š” ๊ฒƒ

- ๋ฐฉ์†กํ†ต์‹ ์œ„์›ํšŒ๋Š” ์ •๋ณดํ†ต์‹  ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋ณด์•ˆ ์œ„ํ—˜์„ ๋ถ„์„ํ•ด ๋ฏธ๋ฆฌ ์กฐ์น˜ํ•˜๊ณ , ์‚ฌ์ด๋ฒ„ ๊ณต๊ฒฉ์— ๋Œ€์‘ํ•  ์ตœ์†Œ ๋ณดํ˜ธ ์กฐ์น˜ ๊ธฐ์ค€์„ ๋งˆ๋ จํ•˜์˜€๋‹ค.

 

 

*** Watering Hole(์›Œํ„ฐ๋ง ํ™€)

: ํ‘œ์ ์œผ๋กœ ์‚ผ์€ ํŠน์ • ์ง‘๋‹จ์ด ์ฃผ๋กœ ๋ฐฉ๋ฌธํ•˜๋Š” ์›น ์‚ฌ์ดํŠธ(๋ฌผ์›…๋ฉ์ด)๋ฅผ ๊ฐ์—ผ์‹œํ‚ค๊ณ  ํ”ผํ•ด ๋Œ€์ƒ์ด ๊ทธ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋–„๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ณต๊ฒฉ

- ๊ฐ์—ผ๋œ ์›น ์‚ฌ์ดํŠธ์˜ ๋ฐฉ๋ฌธ์ž๋Š” ๋ชจ๋‘ ์•…์„ฑ ์ฝ”๋“œ์— ๊ฐ์—ผ๋˜์–ด, ์ „์—ผ์„ฑ์ด ๋†’์•„์ง€๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค

 

 

1. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ

2. ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ

3. ์‹œ์Šคํ…œ ํ…Œ์ŠคํŠธ

4. ์ธ์ˆ˜ ํ…Œ์ŠคํŠธ

 

 

*** ๊ด€๊ณ„ ๋ฐ์ดํ„ฐ ์—ฐ์‚ฐ

๊ด€๊ณ„ ๋Œ€์ˆ˜ - ์ ˆ์ฐจ์  ์–ธ์–ด(์ ˆ์ฐจ ์ค‘์‹ฌ)
: ์›ํ•˜๋Š” ์ •๋ณด๋ฅผ '์–ด๋–ป๊ฒŒ' ์œ ๋„ํ•˜๋Š”๊ฐ€๋ฅผ ์—ฐ์‚ฐ์ž์™€ ์—ฐ์‚ฐ ๊ทœ์น™ ์ด์šฉํ•˜์—ฌ ๊ธฐ์ˆ 
- ๋ถ„๋ฅ˜ : ์ˆœ์ˆ˜ ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž, ์ผ๋ฐ˜ ์ง‘ํ•ฉ ์—ฐ์‚ฐ์ž
๊ด€๊ณ„ ํ•ด์„ - ๋น„์ ˆ์ฐจ์  ์–ธ์–ด(๊ฒฐ๊ณผ ์ค‘์‹ฌ)
: ์›ํ•˜๋Š” ์ •๋ณด๊ฐ€ '๋ฌด์—‡'์ด๋ผ๋Š” ๊ฒƒ๋งŒ ์ •์˜
- ๋ถ„๋ฅ˜ : ํŠœํ”Œ ๊ด€๊ณ„ ํ•ด์„, ๋„๋ฉ”์ธ ๊ด€๊ณ„ ํ•ด์„

 

 

 

*** ALL : ๊ฒ€์ƒ‰๋œ ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค

SELECT ์ด๋ฆ„, ๊ณผ๋ชฉ, ์ ์ˆ˜ FROM ์ˆ˜๊ฐ•์ƒ

WHERE ์ ์ˆ˜ > ALL (

SELECT ์ ์ˆ˜ FROM ์ˆ˜๊ฐ•์ƒ WHERE ์ด๋ฆ„ = '๊น€๊ธธํ˜„');

 

์ด๋ฆ„ ๊ณผ๋ชฉ ์ ์ˆ˜
๋‚จ๊ธฐ์šฑ ์ •๋ณด 100

: '๊น€๊ธธํ˜„' ์ˆ˜๊ฐ•์ƒ์˜ ์ ์ˆ˜์ธ 90 ๊ทธ๋ฆฌ๊ณ  70ใ…‚๋ณด๋‹ค ๋†’์€ ํŠœํ”Œ์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

***  ANY : ๊ฒ€์ƒ‰๋œ ์กฐ๊ฑด์„ ํ•˜๋‚˜ ์ด์ƒ ๋งŒ์กฑํ•ด์•ผ ํ•œ๋‹ค.

SELECT ์ด๋ฆ„, ๊ณผ๋ชฉ, ์ ์ˆ˜ FROM ์ˆ˜๊ฐ•์ƒ

WHERE ์ ์ˆ˜ > ANY (

SELECT ์ ์ˆ˜ FROM ์ˆ˜๊ฐ•์ƒ WHERE ์ด๋ฆ„ = '๊น€๊ธธํ˜„');

 

์ด๋ฆ„ ๊ณผ๋ชฉ ์ ์ˆ˜
๊น€๊ธธํ˜„ ์ •๋ณด 90
๋‚จ๊ธฐ์šฑ ์ •๋ณด 100
๊น€์ƒํ˜„ ์ปดํ™œ 80

: '๊น€๊ธธํ˜„' ์ˆ˜๊ฐ•์ƒ์˜ ์ ์ˆ˜์ธ 90 ๋˜๋Š” 70๋ณด๋‹ค ๋†’์€ ํŠœํ”Œ์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

*** COUNT() : .๊ทธ๋ฃน๋ณ„ ํŠœํ”Œ ์ˆ˜

COUNT(*) NULL ๊ฐ’์„ ํฌํ•จํ•œ ํŠœํ”Œ ์ˆ˜ ๋ฐ˜ํ™˜
COUNT(์†์„ฑ๋ช…) NULL ๊ฐ’์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ํŠœํ”Œ ์ˆ˜ ๋ฐ˜ํ™˜

 

 

*** VPN(Virtual Private Network; ๊ฐ€์ƒ ์‚ฌ์„ค๋ง)

: ์ธํ„ฐ๋„ท๋ง๊ณผ ๊ฐ™์€ ๊ณต์ค‘๋ง์„ ์‚ฌ์„ค๋ง์ฒ˜๋Ÿผ ์ด์šฉํ•ด์„œ ํšŒ์„  ๋น„์šฉ์„ ํฌ๊ฒŒ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์—…ํ†ต์‹  ์„œ๋น„์Šค

- ์ธํ„ฐ๋„ท๋ง์„ ์ „์šฉ์„ ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํŠน์ˆ˜ํ†ต์‹ ์ฒด๊ณ„์˜ ์•”ํ˜ธํ™”๊ธฐ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋กœ ๊ธฐ์—… ๋ณธ์‚ฌ์™€ ์ง€์‚ฌ ๋˜๋Š” ์ง€์‚ฌ๊ฐ„์— ์ „์šฉ๋ง์„ ์„ค์น˜ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๊ฑฐ๋‘˜ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ „์šฉ์„ ์— ๋น„ํ•ด 20 ~ 80% ์ด์ƒ์˜ ๋น„์šฉ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

** ๋ณด์•ˆ ์†”๋ฃจ์…˜

- ๋ฐฉํ™”๋ฒฝ(Firewall) : ๋„คํŠธ์›Œํฌ ๊ฐ„์— ์ „์†ก๋˜๋Š” ์ •๋ณด๋ฅผ ์„ ๋ณ„ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ์นจ์ž… ์ฐจ๋‹จ ์‹œ์Šคํ…œ

- ์›น๋ฐฉํ™”๋ฒฝ(Web Firewall) : ์›น ๊ธฐ๋ฐ˜ ๊ณต๊ฒฉ์„ ๋ฐฉ์–ดํ•  ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์›น ์„œ๋ฒ„ ํŠนํ™” ๋ฐฉํ™”๋ฒฝ

- ์นจ์ž…ํƒ์ง€ ์‹œ์Šคํ…œ(IDS; Intrusion Detection System) : ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๋น„์ •์ƒ์ ์ธ ์‚ฌ์šฉ, ์˜ค์šฉ ๋“ฑ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํƒ์ง€ํ•˜๋Š” ์‹œ์Šคํ…œ, ์ด์ƒํƒ์ง€, ์˜ค์šฉํƒ์ง€

- ์นจ์ž… ๋ฐฉ์ง€ ์‹œ์Šคํ…œ(IPS; Intrusion Prevention System) :  ๋ฐฉํ™”๋ฒฝ๊ณผ ์นจ์ž…ํƒ์ง€ ์‹œ์Šคํ…œ์„ ๊ฒฐํ•ฉํ•œ ๊ฒƒ

- ๋ฐ์ดํ„ฐ์œ ์ถœ๋ฐฉ์ง€(DLP; Data Leakage/Loss Prevention) : ๋‚ด๋ถ€ ์ •๋ณด์˜ ์œ ์ถœ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ณด์•ˆ ์†”๋ฃจ์…˜

- NAC(Network Access Control) : ๋„คํŠธ์›Œํฌ์— ์ ‘์†ํ•˜๋Š” ๋‚ด๋ถ€ PC์˜ MAC์ฃผ์†Œ(๊ณ ์œ ๋žœ์นด๋“œ์ฃผ์†Œ)๋ฅผ IP๊ด€๋ฆฌ ์‹œ์Šคํ…œ์— ๋“ฑ๋กํ•œ ํ›„ ์ผ๊ด€๋œ ๋ณด์•ˆ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๋ณด์•ˆ์†”๋ฃจ์…˜

- ESM(Enterprise Security Management) : ๋‹ค์–‘ํ•œ ์žฅ๋น„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋กœ๊ทธ ๋ฐ ๋ณด์•ˆ ์ด๋ฒคํŠธ๋ฅผ ํ†ตํ•ฉ๊ด€๋ฆฌํ•˜๋Š” ๋ณด์•ˆ ์†”๋ฃจ์…˜

 

 

 

*** ํƒœ์ŠคํŠธ ์ข…๋ฅ˜

- ์•ˆ์ „ ํ…Œ์ŠคํŠธ(Security Test) : ๋ถˆ๋ฒ•์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ ‘๊ทผํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ํŒŒ๊ดดํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์†Œ์Šค์ฝ”๋“œ ๋‚ด์˜ ๋ณด์•ˆ์ ์ธ ๊ฒฐํ•จ์„ ๋ฏธ๋ฆฌ ์ ๊ฒ€ํ•˜๋Š” ํ…Œ์ŠคํŠธ

- ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ(Performance Test) : ์‹œ์šฉ์ž์˜ ์ด๋ฒคํŠธ์— ์‹œ์Šคํ…œ์ด ์‘๋‹ตํ•˜๋Š” ์‹œ๊ฐ„, ํŠน์ • ์‹œ๊ฐ„ ๋‚ด์— ์ฒ˜๋ฆฌํ•˜๋Š” ์—…๋ฌด๋Ÿ‰, ์‚ฌ์šฉ์ž ์š”๊ตฌ์— ์‹œ์Šคํ…œ์ด ๋ฐ˜์‘ํ•˜๋Š” ์†๋„ ๋“ฑ์„ ํ…Œ์ŠคํŠธ

- ๋ณ‘ํ–‰ ํ…Œ์ŠคํŠธ(Parallel Test) : ๋ณ€๊ฒฝ๋œ ์‹œ์Šคํ…œ๊ณผ ๊ธฐ์กด ์‹œ์Šคํ…œ์— ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋น„๊ตํ•˜๋Š” ํ…Œ์ŠคํŠธ

- ํšŒ๋ณต ํ…Œ์ŠคํŠธ(Recovery Test) : ์‹œ์Šคํ…œ์— ๊ณ ์˜๋กœ ์‹คํŒจ๋ฅผ ์œ ๋„ํ•˜๊ณ  ์‹œ์Šคํ…œ์ด ์ •์ƒ์ ์œผ๋กœ ๋ณต๊ท€ํ•˜๋Š”์ง€ ํ…Œ์ŠคํŠธ

- ํšŒ๊ท€ ํ…Œ์ŠคํŠธ(Regression Test) : ๋ณ€๊ฒฝ ๋˜๋Š” ์ˆ˜์ •๋œ ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ฒฐํ•จ ๋ฐœ๊ฒฌ ์—ฌ๋ถ€๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ํ…Œ์ŠคํŠธ

- ๊ตฌ์กฐ ํ…Œ์ŠคํŠธ(Strategy Test) : ์‹œ์Šคํ…œ์˜ ๋‚ด๋ถ€ ๋…ผ๋ฆฌ ๊ฒฝ๋กœ, ์†Œ์Šค์ฝ”๋“œ์˜ ๋ณต์žก๋„๋ก ํ‰๊ฐ€ํ•˜๋Š” ํ…Œ์ŠคํŠธ

 

 

*** ๋ผ์šฐํŒ… ๋ฐฉ์‹

- ๋‚ด/์™ธ๋ถ€ ๋ผ์šฐํŒ…

1) IGP(Interior Gateway Protocol)

- ์ž์œจ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์—์„œ๋งŒ ์ด๋ฃจ์–ด์ง€๋Š” ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

- ํ”„๋กœํ† ์ฝœ ์ข…๋ฅ˜ : RIP, IGRP, OSPF

 

* ์ž์œจ ์‹œ์Šคํ…œ(AS; Autonomous System)

: ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ(ํšŒ์‚ฌ)์— ์†ํ•˜๋Š” ๋ผ์šฐํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ

 

2) EGP(Exterior Gateway Protocol)

- ์ž์œจ ์‹œ์Šคํ…œ ๊ฐ„ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

- ํ”„๋กœํ† ์ฝœ ์ข…๋ฅ˜ : BGP

 

** RIP(Routing Information Protocol, ๊ฒฝ๋กœ ์„ ํƒ ์ •๋ณด ํ”„๋กœํ† ์ฝœ)

- ๊ฑฐ๋ฆฌ ๋ฐฑํ„ฐ ๊ธฐ๋ฐ˜ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

- ๊ฒฝ์œ ํ•˜๋Š” ๋ผ์šฐํ„ฐ์˜ ๋Œ€์ˆ˜(ํ™‰์ˆ˜)์— ๋”ฐ๋ผ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๋™์ ์œผ๋กœ ๊ฒฐ์ • -> ์ตœ์ ์˜ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ๋ฐœ์ƒ(์™œ? ์†๋„๋‚˜ ์ง€์—ฐ ๋“ฑ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„)

- 30์ดˆ ์ฃผ๊ธฐ๋กœ ์ „์ฒด ๋ผ์šฐํŒ… ์ •๋ณด ๊ฐฑ์‹  -> ๋ณ€ํ™” ์—…๋ฐ์ดํŠธ ์‹œ ๋งŽ์€ ์‹œ๊ฐ„ ์†Œ์š” -> ์†Œ๊ทœ๋ชจ ๋™์ข… ๋„คํŠธ์›Œํฌ์— ์ ํ•ฉ

- ์ตœ๋Œ€ ํ™‰์ˆ˜๋ฅผ 15 ์ดํ•˜๋กœ ํ•œ์ • -> ๋Œ€๊ทœ๋ชจ ๋„คํŠธ์›Œํฌ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

 

** IGRP(Interior Gateway Routing Protocol, ๋‚ด๋ถ€ ๊ฒฝ๋กœ ์ œ์–ด ํ”„๋กœํ† ์ฝœ)

: RIP์˜ ๋ฌธ์ œ์  ๊ฐœ์„ ์„ ์œ„ํ•ด ์‹œ์Šค์ฝ”์—์„œ ๊ฐœ๋ฐœ

- ๋„คํŠธ์›Œํฌ ์ƒํƒœ๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ๋ผ์šฐํŒ…(๋Œ€์—ญํญ, ์†๋„ ๋“ฑ) -> ์ค‘๊ทœ๋ชจ ๋„คํŠธ์›Œํฌ์— ์ ํ•ฉ

 

** OSPF(Open Shortest Path First, ์ตœ๋‹จ ๊ฒฝ๋กœ ์šฐ์„  ํ”„๋กœํ† ์ฝœ)

: RIP(๊ฒฝ๋กœ ์„ ํƒ ์ •๋ณด ํ”„๋กœํ† ์ฝœ)์˜ ๋‚œ์ ์„ ํ•ด๊ฒฐ -> ๋ฐœ์ƒํ•œ ๋ณ€๊ฒฝ ์ •๋ณด์— ๋Œ€ํ•ด RIP๋ณด๋‹ค ๋น ๋ฅธ ์—…๋ฐ์ดํŠธ

- ์ธํ„ฐ๋„ท๋ง์—์„œ ์ด์šฉ์ž๊ฐ€ ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ์„ ์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ผ์šฐํŒ… ์ •๋ณด์— ๋…ธ๋“œ ๊ฐ„์˜ ๊ฑฐ๋ฆฌ ์ •๋ณด, ๋งํฌ ์ƒํƒœ ์ •๋ณด๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์กฐํ•ฉํ•˜์—ฌ ์ตœ๋‹จ ๊ฒฝ๋กœ๋กœ ๋ผ์šฐํŒ…์„ ์ง€์›ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

- ๊ฒฝ๋กœ์ˆ˜์— ์ œํ•œ์ด ์—†์œผ๋ฏ€๋กœ ๋Œ€๊ทœ๋ชจ ๋„คํŠธ์›Œํฌ์— ์‚ฌ์šฉ

- Link State ๋ฐฉ์‹(๋งํฌ ์ƒํƒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜) : ๋ผ์šฐํŒ… ์ •๋ณด์— ๋ณ€ํ™”๊ฐ€ ์ƒ๊ธธ ๊ฒฝ์šฐ, ๋ณ€ํ™”๋œ ์ •๋ณด๋งŒ ๋„คํŠธ์›Œํฌ ๋‚ด์˜ ๋ชจ๋“  ๋ผ์šฐํ„ฐ์—๊ฒŒ ์•Œ๋ฆฌ๋Š” ๋ฐฉ์‹(OSPF๊ฐ€ ๋Œ€ํ‘œ์ )

 

 

** BGP(Border Gateway Protocol, ๊ฒฝ๊ณ„ ๊ฒŒ์ดํŠธ์›จ์ด ํ”„๋กœํ† ์ฝœ)

: EGP์˜ ๋‹จ์ (๋‹ค๋ฅธ ๋„๋ฉ”์ธ ์‚ฌ์ด์— ๋ผ์šฐํŒ…์‹œ ์†๋„ ๋ฌธ์ œ์ , ๋ณด์•ˆ๊ณผ ์ œ์–ด๊ฐ€ ๋ณธ๋ž˜ ๋ชฉ์ )์„ ๋ณด์™„

- ์—ฌ๋Ÿฌ ์ž์œจ ์‹œ์Šคํ…œ(Autonomous System) ๊ฐ„์— ๋ผ์šฐํŒ… ์ •๋ณด๋ฅผ ๊ตํ™˜ -> ๊ทœ๋ชจ๊ฐธ ํฐ ๋„คํŠธ์›Œํฌ์˜ ์ƒํ˜ธ ์—ฐ๊ฒฐ -> ์ธํ„ฐ๋„ท ์„œ๋น„์Šค ์—…์ฒด(ISP; Internet Service Provider) ๊ฐ„์˜ ์ƒํ˜ธ ๋ผ์šฐํŒ…

- ๋ฐœ์ „๋œ ํ˜•ํƒœ์˜ ๊ฑฐ๋ฆฌ ๋ฐฑํ„ฐ ๋ผ์šฐํŒ… ํ”„๋กœํ† ์ฝœ

 

 

*** ์‘์ง‘๋„์˜ ์œ ํ˜•(๋ชจ๋“ˆ์— ํฌํ•จ๋œ ๋‚ด๋ถ€ ์š”์†Œ๋“ค์ด ํ•˜๋‚˜์˜ ์ฑ…์ž„ / ๋ชฉ์ ์„ ์œ„ํ•ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ์—ฐ๊ด€๋œ ์ •๋„)

- ์šฐ์—ฐ์  ์‘์ง‘๋„(Coincidental Cohesion) : ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์—ฐ๊ด€์ด ์—†์„ ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

- ๋…ผ๋ฆฌ์  ์‘์ง‘๋„(Logical Cohesion) : ์œ ์‚ฌํ•œ ์„ฑ๊ฒฉ์„ ๊ฐ–๊ฑฐ๋‚˜ ํŠน์ • ํ˜•ํƒœ๋กœ ๋ถ„๋ฅ˜๋˜๋Š” ์ฒ˜๋ฆฌ ์š”์†Œ๋“ค์ด ํ•œ ๋ชจ๋“ˆ์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

- ์‹œ๊ฐ„์  ์‘๋”ฅ๋„(Temporal Cohesion) : ์—ฐ๊ด€๋œ ๊ธฐ๋Šฅ์ด๋ผ๊ธฐ๋ณด๋‹ค๋Š” ํŠน์ • ์‹œ๊ฐ„์— ์ฒ˜๋ฆฌ๋˜์–ด์•ผ ํ•˜๋Š” ํ™œ๋™๋“ค์„ ํ•œ ๋ชจ๋“ˆ์—์„œ ์ฒ˜๋ฆฌํ•  ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

- ์ ˆ์ฐจ์  ์‘์ง‘๋„(Procedural Cohesion) : ๋ชจ๋“ˆ ๋‹ค์ˆ˜์˜ ๊ด€๋ จ ๊ธฐ๋Šฅ์„ ๊ฐ€์งˆ ๋•Œ ๋ชจ๋“ˆ ์•ˆ์˜ ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด ๊ทธ ๊ธฐ๋Šฅ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

- ํ†ต์‹ ์  ์‘์ง‘๋„(Communication Cohesion) : ๋™์ผํ•œ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰

- ์ˆœ์ฐจ์  ์‘์ง‘๋„(Sequential Cohesion) : ๋ชจ๋“ˆ ๋‚ด์—์„œ ํ•œ ํ™œ๋™์œผ๋กœ๋ถ€ํ„ฐ ๋‚˜์˜จ ์ถœ๋ ฅ๊ฐ’์„ ๋‹ค๋ฅธ ํ™œ๋™์ด ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

- ๊ธฐ๋Šฅ์  ์‘์ง‘๋„(Functional Cohesion) : ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์ด ๋‹จ์ผํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์ˆ˜ํ–‰๋˜๋Š” ๊ฒฝ์šฐ์˜ ์‘์ง‘๋„

(์šฐ๋…ผ์‹œ์ ˆํ†ต์ˆœ๊ธฐ)

 

 

*** ๊ฒฐํ•ฉ๋„์˜ ์œ ํ˜•(๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ์˜ ์˜์กด์„ฑ์˜ ์ •๋„)

- ๋‚ด์šฉ ๊ฒฐํ•ฉ๋„(Content Coupling) : ๋‹ค๋ฅธ ๋ชจ๋“ˆ ๋‚ด๋ถ€์— ์žˆ๋Š” ๋ณ€์ˆ˜๋‚˜ ๊ธฐ๋Šฅ์„ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„

- ๊ณตํ†ต ๊ฒฐํ•ฉ๋„(Common Coupling) : ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์•„๋‹Œ ๋ชจ๋“ˆ ๋ฐ–์— ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜๊ณ , ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ์‹์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„

- ์™ธ๋ถ€ ๊ฒฐํ•ฉ๋„(External Coupling) : ๋ชจ๋“ˆ์—์„œ ์™ธ๋ถ€๋กœ ์„ ์–ธํ•œ ๋ณ€์ˆ˜๋ฅผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ์ฐธ์กฐ

- ์ œ์–ด ๊ฒฐํ•ฉ๋„(Control Coupling) : ๋‹จ์ˆœ ์ฒ˜๋ฆฌํ•  ๋Œ€์ƒ์ธ ๊ฐ’๋งŒ ์ „๋‹ฌ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ œ์–ด ์š”์†Œ๊ฐ€ ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„

- ์Šคํƒฌํ”„ ๊ฒฐํ•ฉ๋„(Stamp Coupling) : ๋ชจ๋“ˆ ๊ฐ„์˜ ์–ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด, ๊ตฌ์กฐ ๋“ฑ์ด ์ „๋‹ฌ๋˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„

- ์ž๋ฃŒ ๊ฒฐํ•ฉ๋„(Data Coupling) :๋ชจ๋“ˆ๊ฐ„์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ž๋ฃŒ(๊ฐ’)๋ฅผ ํ†ตํ•ด์„œ๋งŒ ๋ชจ๋“ˆ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์ด ์ผ์–ด๋‚˜๋Š” ๊ฒฝ์šฐ์˜ ๊ฒฐํ•ฉ๋„

(๋‚ด๊ณต์™ธ์ œ์Šค์ž)

 

 

*** ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์›์น™(SOLID)

- ๋‹จ์ผ ์ฑ…์ž„ ์›์น™(SRP, Single responsibility principle) : ํ•œ ํด๋ž˜์Šค๋Š” ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ์„ ๊ฐ€์ ธ์•ผํ•œ๋‹ค

- ๊ฐœ๋ฐฉ ํ์‡„ ์›์น™(OCP, Open-closed principle) : ํ™•์žฅ์—๋Š” ์—ด๋ ค ์žˆ๊ณ , ์ˆ˜์ •์—๋Š” ๋‹ซํ˜€ ์žˆ์–ด์•ผ ํ•œ๋‹ค

- ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™(LSP, Liskov substitution priciple) : ์ž์‹ ํด๋ž˜์Šค๋Š” ์–ธ์ œ๋‚˜ ์ž์‹ ์˜ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.

- ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™(ISP, Interface Segregation principle) : ์ž์‹ ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌํ˜„ํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค

- ์˜์กด์„ฑ ์—ญ์ „ ์›์น™(DIP, Dependency Inversion principle) : ์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ ์ž์ฃผ ๋ณ€ํ™”ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ๋ณ€ํ™”๊ฐ€ ๊ฑฐ์˜ ์—†๋Š” ๊ฒƒ์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค

 

 

*** ํ•จ์ˆ˜์  ์ข…์†

- ๋ถ€๋ถ„ ํ•จ์ˆ˜ ์ข…์†(Partial Functional Dependency) : ๋ฆด๋ ˆ์ด์…˜์—์„œ ๊ธฐ๋ณธ ํ‚ค๊ฐ€ ๋ณตํ•ฉ ํ‚ค์ผ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ ์ค‘ ์ผ๋ถ€์—๊ฒŒ ์ข…์†๋œ ๊ฒฝ์šฐ

ex) { ํ•™๋ฒˆ, ๊ณผ๋ชฉ๋ฒˆํ˜ธ } -> ์„ฑ์ 

 

- ์™„์ „ ํ•จ์ˆ˜ ์ข…์†(Full Functional Dependency) : ๋ฆด๋ ˆ์ด์…˜์—์„œ X -> Y ๊ด€๊ณ„๊ฐ€ ์žˆ์„ ๋•Œ, Y๋Š” X์˜ ์ „์ฒด ์†์„ฑ์— ๋Œ€ํ•ด ์ข…์†ํ•˜๊ณ , ๋ถ€๋ถ„ ์ง‘ํ•ฉ ์†์„ฑ์— ์ข…์†ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

ex) ํ•™๋ฒˆ -> ํ•™๋…„

 

- ์ดํ–‰ ํ•จ์ˆ˜ ์ข…์†(Transtive Functional Dependency) : ๋ฆด๋ ˆ์ด์…˜์—์„œ X -> Y, Y -> Z ์ข…์† ๊ด€๊ณ„๊ฐ€ ์žˆ์„ ๋•Œ, X -> Z๊ฐ€ ์„ฑ๋ฆฝ๋˜๋Š” ๊ฒฝ์šฐ 

 

 

*** ํ˜•์ƒ๊ด€๋ฆฌ ์ ˆ์ฐจ(ํ˜•์ƒ๊ด€๋ฆฌ : ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ํ†ต์ œํ•˜๋Š” ๊ฒƒ)

: ํ˜•์ƒ ์‹๋ณ„ -> ํ˜•์ƒ ํ†ต์ œ -> ํ˜•์ƒ ๊ฐ์‚ฌ -> ํ˜•์ƒ ๊ธฐ๋ก

ํ†ต์ œ => ์†Œํ”„ํŠธใ…œ์—์–ด ํ˜•์ƒ ๋ณ€๊ฒฝ ์š”์ฒญ์„ ๊ฒ€ํ† ํ•˜๊ณ  ์Šน์ธํ•˜์—ฌ ํ˜„์žฌ์˜ ๋ฒ ์ด์Šค๋ผ์ธ์— ๋ฐ˜์˜๋  ์ˆ˜ ์žˆ๋„๋ก ํ†ต์ œ

 

 

*** ๊ด€๊ณ„

- ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„(Generalization) : ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์œ„ ๊ฐœ๋…์ผ ๋•Œ์˜ ๊ด€๊ณ„

- ์—ฐ๊ด€ ๊ด€๊ณ„(Accociation) : ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ‘œ์‹œ

- ์˜์กด ๊ด€๊ณ„(Dependency) : ํด๋ž˜์Šค์˜ ๊ด€๊ณ„๊ฐ€ ํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ๊ณผ ๊ฐ™์ด ๋งค์šฐ ์งง์€ ์‹œ๊ฐ„๋งŒ ์œ ์ง€

- ์‹ค์ฒดํ™” ๊ด€๊ณ„(Realization) : ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ  ๊ตฌํ˜„๋ฐ›์•„ ์ถ”์ƒ ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

- ์ง‘์•ฝ ๊ด€๊ณ„(Aggregation) : ์ „์ฒด ๊ฐ์ฒด์˜ ๋ผ์ดํ”„ํƒ€์ž…๊ณผ ๋ถ€๋ถ„ ๊ฐ์ฒด์˜ ๋ผ์ดํ”„ํƒ€์ž…์€ ๋…๋ฆฝ์ 

- ํ•ฉ์„ฑ ๊ด€๊ณ„(Composition) : ๋ถ€๋ถ„ ๊ฐ์ฒด๊ฐ€ ์ „์ฒด ๊ฐ์ฒด์— ์†ํ•˜๋Š” ๊ด€๊ณ„๋กœ ๊ธด๋ฐ€ํ•œ ํ•„์ˆ˜์  ๊ด€๊ณ„

 

 

*** ๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŠธ

- ๋™๋“ฑ ๋ถ„ํ•  ๊ธฐ๋ฒ•(Equivalence Partitioning) : ์ž…๋ ฅ ์ž๋ฃŒ์— ์ดˆ์ ์„ ๋งž์ถฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋งŒ๋“ค์–ด ๊ฒ€์‚ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

- ๊ฒฝ๊ณ„๊ฐ’ ๋ถ„์„(Boundary Value Analysis) : ์ž…๋ ฅ ์กฐ๊ฑด์˜ ๊ฒฝ๊ณ„๊ฐ’์„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์„ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

- ์›์ธ-ํšจ๊ณผ ๊ทธ๋ž˜ํ”„ ๊ฒ€์‚ฌ(Cause Effect Graph) : ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„์™€ ์ถœ๋ ฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์ƒํ™ฉ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๋ถ„์„ํ•œ ๋‹ค์Œ ํšจ์šฉ์„ฑ์ด ๋†’์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์„ ์ •ํ•˜์—ฌ ๊ฒ€์‚ฌํ•˜๋Š” ๊ธฐ๋ฒ•

- ์˜ค๋ฅ˜ ์˜ˆ์ธก ๊ฒ€์‚ฌ(Error Guessing) : ๊ณผ๊ฑฐ์˜ ๊ฒฝํ—˜์ด๋‚˜ ํ…Œ์Šคํ„ฐ์˜ ๊ฐ๊ฐ์œผ๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ๋ฒ•

- ๋น„๊ต ๊ฒ€์‚ฌ(Comparison Testing) : ์—ฌ๋Ÿฌ ๋ฒ„์ „์˜ ํ”„๋กœ๊ทธ๋žจ์— ๋™์ผํ•œ ํ…Œ์ŠคํŠธ ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š”์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ธฐ๋ฒ•

 

 

*** ์„ ์ ํ˜• ๊ธฐ๋ฒ• -> ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ๋บ์„ ์ˆ˜ ์žˆ๋Š”๊ฒƒ

- Round Robin(RR)

- SRT(Shortest Remaining Time) : ์‹คํ–‰์‹œ๊ฐ„ ์งง์€๊ฒƒ ๋จผ์ €

- ๋‹ค๋‹จ๊ณ„ ํ(MLQ, Multi-Level Queue)

- ๋‹ค๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ํ(MLFQ, Multi-Level Feedback Queue)

 

*** ๋น„์„ ์ ํ˜• ๊ธฐ๋ฒ• => ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ•์ œ๋กœ ๋ชป๋บ์Œ

- FCFS(First Come First Serve)

- SJF(Shortest Job First)

- HRN(Highest Response ratio Next)

- ์šฐ์„ ์ˆœ์œ„(Priority)

- ๊ธฐํ•œ๋ถ€(Deadline)

 

 

2021 ๊ฐ€์ถœ...

 

๋ฌผ๋ฆฌ์ฃผ์†Œ(MAC Address)๋ฅผ IP ์ฃผ์†Œ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

RARP

 

IP ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ฃผ์†Œ๋กœ ๋ณ€ํ™”ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ

ARP

 

์„ค๊ณ„3์ข…๋ฅ˜(๊ฐœ-๋…ผ-๋ฌผ)

๊ฐœ๋…์  ์„ค๊ณ„ : ํ˜„์‹ค ์„ธ๊ณ„์— ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์˜ ์ •๋ณด๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด๊ฐ€๋Š” ๊ณผ์ •์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ณด ๋ชจ๋ธ์ด๋ผ๊ณ  ํ•œ๋‹ค.(์‚ฐ์ถœ๋ฌผERD)

๋…ผ๋ฆฌ์  ์„ค๊ณ„ : ์ถ”์ถœ๋œ ์—”ํ„ฐํ‹ฐ์™€ ์†์„ฑ๋“ค์˜ ๊ด€๊ณ„๋ฅผ ๊ตฌ์กฐ์ ์œผ๋กœ ์ •์˜ํ•˜๋Š” ๋‹จ๊ณ„๋กœ, ๊ฐœ๋…์  ์„ค๊ณ„์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ตฌ์กฐ๋ฅผ ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

๋ฌผ๋ฆฌ์  ์„ค๊ณ„ : ์‹ค์ œ ์ €์žฅ์žฅ์น˜์— ์–ด๋–ป๊ฒŒ ์ €์žฅํ• ์ง€ ์„ค๊ณ„ํ•˜๋Š” ๋‹จ๊ณ„

 

์นด๋””๋„๋ฆฌํ‹ฐ(ํŠœํ”Œ์˜ ์ˆ˜) : ์„ธ๋กœ์ฐจ์ˆ˜(์–ดํŠธ๋ฆฌ๋ทฐํŠธ: ์†์„ฑ์˜ ์ˆ˜) : ๊ฐ€๋กœ

 

 

 

EAI

๊ธฐ์—… ๋‚ด๋ถ€์—์„œ ์šด์˜๋˜๋Š” ๊ฐ์ข… ํ”Œ๋žซํผ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ์ •๋ณด์ „๋‹ฌ, ์—ฐ๊ณ„, ํ†ตํ•ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์†”๋ฃจ์…˜Point to Point, Hub&Spoke, Message Bus, Hybrid ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ

- Point to Point : ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ†ตํ•ฉ ๋ฐฉ๋ฒ•( 1:1 ๋‹จ์ˆœ ํ†ตํ•ฉ ๋ฐฉ๋ฒ• ) / ๊ฐœ๋ฐœ์ž๊ฐ„ ๋Œ€ํ™”๋ฅผ ํ†ตํ•ด ํ†ตํ•ฉ ๊ฐ€๋Šฅ

ํ—ˆ๋ธŒ ์•ค ์Šคํฌํฌ : ๋‹จ์ผํ•œ ์ ‘์ ์˜ ํ—ˆ๋ธŒ ์‹œ์Šคํ…œ์„ ํ†ตํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๋Š” ์ค‘์•™ ์ง‘์ค‘์  ๋ฐฉ์‹

๋ฉ”์‹œ์ง€ ๋ฒ„์Šค : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‚ฌ์ด ๋ฏธ๋“ค์›จ์–ด๋ฅผ ๋‘์–ด ์—ฐ๊ณ„ํ•˜๋Š” ํ†ตํ•ฉ ๋ฐฉ์‹ / ๋›ฐ์–ด๋‚œ ํ™•์žฅ์„ฑ๊ณผ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ

ํ•˜์ด๋ธŒ๋ฆฌ๋“œ : ๊ทธ๋ฃน ๋‚ด๋Š” ํ—ˆ๋ธŒ ์•ค ์Šคํฌํฌ ๋ฐฉ์‹ / ๊ทธ๋ฃน ๊ฐ„์—๋Š” ๋ฉ”์„ธ์ง€ ๋ฒ„์Šค ๋ฐฉ์‹ ์‚ฌ์šฉํ•˜๋Š” ํ†ตํ•ฉ ๋ฐฉ์‹

 

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ตฌ์„ฑ 3์š”์†Œ

์—ฐ์‚ฐ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ๋ช…์„ธ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋„๊ตฌ

๊ตฌ์กฐ : ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ‘œํ˜„๋œ ๊ฐœ์ฒด ํƒ€์ž…๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋กœ์„œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ๋ฐ ์ •์  ์„ฑ์ฐฐ์„ ํ‘œํ˜„ํ•œ๋‹ค.

์ œ์•ฝ์กฐ๊ฑด : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋  ์ˆ˜ ์ž‡๋Š” ์‹ค์ œ ๋ฐ์ดํ„ฐ์˜ ๋…ผ๋ฆฌ์ ์ธ ์ œ์•ฝ ์กฐ๊ฑด

 

 

์š”๊ตฌ์‚ฌํ•ญ ์ข…๋ฅ˜

๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ์€ ์ œํ’ˆ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ๊ธฐ๋Šฅ์  ์†์„ฑ

๋น„๊ธฐ๋Šฅ์  ์š”๊ตฌ์‚ฌํ•ญ์€ ์ œํ’ˆ ํ’ˆ์งˆ ๊ธฐ์ค€ ๋“ฑ์˜ ๋งŒ์กฑ์„ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ๊ฐ€์ ธ์•ผ ํ•  ํŠน์„ฑ(์„ฑ๋Šฅ, ๋ณด์•ˆ, ํ’ˆ์งˆ...)

์›น ์„œ๋น„์Šค์˜ ๊ตฌ์ฒด์  ๋‚ด์šฉ์ด ๊ธฐ์ˆ ๋˜์–ด ์žˆ์–ด ์„œ๋น„์Šค ์ œ๊ณต ์žฅ์†Œ, ์„œ๋น„์Šค ๋ฉ”์‹œ์ง€ ํฌ๋งท, ํ”„๋กœํ† ์ฝœ ๋“ฑ์ด ๊ธฐ์ˆ ๋˜์–ด ์žˆ๋Š” ์–ธ์–ด๋Š”?

: WSDL

SQL(SELECT)

SELECT * FROM ํ…Œ์ด๋ธ” ์ด๋ฆ„

WHERE ์กฐ๊ฑด AND, OR

GROUP BY ์ปฌ๋Ÿผ๋ช…

HAVING SUM()

ORDER BY ASC, DESC....

 

 

IPC(Inter-Process Communication)

์ปดํ“จํ„ฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ†ต์‹ ์„ ์˜๋ฏธํ•˜๋Š” ์šฉ์–ด๋กœ ์šด์˜์ฒด์ œ ์ƒ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค ์‚ฐ์— ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ธฐ์ˆ , ์ฃผ์š” ๊ธฐ๋ฒ•์—๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ๊ธฐ๋ฒ•, ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๊ธฐ๋ฒ•์ด ์žˆ์œผ๋ฉฐ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๊ธฐ๋ฒ•์— ๊ธฐ๋ฐ˜์„ ๋‘” ๊ธฐ๋ฒ•๋“ค์—๋Š” ์†Œ์ผ“, ํŒŒ์ดํ”„, ์„ธ๋งˆํฌ์–ด, ์‹œ๊ทธ๋„ ๋“ฑ์ด ์žˆ๋‹ค

 

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

AD-hoc Network

 

 

*** ๋ณ‘ํ–‰ ์ œ์–ด ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜

๋กœํ‚น(Locking) : ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๋™์•ˆ ํŠน์ • ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•ด์„œ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์ ‘๊ทผํ•˜์ง€ ๋ชปํ•˜๋„๋ก ์ƒํ˜ธ๋ฐฐ์ œ(Mutual Exclusion) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ฒ•

 * ๋กœํ‚น์˜ ํŠน์ง•!!

·         ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ, ๋ ˆ์ฝ”๋“œ ๋“ฑ์€ ๋กœํ‚น ๋‹จ์œ„๊ฐ€ ๋  ์ˆ˜ ์žˆ์Œ

·         ๋กœํ‚น ๋‹จ์œ„๊ฐ€ ์ž‘์•„์ง€๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ณต์œ ๋„๊ฐ€ ์ฆ๊ฐ€

·         ๋กœํ‚น ๋‹จ์œ„๊ฐ€ ์ž‘์•„์ง€๋ฉด ๋กœํ‚น ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ฆ๊ฐ€

·         ํ•œ๊บผ๋ฒˆ์— ๋กœํ‚นํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์˜ ํฌ๊ธฐ๋ฅผ ๋กœํ‚น ๋‹จ์œ„๋ผ๊ณ  ํ•จ

๋‚™๊ด€์  ๊ฒ€์ฆ(Optimistic Validation) :  ํŠธ๋žœ์žญ์…˜์ด ์–ด๋– ํ•œ ๊ฒ€์ฆ๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ผ๋‹จ ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ํŠธ๋žœ์žญ์…˜ ์ข…๋ฃŒ ์‹œ ๊ฒ€์ฆ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ˜์˜ํ•˜๋Š” ๊ธฐ๋ฒ•

ํƒ€์ž„ ์Šคํƒฌํ”„ ์ˆœ์„œ(Time Stamp Orderring) : ํŠธ๋žœ์žญ์…˜๊ณผ ํŠธ๋žœ์žญ์…˜์ด ์ฝ๊ฑฐ๋‚˜ ๊ฐฑ์‹ ํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰์„ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ํƒ€์ž„ ์Šคํƒฌํ”„๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๋ถ€์—ฌ๋œ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ํŠธ๋žœ์žญ์…˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋ฒ•

 

 

 

*** ๋ณด์•ˆ์˜ ์„ธ ๊ฐ€์ง€ ์šฉ์–ด

- ์ธ์ฆ(Authentication) : ๋ณด์•ˆ ๊ธฐ๋Šฅ์—์„œ, ์‚ฌ๋žŒ์ด๋‚˜ ํ”„๋กœ์„ธ์Šค์˜ ์‹ ๋ถ„์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ

- ์ธ๊ฐ€(Authorization) : ๊ฒ€์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์ˆ˜์ค€์˜ ๊ถŒํ•œ๊ณผ ์„œ๋น„์Šค๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ

- ๊ณ„์ • ๊ด€๋ฆฌ(Accounting) : ์‚ฌ์šฉ์ž์˜ ์ž์›์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ๋ชจ์•„์„œ ๊ณผ๊ธˆ, ๊ฐ์‚ฌ, ์šฉ๋Ÿ‰์ฆ์„ค, ๋ฆฌํฌํŒ… ๋“ฑ์„ ์‹ค์‹œํ•˜๋Š” ๊ฒƒ

 

 

*** ์Šคํ‘ธํ•‘(Spoofing)

- IP ์Šคํ‘ธํ•‘

  • IP ์ž์ฒด์˜ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ์•…์šฉํ•œ ๊ฒƒ์œผ๋กœ ์ž์‹ ์˜ IP ์ฃผ์†Œ๋ฅผ ์†์—ฌ์„œ ์ ‘์†ํ•˜๋Š” ๊ณต๊ฒฉ
  • IP ์Šคํ‘ธํ•‘์„ ํ†ตํ•ด ์„œ๋น„์Šค ๊ฑฐ๋ถ€ ๊ณต๊ฒฉ(DoS)๋„ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๊ณต๊ฒฉ ๋Œ€์ƒ ์ปดํ“จํ„ฐ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์˜ ์—ฐ๊ฒฐ๋œ ์„ธ์…˜์„ ๋Š์„ ์ˆ˜๋„ ์žˆ๋‹ค
  • ์ข…๋‹จ ์ธ์ฆ(end point authentication) ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•ด๊ฒฐํ•œ๋‹ค

- DNS ์Šคํ‘ธํ•‘

  • ๊ณต๊ฒฉ๋Œ€์ƒ์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” DNS IP ์ฃผ์†Œ๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ ์˜๋„์น˜ ์•Š๋Š” ์ฃผ์†Œ๋กœ ์ ‘์†ํ•˜๋Š” ๊ณต๊ฒฉ
  • ๊ณต๊ฒฉ๋Œ€์ƒ์€ ์ •์ƒ์ ์ธ URL์„ ํ†ตํ•ด์„œ ์ ‘์†ํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ ๊ฐ€์งœ ์‚ฌ์ดํŠธ๋กœ ์ ‘์†๋œ๋‹ค

 

 

*** ํŒŒ์ผ์˜ ๊ตฌ์กฐ

- ์ˆœ์ฐจ ํŒŒ์ผ(Sequential File, ์ˆœ์„œ ํŒŒ์ผ) : ์ˆœ์ฐจ ํŒŒ์ผ์€ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋…ผ๋ฆฌ์ ์ธ ์ฒ˜๋ฆฌ ์ˆœ์„œ์— ๋”ฐ๋ผ ์—ฐ์†๋œ ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„์œผ๋กœ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ

- ์ง์ ‘ ํŒŒ์ผ(Direct File) : ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž„์˜์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ๊ณต๊ฐ„์— ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ

- ์ƒ‰์ธ ์ˆœ์ฐจ ํŒŒ์ผ(Indexed Sequential File) : ์ˆœ์ฐจ ํŒŒ์ผ๊ณผ ์ง์ ‘ ํŒŒ์ผ์—์„œ ์ง€์›ํ•˜๋Š” ํŽธ์„ฑ ๋ฐฉ๋ฒ•์ด ๊ฒฐํ•ฉ๋œ ํ˜•ํƒœ

 

 

*** ๊ตฌ์กฐ์  ๋‹ค์ด์–ด๊ทธ๋žจ(Sturcture Diagram)

- ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ : ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ํด๋ž˜์Šค๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค

- ํŒจํ‚ค์ง€ ๋‹ค์ด์–ด๊ทธ๋žจ : ํด๋ž˜์Šค๋‚˜ ์œ ์Šค ์ผ€์ด์Šค ๋“ฑ์„ ํฌํ•จํ•œ ์—ฌ๋Ÿฌ ๋ชจ๋ธ ์š”์†Œ๋“ค์„ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํŒจํ‚ค์ง€ ๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค

- ๋ณตํ•ฉ์ฒด ๊ตฌ์กฐ ๋‹ค์ด์–ด๊ทธ๋žจ : ๋ณตํ•ฉ ๊ตฌ์กฐ์˜ ํด๋ž˜์Šค์™€ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค

- ๊ฐ์ฒด ๋‹ค์ด์–ด๊ทธ๋žจ : ๊ฐ์ฒด ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค€๋‹ค 

- ์ปดํฌ๋„ŒํŠธ ๋‹ค์ด์–ด๊ทธ๋žจ : ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค

- ๋ฐฐ์น˜ ๋‹ค์ด์–ด๊ทธ๋žจ : ์†Œํ”„ํŠธ์›จ์–ด, ํ•˜๋“œ์›จ์–ด, ๋„คํŠธ์›Œํฌ๋ฅผ ํฌํ•จํ•œ ์‹คํ–‰ ์‹œ์Šคํ…œ์˜ ๋ฌผ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค

 

 

*** ํ–‰์œ„ ๋‹ค์ด์–ด๊ทธ๋žจ(Behavior Diagram)

- ์œ ์Šค ์ผ€์ด์Šค ๋‹ค์ด์–ด๊ทธ๋žจ : ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ ์‹œ์Šคํ…œ ํ–‰์œ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค

- ํ™œ๋™ ๋‹ค์ด์–ด๊ทธ๋žจ : ์—…๋ฌด ์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋˜๋Š” ๊ณผ์ •์„ ํ‘œํ˜„ํ•œ๋‹ค.

- ์ฝœ๋ผ๋ณด๋ ˆ์ด์…˜ ๋‹ค์ด์–ด๊ทธ๋žจ : ์ˆœ์ฐจ ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๊ฐ™์œผ๋ฉฐ ๋ชจ๋ธ๋ง ๊ณต๊ฐ„์— ์ œ์•ฝ์ด ์—†์–ด ๊ตฌ์กฐ์ ์ธ ๋ฉด์„ ์ค‘์‹œํ•œ๋‹ค.

- ์ƒํƒœ ๋จธ์‹  ๋‹ค์ด์–ด๊ทธ๋žจ : ๊ฐ์ฒด์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

- ์ˆœ์ฐจ ๋‹ค์ด์–ด๊ทธ๋žจ : ์‹œ๊ฐ„ ํ๋ฆ„์— ๋”ฐ๋ผ ๊ฐ์ฒด ์‚ฌ์ด์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ํ‘œํ˜„ํ•œ๋‹ค

- ํ†ต์‹  ๋‹ค์ด์–ด๊ทธ๋žจ : ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ƒํ˜ธ์ž‘์šฉ์„ ํ‘œํ˜„ํ•œ๋‹ค

- ์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ : ์—ฌ๋Ÿฌ ์ƒํ˜ธ์ž‘์šฉ ๋‹ค์ด์–ด๊ทธ๋žจ ์‚ฌ์ด์˜ ์ œ์–ด ํ๋ฆ„์„ ํ‘œํ˜„ํ•œ๋‹ค.

- ํƒ€์ด๋ฐ ๋‹ค์ด์–ด๊ทธ๋žจ : ๊ฐ์ฒด ์ƒํƒœ ๋ณ€ํ™”์™€ ์‹œ๊ฐ„ ์ œ์•ฝ์„ ๋ช…์‹œ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.

 

 

*** UML ๊ด€๊ณ„

- ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„(Generalization) : ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ํฌํ•จํ•˜๋Š” ์ƒ์œ„ ๊ด€์กˆ์ผ ๋•Œ์˜ ๊ด€๊ณ„

- ์—ฐ๊ด€๊ด€๊ณ„(Accociation) : 2๊ฐœ ์ด์ƒ ์‚ฌ๋ฌผ์ด ์„œ๋กœ ๊ด€๋ จ๋œ ๊ด€๊ณ„

- ์˜์กด๊ด€๊ณ„(Dependency) : ์—ฐ๊ด€๊ด€๊ณ„์™€ ๊ฐ™์ด ํ•œ ํด๋ž˜์Šค๊ฐ€ ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ ํ‘œ์‹œ, ์ผ์‹œ์ ์œผ๋กœ

- ์‹ค์ฒดํ™” ๊ด€๊ณ„(Realizatrion) : ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ์˜คํผ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์ง€์ •

- ์ง‘ํ•ฉ ๊ด€๊ณ„ - ์ง‘์•ฝ๊ด€๊ณ„(Aggregation) : ํ•œ ๊ฐ์ฒด๊ฐ€ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์†Œ์œ ํ•˜๋Š” 'has a'๊ด€๊ณ„

- ์ง‘ํ•ฉ ๊ด€๊ณ„ - ํ•ฉ์„ฑ๊ด€๊ณ„(Composition) : ๋ถ€๋ถ„ ๊ฐ์ฒด๊ฐ€ ์ „์ฒด ๊ฐ์ฒด์— ์†ํ•˜๋Š” ๊ด€๊ณ„๋กœ ๊ธด๋ฐ€ํ•œ ํ•„์ˆ˜์  ๊ด€๊ณ„

 

 

 

 


 

 

 

 

***** ๋””์ž์ธ ํŒจํ„ด ์ค‘ ํ–‰์œ„ ํŒจํ„ด

- Mediator : ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์—์„œ ๊ฐ์ฒด ์ˆ˜๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์„œ๋กœ ๊ฐ„ ํ†ต์‹ ์„ ์œ„ํ•ด ๋ณต์žกํ•ด์ ธ์„œ ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋Š์Šจํ•œ ๊ฒฐํ•ฉ์˜ ํŠน์„ฑ์„ ํ•ด์น  ์ˆ˜ ์žˆ๊ธฐ์— ์ค‘๊ฐ„์—์„œ ์ด๋ฅผ ํ†ต์ œํ•˜๊ณ  ์ง€์‹œํ•  ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์˜ ์ค‘์žฌ์ž๋ฅผ ๋‘๊ณ , ์ค‘์žฌ์ž์—๊ฒŒ ๋ชจ๋“  ๊ฒƒ์„ ์š”๊ตฌํ•˜์—ฌ ํ†ต์‹ ์˜ ๋นˆ๋„๋ฅผ ์ค„์—ฌ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ฒŒ ํ•ด์คŒ

- Interpreter : ์–ธ์–ด์˜ ๋‹ค์–‘ํ•œ ํ•ด์„, ๊ตฌ์ฒด์ ์œผ๋กœ ๊ตฌ๋ฌธ์„ ๋‚˜๋ˆ„๊ณ , ๊ทธ ๋ถ„๋ฆฌ๋œ ๊ตฌ๋ฌธ์˜ ํ•ด์„์„ ๋งก๋Š” ํด๋ž˜์Šค๋ฅผ ๊ฐ๊ฐ ์ž‘์„ฑํ•˜์—ฌ ์—ฌ๋Ÿฌ ํ˜•ํƒœ์˜ ์–ธ์–ด ๊ตฌ๋ฌธ์„ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ฌ

- .Iterator : ์ปฌ๋ ‰์…˜ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์„ ๋…ธ์ถœ์‹œํ‚ค์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๊ทธ ์ง‘ํ•ฉ์ฒด ์•ˆ์— ๋“ค์–ด๊ฐ€์žˆ๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์— ์ ‘๊ทผํ•  ๋ฐฉ๋ฒ•์„ ์ œ๊ณต

- Template Method : ์–ด๋–ค ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ผ๋ถ€๋ถ„์„ ์„œ๋ธŒ ํด๋ž˜์Šค๋กœ ์บก์Šํ™”ํ•ด ์ „์ฒด ์ผ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ตฌ์กฐ๋Š” ๋ฐ”๊พธ์ง€ ์•Š์œผ๋ฉด์„œ ํŠน์ • ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‚ด์—ญ์„ ๋ฐ”๊ฟˆ

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

- State : ๊ฐ์ฒด ์ƒํƒœ๋ฅผ ์บก์Šํ™”ํ•˜์—ฌ ํด๋ž˜์Šคํ™”ํ•จ์œผ๋กœ์จ ๊ทธ๊ฒƒ์„ ์ฐธ์กฐํ•˜๊ฒŒ ํ•˜๋Š” ๋ฐฉ์‹

- Visitor : ๊ฐ ํด๋ž˜์Šค ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณ„๋„์˜ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  ํ•ด๋‹น ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ ํด๋ž˜์Šค๋ฅผ ๋Œ์•„๋‹ค๋‹ˆ๋ฉฐ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋งŒ๋“ฆ

- Command : ์‹คํ–‰๋  ๊ธฐ๋Šฅ์„ ์บก์Šํ™”ํ•จ์œผ๋กœ์จ ์ฃผ์–ด์ง„ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์žฌ์‚ฌ์šฉ์ด ๋†’์€ ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„

- Strategy : ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ตฐ์„ ์ •์˜ํ•˜๊ณ (์ถ”์ƒ ํด๋ž˜์Šค)๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฐ๊ฐ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ์บก์Šํ™”ํ•œ ๋‹ค์Œ, ํ•„์š”ํ•  ๋•Œ ์„œ๋กœ ๊ตํ™˜ํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํŒจํ„ด

- Memento : ํด๋ž˜์Šค ์„ค๊ณ„ ๊ด€์ ์—์„œ ๊ฐ์ฒด์˜ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๋•Œ ์ ์šฉํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด

- Chain of Responsibility : ์ •์ ์œผ๋กœ ์–ด๋–ค ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์˜ ์—ฐ๊ฒฐ์ด ํ•˜๋“œ ์ฝ”๋”ฉ์ด ์žˆ์„ ๋•Œ ๊ธฐ๋Šฅ์ฒ˜๋Ÿฌ์˜ ์—ฐ๊ฒฐ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•œ๋ฐ, ์ด๋ฅผ ๋™์ ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐํ•œ ๋””์ž์ธ ํŒจํ„ด

 

 

 

 

์ž…๋ ฅ ๋ฐ์ดํ„ฐ ๊ฒ€์ฆ ๋ฐ ํ‘œํ˜„์— ๋Œ€ํ•œ ์ทจ์•ฝ์ 

- XSS(Cross Site Script) : ๊ฒ€์ฆ๋˜์ง€ ์•Š์€ ์™ธ๋ถ€ ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ์›น ํŽ˜์ด์ง€๊ฐ€ ์ „์†ก๋˜๋Š” ๊ฒฝ์šฐ, ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ์›น ํŽ˜์ด์ง€๋ฅผ ์—ด๋žŒํ•จ์œผ๋กœ์จ ์›น ํŽ˜์ด์ง€์— ํฌํ•จ๋œ ๋ถ€์ ์ ˆํ•œ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ณต๊ฒฉ

- ์‚ฌ์ดํŠธ ๊ฐ„ ์š”์ฒญ ์œ„์กฐ(CSRF) :์‚ฌ์šฉ์ž๊ฐ€ ์ž์‹ ์˜ ์˜์ง€์™€๋Š” ๋ฌด๊ด€ํ•˜๊ฒŒ ๊ณต๊ฒฉ์ž๊ฐ€ ์˜๋„ํ•œ ํ–‰์œ„๋ฅผ ํŠน์ง• ์›น ์‚ฌ์ดํŠธ์— ์š”์ฒญํ•˜๊ฒŒ ํ•˜๋Š” ๊ณต๊ฒฉ

- SQL ์‚ฝ์ž…(Injection) : ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด์„œ ์•…์˜์ ์ธ sql ๊ตฌ๋ฌธ์„ ์‚ฝ์ž…, ์‹คํ–‰์‹œ์ผœ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ ‘๊ทผ์„ ํ†ตํ•ด ์ •๋ณด๋ฅผ ํƒ•์ทจํ•˜๊ฑฐ๋‚˜ ์กฐ์ž‘ ๋“ฑ์„ ํ–‰์œ„ํ•˜๋Š” ๊ณต๊ฒฉ ๊ธฐ๋ฒ•

 

 

 

 

๊ณต๊ฒฉ๊ธฐ๋ฒ• , uml, ๋‹ค์ž์ธ ํŒจํ„ด ๋” ์ •๋ฆฌ...

728x90
๋ฐ˜์‘ํ˜•

'์ž๊ฒฉ์ฆ > ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ  (0) 2024.04.12
728x90
๋ฐ˜์‘ํ˜•

1. ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๊ตฌํ•˜๊ธฐ

 

1๋ฒˆ
IPv4 ์ฃผ์†Œ Aํด๋ž˜์Šค์— ๋Œ€ํ•œ ํ‘œ์ค€ ๋„คํŠธ์›Œํฌ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ๋กœ ์˜ณ์€ ๊ฒƒ์€?

=> ๋‹ต :  255.0.0.0

=> ํ’€์ด :  192. 168. 0. 1
                  A      B   C  D
A ํด๋ž˜์Šค์˜ ํ‘œ์ค€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ : 255.0.0.0
B ํด๋ž˜์Šค์˜ ํ‘œ์ค€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ : 255.255.0.0
C ํด๋ž˜์Šค์˜ ํ‘œ์ค€ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ : 255.255.255.0

 

2๋ฒˆ
๋‹ค์Œ ์ค‘ 192.168.0.1/25๊ฐ€ ์˜๋ฏธํ•˜๋Š” ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๊ฐ’์œผ๋กœ ์•Œ๋งž์€ ๊ฒƒ์€?

=> ๋‹ต : 255.255.255.128

=> ํ’€์ด : /25(์‚ฌ์ด๋‹ค ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ 25๋ผ๋Š” ์˜๋ฏธ)  
255.255.255. ~~~
  8     8     8
Cํด๋ž˜์Šค์˜ ๊ฒฝ์šฐ ์•ž์— ์žˆ๋Š” 24bit๋ฅผ ๋„คํŠธ์›Œํฌ ID๋กœ ์‚ฌ์šฉํ•œ๋‹ค
๋‚˜๋จธ์ง€ ๋’ท๋ถ€๋ถ„์„ ํ˜ธ์ŠคํŠธ ID๋กœ ์‚ฌ์šฉํ•œ๋‹ค
๋‚˜๋จธ์ง€ 1bit๋ฅผ ๋’ค์— ํ˜ธ์ŠคํŠธID์—์„œ ์‚ฌ์šฉํ•˜์—ฌ 10000000 => 128
... ์กฐํ•ฉํ•˜๋ฉด 255.255.255.128

 

++) ์•„๋ž˜ ๋‚ด์šฉ์— ํ•ด๋‹นํ•˜๋Š” ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๊ฐ’์€?
203.76.25.1/26
=> 255.255.255.192

 

3๋ฒˆ
IPv4์˜ Cํด๋ž˜์Šค ๋„คํŠธ์›Œํฌ๋ฅผ 26๊ฐœ์˜ ์„œ๋ธŒ๋„ท์œผ๋กœ ๋‚˜๋ˆ„๊ณ , ๊ฐ ์„œ๋ธŒ๋„ท์—๋Š” 4~5๊ฐœ์˜ ํ˜ธ์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ํ•œ๋‹ค.
์ด๋Ÿฌํ•œ ์„œ๋ธŒ๋„ท์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ ๊ฐ’์€?

=> ๋‹ต :  255.255.255.248

=> ํ’€์ด :  1bit๋ฅผ ๊ฐ€์ง€๊ณ ๋Š” 2๊ฐœ์˜ ํšŒ์‚ฌ์—, 2bit๋Š” 4๊ฐœ, 3์€ 8๊ฐœ, 4๋Š” 16๊ฐœ...5bit๋ฅผ ๊ฐ€์ง€๊ณ ๋Š” 32๊ฐœ๋กœ ๋‚˜๋ˆŒ์ˆ˜ ์žˆ์–ด์„œ
                26๊ฐœ์˜ ์„œ๋ธŒ๋„ท์„ ๋ชจ๋‘ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค
          
11111000 => 128 + 64 + 32 + 16 + 8 = 248์ด๋ฏ€๋กœ ๋‹ต์€ 255.255.255.248

 

4๋ฒˆ
ํด๋ž˜์Šค B์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์„œ๋ธŒ๋„ท ๋งˆ์Šคํฌ 255.255.255.240์œผ๋กœ ์„œ๋ธŒ๋„ท์„ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์„œ๋ธŒ๋„ท์˜ ์ˆ˜์™€ ํ˜ธ์ŠคํŠธ์˜ ์ˆ˜๊ฐ€ ๋งž๊ฒŒ ์ง์ง€์–ด์ง„ ๊ฒƒ์€?

=> ๋‹ต : ์„œ๋ธŒ๋„ท ์ˆ˜ : 4094 / ํ˜ธ์ŠคํŠธ ์ˆ˜ : 14

=> ํ’€์ด :์„œ๋ธŒ๋„ท : ๋ช‡๊ฐœ๋กœ ๋‚˜๋ˆŒ๊ฑด์ง€ / ํ˜ธ์ŠคํŠธ : ๋ช‡๊ฐœ์˜ ip๋ฅผ ํ• ๋‹น๋ฐ›์„ ์ˆ˜ ์žˆ๋Š”์ง€

255.255.255.240 => 1*8. 1*8. 1*8.11110000

์„œ๋ธŒ๋„ท : 2์˜ 12์Šน : 4094
ํ˜ธ์ŠคํŠธ : 2์˜ 4์Šน -2 : 14

 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด

  • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ฐœ์š”
  • ์—”ํ„ฐํ‹ฐ
  • ์†์„ฑ
  • ๊ด€๊ณ„ with ERD
  • ์‹๋ณ„์ž
  • ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
  • ์ •๊ทœํ™”
  • ๋ฐ˜์ •๊ทœํ™”
  • ๊ธฐํƒ€ ๋ง๋ฌธ์ œ ๊ฐœ๋… ์ •๋ฆฌ

 

1) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ํŠน์ง•

  • ์ถ”์ƒํ™” : ํ˜„์‹ค ์„ธ๊ณ„๋ฅผ ์ผ์ •ํ•œ ํ˜•์‹์— ๋งž์ถฐ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•จ
  • ์ •ํ™•ํ™” : ๋ˆ„๊ตฌ๋‚˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜„์ƒ์„ ๊ธฐ์ˆ 
  • ๋‹จ์ˆœํ™” : ๋ณต์žกํ•œ ํ˜„์‹ค์„ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์ œํ•œ๋œ ์–ธ์–ด์™€ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•จ
    >>> ํ˜„์‹ค์„ธ๊ณ„๋ฅผ ๋‹จ์ˆœํ•˜๊ฒŒ ์ถ”์ƒํ™”ํ•˜์—ฌ ์ •ํ™•ํ•˜๊ฒŒ ๊ณต์œ ํ•˜๋Š” ์ž‘์—…์ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง!!
  • ์ •๋ณด์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ์—…๋ฌด ๋ถ„์„ ๊ธฐ๋ฒ•
  • ํ˜„์‹ค์„ธ๊ณ„์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•œ ๋ถ„์„๊ณผ ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ๊ณผ์ •

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์œ ์˜์‚ฌํ•ญ

  • ์ค‘๋ณต์„ฑ :  ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•ด์•ผ ํ•จ(๊ฐ™์€ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ์ง€์–‘)
  • ๋น„์œ ์—ฐ์„ฑ : ๋ฐ์ดํ„ฐ์˜ ์ •์˜ <=> ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ํ”„๋กœ์„ธ์Šค, ํ”„๋กœ๊ทธ๋žจ <=> ํ…Œ์ด๋ธ” ๊ฐ„์˜ ์—ฐ๊ณ„์„ฑ์„ ์ค„์—ฌ์„œ, 
             ๋ฐ์ดํ„ฐ ํ˜น์€ ํ”„๋กœ์„ธ์Šค์˜ ๋ณ€ํ™”๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ค‘๋Œ€ํ•œ ๋ณ€ํ™”๋ฅผ ์ดˆ๋ž˜ํ•˜์ง€ ์•Š๋„๋ก ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•ด์•ผ ํ•จ
  • ๋น„์ผ๊ด€์„ฑ : '์•ฝ์†๋œ ํ‘œ๊ธฐ๋ฒ•'์„ ์ค€์šฉํ•˜๋Š” ๋“ฑ ์—…๋ฌด๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ํ•ด์„œ ์ •๋ณด ๊ด€๋ฆฌ์˜ ์ผ๊ด€์„ฑ์„ ์ตœ๋Œ€ํ™” ํ•ด์•ผํ•จ

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๋‹จ๊ณ„

  • ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’์Œ, ์ „์‚ฌ์  ๋ชจ๋ธ๋ง ์‹œ ๋งŽ์ด ํ•จ, ํฌ๊ด„์  ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง
  • ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : Key, ์†์„ฑ, ๊ด€๊ณ„ ๋“ฑ์„ ์ •ํ™•ํžˆ ๊ธฐ์ˆ ํ•˜๋Š” ๋ชจ๋ธ๋ง
  • ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ด์‹ ๊ฐ€๋Šฅํ•˜๋„๋ก ์ €์žฅ, ์„ฑ๋Šฅ ๋“ฑ ๋ฌผ๋ฆฌ์ ์ธ ํŠน์„ฑ์„ ๊ณ ๋ คํ•œ ๋ชจ๋ธ๋ง

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ ๊ตฌ์กฐ 3๋‹จ๊ณ„

  • ์™ธ๋ถ€์Šคํ‚ค๋งˆ : [์‚ฌ์šฉ์ž ๊ด€์ ] ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž ๊ด€์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ •์˜ํ•˜๋Š” ๊ตฌ์กฐ
  • ๊ฐœ๋…์Šคํ‚ค๋งˆ : [ํ†ตํ•ฉ ๊ด€์ ] ๋ชจ๋“  ์‚ฌ์šฉ์ž์˜ ๊ด€์ ์„ ํ†ตํ•ฉํ•œ ์กฐ์ง ์ „์ฒด์˜ ๊ด€์ ์˜ ํ†ตํ•ฉ์  ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๊ตฌ์กฐ
  • ๋‚ด๋ถ€์Šคํ‚ค๋งˆ : [๊ฐœ๋ฐœ์ž ๊ด€์ ] ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ €์žฅํ•  ๊ฒƒ์ธ์ง€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฌผ๋ฆฌ์  ์ €์žฅ ๊ตฌ์กฐ

 

๋ฐ์ดํ„ฐ์˜ ๊ตฌ์„ฑ

 

์—”ํ„ฐํ‹ฐ(Entity) ์ค‘์š”!!!

  • ํ•ด๋‹น ์—…๋ฌด์—์„œ ํ•„์š”ํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ์ •๋ณด์—ฌ์•ผ ํ•จ
  • ์œ ์ผํ•œ ์‹๋ณ„์ž์— ์˜ํ•ด ์‹๋ณ„์ด ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ (ex ํšŒ์› ํ…Œ์ด๋ธ” ์ƒ ๊ณ ๊ฐ๋ฒˆํ˜ธ)
  • ํ•˜๋‚˜์˜ ์—”ํ„ฐํ‹ฐ๋Š” ๋ฐ˜๋“œ์‹œ 2๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ
  • ํ•˜๋‚˜์˜ ์—”ํ„ฐํ‹ฐ๋Š” ๋ฐ˜๋“œ์‹œ ์†์„ฑ์ด ์žˆ์–ด์•ผ ํ•จ (2๊ฐœ ์ด์ƒ)
  • ํ•˜๋‚˜์˜ ์—”ํ„ฐํ‹ฐ๋Š” ๋ฐ˜๋“œ์‹œ 1๊ฐœ ์ด์ƒ์˜ ๊ด€๊ณ„๊ฐ€ ์žˆ์–ด์•ผ ํ•จ (ํ†ต๊ณ„์„ฑ, ์ฝ”๋“œ์„ฑ ์—”ํ„ฐํ‹ฐ ์ œ์™ธ)

 

- ๋ฐœ์ƒ ์‹œ์ ์— ๋”ฐ๋ฅธ ์—”ํ„ฐํ‹ฐ ๋ถ„๋ฅ˜

  • ๊ธฐ๋ณธ์—”ํ„ฐํ‹ฐ : ๋…๋ฆฝ์  ์ƒ์„ฑ๋˜๋Š” ์—”ํ„ฐํ‹ฐ
  • ์ค‘์‹ฌ์—”ํ„ฐํ‹ฐ : ๊ธฐ๋ณธ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•˜๊ณ  ํ–‰์œ„ ์—”ํ„ฐํ‹ฐ๋ฅผ ์ƒ์„ฑํ•จ
  • ํ–‰์œ„์—”ํ„ฐํ‹ฐ : ๊ธฐ๋ณธ, ์ค‘์‹ฌ ์—”ํ„ฐํ‹ฐ ๋“ฑ 2๊ฐœ ์ด์ƒ์˜ ์—”ํ„ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ๋ฐœ์ƒํ•จ

 

- ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ์— ๋”ฐ๋ฅธ ์—”ํ„ฐํ‹ฐ ๋ถ„๋ฅ˜

  • ์œ ํ˜•์—”ํ„ฐํ‹ฐ : ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ๊ฐ€ ์žˆ๋Š” ์—”ํ„ฐํ‹ฐ
  • ๊ฐœ๋…์—”ํ„ฐํ‹ฐ : ๋ฌผ๋ฆฌ์  ํ˜•ํƒœ๋Š” ์—†์ง€๋งŒ ๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ฐœ๋…์  ์ •๋ณด
  • ์‚ฌ์ „์—”ํ„ฐํ‹ฐ : ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค ์ค‘ ์ƒ๊ธฐ๋Š” ์—”ํ„ฐํ‹ฐ

 

 

์†์„ฑ(Column)

  • ์ธ์Šคํ„ด์Šค์—์„œ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ๋” ์ด์ƒ ๋ถ€๋ฆฌ๋˜์ง€ ์•Š๋Š” ์ตœ์†Œ์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„
  • 1๊ฐœ์˜ ์†์„ฑ์€ 1๊ฐœ์˜ ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง„๋‹ค
  • ๊ธฐ๋ณธ์†์„ฑ / ์„ค๊ณ„์†์„ฑ / ํŒŒ์ƒ์†์„ฑ
    - ์„ค๊ณ„ ์†์„ฑ : ์ฝ”๋“œ์„ฑ ์ปฌ๋Ÿผ, ์ผ๋ จ๋ฒˆํ˜ธ ๋“ฑ ๊ทœ์น™ํ™”๋ฅผ ์œ„ํ•œ ์†์„ฑ
    - ํŒŒ์ƒ ์†์„ฑ : ๊ณ„์‚ฐ๋œ ๊ฐ’ (ํ…Œ์ด๋ธ” ๋‚ด์— ์ ์„์ˆ˜๋ก ์ข‹์Œ)
    - ๊ธฐ๋ณธ ์†์„ฑ : ์—…๋ฌด์ƒ ๋ฐ”๋กœ ์ •์˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ์†์„ฑ(์ด๋ฆ„, ๊ณ„์ขŒ๋ฒˆํ˜ธ, ์ฃผ๋ฌธ์ผ์ž..)

 

EX) ์€ํ–‰์€ ๊ณ ๊ฐ์—๊ฒŒ ์ง€๊ธ‰๋˜๋Š” ์›”๋‹จ์œ„ '์ด์ž'๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ด๋•Œ ์ด์ž๋Š” ์–ด๋–ค ์†์„ฑ์ผ๊นŒ? ํŒŒ์ƒ์†์„ฑ

ex) ๊ทธ๋ ‡๋‹ค๋ฉด, ์˜ˆ๊ธˆ ๋ถ„๋ฅ˜์— ๋”ฐ๋ผ ๊ด€๋ฆฌ๋˜๋Š” '์ด์ž์œจ'์€ ์–ด๋–ค ์†์ƒ์ผ๊นŒ? ๊ธฐ๋ณธ์†์„ฑ

 

  • ๊ฐ ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ์†์„ฑ์˜ '๋„๋ฉ”์ผ'์ด๋ผ๊ณ  ํ•จ (๋ฐ์ดํ„ฐ ํƒ€์ž…, ํฌ๊ธฐ, ์ œ์•ฝ์‚ฌํ•ญ ๋“ฑ ์ง€์ •)
    ex) ์€ํ–‰๊ณ„์ขŒ ๋ผ๋Š” ์—”ํ„ฐํ‹ฐ๊ฐ€ ์žˆ์„ ๋•Œ, ๊ณ„์ขŒ๋ช…์ด๋ผ๋Š” ์†์„ฑ์€ ๊ธธ์ด๊ฐ€ 20์ž๋ฆฌ ์ด๋‚ด์˜ ๋ฌธ์ž์—ด๋กœ ์ •์˜

 

๊ด€๊ณ„ with ERD(Entity-Relationship Model)

  • ํ•˜๋‚˜์˜ ์—”ํ„ฐํ‹ฐ๋Š” 1๊ฐœ ์ด์ƒ์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ ธ์•ผ ํ•จ(ํ†ต๊ณ„์„ฑ, ์ฝ”๋“œ์„ฑ ์—”ํ„ฐํ‹ฐ ์ œ์™ธ)
  • ๊ด€๊ณ„์˜ ๊ตฌ๋ถ„ : ํ–‰์œ„์— ์˜ํ•œ ๊ด€๊ณ„, ์กด์žฌ์— ์˜ํ•œ ๊ด€๊ณ„
    >> ERD ์—์„œ๋Š” ๋‘ ๊ด€๊ณ„๋ฅผ ๊ตฌ๋ถ„์—†์ด ๋™์ผํ•œ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ํ‘œํ˜„ํ•จ
    (๋‹จ, ํด๋ž˜์Šค๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ๋Š” ๊ตฌ๋ถ„ํ•˜์—ฌ ์—ฐ๊ด€๊ด€๊ณ„์™€ ์˜์กด๊ด€๊ณ„๋กœ ์‹ค์„ ๊ณผ ์ ์„ ์˜ ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ๋‹ค๋ฅด๊ฒŒ ํ‘œํ˜„ํ•จ)

 

* ๋‘ ๊ฐœ์˜ ์—”ํ„ฐํ‹ฐ ์‚ฌ์ด์—์„œ ๊ด€๊ณ„๋ฅผ ๋„์ถœํ•  ๋•Œ ์ฒดํฌํ•ด์•ผ ํ•˜๋Š” ์‚ฌํ•ญ

  • ๊ด€์‹ฌ์žˆ๋Š” ์—ฐ๊ด€๊ทœ์น™ ์—ฌ๋ถ€
  • ์ •๋ณด์˜ ์กฐํ•ฉ ์—ฌ๋ถ€
  • ์—…๋ฌด๊ธฐ์ˆ ์„œ, ์žฅํ‘œ์— ๊ด€๊ณ„์—ฐ๊ฒฐ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๋™์‚ฌ ์—ฌ๋ถ€
  • ์—…๋ฌด๊ธฐ์ˆ ์„œ, ์žฅํ‘œ์— ๊ด€๊ณ„์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ๊ทœ์น™ ์„œ์ˆ  ์—ฌ๋ถ€

 

* ERD ์ž‘์„ฑ์ˆœ์„œ

1) ์—”ํ„ฐํ‹ฐ ๋„์ถœ & ๊ทธ๋ฆฌ๊ธฐ

2) ์—”ํ„ฐํ‹ฐ ๋ฐฐ์น˜(๊ฐ€์žฅ ์ค‘์š”ํ•œ ์—”ํ„ฐํ‹ฐ๋ฅผ ์ขŒ์ธก ์ƒ๋‹จ์— ๋ฐฐ์น˜, ์ถ”๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์—”ํ„ฐํ‹ฐ๋Š” ์šฐ์ธก๊ณผ ํ•˜๋‹จ์— ๋ฐฐ์น˜)

 

3) ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •

4) ์—”ํ„ฐํ‹ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ช… ๊ธฐ์ˆ 

 

์‹๋ณ„๊ด€๊ณ„์™€ ๋น„์‹๋ณ„๊ด€๊ณ„!!!

 

5) ๊ด€๊ณ„์˜ ์ฐธ์—ฌ๋„ ๊ธฐ์ˆ (1:1, 1:N, M:N)

6) ๊ด€๊ณ„์˜ ํ•„์ˆ˜์—ฌ๋ถ€ ๊ธฐ์ˆ (ํ•„์ˆ˜์  ๊ด€๊ณ„ : I, ์„ ํƒ์  ๊ด€๊ณ„ : O)

 

 

์‹๋ณ„์ž ๊ตฌ๋ถ„

 

๋Œ€ํ‘œ์„ฑ ์—ฌ๋ถ€

  • ์ฃผ์‹๋ณ„์ž : ์œ ์ผ์„ฑ, ์ตœ์†Œ์„ฑ, ๋Œ€ํ‘œ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์‹๋ณ„์ž์ด๋ฉฐ ํƒ€ ์—”ํ„ฐํ‹ฐ์™€ ์ฐธ์กฐ ๊ด€๊ณ„๋กœ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋‹ค.(Primary Key)
  • ๋ณด์กฐ์‹๋ณ„์ž : ์œ ์ผ์„ฑ, ์ตœ์†Œ์„ฑ์€ ๋งŒ์กฑํ•˜์ง€๋งŒ ๋Œ€ํ‘œ์„ฑ์„ ๊ฐ–์ง€ ๋ชปํ•˜๋Š” ์‹๋ณ„์ž์ด๋‹ค.

์†์„ฑ์˜ ์ˆ˜

  • ๋‹จ์ผ ์‹๋ณ„์ž
  • ๋ณตํ•ฉ ์‹๋ณ„์ž : 2๊ฐธ ์ด์ƒ์˜ ์†์„ฑ์„ ๊ตฌ์„ฑ๋œ ์‹๋ณ„์ž

 

 

์Šค์Šค๋กœ ์ƒ์„ฑ ์—ฌ๋ถ€

  • ๋‚ด๋ถ€ ์‹๋ณ„์ž : ์—”ํ„ฐํ‹ฐ ๋‚ด์—์„œ ์ƒ์„ฑ๋œ ์‹๋ณ„์ž
  • ์™ธ๋ถ€ ์‹๋ณ„์ž : ํƒ€ ์—”ํ„ฐํ‹ฐ์™€์˜ ๊ด€๊ณ„๋ฅผ ํ†ตํ•ด ๋ฐ›์•„์˜ค๋Š” ์‹๋ณ„์ž(Foreign Key)

๋Œ€์ฒด ์—ฌ๋ถ€

  • ๋ณธ์งˆ ์‹๋ณ„์ž : ์—…๋ฌด์— ์˜ํ•ด ๋งŒ๋“ค์–ด์ง€๋Š” ์‹๋ณ„์ž
  • ์ธ์กฐ ์‹๋ณ„์ž : ๋ณต์žกํ•œ ์›์กฐ ์‹๋ณ„์ž ๋Œ€์‹ ์— ์ธ์œ„์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์‹๋ณ„์ž(ex. ์ผ๋ จ๋ฒˆํ˜ธ)

 

์ฃผ์‹๋ณ„์ž

  • ์œ ์ผ์„ฑ : ์ฃผ์‹๋ณ„์ž์— ์˜ํ•ด ์—”ํ„ฐํ‹ฐ ์† ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋“ค์ด ์œ ์ผํ•˜๊ฒŒ ๊ตฌ๋ถ„๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • ์ตœ์†Œ์„ฑ : ์ฃผ์‹๋ณ„์ž๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์†์„ฑ์˜ ์ˆ˜๋Š” ์œ ์ผ์„ฑ์„ ๋งŒ์กฑํ•˜๋Š” ์ตœ์†Œ์˜ ์ˆ˜๊ฐ€ ๋˜์–ด์•ผ ํ•จ
  • ๋ถˆ๋ณ€์„ฑ : ์ง€์ •๋œ ์ฃผ์‹๋ณ„์ž์˜ ๊ฐ’์€ ์ž์ฃผ ๋ณ€ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด์–ด์•ผ ํ•จ
  • ์กด์žฌ์„ฑ : ์ฃผ์‹๋ณ„์ž๊ฐ€ ์ง€์ •๋˜๋ฉด ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ์žˆ์–ด์•ผ ํ•จ(NULL)

 

2) ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๊ณผ ์„ฑ๋Šฅ

 

์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๋ถ„์„/์„ค๊ณ„ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์„ฑ๋Šฅ๊ณผ ๊ด€๋ จ๋œ ์‚ฌํ•ญ์ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ฆฌ์— ๋ฐ˜์˜๋˜๋„๋ก ํ•˜๋Š” ๊ฒƒ
  • ๋ฐ์ดํ„ฐ์˜ ์ฆ๊ฐ€๊ฐ€ ๋น ๋ฅผ์ˆ˜๋ก ์„ฑ๋Šฅ ๊ฐœ์„  ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•จ
  • ์„ค๊ณ„๋‹จ๊ณ„๋ถ€ํ„ฐ ๊ณ ๋ คํ•  ์…ฉ์šฐ ๋น„์šฉ ์ตœ์†Œํ™”๊ฐ€ ๊ฐ€๋Šฅํ•จ

 

์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ˆœ์„œ

  1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์‹œ ์ •๊ทœํ™”๋ฅผ ์ •ํ™•ํžˆ ์ˆ˜ํ–‰ํ•จ
  2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์šฉ๋Ÿ‰์„ ์‚ฐ์ •ํ•จ
  3. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐœ์ƒํ•˜๋Š” ํŠธ๋žœ์žญ์…˜ ์œ ํ˜•์„ ํŒŒ์•…ํ•จ
  4. ์šฉ๋Ÿ‰๊ณผ ํŠธ๋žœ์žญ์…˜์˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•จ
  5. ์ด๋ ฅ๋ชจ๋ธ, PK/FK ์กฐ์ •, ์Šˆํผํƒ€์ž…/์„œ๋ธŒํƒ€์ž… ์กฐ์ •์„ ์ˆ˜ํ–‰ํ•จ

 

์ •๊ทœํ™”๋ž€?

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ•ดํ•˜๋Š” ๊ณผ์ •
  • ๋ชฉ์  : ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์œ ์—ฐ์„ฑ์„ ๊ฐ€์ง€๋ฉฐ, ๋ณ€๊ฒฝ์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ๋ฐ์ดํ„ฐ๊ฐ€ ์ผ๊ด€๋  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ์ œ 1~5 ์ •๊ทœํ™”๊ฐ€ ์žˆ์ง€๋งŒ, ์ฃผ๋กœ 1~3 ์ •๊ทœํ™”๊นŒ์ง€ ์ˆ˜ํ–‰ํ•จ

 

* ์ œ1์ •๊ทœํ™”

  • ๊ธฐ๋ณธํ‚ค๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ณผ์ •
  • ์†์„ฑ์˜ ์›์ž์„ฑ๊ณผ ์—”ํ„ฐํ‹ฐ์˜ ์œ ์ผ์„ฑ์„ ํ™•๋ณดํ•จ
  • ๋ชจ๋“  ์†์„ฑ์ด ์‹๋ณ„์ž์— ์ข…์†๋˜์–ด์•ผ ํ•จ
    X๊ฐ€ ๋ณ€ํ•˜๋ฉด Y๊ฐ€ ๋ณ€ํ•œ๋‹ค(T๋Š” X์— ํ•จ์ˆ˜์ ์œผ๋กœ ์ข…์†๋จ)
    ์‹๋ณ„์ž๊ฐ€ ๋ณ€ํ•˜๋ฉด ์†์„ฑ์ด ๋ณ€ํ•จ
  • ์†์„ฑ๊ฐ’์˜ ์ค‘๋ณต ์—ฌ๋ถ€ ์ฒดํฌ! (๋‹จ์ผ -> ๋ณตํ•ฉ ์ˆœ)

๋งค์žฅ ์ฝ”๋“œ์™€ ๋ฉ”๋‰ด ์ฝ”๋“œ์— ๋”ฐ๋ผ ๊ฐ€๊ฒฉ์ด ๋ณ€๋™๋˜๋ฏ€๋กœ ๋งค์žฅ ์ฝ”๋“œ์™€ ๋ฉ”๋‰ด์ฝ”๋“œ๋ฅผ ์‹๋ณ„์ž๋กœ ์„ ์ •

 

* ์ œ2์ •๊ทœํ™”

  • ๊ธฐ๋ณธํ‚ค๊ฐ€ 2๊ฐœ ์ด์ƒ์œผ๋กœ ๊ตฌ์„ฑ๋  ๊ฒฝ์šฐ ์ˆ˜ํ–‰ํ•จ
  • ๋ชจ๋“  ์†์„ฑ(์ง€์—ญ๋ช…, ์ ์ฃผ๋ช…, ๋ฉ”๋‰ด๋ช…, ์ถœ์‹œ์ผ, ๊ฐ€๊ฒฉ)์ด ์‹๋ณ„์ž์— ์ข…์†ํ•ด์•ผํ•˜๋ฉฐ, ์•„๋‹ˆ๋ฉด ๋ถ„ํ•ดํ•ด์•ผ ํ•จ
  • ๋ถ€๋ถ„ํ•จ์ˆ˜ ์ข…์†์„ฑ์„ ๋ถ„ํ•ดํ•จ
  • ์ฃผ์‹๋ณ„์ž ์ค‘ ์ผ๋ถ€๋กœ๋ถ€ํ„ฐ ๋…๋ฆฝํ•˜์—ฌ 1:M ์˜ ๊ด€๊ณ„๋กœ ์žฌ์„ค๊ณ„

 

* ์ œ 3์ •๊ทœํ™”

  • ๊ธฐ๋ณธํ‚ค ์™ธ์— ์ปฌ๋Ÿผ๊ฐ„ ์ข…์†์„ฑ์„ ์ œ๊ฑฐํ•จ
  • ์ดํ–‰ ํ•จ์ˆ˜ ์ข…์†์„ฑ ์ œ๊ฑฐ

 

๋ฐ˜์ •๊ทœํ™”

  • ์ •๊ทœํ™”๋ฅผ ํ–ˆ์„ ๋•Œ ์„ฑ๋Šฅ์ด ๋”์šฑ ์•…ํ™”๋  ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜๊ณ  ์กฐ์ธ์„ ์ค„์—ฌ์„œ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•

 

๋ฐ˜์ •๊ทœํ™” ๊ธฐ๋ฒ•(์ปฌ๋Ÿผ & ํ…Œ์ด๋ธ”)

* ์ปฌ๋Ÿผ ์ถ”๊ฐ€ - ์ค‘๋ณต ์ปฌ๋Ÿผ ์ถ”๊ฐ€, ํŒŒ์ƒ์ปฌ๋Ÿผ ์ถ”๊ฐ€(ex. ๊ณ„์‚ฐ๋œ ์ปฌ๋Ÿผ), ์ด๋ ฅํ…Œ์ด๋ธ” ์ปฌ๋Ÿผ ์ถ”๊ฐ€, PK์— ์˜ํ•œ ์นผ๋Ÿผ ์ถ”๊ฐ€ ๋“ฑ

ex) ์ค‘๋ณต ์ปฌ๋Ÿผ ์ถ”๊ฐ€
      A ํ…Œ์ด๋ธ”์— ์žˆ๋Š” a, b ์ •๋ณด๋ฅผ ์กฐํšŒํ•  ๋•Œ, C ํ…Œ์ด๋ธ”์˜ c ์ •๋ณด์™€ D ํ…Œ์ด๋ธ”์˜ d์ •๋ณด๋ฅผ ๋Š˜ ํ•จ๊ป˜ ์กฐํšŒํ•œ๋‹ค๋ฉด?

     >>> ๊ณผ๋„ํ•œ ์กฐ์ธ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด A ํ…Œ์ด๋ธ”์— c, d ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์กฐํšŒ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚จ๋‹ค.

 

ex) ํŒŒ์ƒ์ปฌ๋Ÿผ ์ถ”๊ฐ€

      ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”์„ JOINํ•ด์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ •๋ณด ๊ฐ’์ด ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด?

      >>> ๋ฏธ๋ฆฌ ๊ณ„์‚ฐ๋œ ์ปฌ๋Ÿผ์„ ์ถ”๊ฐ€ํ•ด๋‘”๋‹ค. ex) SUM(๋‹จ๊ธฐ)

 

 

* ํ…Œ์ด๋ธ” ๋ณ‘๋ฐฅ / ํ…Œ์ด๋ธ” ๋ถ„ํ•  / ํ…Œ์ด๋ธ” ์ถ”๊ฐ€

  • ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ : 1:1๊ด€๊ณ„ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ, 1:M ๊ด€๊ณ„ ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ, ์Šˆํผ/์„œ๋ธŒํƒ€์ž… ํ…Œ์ด๋ธ” ๋ณ‘ํ•ฉ
    * ์Šˆํผ ํƒ€์ž…(ํšŒ์›œ) <=> ์„œ๋ธŒ ํƒ€์ž…(๊ฐœ์ธํšŒ์›, ๋ฒ•์ธํšŒ์›)
  • ํ…Œ์ด๋ธ” ๋ถ„ํ• 
    * ์ˆ˜์ง๋ถ„ํ•  : [a, b, c, d] ์ปฌ๋Ÿผ -> [a,b] [c,d] ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณด๊ด€
    * ์ˆ˜ํ‰๋ถ„ํ•  : ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ…Œ์ด๋ธ” ๋ถ„ํ• (Partition ๊ธฐ๋ฒ•)
    ex. ๋ฉ”์ผ ์Œ’์ด๋Š” ๊ณ ๊ฐ๋ณ„ ์œ„์น˜ ์ •๋ณด๋ฅผ ํ•œ ํ…Œ์ด๋ธ”์— ๋„ฃ์–ด๋‘๋ฉด ์—‘์„ธ์Šค ๋ฒ”์œ„๊ฐ€ ๋„“์Œ -> ์—ฐ๋„๋ณ„๋กœ ์ชผ๊ฐœ์„œ ์ €์žฅ
  • ํ…Œ์ด๋ธ” ์ถ”๊ฐ€ : ์ค‘๋ณตํ…Œ์ด๋ธ”, ํ†ต๊ณ„ํ…Œ์ด๋ธ”, ์ด๋ ฅํ…Œ์ด๋ธ”, ๋ถ€๋ถ„ํ…Œ์ด๋ธ”

 

๊ธฐํƒ€ ์„ฑ๋Šฅ๊ด€๋ จ ๋ง๋ฌธ์ œ ๊ฐœ๋… ์ •๋ฆฌ

 

1. ํ•œ ํ…Œ์ด๋ธ”์— ๋„ˆ๋ฌด ๋งŽ์€ ์นผ๋Ÿผ์ด ์กด์žฌํ•˜๋ฉฐ ๋กœ์šฐ์ฒด์ด๋‹˜์ด ๋ฐœ์ƒํ•˜๋Š” ๋“ฑ ์กฐํšŒ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด
=> ํŠธ๋žœ์žญ์…˜์ด ์ ‘๊ทผํ•˜๋Š” ์ปฌ๋Ÿผ ์œ ํ˜•์„ ๋ถ„์„ํ•ด ํ…Œ์ด๋ธ”์„ ๋ถ„๋ฆฌํ•˜๋ฉด, ๋””์Šคํฌ I/O๊ฐ€ ์ค„์–ด์„œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ๋‹ค.

2. WHERE๋ฌธ์„ ํ†ตํ•ด ์กฐํšŒ๋ฅผ ํ•  ๋•Œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” PK ์ˆœ์œผ๋กœ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ์ธ๋ฑ์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์— ์œ ๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค
ex) WHERE ์ง€์—ญ๋ช… = '์„œ์šธ' AND ์ถœ์‹œ์ผ BETWEEN '20220101' AND '20220331'
-> (1) ์ƒ์ˆ˜๊ฐ’์œผ๋กœ ์กฐํšŒํ•˜๋Š” PK(2) ๋ฒ”์œ„๋กœ ์กฐํšŒํ•˜๋Š” PK ์ˆœ
-> ์•ž์ชฝ์— ์œ„์น˜ํ•œ ์†์„ฑ์˜ ๊ฐ’์ด ๊ฐ€๊ธ‰์  '=', ์ตœ์†Œํ•œ ๋ฒ”์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 'BETWEEN', '<' '>'๊ฐ€ ๋“ค์–ด์™€์•ผ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

3. ํŠธ๋žœ์žญ์…˜์˜ ํ†ตํ•ฉ / ๊ฐœ๋ณ„ ์ฒ˜๋ฆฌ ์ผ€์ด์Šค
- ๋ฐ์ดํ„ฐ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ผ๊ด„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ…Œ์ด๋ธ”์ด ๋ถ„๋ฆฌ๋˜์–ด ๊ฐœ๋ณ„๋กœ ๊ด€๋ฆฌํ•˜๋ฉด ์˜คํžˆ๋ ค ์—ฐ์‚ฐ๋Ÿ‰์„ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๊ณ 
- ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐœ๋ณ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ…Œ์ด๋ธ”์€ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉ๋˜์–ด ๊ด€๋ฆฌํ•˜๋ฉด ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋งŽ์€ ๋ฐ์ดํ„ฐ์˜ ์ง‘์ ์œผ๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Œ
-> ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•ฉํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋ฉด ํ†ตํ•ฉํ•ด๋‘๋Š” ๊ฒƒ์ด ์„ฑ๋Šฅ์— ์ข‹๊ณ , ๊ฐœ๋ณ„๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉด ๊ฐœ๋ณ„๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค

 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

 

1) JOIN : ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ฒฐํ•ฉ / ์ง‘ํ•ฉ๊ณผ ์œ ์‚ฌํ•จ!

*๊ต์ง‘ํ•ฉ & ํ•ฉ์ง‘ํ•ฉ 

  • INNER JOIN
  • LEFT (OUTER) JOIN
  • RIGHT (OUTER) JOIN
  • (FULL) OUTER JOIN

 

* ํ•ฉ์ง‘ํ•ฉ

- UNION (ALL)

 

* ์ฐจ์ง‘ํ•ฉ

- MINUS (#orable) = EXCEPT (#SQL Server)

 

* ๊ฒฐํ•ฉ๋˜๋Š” ๋Œ€์ƒ๊ฐ„์˜ ์ผ์น˜ ์ •๋„

- EQUI ์กฐ์ธ <> non-EQUI ์กฐ์ธ

 

* ์กฐ๊ฑด๊ตฌ ์—†๋Š” CROSS JOIN(์ƒํ˜ธ ๊ฒฐํ•ฉ)

 

INNER JOIN

์™„์ „ํ•œ ๊ต์ง‘ํ•ฉ๋งŒ ๊ฐ€์ ธ์˜ฌ ๋–„ INNER JOIN์„ ์‚ฌ์šฉํ•œ๋‹ค

 

INNER JOIN ํ‘œํ˜„ ๋ฐฉ์‹ 2๊ฐ€์ง€

1๋ฒˆ
SELECT A.*, B.์—ฐ๋ น
FROM GENDER A INNER JOIN AGE B
         ON A.ํšŒ์›์ฝ”๋“œ = B.ํšŒ์›์ฝ”๋“œ
WHERE A.์„ฑ๋ณ„ = 'F';

2๋ฒˆ.
SELECT A.*, B.์—ฐ๋ น
FROM GENDER A, AGE B
WHERE A.ํšŒ์›์ฝ”๋“œ = B.ํšŒ์›์ฝ”๋“œ
           AND A.์„ฑ๋ณ„ = 'F';

 

 

LEFT (OUTER) JOIN

 

 

LEFT (OUTER) JOIN ํ‘œํ˜„๋ฐฉ์‹ 2๊ฐ€์ง€

1๋ฒˆ
SELECT A.*, B.์—ฐ๋ น
FROM GENDER A LEFT JOIN AGE B
        ON A.ํšŒ์›์ฝ”๋“œ = B.ํšŒ์›์ฝ”๋“œ;

2๋ฒˆ
SELECT A.*, B.์—ฐ๋ น
FROM GENDER A, AGE B
WHERE A.ํšŒ์›์ฝ”๋“œ = B.ํšŒ์›์ฝ”๋“œ(+);

 

 

RIGHT (OUTER) JOIN

 

 

RIGHT (OUTER) JOIN ํ‘œํ˜„๋ฐฉ์‹ 2๊ฐ€์ง€

1๋ฒˆ
SELECT B.ํšŒ์›์ฝ”๋“œ, ์„ฑ๋ณ„, ์—ฐ๋ น
FROM GENDER A RIGHT JOIN AGE B
          ON A.ํšŒ์›์ฝ”๋“œ = B.ํšŒ์›์ฝ”๋“œ;

2๋ฒˆ
SELECT B.ํšŒ์›์ฝ”๋“œ, ์„ฑ๋ณ„, ์—ฐ๋ น
FROM GENDER A, AGE B
WHERE A.ํšŒ์›์ฝ”๋“œ(+) = B.ํšŒ์›์ฝ”๋“œ;

 

 

(FULL) OUTER JOIN

 

(FULL) OUTTER JOIN  ํ‘œํ˜„๋ฐฉ์‹ 2๊ฐ€์ง€

1๋ฒˆ.
SELECT A.*, B.์—ฐ๋ น
FROM GENDER A FULL OUTER JOIN AGE B
         ON A.ํšŒ์›์ฝ”๋“œ = B.ํšŒ์›์ฝ”๋“œ;

2๋ฒˆ.
SELECT A.*, B.์—ฐ๋ น
FROM GENDER A , AGE B
WHERE A.ํšŒ์›์ฝ”๋“œ(+) = B.ํšŒ์›์ฝ”๋“œ(+);
# Oracle9 ๋ฒ„์ „ ์ดํ›„๋ถ€ํ„ฐ๋Š” ์–‘์ชฝ์˜ (+) ๊ฐ€๋Šฅ

 

 

์˜ˆ์ œ1)

 

 => ์ •๋‹ต!!

 

SELECT *

FROM T1 [ LEFT OUTER JOIN ] T2

ON T1.c2 = T2.c2;

 

 

UNION, UNION ALL - ๋‘ ํ”Œ๋žซํผ ๊ธฐ์—…์ด ํ•ฉ๋ณ‘ํ•  ๋–„!

UNION : ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•œ ํ›„ ๋ฐ˜ํ™˜ / UNION ALL : ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ฐ˜ํ™˜

 

์˜ˆ์ œ2)

=> ์ •๋‹ต!!

A. JOIN

B. UNION

 

 

์˜ˆ์ œ3)

 

์˜ˆ์ œ4)

 

MINUS - A ํšŒ์‚ฌ์—๋งŒ ์žˆ๋Š” ๊ณ ๊ฐ ์ •๋ณด๋ฅผ ์ถ”๋ฆฌ๋ ค๊ณ  ํ•œ๋‹ค!!!

EQUI JOIN, non-EQUI JOIN

 

CROSS JOIN - A ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰๊ณผ B ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ํ–‰์„ ์กฐ์ธ(A ๋ ˆ์ฝ”๋“œ ์ˆ˜ * B ๋ ˆ์ฝ”๋“œ ์ˆ˜)

๋‘˜์„ ๊ณฑ์…ˆํ•˜๋Š” ๋Š๋‚Œ!!

 

 

2) ๊ณ„์ธตํ˜• ์กฐํšŒ & ๊ทธ๋ฃน ํ•จ์ˆ˜

 

๊ณ„์ธตํ˜• ์กฐํšŒ : ํŠธ๋ฆฌํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ

 

>> ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š” ๋ฐ์ดํ„ฐ : LEAF ๋…ธ๋“œ

 

์˜ˆ์ œ 1)

=> ์ •๋‹ต!!  12

 

๊ณ„์ธตํ˜• ์กฐํšŒ ๋ฌธ์ œ๋Š”...

์กฐํšŒ๋ฅผ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์žฌ๋ฐฐ์น˜ ๋˜๋Š”์ง€ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”!!

1. ์‹œ์ž‘์  ์žก๊ธฐ

START WITH : ๊ณ„์ธต ๊ตฌ์กฐ๊ฐ€ ์‹œ์ž‘๋˜๋Š” ์ง€์ (ROOT NODE)์„ ์•Œ๋ ค์คŒ, ์—ฌ๊ธฐ์— ์ ํžŒ ์กฐ๊ฑด์— ๋งž๋Š” ๋ ˆ์ฝ”๋“œ๊ฐ€ ROOT(๋ถ€๋ชจ), ํ˜„ ๋ฌธ์ œ์—์„œ๋Š” ์ฒซ๋ฒˆ์งธ ๋ ˆ์ฝ”๋“œ๊ฐ€ ํŠธ๋ฆฌ ๊ตฌ์กฐ์˜ ROOT NODE

 

 

2. ์žฌ๋ฐฐ์น˜ ๊ธฐ์ค€

CONNECT BY, PRIOR : ๋‹ค์Œ ๋ ˆ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ๊ฒƒ์ด ์˜ฌ์ง€ ์•Œ๋ ค์คŒ
- CONNECT BY PRIOR a = b
- CONNECT BY a = PRIOR b
๋ชจ๋“  ๋ ˆ์ฝ”๋“œ์— ๋Œ€ํ•˜์—ฌ ๊ด€๊ณ„์„ฑ(๊ณ„์ธต ๊ตฌ์กฐ)๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ์žฌ๋ฐฐ์น˜ํ•˜๊ธฐ ์œ„ํ•จ

1) a์ปฌ๋Ÿผ๊ณผ b์ปฌ๋Ÿผ์ด ๋™์ผํ•œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ„์— ๊ณ„์ธตํ™”๊ฐ€ ๋ฐœ์ƒ(a=b)
2) ์•ž์„ (PRIOR) ๋ ˆ์ฝ”๋“œ์˜ a์ปฌ๋Ÿผ๊ณผ ๋™์ผํ•œ b์ปฟํ—˜์„ ๊ฐ€์ง„ ๋ ˆ์ฝ”๋“œ๋“ค์ด ๋’ค์— ์˜จ๋‹ค
CONNECT BY PRIOR a = b : ์•ž์„  ๋ ˆ์ฝ”๋“œ์˜ a = b์ด๋‹ค

ํ˜„ ๋ฌธ์ œ์—์„œ๋Š” 
1) col1๊ณผ col2๊ฐ€ ๋™์ผํ•œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ฐ„์— ๊ณ„์ธตํ™”๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค
2) ใ„ฑ์˜ col1๊ณผ ๋™์ผํ•œ col2๋ฅผ ๊ฐ€์ง„ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋‹ค์Œ ์ˆœ์„œ์— ์˜จ๋‹ค

 

 

๊ทธ๋Ÿผ ใ„ด, ใ„ท ์ค‘์— ๋ญ๊ฐ€ ๋จผ์ € ์˜ฌ์ง€ ์–ด๋–ป๊ฒŒ ์•”?? =? ORDER SIBLINGS BY ๊ฐ€ ํ•ด๊ฒฐํ•ด์คŒ!!

 ORDER SIBLINGS BY col3 
: col3 ๊ธฐ์ค€, ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ ์ˆœ์„œ ๊ฒฐ์ •
>> col3 : [ใ„ด] 12 < [ใ„ท] 13 

 

 

์˜ˆ์ œ 2)

 

GROUP ํ•จ์ˆ˜

GROUP BY ์„ฑ๋ณ„, ์—ฐ๋ น 1. ์„ฑ๋ณ„ * ์—ฐ๋ น ๋ณ„ ์†Œ๊ณ„
GROUP BY
GROUPING SETS(
์„ฑ๋ณ„, ์—ฐ๋ น)
1. ์„ฑ๋ณ„ ๋ณ„ ์†Œ๊ณ„
2. ์—ฐ๋ น ๋ณ„ ์†Œ๊ณ„
* ๊ด„ํ˜ธ ๋ฌถ์€ ์ง‘ํ•ฉ๋ณ„ ์ง‘๊ณ„ ๊ฐ€๋Šฅ
GROUP BY
ROLLUP(์„ฑ๋ณ„, ์—ฐ๋ น)
1. ์„ฑ๋ณ„ * ์—ฐ๋ น ๋ณ„ ์†Œ๊ณ„
2. ์„ฑ๋ณ„ ๋ณ„ ์†Œ๊ณ„
3. ์ „์ฒด ์ง‘๊ณ„
GROUP BY
CUBE(์„ฑ๋ณ„, ์—ฐ๋ น)
1. ์„ฑ๋ณ„ * ์—ฐ๋ น ๋ณ„ ์†Œ๊ณ„
2. ์„ฑ๋ณ„ ๋ณ„ ์†Œ๊ณ„
3. ์—ฐ๋ น ๋ณ„ ์†Œ๊ณ„
4. ์ „์ฒด ์ง‘๊ณ„
* ๊ทธ๋ฃนํ™”๋  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋Œ€ํ•ด ์ƒ์„ฑ

 

ex) QUERY ์‚ฌ๋ก€

SELECT ์„ฑ๋ณ„, ์—ฐ๋ น, SUM(๊ฒฐ์ œ๊ธˆ์•ก)

FROM ๊ฒฐ์ œ

GROUP BY GROUPING SETS(์„ฑ๋ณ„, ์—ฐ๋ น๋Œ€);

 

์™ธ์šฐ๊ธฐ!!!

  • Grouping Sets (set1, set2) :๊ทธ๋ฃนํ•‘ ์„ธํŠธ ์„ธํŠธ(UNION ALL๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ)
  • Rollup(์•ž, ๋’ค) : ๋กค์—… ์••๋’ค
  • CUBE(๋ชจ๋“ ๊ฒฝ์šฐ) : ํ๋ธŒ

 

์˜ˆ์ œ 3)

 

=> ์ •๋‹ต!! 2๋ฒˆ

CUBE๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐํ•ฉ์˜ ๊ฒฝ์šฐ

 

์˜ˆ์ œ 4)

=> ์ •๋‹ต!! 1, 2๋ฒˆ

1๋ฒˆ => ROLLUP์— ํ•ด๋‹นํ•˜๋Š” ์„ค๋ช…

2๋ฒˆ => ์ง‘๊ณ„ ๋Œ€์ƒ ์ปฌ๋Ÿผ ๊ฐ’์€ NULL์ด ์•„๋‹ˆ๋ผ ๊ธฐ์ค€์ด ๋˜๋Š” ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค

 

 

3) TOP(N) ์ฟผ๋ฆฌ

: ํ…Œ์ด๋ธ”์—์„œ N ๊ฐœ์˜ ํ–‰๋งŒ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ๋‹ค!

 

1. ORACLE ๊ธฐ์ค€ : ROWNUM ์Šˆ๋„ ์นผ๋Ÿผ
 => ์ปฌ๋Ÿผ๊ณผ ๋น„์Šทํ•œ ์„ฑ๊ฒฉ์˜ Pseudo Column ์œผ๋กœ์„œ, SQL ์ฒ˜๋ฆฌ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์˜ ๊ฐ ํ–‰์— ๋Œ€ํ•ด ์ž„์‹œ์ ์œผ๋กœ ๋ถ€์—ฌ๋˜๋Š” ์ผ๋ จ๋ฒˆํ˜ธ

SELECT *
FROM C_INFO
WHERE ROWNUM <= 100;

** (์˜ค๋ฅ˜) C_INFO ํ…Œ์ด๋ธ”์—์„œ ๋‚˜์ด๊ฐ€ ์–ด๋ฆฐ 100๋ช…์„ ์กฐํšŒํ•˜๋ ค๋ฉด?
SELECT *
FROM C_INFO
WHERE ROWNUM <= 100
ORDER BY AGE;
=> C_INFO์—์„œ ๋ฌด์ž‘์œ„๋กœ ์ถ”์ถœ๋œ 100๊ฐœ์˜ ๋ ˆ์ฝ”๋“œ๋ฅผ AGE ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒƒ๊ณผ ๊ฐ™๋‹ค

** (์ •๋‹ต) C_INFO ํ…Œ์ด๋ธ”์—์„œ ๋‚˜์ด๊ฐ€ ์–ด๋ฆฐ 100๋ช…์„ ์กฐํšŒํ•˜๋ ค๋ฉด?
=> ์ธ๋ผ์ธ ๋ทฐ์—์„œ ๋จผ์ € ์ •๋ ฌํ•˜๊ธฐ!
SELECT *
FROM (SELECT *
            FROM C_INFO
            ORDER BY AGE)
WHERE ROWNUM <= 100;

 

 

2. SQL SERVER ๊ธฐ์ค€ : TOP ์ ˆ

** C_INFO ํ…Œ์ด๋ธ”์—์„œ ๋‚˜์ด๊ฐ€ ์–ด๋ฅธ 100๋ช…์„ ์กฐํšŒํ•˜๋ ค๋ฉด?
SELECT TOP(100)
              NAME, AGE
FROM C_INFO
ORDER BY AGE;

** WITH TIES
=> TOP N์˜ ๋งˆ์ง€๋ง‰ ํ–‰๊ณผ ๋™์ผํ•œ ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ถ”๊ฐ€ ํ–‰์ด ์ถœ๋ ฅ๋จ
SELECT TOP(2) WITH TIES
               NAME, AGE
FROM C_INFO
ORDER BY AGE;

=> C_INFO ํ…Œ์ด๋ธ”์—์„œ AGE๊ฐ€ ๋‚ฎ์€ 2๋ช…์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š”๋ฐ, ๊ฐ™์€ AGE์ธ ๊ณ ๊ฐ์ด ์ž‡์œผ๋ฉด ๊ฐ™์ด ์ถœ๋ ฅํ•œ๋‹ค
=> ORDER BY๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

 

3. ROW LIMITING ์ ˆ(ANSI ํ‘œ์ค€ SQL)

** C_INFO ํ…Œ์ด๋ธ”์—์„œ ๋‚˜์ด๊ฐ€ ์–ด๋ฆฐ 100๋ช…์„ ์กฐํšŒํ•˜๋ ค๋ฉด?
SELECT NAME, AGE
FROM C_INFO
ORDER BY AGE FETCH FIRST 100 ROWS ONLY;

* FETCH : ๋ฐ˜ํ™˜ํ•  ๊ฒƒ ์ง€์ •ํ•ด์คŒ
* ONLY : ์ง€์ •ํ•œ ๋งŒํผ(with ties ๋งˆ์ง€๋ง‰ํ–‰ ๋™์ˆœ์œ„ ํฌํ•จ)

- ORACLE 
SELECT *
FROM (SELECT *
             FROM C_INFO
             ORDER BY AGE )
WHERE ROWNUM <= 100;

- SQL SERVER
SELECT TOP(100)
               NAME, AGE
FROM C_INFO
ORDER BY AGE;

**์ƒ์œ„ 100๊ฐœ ํ–‰์„ ๊ฑด๋„ˆ๋›ด ์ดํ›„์˜ ์ „์ฒด ํ–‰ ๋ฐ˜ํ™˜ํ•˜๋ ค๋ฉด?
SELECT NAME, AGE FROM C_INFO ORDER BY AGE OFFSET 100 ROWS;

* OFFSET : ๊ฑด๋„ˆ๋›ธ ๊ฒƒ ์ง€์ •ํ•ด์คŒ

 

 

3. ์œˆ๋„์šฐ ํ•จ์ˆ˜ & ํŒŒํ‹ฐ์…˜

 

WINDOW ํ•จ์ˆ˜

: ๋ ˆ์ฝ”๋“œ(ํ–‰) ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ์‰ฝ๊ฒŒ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜

๋งค์žฅ ์ฝ”๋“œ ์ง€์—ญ๋ช… ๋ฉ”๋‰ด๋ช… ํŒ๋งค๋Ÿ‰ ํŒ๋งค์ˆœ์œ„
101 ์„œ์šธ ์—ฐ์–ด์Šค์‹œ 500 1
101 ์„œ์šธ ์ฐธ์น˜์Šค์‹œ 400 2
101 ์„œ์šธ ์™€๊ทœ 300 3
102 ๋ถ€์‚ฐ ์—ฐ์–ด์Šค์‹œ 600 1
102 ๋ถ€์‚ฐ ํŠ€๊น€ 300 2

 

SELECT WINDOW_FUNCTION (ARGUMENTS) OVER ( [PARTITON BY ์ปฌ๋Ÿผ๋ช…] [ORDER BY ์ปฌ๋Ÿผ๋ช…] [WINDOWING] ) FROM ํ…Œ์ด๋ธ”๋ช…;

- WINDOW_FUNCTION : ์œˆ๋„์šฐ ํ•จ์ˆ˜
- ARGUMENTS : ์ธ์ˆ˜(์ปฌ๋Ÿผ๋ช… ๋“ฑ ํ•จ์ˆ˜์˜ ์ž‘์—…์ด ์ด๋ค„์ง€๋Š” ๋Œ€์ƒ)
- PARTITION BY : ํ…Œ์ด๋ธ”์˜ ๋ ˆ์ฝ”๋“œ๋“ค์„ ์ชผ๊ฐœ๋Š” ๊ธฐ์ค€
- ORDER BY : ์ชผ๊ฐœ์ง„ ๋ ˆ์ฝ”๋“œ๋“ค ๋‚ด์—์„œ ํ˜น์€ ์ „์ฒด ํ…Œ์ด๋ธ”์—์„œ ๋ ˆ์ฝ”๋“œ๋“ค์„ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ• ์ง€
- WINDOWING : ํ•จ์ˆ˜์˜ ์—ฐ์‚ฐ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ ˆ์ฝ”๋“œ์˜ ๋ฒ”์œ„๋ฅผ ์ •ํ•จ

 

* WINDOW_FUNCTION ์ข…๋ฅ˜

- ๊ทธ๋ฃน ๋‚ด ์ง‘๊ณ„ ํ•จ์ˆ˜ : COUNT, SUM, MIN, MAX, AVG๋“ฑ

- ๊ทธ๋ฃน ๋‚ด ์ˆœ์œ„(RANK) ํ•จ์ˆ˜

- ๊ทธ๋ฃน ๋‚ด ๋น„์œจ ๊ด€๋ จ ํ•จ์ˆ˜

- ๊ทธ๋ฃน ๋‚ด ํ–‰ ์ˆœ์„œ ํ•จ์ˆ˜

 

 

WINDOW ํ•จ์ˆ˜ - ๊ทธ๋ฃน ๋‚ด RANK ํ•จ์ˆ˜

RANK - ๋™์ผํ•œ ์ˆœ์œ„์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค
- ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ํ•˜๋‚˜์˜ ๊ฑด์ˆ˜๋กœ ๊ณ„์‚ฐํ•˜์ง€ ์•Š๋Š”๋‹ค (1 / 2, 2 / 4)
DENSE_RANK - ๋™์ผํ•œ ์ˆœ์œ„์— ๋Œ€ํ•ด ๋™์ผํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค
- ๋™์ผํ•œ ์ˆœ์œ„๋Š” ํ•˜๋‚˜์˜ ๊ฑด์ˆ˜๋กœ ๊ณ„์‚ฐํ•œ๋‹ค (1 / 2, 2 / 3)
ROW_NUMBER - ๋™์ผํ•œ ์ˆœ์œ„์— ๋Œ€ํ•ด ๊ณ ์œ ํ•œ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค (1 / 2 / 3 / 4 )

**RANK์™€ DENSE_RANK ์ฐจ์ด ๋น„๊ต!!

 

์˜ˆ์‹œ1)

 

=> ์ •๋‹ต!! 

 

A : DENSE_RANK

B : RANK

C : ROW_NUMBER

 

์˜ˆ์‹œ2) 

 

=> ์ •๋‹ต!!  1๋ฒˆ (์—ฌํƒ€ SQL๋ฌธ๊ณผ ๋™์ผํ•˜๊ฒŒ ORDER BY๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ ์ถœ๋ ฅ์ด ๊ฐ€๋Šฅ / ์ˆœ์œ„๋กœ ์ž๋™์œผ๋กœ ์ •๋ ฌ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜)

 

์˜ˆ์‹œ 3)

 

=> ์ •๋‹ต!!

 

SELECT ๋งค์žฅ ์ฝ”๋“œ, ์ง€์—ญ๋ช…, ๋ฉ”๋‰ด๋ช…, ํŒ๋งค๋Ÿ‰

                , DENSE_RANK () OVER (PARTITION BY ์ง€์—ญ๋ช… ORDER BY ํŒ๋งค๋Ÿ‰ DESC) AS

            ํŒ๋งค์ˆœ์œ„

FROM ํŒ๋งค

 

 

 Window ํ•จ์ˆ˜ - ๊ทธ๋ฃน ๋‚ด ๋น„์œจ ํ•จ์ˆ˜

PERCENT_RANK - ๊ฐ’์ด ์•„๋‹Œ, ์ˆœ์„œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ, ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ์˜ ์ˆœ์„œ๋ณ„ ๋ฐฑ๋ถ„์œจ์„ ์กฐํšŒํ•จ
NTILE(n) - ํŒŒํ‹ฐ์…˜๋ณ„๋กœ ์ „์ฒด ๊ฑด์ˆ˜๋ฅผ n๋“ฑ๋ถ„ํ•œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. n=4์ด๋ฉด 4๋“ฑ๋ถ„ํ•œ ๊ฒƒ ๋‚ด์—์„œ ๋ช‡์ธ์ง€ ์กฐํšŒ
CUME_DIST - ํŒŒํ‹ฐ์…˜ ๋‚ด ์ „์ฒด์—์„œ ํ˜„์žฌ ํ–‰์˜ ๊ฐ’ ์ดํ•˜์ธ ๋ ˆ์ฝ”๋“œ ๊ฑด์ˆ˜์— ๋Œ€ํ•ด ๋ˆ„์  ๋ฐฑ๋ถ„์œจ์„ ์กฐํšŒ
- ๋ˆ„์  ๋ถ„ํฌ ์ƒ์— 0~1 ๊ฐ’์„ ๊ฐ€์ง

 

 

WIndow ํ•จ์ˆ˜ - ๊ทธ๋ฃน ๋‚ด ํ–‰ ์ˆœ์„œ ํ•จ์ˆ˜

FIRST_VALUE - ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ ๊ฐ€์žฅ ์ฒ˜์Œ ๋‚˜์˜ค๋Š” ๊ฐ’ ๋ฐ˜ํ™˜
- MIN๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ
LAST_VALUE - ํŒŒํ‹ฐ์…˜ ๋‚ด์—์„œ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋‚˜์˜ค๋Š” ๊ฐ’ ๋ฐ˜ํ™˜
- MAX์™€ ๋™์ผํ•œ ๊ฒฐ๊ณผ
LAG(์ปฌ๋Ÿผ๋ช…, ๋ ˆ์ฝ”๋“œ ์œ„์น˜ ์ฐจ์ด๊ฐ’) - ์ด์ „ ํ–‰์„ ๊ฐ€์ ธ์˜จ๋‹ค
LEAD(์ปฌ๋Ÿผ๋ช…, ๋ ˆ์ฝ”๋“œ ์œ„์น˜ ์ฐจ์ด๊ฐ’,  null์ผ ๊ฒฝ์šฐ ๋Œ€์ฒด๊ฐ’) - ๋‹ค์Œ(ํŠน์ • ์œ„์น˜์˜) ํ–‰์„ ๊ฐ€์ ธ์˜จ๋‹ค
- default๋Š” 1์ด๋‹ค

 

์˜ˆ์ œ4)

 

 

=> ์ •๋‹ต (ใ„ฑ : E,  ใ„ด : E)

 

 

Window ํ•จ์ˆ˜ ์ค‘ WINDOWING

SELECT WINDOW _FUNCTION (ARGUMENTS) OVER ( [PARTITION BY ์ปฌ๋Ÿผ๋ช…] [ORDER BY ์ปฌ๋Ÿผ๋ช…] [WINDOWING] ) FROM ํ…Œ์ด๋ธ”๋ช…; 

 

- WINDOWING : ํ•จ์ˆ˜์˜ ์—ฐ์‚ฐ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ ˆ์ฝ”๋“œ์˜ ๋ฒ”์œ„๋ฅผ ์ •ํ•จ

 

RANGE ex ) RANGE BETWEEN 100 AND 200
๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•ด์ค„ ๋•Œ ์‚ฌ์šฉ
BETWEEN a AND b a๋ถ€ํ„ฐ b๊นŒ์ง€ ์œˆ๋„์šฐ๊ฐ€ ์ ์šฉ๋จ
UNBOUNDED PRECEDING ์œˆ๋„์šฐ์˜ ์‹œ์ž‘ ์œ„์น˜ = ์ฒซ ๋ฒˆ์งธ ํ–‰
UNBOUNDED FOLLOWING ์œˆ๋„์šฐ์˜ ๋งˆ์ง€๋ง‰ ์œ„์น˜ = ๋งˆ์ง€๋ง‰ ํ–‰
CURRENT ROW ์œˆ๋„์šฐ ์‹œ์ž‘ ์œ„์น˜๊ฐ€ ํ˜„์žฌ ํ–‰

 

์˜ˆ์ œ5)

 

=> ์ •๋‹ต!! UNBOUNDED PRECEDING

 

 

ํ…Œ์ด๋ธ” ํŒŒํ‹ฐ์…˜

 

- ๋Œ€์šฉ๋Ÿ‰์˜ ํ…Œ์ด๋ธ”์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ๋ถ„๋ฆฌํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๊ฒƒ

๋ฌผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์— ์ €์žฅ๋˜์–ด ์ž…๋ ฅ / ์ˆ˜์ • / ์‚ญ์ œ / ์กฐํšŒ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ , ๋…๋ฆฝ์  ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅ

์กฐํšŒ์˜ ๋ฒ”์œ„๋ฅผ ์ค„์ด๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋จ

** ๋ง‰ ์—„์ฒญ ์ค‘์š”ํ•˜์ง„ ์•Š์Œ;;

 

RANGE PARTITION ๊ฐ’์˜ ๋ฒ”์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํŒŒํ‹ฐ์…˜์„ ๋‚˜๋ˆ  ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•
ex) ๋งค์ถœ์•ก์— 50000 ์ด์ƒ์ธ ๋ ˆ์ฝ”๋“œ์™€ ๋ฏธ๋งŒ์ธ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋ณ„๋„๋กœ ์ €์žฅ
LIST PARTITION ํŠน์ • ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋ถ„ํ• 
ex) ํŠน์ • ๊ฐ’์ด 100์ผ ๋•Œ์™€ 250์ผ ๋•Œ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐํŒŒ์ผ์— ์ €์žฅ
HASH PARTITION ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์ด ์ž์ฒด์ ์œผ๋กœ ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ๋ถ„ํ• ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

SQL์˜ ์ •์˜

 

SQL์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง์ ‘์ ์œผ๋กœ ์—‘์„ธ์Šค ํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ,

๋ฐ์ดํ„ฐ๋ฅผ ์ •์˜ํ•˜๊ณ  => DDL

์กฐ์ž‘ํ•˜๋ฉฐ => DML

์กฐ์ž‘ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๊ณ  => TCL

์ ‘๊ทผ ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ์ฒ˜๋ฆฌ๋“ค๋กœ ๊ตฌ์„ฑ๋œ๋‹ค => DCL

 

 

1) DCL : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ์„ ๋ถ€์—ฌ / ํšŒ์ˆ˜ํ•˜๋Š” ์–ธ์–ด

 

์ถœ์ œ ํฌ์ธํŠธ 1

GRANT :๊ถŒํ•œ์„ ์คŒ

REVOKE : ๊ถŒํ•œ์„ ํšŒ์ˆ˜

**์ถœ์ œ ๋นˆ๋„๊ฐ€ ๋‚ฎ์Œ...

 

์ถœ์ œ ํฌ์ธํŠธ 2

 

WITH GRANT์˜ ๊ฒฝ์šฐ : ์—„๋งˆ๊ฐ€ ํšŒ์ˆ˜ ๋˜๋ฉด ์ž์‹๋„ ํšŒ์ˆ˜๋œ๋‹ค!!(A -> B, B -> C, B๊ฐ€ ํ‡ด์‚ฌ ํ•˜์—ฌ ๊ถŒํ•œ์„ ํšŒ์ˆ˜๋‹นํ•˜๋ฉด C๋„ ๊ฐ™์ด ํšŒ์ˆ˜ํ•˜๋Š” ๊ฒฝ์šฐ)

WITH ADMIN์˜ ๊ฒฝ์šฐ : ์—„๋งˆ๊ฐ€ ํšŒ์ˆ˜ ๋‹นํ•˜๋”๋ผ๋„ ์ž์‹์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์Œ

 

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

=> ์ •๋‹ต!! GRANT SELECT, UPDATE ON hoho_qualification.data(ํ…Œ์ด๋ธ” ๋ช…) TO hoho(์œ ์ €, ๊ถŒํ•œ์„ ๋ถ€์—ฌ ๋ฐ›๋Š” ์‚ฌ๋žŒ);

 

GRANT ๊ถŒํ•œ(SELECT, UPDATE๋“ฑ๋“ฑ...) ON ํ…Œ์ด๋ธ”๋ช… TO ์œ ์ €๋ช…;

 

 

์˜ˆ์‹œ ๋ฌธ์ œ 2) 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์—์„œ ๋งŽ์€ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์–ด๋ ค์›€์„ ํ•ด์†Œํ•˜๊ณ ์ž ๋‹ค์–‘ํ•œ ๊ถŒํ•œ์„ ํ•˜๋‚˜์˜ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ๊ถŒํ•œ์˜ ๊ทธ๋ฃน(๋ช…๋ น์–ด)์„ ์นญํ•˜๋Š” ๋ง์€?

 

=> ์ •๋‹ต!!  ROLE

 

* ๋‹ค์–‘ํ•œ ๊ถŒํ•œ์„ ๋‹ค์–‘ํ•œ ์œ ์ €๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด์ด๋‹ค
* ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์ผํ•œ ROLE ๋ถ€์—ฌ ๊ฐ€๋Šฅํ•˜๋‹ค
* ROLE์˜ ์ƒ์„ฑ์€ [ CREATE ROLE ] ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์œ ์ €๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

2) DDL : ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด์˜ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด

 

 

1. CREATE : ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์ƒ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ƒ์„ฑ

CREATE TABLE C_INFO(ํ…Œ์ด๋ธ” ๋ช…) {
    ์ปฌ๋Ÿผ๋ช…(์†์„ฑ๋ช…)  /  ๋ฐ์ดํ„ฐ์˜ ์œ ํ˜•  /  ํฌ๊ธฐ
    ์ด๋ฆ„                       varchar2(10),
    ์ƒ๋…„                       number(4) default 9999,
    phone                    varchar2(15) not null,
    ์ฒซ๋ฐฉ๋ฌธ์ผ               date,
    ๊ณ ๊ฐ ๋ฒˆํ˜ธ              varchar2(10) primary key
);

=> C_INFO๋ผ๋Š” ์ด๋ฆ„์„ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ ๋‹ค

 

* ์ปฌ๋Ÿผ๋ช…(์†์„ฑ๋ช…) : ์˜๋ฌธ, ํ•œ๊ธ€, ์ˆซ์ž ๋ชจ๋‘ ๊ฐ€๋Šฅ(์‹œ์ž‘๋งŒ ๋ฌธ์ž๋กœ) ex) h10(o), 10h(x)

* ๋ฐ์ดํ„ฐ ์œ ํ˜•(data type)

  • char : ๊ณ ์ •๊ธธ์ด ๋ฌธ์ž์—ด(ํ• ๋‹น๋œ ๊ธธ์ด๋งŒํผ ๋ฌธ์ž ์ฑ„์›€)
  • varchar2 : ๊ฐ€๋ณ€ ๊ธธ์ด ๋ฌธ์ž์—ด
  • number :  ์ˆซ์žํ˜•
  • date : ๋‚ ์งœํ˜•

* ์ œ์•ฝ ์กฐ๊ฑด(constraint)

  • default : ๊ธฐ๋ณธ๊ฐ’ ์ง€์ •
  • not null : null ์ž…๋ ฅ ๋ถˆ๊ฐ€
  • primary key : ๊ธฐ๋ณธํ‚ค ์ง€์ •(PK๋Š” not null, PK๋Š” unique ํ•œ ๊ฐ’, ํ…Œ์ด๋ธ” ๋‚ด ์ค‘๋ณต ์—†์Œ)
  • foreign key : ์™ธ๋ž˜ํ‚ค ์ง€์ •

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

 

=> ์ •๋‹ต!! ์„œ๋กœ ๊ฐ™๋‹ค.

 

ํ•˜์ง€๋งŒ SELECT count(๊ฐ€๊ฒฉ) FROM MENU์˜ ๊ฒฝ์šฐ ๋‹ค๋ฅด๋‹ค!!!!!!!!!!

- ๊ฐ€๊ฒฉ ์ปฌ๋Ÿผ์€ NOT NULL ์ œ์•ฝ์กฐ๊ฑด์ด ๋ถ™์ง€๋„ ์•Š์•˜๊ณ , primary key๋„ ์•„๋‹ˆ๋‹ค

- ์‹ค์ œ๋กœ ์‚ฝ์ž…๋œ ํŠœํ”Œ ์ค‘ ํ•˜๋‚˜๋Š” ๊ฐ€๊ฒฉ ๊ฐ’์ด Null์ด๋‹ค

- count(*)๋Š” 4๊ฐ€ ์ถœ๋ ฅ๋˜๊ณ . count(๊ฐ€๊ฒฉ)์€ 3์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

* NULL์— ๋Œ€ํ•ด์„œ ๐Ÿ˜‹

1. NULL์€ ๋ชจ๋ฅด๋Š” ๊ฐ’์„ ์ƒ์ง•ํ•˜๊ณ , ๊ฐ’์ด ์—†์Œ(๋ถ€์žฌ)๋ฅผ ์˜๋ฏธํ•จ
2. NULL๊ณผ์˜ ์‚ฌ์น™์—ฐ์‚ฐ(+, -, /, *), NULL ๊ณผ์˜ ๋น„๊ต์—ฐ์‚ฐ(=, <, > ๋“ฑ) ๊ฒฐ๊ณผ๋Š” ๋Š˜ NULL(์•Œ ์ˆ˜ ์—†์Œ)์ด๋‹ค
3. ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๊ฐ’์ด NULL ์ธ์ง€ ํ™•์ธํ•˜๋ ค๋ฉด '=' ๊ฐ€ ์•„๋‹Œ 'IS' ํ˜น์€ 'IS NOT'๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค
4. NULL์€ ์ˆซ์ž 0์ด๋‚˜ ๊ณต๋ฐฑ๋ฌธ์ž(' ') ์™€ ๋™์ผํ•˜์ง€ ์•Š์Œ(์–˜๋„ค๋Š” ๊ฐ’์ด ์žˆ์Œ, NULL์€ ์•„์˜ˆ ๊ฐ’์ด ์—†๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.)

 

 

2. ALTER : ํ…Œ์ด๋ธ”๊ณผ ์ปฌ๋Ÿผ์— ๋Œ€ํ•ด ์ด๋ฆ„ ๋ฐ ์†์„ฑ ๋ณ€๊ฒฝ, ์ถ”๊ฐ€/์‚ญ์ œ ๋“ฑ ๊ตฌ์กฐ ์ˆ˜์ •์„ ์œ„ํ•ด ์‚ฌ์šฉ!

 

ํ…Œ์ด๋ธ” ๋ช… ๋ณ€๊ฒฝ : ALTER TABLE MENU RENAME (TO) ho_MENU;
์ปฌ๋Ÿผ ๋ช… ๋ณ€๊ฒฝ :    ALTER  TABLE MENU RENAME COLUMN phone TO ์ „ํ™”๋ฒˆํ˜ธ(์ˆ˜์ • ๊ฒฐ๊ณผ);

!! : ์ˆ˜์ •ํ• ๊ฒŒ์š” / ํ…Œ์ด๋ธ”์—์„œ / ์ด๋ฆ„ ๋‹ค์‹œ / ์–ด๋–ค ์ปฌ๋Ÿผ / ์ด๊ฑธ๋กœ

์ปฌ๋Ÿผ ์†์„ฑ ๋ณ€๊ฒฝ : ALTER TABLE_MENU MODIFY (์ด๋ฆ„ varchar(20) not null);
์ปฌ๋Ÿผ ์ถ”๊ฐ€ : ALTER TABLE_MENU ADD( ๊ฑฐ์ฃผ ์ง€์—ญ varchar2(10));
์ปฌ๋Ÿผ ์‚ญ์ œ  : ALTEr TABLE_MENU DROP COLUMN ์ด๋ฆ„;
์ œ์•ฝ ์กฐ๊ฑด ์ถ”๊ฐ€ / ์‚ญ์ œ : ALTER TABLE_MENU ADD CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด๋ช… ์ œ์•ฝ์กฐ๊ฑด(๋Œ€์ƒ);
                                                                          DROP CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด๋ช…;

 

ALTER ์ƒ๋žตํ•˜์—ฌ์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์š” ^^

 

 

++) MODIFY์™€ ADD CONSTRAINT ๋น„๊ต

 

์ œ์•ฝ์กฐ๊ฑด ์ถ”๊ฐ€ / ์‚ญ์ œ  : ALTER TABLE MENU ADD CONSTRAINT ์ œ์•ฝ์กฐ๊ฑด๋ช… ์ œ์•ฝ ์กฐ๊ฑด (๋Œ€์ƒ);

์ปฌ๋Ÿผ ์†์„ฑ ๋ณ€๊ฒฝ : ALTER TABLE MENU MODIFY ( ์ด๋ฆ„ varchar(20) not null );

 

๋Œ€ํ‘œ ์ œ์•ฝ์กฐ๊ฑด 5๊ฐ€์ง€(NOT NULL, UNIQUE, Primary Key, Foreign Key, CHECK)๋ฅผ ์ˆ˜์ •์„ ํ†ตํ•ด ๋ถ€์—ฌํ•  ๊ฒฝ์šฐ
5๊ฐ€์ง€ ์ค‘ NOT NULL๋งŒ MODIFY๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ๊ทธ ๋ฐ–์˜ ์ œ์•ฝ์กฐ๊ฑด๋“ค์€ ๋ชจ๋‘ ADD๋ฅผ ์‚ฌ์šฉ

 

 

  • NOT NULL : ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๊ฐ’์—๋Š” NULL์ด ํฌํ•จ๋  ์ˆ˜ ์—†์Œ(๊ฐ’์€ ๋ชจ๋‘ ์ •์˜๋˜์–ด ์žˆ์–ด์•ผ ํ•จ)
  • UNIQUE : ํ•ด๋‹น ์ปฌ๋Ÿผ์˜ ๋‚ด์—์„œ๋Š” ๊ฐ’์ด ์ค‘๋ณต๋  ์ˆ˜ ์—†์Œ ex) ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD UNIQUE (์ปฌ๋Ÿผ๋ช…);
  • PRIMARY KEY : NOt NULL + UNIQUE 
    ex) ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD PRIMARY KEY (์ปฌ๋Ÿผ๋ช…);
          ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD CONSTRAINT PK_RIDING PRIMARY KET (์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2);
  • FOREIGN KEY : ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ฐ’์„ ์ฐธ์กฐํ•˜์—ฌ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๋ผ๋Š” ์ œ์•ฝ
    ex) ALTER TABLE ํ…Œ์ด๋ธ”๋ช… ADD FOREIGN KEY (์ปฌ๋Ÿผ๋ช…) REFERENCES ๋ถ€๋ชจํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ๋ช…);
  • CHECK : ํŠน์ • ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” ๊ฐ’๋งŒ์„ ์ปฌ๋Ÿผ์— ๋„ฃ์–ด์ค˜์•ผ ํ•จ
    ex) ALTER TABLE RIDING ADD CONSTRAINT RD_CHECK CHECK (ride_date > '2021-12-10');

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

=> ์ •๋‹ต!! ALTER TABLE RIDING MODIFY ( phone varchar(15) NOT NULL );

 ** ๋Œ€ํ‘œ ์ œ์•ฝ์กฐ๊ฑด 5๊ฐ€์ง€ ์ค‘ NOT NULL๋งŒ MODIFY ๋ฅผ ์‚ฌ์šฉ

 

 

3. DROP : ํ…Œ์ด๋ธ” ๋ฐ ์ปฌ๋Ÿผ ์‚ญ์ œ 

 

์ปฌ๋Ÿผ ์‚ญ์ œ : ALTER TABLE MENU DROP COLUMN ์ด๋ฆ„;
ํ…Œ์ด๋ธ” ์‚ญ์ œ : DROP TABLE MENU;

**์œ ์˜
DROP TABLE MENU CASCADE CONSTRAINT;
* ํ•ด๋‹น ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์™ธ๋ž˜ํ‚ค(FK)๋กœ ์ฐธ์กฐํ•œ ์ œ์•ฝ์‚ฌํ•ญ๋„ ๋ชจ๋‘ ์‚ญ์ œ
* Oracle์—๋งŒ ์žˆ๋Š” ์˜ต์…˜, SQL Server์—๋Š” ์กด์žฌํ•˜์ง€ ์•Š์Œ
* FK ์ œ์•ฝ์กฐ๊ฑด๊ณผ ์ฐธ์กฐํ…Œ์ด๋ธ” ๋จผ์ € ์‚ญ์ œํ•˜๊ณ , ํ•ด๋‹น ํ…Œ์ด๋ธ”์„ ์‚ญ์ œ

 

 

DROP VS TRUNCATE ๋น„๊ตํ•˜๊ธฐ

 

1) DROP(ํ…Œ์ด๋ธ” ์‚ญ์ œ) : DROP TABLE MENU;

  • ํ…Œ์ด๋ธ” ๊ด€๋ จํ•œ ๋ชจ๋“  ๊ฒƒ์ด ์‚ญ์ œ๋œ๋‹ค. ๊ตฌ์กฐ๋„, ๋ฐ์ดํ„ฐ๋„!
  • ํ…Œ์ด๋ธ” ์ •์˜๋ฅผ ์™„์ „ ์‚ญ์ œํ•จ
  • ํ…Œ์ด๋ธ”์ด ์‚ฌ์šฉํ–ˆ๋˜ ๋ชจ๋“  ์ €์žฅ๊ณต๊ฐ„์ด Release

 

2) TRUNCATE(ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”) : TRUNCATE TABLE MENU;

  • ํ…Œ์ด๋ธ” ์† ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ๋˜๊ณ  ๊ตฌ์กฐ๋Š” ์‚ด์•„์žˆ๋‹ค
  • ํ…Œ์ด๋ธ”์„ ์ดˆ๊ธฐ ์ƒํƒœ๋กœ ๋งŒ๋“ ๋‹ค
  • ํ…Œ์ด๋ธ” ์ตœ์ดˆ ํ˜•์„ฑ ์‹œ ์‚ฌ์šฉํ–ˆ๋˜ ์ €์žฅ๊ณต๊ฐ„๋งŒ ๋‚จ๊ธฐ๊ณ  Release

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

=> ์ •๋‹ต!!!

A : DROP TABLE F_INFO;

B : TRUNCATE TABLE F_INFO;

 

 

3) DML : ์ •์˜๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ ˆ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์ˆ˜์ •, ์‚ญ์ œ ๋ฐ ์กฐํšŒ(SELECT) ํ•˜๊ธฐ ์œ„ํ•œ ๋ช…๋ น์–ด๋‹ค.

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

 

=> ์ •๋‹ต!!  3, 4
3 : not null ๊ฐ’์ด ๋ฉ”๋‰ด๋ช…์— ๋Œ€ํ•œ insert๊ฐ€ ์ด๋ค„์ง€์ง€ ์•Š์œผ๋ฏ€๋กœ ์˜ค๋ฅ˜ ๋ฐœ์ƒ

4 : ์ปฌ๋Ÿผ๋ช… ์ง€์ •์ด ์ด๋ค„์ง€์ง€ ์•Š์€ ์ƒํƒœ์—์„œ๋Š” ์ „์ฒด ์ปฌ๋Ÿผ์— ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผ ํ•จ => VALUES์˜ ๊ฐ’์ด 4๊ฐœ๊ฐ€ ์™€์•ผ ํ•œ๋‹ค!! ('102', '์™€๊ทœ', 30000, )

 

* ์ˆซ์ž๋Š” varchar2 ์™€ char์— ์ž…๋ ฅ ๊ฐ€๋Šฅ

* DELETE (FROM) MENU : FROM ์ƒ๋žตํ•˜๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค

 

 

์˜ˆ์‹œ ๋ฌธ์ œ2)

 

 

=> ์ •๋‹ต!!  2

 

DELETE

* WHERE ์กฐ๊ฑด๋ฌธ์„ ํ†ตํ•ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ง€์šธ ์ˆ˜ ์žˆ๋‹ค

* ์‚ญ์ œํ•œ ๊ฒƒ์€ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.(DB์— ๋ฐ˜์˜๋˜๊ธฐ ์ „๊นŒ์ง€๋Š”)

* ๋ฐ์ดํ„ฐ๋Š” ์ง€์›Œ์ง€์ง€๋งŒ ํ…Œ์ด๋ธ” ์šฉ๋Ÿ‰์€ ์ค„์–ด๋“ค์ง€ ์•Š๋Š”๋‹ค

 

 

4) TCL : ํŠธ๋žœ์žญ์…˜์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•œ ์–ธ์–ด

 

* ํŠธ๋žœ์žญ์…˜(Transaction)์ด๋ž€..?

  •  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„
  • ๊ณ ๋ฆฝ์„ฑ, ์›์ž์„ฑ, ์ง€์†์„ฑ, ์ผ๊ด€์„ฑ์˜ ํŠน์ง•์„ ๊ฐ€์ง
  1. ๊ณ ๋ฆฝ์„ฑ :  ํŠธ๋žœ์žญ์…˜์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์˜ํ–ฅ์„ ๋ฐ›์•„ ์ž˜๋ชป๋œ ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด์„  ์•ˆ๋œ๋‹ค
  2. ์›์ž์„ฑ : ํŠธ๋žœ์žญ์…˜์—์„œ ์ •์˜๋œ ์—ฐ์‚ฐ์€ ๋ชจ๋‘ ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜๋˜์ง€ ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ์‹คํ–‰๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ์žˆ์–ด์•ผ ํ•œ๋‹ค
  3. ์ง€์†์„ฑ : ํŠธ๋žœ์žญ์…˜์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์ด ๊ฐฑ์‹ ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์€ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ๋œ๋‹ค
  4. ์ผ๊ด€์„ฑ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์šฉ์— ์ž˜๋ชป๋œ ์ ์ด ์—†๋‹ค๋ฉด ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ ํ›„์—๋„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋‚ด์šฉ์— ์ž˜๋ชป์ด ์žˆ์œผ๋ฉด ์•ˆ๋œ๋‹ค.

COMMIT ์ดํ›„ : ์ด์ „ ๋ฐ์ดํ„ฐ๋Š” ์˜์›ํžˆ ์‚ฌ๋ผ์ง€๊ณ  ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋Š” DB์— ๋ฐ˜์˜๋œ๋‹ค

 

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

=> ์ •๋‹ต!! 250 (ROLLBACK ํ• ๋–„๋Š” ๊ฐ€์žฅ ์ตœ์‹ ์˜ SavePoint๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค!!)

 

 

์˜ˆ์‹œ ๋ฌธ์ œ2)

 

=> ์ •๋‹ต!!  10, 50, 30

 

 

COMMIT๊ณผ ROLLBACK ํšจ๊ณผ

 

  • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์˜๊ตฌ์ ์ธ ๋ณ€๊ฒฝ ์ „ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋ณ€๋™์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๋…ผ๋ฆฌ์  ์—ฐ๊ด€์„ฑ ์žˆ๋Š” ์ž‘์—…์„ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค

**๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ด๋ž€?

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ๋ณด์ฆํ•˜๋Š” ๊ฒƒ

- ์ •ํ™•์„ฑ : ์ค‘๋ณต์ด๋‚˜ ๋ˆ„๋ฝ์ด ์—†๋Š” ์ƒํƒœ(๊ฐ™์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ์ €์žฅ x)

- ์ผ๊ด€์„ฑ : ์›์ธ๊ณผ ๊ฒฐ๊ณผ์˜ ์˜๋ฏธ๊ฐ€ ์—ฐ์†์ ์œผ๋กœ ๋ณด์žฅ๋˜์–ด ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์ƒํƒœ

 

** ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด ์ด๋ž€?

: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •ํ™•์„ฑ, ์ผ๊ด€์„ฑ(๋ฌด๊ฒฐ์„ฑ)์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ €์žฅ, ์‚ญ์ œ, ์ˆ˜์ • ๋“ฑ์„ ์ œ์•ฝํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด

  1. ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ(๊ธฐ๋ณธํ‚ค ์ œ์•ฝ) 
    - ํ…Œ์ด๋ธ”์€ ๊ธฐ๋ณธํ‚ค๋ฅผ ์ง€์ •ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ฅธ ๋ฌด๊ฒฐ์„ฑ์„ ์ง€์ผœ์•ผ ํ•œ๋‹ค.
    - ๊ธฐ๋ณธํ‚ค์—๋Š” NULL ๊ฐ’์ด ์˜ฌ ์ˆ˜ ์—†์Œ
    - ๊ธฐ๋ณธํ‚ค๋Š” ํ…Œ์ด๋ธ” ๋‚ด์— ์˜ค์ง ํ•˜๋‚˜์˜ ๊ฐ’๋งŒ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.
    (๋™์ผํ•œ ๊ธฐ๋ณธํ‚ค๋ฅผ ๊ฐ€์ง„ ๋ ˆ์ฝ”๋“œ๊ฐ€ ํ…Œ์ด๋ธ” ๋‚ด์— ์—ฌ๋Ÿฌ๊ฐœ์ผ ์ˆ˜ ์—†๋‹ค.)
  2. ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ(์™ธ๋ž˜ํ‚ค ์ œ์•ฝ)
    - ์™ธ๋ž˜ํ‚ค ๊ฐ’์€ NULL์ด๊ฑฐ๋‚˜ ์ฐธ์กฐํ•˜๋Š” ๋ฆด๋ ˆ์ด์…˜์˜ ๊ธฐ๋ณธํ‚ค ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•จ
    ([๊ฒฐ์ œ]์—์„œ [๊ณ ๊ฐ]์˜ ํšŒ์›๋ฒˆํ˜ธ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด, ์žˆ๋Š” ํšŒ์›๋ฒˆํ˜ธ๋งŒ ๊ฐ€์ ธ์™€์•ผ ํ•จ)
  3. ๋„๋ฉ”์ธ ๋ฌด๊ฒฐ์„ฑ : ์†์„ฑ๊ฐ’์€ ์†์„ฑ์˜ ๋„๋ฉ”์ธ ์†ํ•œ ๊ฐ’(์ดˆ๋“ฑํ•™๊ต ํ•™๋…„ 1 ~ 6)
  4. ๊ณ ์œ  ๋ฌด๊ฒฐ์„ฑ : UNIQUE ์กฐ๊ฑด์ด ์ฃผ์–ด์ง„ ์ปฌ๋Ÿผ์˜ ์†์„ฑ๊ฐ’์€ ์„œ๋กœ ๋‹ฌ๋ผ์•ผ ํ•จ
  5. NULL ๋ฌด๊ฒฐ์„ฑ : NOT NULL๋กœ ์ œํ•œํ•˜๋ฉด NULL์ด ์™€์„  ์•ˆ๋จ

 

5) DML_ SELECT(๋ฐ์ดํ„ฐ ์กฐํšŒ)  

SELECT ์กฐํšŒ ๋Œ€์ƒ(์ปฌ๋Ÿผ๋ช…)
FROM ํ…Œ์ด๋ธ” ๋ช…
WHERE ์กฐ๊ฑด๋ฌธ
GROUP BY ์ง‘๊ณ„๊ธฐ์ค€ ์ปฌ๋Ÿผ๋ช…
HAVING grouping๋œ ํ›„ ์ƒํƒœ ๊ธฐ๋ฐ˜์˜ ์กฐ๊ฑด๋ฌธ
ORDER BY ์ปฌ๋Ÿผ๋ช…

 

์˜ˆ์‹œ ๋ฌธ์ œ1)

 

 

=> ์ •๋‹ต!!  3

 

 

๋ฌธ์žํ˜• ํ•จ์ˆ˜

TRIM๊ณผ REPLACE ๋น„๊ต!!

 

TRIM ํ•จ์ˆ˜

- RTRIM (๋ฌธ์ž์—ด, ์ œ๊ฑฐ ๋Œ€์ƒ)

- LTRIM (๋ฌธ์ž์—ด, ์ œ๊ฑฐ ๋Œ€์ƒ)

- TRIM (์ œ๊ฑฐ ๋Œ€์ƒ FROM ๋ฌธ์ž์—ด)

 

++) ์ฟผ๋ฆฌ๋ฌธ

SELECT RTRIM ('XXSQLXX', 'X')

         .TRIM ( 'X' FROM 'XXSQLXX')

FROM DUAL;

 

REPLACE ํ•จ์ˆ˜

- TRIM (์ œ๊ฑฐ ๋Œ€์ƒ FROM ๋ฌธ์ž์—ด)

- REPLACE (๋ฌธ์ž์—ด, ์ œ๊ฑฐ ๋ฌธ์ž์—ด, [๋Œ€์ฒด ๋ฌธ์ž์—ด])

 

++) ์ฟผ๋ฆฌ๋ฌธ

SELECT TRIM ('X' FROM 'XXSQLXX')

           .REPLACE('XXSQLXX', 'X')

           .REPLACE('XXSQLXX', 'X', 'Y')

FROM DUAL;

 

 

์˜ˆ์‹œ ๋ฌธ์ œ2)

 

=> ์ •๋‹ต!! SELECT ํšŒ์›์ฝ”๋“œ, RTRIM(์—ฐ๋ น๋Œ€, '๋Œ€'), UPPER(์ด๋ฆ„) FROM C_INFO;

 

 

์ˆซ์žํ˜• ํ•จ์ˆ˜

 

 

 

์˜ˆ์‹œ ๋ฌธ์ œ3)

 

=> ์ •๋‹ต!! TO_CHAR(SYSDATE -1, 'YYYYMMDD')

 

*DUAL

- ๋“€์–ผ ํ…Œ์ด๋ธ”์€ ์˜ค๋ผํด์— ์กด์žฌํ•˜๋Š” ๊ธฐ๋ณธ ํ…Œ์ด๋ธ”๋กœ, ํ•˜๋‚˜์˜ ์—ด๋กœ๋งŒ ์ด๋ค„์ ธ์žˆ์Œ

- ์˜ค๋Š˜ ๋‚ ์งœ๋ฅผ ๊ตฌํ•˜๊ฑฐ๋‚˜ ๊ฐ„๋‹จํ•œ ๊ณ„์‚ฐ์„ ํ•˜๋Š” ๋“ฑ์— ์‚ฌ์šฉํ•˜๊ธฐ ์ ํ•ฉ

 

** SYSDATE

- SQL์„ ์ž‘์—…ํ•˜๋Š” ์‹œ์ ์˜ ๋‚ ์งœ์™€ ์‹œ๊ฐ์„ ์•Œ๋ ค์ฃผ๋ฉฐ, -1์„ ํ•  ๊ฒฝ์šฐ ์ „๋‚ ์˜ ๋‚ ์งœ๊ฐ’์ด ์ถœ๋ ฅ๋œ๋‹ค

- ๋‚ ์งœ๋ฅผ ์กฐํšŒํ•œ๋‹ค๊ณ  ํ•˜์˜€์œผ๋ฉฐ TO_CHAR์„ ํ†ตํ•ด ํ˜•๋ณ€ํ™˜์„ ํ•˜์—ฌ ๋‚ ์งœ๋งŒ ๋‚จ๊ธด๋‹ค.

 

 

DECODE & CASE WHEN

 

* DECODE(= IF๋ฌธ)

- DECODE (๊ฐ’1, ๊ฐ’2, ์ฐธ์ผ ๋•Œ ์ถœ๋ ฅ ๊ฐ’, ๊ฑฐ์ง“์ผ ๋•Œ ์ถœ๋ ฅ ๊ฐ’)

ex) .DECODE(col1, 'KATE', '๋ณธ์ธ', '๋‹ค๋ฅธ์‚ฌ๋žŒ')

 

* CASE WHEN(= ์—ฌ๋Ÿฌ ์ผ€์ด์Šค๋ฅผ ํฌํ•จํ•˜๋Š” IF ๋ฌธ)

 

- ๋‹จ์ผ ์กฐ๊ฑด : CASE WHEN ์กฐ๊ฑด THEN ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ ๊ฒฐ๊ณผ ELSE ๊ฑฐ์ง“์ผ ๋–„ ๊ฒฐ๊ณผ END

- ๋‹ค์ค‘ ์กฐ๊ฑด : 

 

CASE WHEN ์กฐ๊ฑด๋ฌธ1 THEN ๊ฒฐ๊ณผ๊ฐ’1

           WHEN ์กฐ๊ฑด๋ฌธ2 THEN ๊ฒฐ๊ณผ๊ฐ’2

                                  ....

           WHEN ์กฐ๊ฑด๋ฌธn THEN ๊ฒฐ๊ณผ๊ฐ’n

ELSE ๊ฒฐ๊ณผ๊ฐ’ n+1

END

 

ex) CASE WHEN col1 < 10 THEN 'ํ•œ์ž๋ฆฌ ์ˆ˜' (CASE col1 WHEN ๋„ ๊ฐ€๋Šฅ)

                 WHEN col1 BETWEEN 10 AND 99 THEN '๋‘์ž๋ฆฌ ์ˆ˜'

ELSE '์„ธ์ž๋ฆฌ ์ˆ˜'

END

*๋‹จ, col1์—๋Š” ์ •์ˆ˜ํ˜•์œผ๋กœ 1000๋ฏธ๋งŒ์˜ ์ˆซ์ž๋งŒ ๋“ค์–ด๊ฐ€ ์žˆ์Œ์„ ๊ฐ€์ •ํ•จ

 

 

WHERE ์กฐ๊ฑด๋ฌธ

 

  • ์กฐ๊ฑด์„ ์ง€์ •ํ•ด์„œ ํ…Œ์ด๋ธ”์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๋ ˆ์ฝ”๋“œ(ํ–‰)๋งŒ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ
  • ๋น„๊ต์—ฐ์‚ฐ์ž, ๋…ผ๋ฆฌ์—ฐ์‚ฐ์ž ๋“ฑ '์—ฐ์‚ฐ์ž'๋ฅผ ํ†ตํ•ด ์กฐ๊ฑด์„ ๋ถ€์—ฌํ•จ
  • '์กฐ๊ฑด'์„ ์ง€์ •ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋ฏ€๋กœ true or false์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ด(์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๋Š” true์ธ ๋ ˆ์ฝ”๋“œ๋“ค๋งŒ ์ถœ๋ ฅ)
CASE WHEN col1 < 10 THEN 'ํ•œ์ž๋ฆฌ์ˆ˜'
        WHEN col1 BETWEEN 10 AND 99
        THEN '๋‘์ž๋ฆฌ ์ˆ˜'
        ELSE '์„ธ์ž๋ฆฌ ์ˆ˜'
END _
;

SELECT *
FROM C_INFO
WHERE NAME = '๊น€ํ˜ธํ˜ธ' AND PHONE LIKE %1234'

 

 

์—ฐ์‚ฐ์ž ์ข…๋ฅ˜

๋น„๊ต ์—ฐ์‚ฐ์ž =, >, >=, <, <=
- ๋ถ€์ • ๋น„๊ต ์—ฐ์‚ฐ์ž : !=, ^=, <> : ๊ฐ™์ง€ ์•Š์€ ๊ฒƒ์„ ์กฐํšŒ
WHERE col1 <> 1
๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž AND, OR, NOT
- AND : ์กฐ๊ฑด์„ ๋ชจ๋‘ ๋งŒ์กฑํ•ด์•ผ ํ•จ
- OR : ์กฐ๊ฑด์„ ํ•˜๋‚˜๋ผ๋„ ๋งŒ์กฑํ•˜๋ฉด ์ฐธ
- NOT : ์ฐธ์ด๋ฉด ๊ฑฐ์ง“์œผ๋กœ, ๊ฑฐ์ง“์ด๋ฉด ์ฐธ์œผ๋กœ ๋ฐ”๊ฟˆ
WHERE NOT col1 = 1 (WHERE col1 <> 1๊ณผ ๊ฐ™์€ ์˜๋ฏธ)
WHERE NOT col1 > 10(WHERE col1 <= 10๊ณผ ๊ฐ™์€ ์˜๋ฏธ)
BETWEEN a AND b a์™€ B ์‚ฌ์ด์— ๊ฐ’์ด ์žˆ๋Š”์ง€ ํŒ๋‹จ
WHERE col1 BETWEEN 10 AND 99
- WHERE col1 >= 10 AND col1 <= 99์™€ ๋™์ผํ•จ

 

 

์—ฐ์‚ฐ์ž ์ข…๋ฅ˜ - NULL ํŒ๋‹จ

IS NULL NULL์ธ์ง€ ํŒ๋‹จ, NULL์ผ ๊ฒฝ์šฐ TRUE
IS NOT NULL NULL์ด ์•„๋‹ ๊ฒฝ์šฐ TRUE

 

NULL์€ =, <>์œผ๋กœ ๋น„๊ต๋  ์ˆ˜ ์—†๊ณ , IS, IS NOT์œผ๋กœ๋งŒ ๋น„๊ต๋œ๋‹ค

 

WHERE A.col IS NULL (0)
WHERE A.col IS NOT NULL (0)
WHERE A.col = NULL (X)
WHERE A.col <> NULL (X)

 

์˜ˆ์‹œ ๋ฌธ์ œ4)

=> ์ •๋‹ต!! NVL or ISNULL or IFNULL(๋‹จ, ํ‘œํ˜„์‹ ๋‘๊ฐœ(์ƒ๋…„, 9999)์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ๊ฐ™์•„์•ผ ํ•จ)

 

 

์—ฐ์‚ฐ์ž ์ข…๋ฅ˜ - IN

IN(x, y, z....) x, y, z ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ชฉ๋ก ๋‚ด ๊ฐ’ ์ค‘ ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ๋œ๋‹ค.(or ์กฐ๊ฑด)
NOT IN(x, y, z....) x, y, z ๋“ฑ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋ชฉ๋ก ๋‚ด ๊ฐ’ ์ค‘ ์–ด๋Š ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ์•ˆ๋œ๋‹ค.(and ์กฐ๊ฑด)

 

WHERE A.COL IN (1, 2, 3)์„ ๋งŒ์กฑํ•˜๋ ค๋ฉด...
A.col = 1์ด ์ฐธ์ด๊ฑฐ๋‚˜(or)
A.col = 2์ด ์ฐธ์ด๊ฑฐ๋‚˜(or)
A.col = 3์ด ์ฐธ์ด์–ด์•ผ ํ•œ๋‹ค  => OR ์กฐ๊ฑด

WHERE A,COL NOT IN (1, 2, 3)์„ ๋งŒ์กฑํ•˜๋ ค๋ฉด...
A.col <> 1 ์ด ์ฐธ์ด๊ณ  (and)
A.col <> 2 ์ด ์ฐธ์ด๊ณ  (and)
A.col <> 3 ์ด ์ฐธ์ด์–ด์•ผ ํ•œ๋‹ค  => AND ์กฐ๊ฑด

ex) 
SELECT * FROM C_INFO WHERE AGE IN (20, 30, 40);
>> ๋‚˜์ด๊ฐ€ 20์‚ด์ด๊ฑฐ๋‚˜ 30์‚ด์ด๊ฑฐ๋‚˜ 40์‚ด์ธ ๊ณ ๊ฐ์˜ ํšŒ์›์ •๋ณด๋งŒ ์ถœ๋ ฅ

 

**) NULL์ด IN() ํ˜น์€ NOT IN() ์•ˆ์— ํฌํ•จ๋œ๋‹ค๋ฉด??

 

  • IN(1, 2, NULL) >> IN์€ OR ์กฐ๊ฑด์ด๋ฏ€๋กœ 1๋˜๋Š” 2๋ฅผ ๋งŒ์กฑํ•˜๋ฉด TRUE ๊ฐ€๋Šฅ
  • NOT IN(1, 2, NULL) >> NOT IN์€ AND ์กฐ๊ฑด์ด๋ฏ€๋กœ ํ•ญ์ƒ FALSE์ธ NULL์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ•ญ์ƒ FALSE ๋ฅผ ์ถœ๋ ฅ

 

๋ฌธ์ž์—ด ์กฐ๊ฑด๋ฌธ ์—ฐ์‚ฐ์ž

 

A LIKE B A์— ๋Œ€ํ•˜์—ฌ B์™€ ์œ ์‚ฌํ•œ ๋ฌธ์ž์—ด์„ ์ฐพ์•„์คŒ
% ๋ฌธ์ž 0๊ฐœ ์ด์ƒ์ด ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ
๋ฌธ์ž ํ•œ๊ฐœ

 

 

1. %๋Š” ๋ฌธ์ž๊ฐ€ ํ•ด๋‹น ์œ„์น˜์— 0๊ฐœ ์ด์ƒ์ด ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ

ex) WHERE name LIKE '%k%' ์ผ ๊ฒฝ์šฐ ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” name์€ k๋ผ๋Š” ๋‹จ์–ด๋ฅผ ํฌํ•จ๋งŒ ํ•˜๋ฉด ๋จ

  • key : k ์•ž์— ๋ฌธ์ž 0๊ฐœ (True)
  • chuck : k ๋’ค์— ๋ฌธ์ž 0๊ฐœ (True)
  • bike : k ์•ž๋’ค์— ๋ฌธ์ž ์กด์žฌ (True)
  • k : k ์•ž๋’ค์— ๋ฌธ์ž 0๊ฐœ (True)

2, k๊ฐ€ ์–‘๋์— ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์ฐพ์œผ๋ ค๋ฉด

>> LIKE 'k%k' (์–‘๋ ๋ฌธ์ž์—ด์€ ๊ณ ์ •์ด๊ณ , ์ค‘๊ฐ„์€ 0~n๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ์กด์žฌ๊ฐ€๋Šฅ)

 

3. ํŠน์ •ํ•œ ์œ„์น˜์™€ ๋ฌธ์ž ๊ฐœ์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ณ  ์‹ถ์œผ๋ฉด

>> LIKE 'k_y'

 

์˜ˆ์‹œ ๋ฌธ์ œ5)

 

 

=> ์ •๋‹ต!! LIKE '%ki%'

 

๐Ÿ’ช ์ถ”๊ฐ€ ์‚ฌ๋ก€

- ํ•ด๋‹น ์ž๋ฆฌ์— ๋ฌธ์ž๊ฐ€ 0๊ฐœ ์ด์ƒ ์กด์žฌํ•œ๋‹ค๋Š” ์˜๋ฏธ
ex) 'ki%' : ki๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž
>> kind, kite

ex) '%ce' : 'ce'๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž
>> choice, chance

์‹ค๋ฌด) '202309%' : '202309'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด(ex. 2023๋…„ 9์›”)

- ๋ฌธ์ž ํ•œ๊ฐœ
ex) WHERE ๋‹จ์–ด LIKE 'ki__' : ki๋’ค์— ๋‘ ์ž๋ฆฌ๊ฐ€ ๋” ์žˆ๋Š” row ์ถœ๋ ฅ
>> kind, kite

ex) WHERE ๋‹จ์–ด LIKE '__ce' : ce๋กœ ๋๋‚˜๋Š” 6์ž๋ฆฌ ๋ฌธ์ž
>> choice, chance

 

 

Subquery 

 

: ํ•˜๋‚˜์˜ SQL ๋ฌธ์— ํฌํ•จ๋˜์–ด์žˆ๋Š” ๋˜ ๋‹ค๋ฅธ SQL ๋ฌธ์„ ์˜๋ฏธํ•จ

SELECT COUNT(*)
FROM ๊ฒฐ์ œ
WHERE ํšŒ์›๋ฒˆํ˜ธ NOT IN (SELECT ํšŒ์›๋ฒˆํ˜ธ FROM ํšŒ์›)
  • SELECT์ ˆ, FROM์ ˆ, WHERE์ ˆ, HAVING์ ˆ, ORDER BY์ ˆ ๋“ฑ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๊ด„ํ˜ธ๋กœ ๊ฐ์‹ธ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ, ์„ธ๋ฏธ์ฝœ๋ก  ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ
  • ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋‹จ์ผํ–‰ ๋˜๋Š” ๋ณต์ˆ˜ํ–‰ ๋น„๊ต์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์„œ๋ธŒ์ฟผ๋ฆฌ๋„ AS๋กœ ๋ณ„์นญ ์ง€์ •์ด ๊ฐ€๋Šฅ (FROM ์ ˆ์— ์‚ฌ์šฉ๋˜๋ฉด ๋ณ„์นญ ์ง€์ • ํ•„์ˆ˜)

 

์œ„์น˜์— ๋”ฐ๋ฅธ ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ช…์นญ

  • ์Šค์นผ๋ผ ์„œ๋ธŒ์ฟผ๋ฆฌ : SELECT ์ ˆ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ, ๊ฒฐ๊ณผ๋Š” ํ•˜๋‚˜์˜ ํ–‰์ด์–ด์•ผ๋งŒ ํ•œ๋‹ค
    SELECT *,  (SELECT ๋ถ€์„œ๋ช… FROM ๋ถ€์„œ WHERE ๋ถ€์„œ,๋ถ€์„œ๋ฒˆํ˜ธ = ์ง์›.๋ถ€์„œ๋ฒˆํ˜ธ) AS ์†Œ์†๋ถ€์„œ FROM ์ง์›;
  • ์ธ๋ผ์ธ๋ทฐ : FROM ์ ˆ ๋‚ด์— ์“ฐ์—ฌ์ง„ ์„œ๋ธŒ์ฟผ๋ฆฌ
    SELECT * FROM (SELECT * FROM C_INFO WHERE name LIKE '%a%') AS T;

 

๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž

๋น„๊ต ์—ฐ์‚ฐ์ž =, >, >=, <, <=, !=, ^=, <>
SELECT ๋‚ ์งœ, ๋งค์ถœ์ด์•ก, ๊ฒฐ์ œ๊ฑด์ˆ˜
FROM ๋งค์ถœ
WHERE ๋งค์ถœ์ด์•ก >= (SELECT AVG(๋งค์ถœ ์ด์•ก) FROM ๋งค์ถœ WHERE SUBSTR(๋‚ ์งœ, 1.6) = '202309');
๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž - IN : ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ๋น„๊ต๋Œ€์ƒ์ด ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ค‘์—์„œ ํ•˜๋‚˜๋ผ๋„ ์ผ์น˜ํ•˜๋ฉด ์ฐธ
- EXISTS : ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ๋น„๊ต๋Œ€์ƒ์ด ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ์ค‘์—์„œ ๋งŒ์กฑํ•˜๋Š” ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ์กด์žฌํ•˜๋ฉด ์ฐธ
=> ๋น„๊ต์—ฐ์‚ฐ์ž๋ž‘ ๊ฐ™์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ
- ALL : ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋น„๊ต๋Œ€์ƒ์ด ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ์™€ ๋ชจ๋“  ๊ฐ’์ด ์ผ์น˜ํ•˜๋ฉด ์ฐธ
- ANY, SOME : ๋ฉ”์ธ์ฟผ๋ฆฌ์˜ ๋น„๊ต๋Œ€์ƒ์ด ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ๊ฒฐ๊ณผ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ์ผ์น˜ํ•˜๋ฉด ์ฐธ
=> =, >, < ๋“ฑ ๋น„๊ต์—ฐ์‚ฐ์ž๋ž‘ ๊ฐ™์ด ์‚ฌ์šฉ (ex. col1 = ALL(a, b, c) a, b, c๋ชจ๋“  ๊ฐ’์„ ๊ฐ€์ง€๋Š” col1๋ฐ˜ํ™˜)

 

์˜ˆ์‹œ ๋ฌธ์ œ6)

 

 

=> ์ •๋‹ต!!

SELECT ์ด๋ฆ„
FROM ์‚ฌ์žฅํ›„๋ณด
WHERE ์ž…์‚ฌ๋…„๋„ < ALL (SELECT ์ž…์‚ฌ๋…„๋„ FROM ์ž„์›)

 

์˜ˆ์‹œ ๋ฌธ์ œ7)

 

๋‹ค์Œ ๋ณด๊ธฐ ์ค‘ ์„œ๋ธŒ์ฟผ๋ฆฌ์™€ ๋‹ค์ค‘ํ–‰ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ์„ค๋ช…์œผ๋กœ ์˜ณ์€ ๊ฒƒ์€?

1. ์„œ๋ธŒ์ฟผ๋ฆฌ์—์„œ๋Š” ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ORDER BY๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. (X)

>> ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค

2. ์—ฌ๋Ÿฌ ํ–‰์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ๋Š” ๋‹จ์ผ ํ–‰ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค (X)

>> ๋‹ค์ค‘ ํ–‰ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค

3. ๋ฉ”์ธ ์ฟผ๋ฆฌ์—์„œ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์ปฌ๋Ÿผ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค (X)

>> ๋ฉ”์ธ ์ฟผ๋ฆฌ์—์„œ๋Š” SELECT ๋˜์ง€ ์•Š์€ ์„œ๋ธŒ์ฟผ๋ฆฌ์˜ ์ปฌ๋Ÿผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Œ

>> ์„œ๋ธŒ ์ฟผ๋ฆฌ ๋‚ด๋ถ€์—์„œ๋Š” ๋ฉ”์ธ ์ฟผ๋ฆฌ์˜ ์ปฌ๋Ÿผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ

4. EXIST๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ’์€ True ํ˜น์€ False ์ด๋‹ค (0)

>> ๊ฒฐ๊ณผ๊ฐ€ ํ•˜๋‚˜๋ผ๋„ ์กด์žฌํ•˜๋ฉด ์ฐธ

ex. WHERE EXISTS(SELECT 1 FROM WHERE ๊ฑฐ์ฃผ์ง€ = '์„œ์šธ')

 

 

WITH์ ˆ : ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ WITH์ ˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

SELECT * FROM (SELECT * FROM C_INFO WHERE name LIKE '%a%') AS T;

WITH T AS (
    SELECT * FROM C_INFO WHERE name LIKE '%a%')
,     T2 AS (SELECT _ FROM T)
SELECT *
FROM T;

* WITH ํ…Œ์ด๋ธ”๋ช… AS (์ฟผ๋ฆฌ๋ฌธ) SELECT _ FROM ํ…Œ์ด๋ธ”๋ช…
* ์ž„์‹œํ…Œ์ด๋ธ”(์ค‘๊ฐ„๊ฒฐ๊ณผ ์ €์žฅ์šฉ ๋“ฑ ์ž„์‹œ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ…Œ์ด๋ธ”)์ด๋‚˜ ๋ทฐ(VIEW)์ฒ˜๋Ÿผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•จ
* ์ฟผ๋ฆฌ๋ฌธ ๋‚ด์—์„œ ๋ฐ˜๋ณตํ•ด์„œ ๋™์ผํ•œ ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ WITH ์ ˆ๋กœ ๋ฐ˜๋ณต ์ฟผ๋ฆฌ๋ฌธ์„ ์ค„์—ฌ ํ…Œ์ด๋ธ” ์—‘์„ธ์Šค๋ฅผ ์ค„์ด๊ณ  ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

 

 

View ํ…Œ์ด๋ธ”์ด๋ž€?

  • ์ผ์ข…์˜ ๊ฐ€์ƒํ…Œ์ด๋ธ”๋กœ์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋“œ์›จ์–ด์— ์ €์žฅ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค
  • ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๊ณ  SQL๋งŒ ์ €์žฅํ•œ๋‹ค(Table์€ ์‹ค์งˆ์  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง„๋‹ค)
    => ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ๋งŒ ํ•˜๋Š” ํ…Œ์ด๋ธ”
  • ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌํ•œ๋‹ค

 

VIEW ํ…Œ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ์‚ฌ์šฉ์ƒ์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
    => ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฌธ์ด ์žˆ์œผ๋ฉด ๋งค๋ฒˆ ์ฟผ๋ฆฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ํ•ด๋‹น ์ฟผ๋ฆฌ๋ฌธ์„ View ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด๋‘๊ณ  ๊ด€๋ฆฌํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ๊ฒƒ์ด ํŽธํ•˜๋ฏ€๋กœ
  • ๋ณด์•ˆ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ
  • ์ž„์‹œ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด ์‚ฌ์šฉ\

 

์˜ˆ์‹œ ๋ฌธ์ œ8)

 

=> ์ •๋‹ต!!

WITH T AS (
SELECT *
FROM C_INFO
WHERE NAME LIKE '%a%'
)
SELECT count (*) FROM T ;

 

 

์ง‘๊ณ„ํ•จ์ˆ˜

COUNT(*), COUNT(exp) count(*) : NULL ํฌํ•จ, count(exp) : NULL ์ œ์™ธ
SUM( [DISTINCT | ALL] exp ) ํ•ฉ๊ณ„
AVG( [DISTINCT | ALL] exp ) ํ‰๊ท 
MAX( [DISTINCT | ALL] exp ) ์ตœ๋Œ€๊ฐ’
MIN( [DISTINCT | ALL] exp ) ์ตœ์†Œ๊ฐ’
STDDEV( [DISTINCT | ALL] exp ) ํ‘œ์ค€ํŽธ์ฐจ
VARIAN( [DISTINCT | ALL] exp ) ๋ถ„์‚ฐ

 

**) NULL๊ฐ’์— ๋Œ€ํ•œ ์—ฐ์‚ฐ์˜ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋‘ NULL์ด๋ฉฐ ํ†ต๊ณ„์  ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์—ฐ์‚ฐํ•  ๋•Œ, NULL์€ ์ œ์™ธํ•˜๊ณ  ๊ณ„์‚ฐํ•œ๋‹ค

ex) NULL / 10 = NULL

 

 

์˜ˆ์‹œ ๋ฌธ์ œ9) 

C_INFO์—์„œ ํ‰๊ท  ์—ฐ๋ น์ด 30๋Œ€์ธ ์„ฑ๋ณ„๊ณผ ํ•ด๋‹น ์„ฑ๋ณ„์˜ ํ‰๊ท  ์—ฐ๋ น์„ ์ถœ๋ ฅํ•˜๋Š” SQL์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

=> ์ •๋‹ต!!

SELECT ์„ฑ๋ณ„, AVG(์—ฐ๋ น)

FROM  C_INFO

GROUP BY ์„ฑ๋ณ„

HAVING AVG(์—ฐ๋ น) >= 30 AND AVG(์—ฐ๋ น) < 40;

 

 

์˜ˆ์‹œ ๋ฌธ์ œ10) 

FROM > WHERE > GROUP BY > HAVING > SELECT > ORDER BY 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

๋ฐ˜์ •๊ทœํ™”

 

๋ฐ˜์ •๊ทœํ™” ๊ฐœ๋… 

- ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ๊ฐœ๋ฐœ ๋ฐ ์šด์˜์˜ ํŽธ์˜์„ฑ ๋“ฑ์„ ์œ„ํ•ด ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ํ†ตํ•ฉ, ์ค‘๋ณต, ๋ถ„๋ฆฌํ•˜๋Š” ๊ณผ์ •์œผ๋กœ ์˜๋„์ ์œผ๋กœ ์ •๊ทœํ™” ์›์น™์„ ์œ„๋ฐฐํ•˜๋Š” ํ–‰์œ„

 

๋ฐ˜์ •๊ทœํ™”์˜ ๋Œ€์ƒ ๋ถ„์„

- ๋””์Šคํฌ I/O ๋Ÿ‰์ด ๋งŽ์•„ ์„ฑ๋Šฅ ์ €ํ•˜

- ๊ฒฝ๋กœ๊ฐ€ ๋„ˆ๋ฌด ๋ฉ€์–ด ์กฐ์ธ์œผ๋กœ ์„ฑ๋Šฅ ์ €ํ•˜

- ์ปฌ๋Ÿผ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ฝ์„ ๋–„ ์„ฑ๋Šฅ ์ €ํ•˜

 

๋ฐ˜์ •๊ทœํ™”์˜ ํŠน์ง•

- ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ  ๊ด€๋ฆฌ ํšจ์œจ์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ค์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ ๋ฐ ์ •ํ•ฉ์„ฑ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ๋‹ค

- ๊ณผ๋„ํ•œ ๋ฐ˜์ •๊ทœํ™”๋Š” ์˜คํžˆ๋ ค ์„ฑ๋Šฅ์„ ์ €ํ•˜์‹œํ‚จ๋‹ค.

- ๋ฐ˜์ •๊ทœํ™”๋ฅผ ์œ„ํ•ด์„œ๋Š” ์‚ฌ์ „์— ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ๊ณผ ๋ฌด๊ฒฐ์„ฑ์„ ์šฐ์„ ์œผ๋กœ ํ• ์ง€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ฑ๋Šฅ๊ณผ ๋‹จ์ˆœํ™”๋ฅผ ์šฐ์„ ์œผ๋กœ ํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค

- ๋ฐ˜์ •๊ทœํ™” ๋ฐฉ๋ฒ•์—๋Š” ํ…Œ์ด๋ธ” ํ†ตํ•ฉ, ํ…Œ์ด๋ธ” ๋ถ„ํ• , ์ค‘๋ณต ํ…Œ์ด๋ธ” ์ถ”๊ฐ€, ์ค‘๋ณต ์†์„ฑ ์ถ”๊ฐ€ ๋“ฑ์ด ์žˆ๋‹ค

 

ํ…Œ์ด๋ธ” ํ†ตํ•ฉ

- ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ”์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์ž์ฃผ ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฒฝ์šฐ, ๋‘๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ์ด์šฉํ•˜์—ฌ ํ•ญ์ƒ ์กฐํšŒ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ํ…Œ์ด๋ธ” ํ†ตํ•ฉ์„ ๊ณ ๋ คํ•œ๋‹ค.

 

 

์†์„ฑ

์†์„ฑ์˜ ์˜๋ฏธ

- ์—…๋ฌด์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์ธ์Šคํ„ด์Šค์—์„œ ๋” ์ด์ƒ ๋ถ„๋ฆฌ๋˜์ง€ ์•Š๋Š” ์ตœ์†Œ์˜ ๋ฐ์ดํ„ฐ ๋‹จ์œ„

 

์†์„ฑ์˜ ํŠน์ง•

- ํ•œ ๊ฐœ์˜ ์†์„ฑ์€ ๋ฐ˜๋“œ์‹œ ํ•œ ๊ฐœ์˜ ์†์„ฑ๊ฐ’๋งŒ์„ ๊ฐ€์ง„๋‹ค

- ํ•œ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋Š” ์ตœ์†Œ 2๊ฐœ ์ด์ƒ์˜ ์†์„ฑ์„ ๊ฐ€์ง„๋‹ค

- ํ•œ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋Š” ์ตœ์†Œ 1๊ฐœ ์ด์ƒ์˜ ๋‹ค๋ฅธ ์—”ํ‹ฐํ‹ฐ์™€์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„๋‹ค

- ํ•œ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋Š” ์ตœ์†Œ 2๊ฐœ ์ด์ƒ์˜ ์ธ์Šคํ„ด์Šค ์ง‘ํ•ฉ์ด์–ด์•ผ ํ•œ๋‹ค

 

์†์„ฑ์˜ ์ข…๋ฅ˜(ํŠน์„ฑ์— ๋”ฐ๋ฅธ)

- ๊ธฐ๋ณธ ์†์„ฑ : ์—…๋ฌด์ƒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ •์˜ 

- ์„ค๊ณ„ ์†์„ฑ : ์—…๋ฌด๋ฅผ ๊ทœ์น™ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ณ€ํ˜•ํ•œ ์†์„ฑ

- ํŒŒ์ƒ ์†์„ฑ : ๋‹ค๋ฅธ ์†์„ฑ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ๋ฐœ์ƒ, ์ฃผ๋กœ ๊ณ„์‚ฐํ•˜๋Š” ๊ฐ’๋“ค์ด ์ด์— ํ•ด๋‹น(๊ณ„์‚ฐ์„ ํ†ตํ•ด ๊ตฌํ•œ๋‹ค -> ํŒŒ์ƒ, ํŒŒ์ƒ => ์ตœ์†Œ์ฃผ๋ฌธ ์ผ์ž, ์ฃผ๋ฌธ ๊ธˆ์•ก, ์ด์ฃผ๋ฌธ๊ธˆ์•ก)

 

 

ex) ์€ํ–‰์— ์ ๊ธˆ์„ ๋“ค๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์›๊ธˆ์„ ํ†ต์žฅ์— ์ž…๊ธˆํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด์ž์œจ์€ 5%๋ผ์„œ ์—ฐ ์ด์ž๋Š” ์›๊ธˆ์˜ * 0.05๋ฅผ ๊ธฐ๋Œ€ํ•˜๋ฉด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๊ธฐ๋ณธ์†์„ฑ : ์›๊ธˆ, ์ด์ž์œจ

ํŒŒ์ƒ ์†์„ฑ : ์ด์ž

์„ค๊ณ„ ์†์„ฑ : ์˜ˆ๊ธˆ ๋ถ„๋ฅ˜

 

์ธ์Šคํ„ด์Šค

: ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋‚ด์šฉ์˜ ์ „์ฒด ์ง‘ํ•ฉ์„ ์˜๋ฏธ(ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ์•„๋‹˜)

 

 

๋น„์‹๋ณ„์ž ๊ด€๊ณ„ 

: ๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ๋กœ๋ถ€ํ„ฐ ์†์„ฑ์„ ๋ฐ›์•˜์ง€๋งŒ ์ž์‹ ์—”ํ‹ฐํ‹ฐ์˜ ์ฃผ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•ฎ ์•Š๊ณ  ์ผ๋ฐ˜์ ์ธ ์†์„ฑ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ

 

ex)

1. ์ž์‹ ์—”ํ‹ฐํ‹ฐ์—์„œ ๋ฐ›์€ ์†์„ฑ์ด ๋ฐ˜๋“œ์‹œ ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ์–ด๋„ ๋ฌด๋ฐฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๋ชจ ์—†๋Š” ์ž์‹์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ

2. ์—”ํ‹ฐํ‹ฐ๋ณ„๋กœ ๋ฐ์ดํ„ฐ์˜ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ

3. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์—”ํ‹ฐํ‹ฐ๋กœ ํ†ตํ•ฉ๋˜์–ด ํ‘œํ˜„๋˜์—ˆ๋Š”๋ฐ ๊ฐ๊ฐ์˜ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ๋ณ„๋„์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์งˆ ๋•Œ์˜ ๊ฒฝ์šฐ

4. ์ž์‹ ์—”ํ‹ฐํ‹ฐ์— ์ฃผ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉํ•˜์—ฌ๋„ ๋˜์ง€๋งŒ ์ž์‹์—”ํ‹ฐํ‹ฐ์—์„œ ๋ณ„๋„์˜ ์ฃผ์‹๋ณ„์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ์œ ๋ฆฌํ•˜๋‹ค๊ณ  ํŒ๋‹จ ๋˜๋Š” ๊ฒฝ์šฐ

 

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง

 

- ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์ถ”์ƒํ™” ์ˆ˜์ค€์ด ๋†’๊ณ  ์—…๋ฌด์ค‘์‹ฌ์ ์ด๊ณ  ํฌ๊ด„์ ์ธ ์ˆ˜์ค€์˜ ๋ชจ๋ธ๋ง ์ง„ํ–‰, ์ „์‚ฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง, EA ์ˆ˜๋ฆฝ์‹œ ๋งŽ์ด ์‚ฌ์šฉ

- ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์‹œ์Šคํ…œ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๊ณ ์ž ํ•˜๋Š” ์—…๋ฌด์— ๋Œ€ํ•ด Key ์†์„ฑ, ๊ด€๊ณ„ ๋“ฑ์„ ์ •ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„, ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์Œ

- ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง : ์‹ค์ œ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ด์‹ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ฑ๋Šฅ, ์ €์žฅ ๋“ฑ ๋ฌผ๋ฆฌ์ ์ธ ์„ฑ๊ฒฉ์„ ๊ณ ๋ คํ•˜์—ฌ ์„ค๊ณ„

 

 

์ •๊ทœํ˜•

 

์ œ 1์ •๊ทœํ˜• 

: ๋ชจ๋“  ์†์„ฑ์ด ๋„๋ฉ”์ธ์ด ์›์ž ๊ฐ’์œผ๋กœ๋งŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉด ์ œ 1์ •๊ทœํ˜•์— ์†ํ•œ๋‹ค

์ œ 2์ •๊ทœํ˜•

: ์ œ 1์ •๊ทœํ˜•์— ์†ํ•˜๊ณ , ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ์™„์ „ ํ•จ์ˆ˜ ์ข…์†๋˜๋ฉด ์ œ 2์ •๊ทœํ˜•์— ์†ํ•œ๋‹ค.

์ œ 3์ •๊ทœํ˜•

: ์ œ 2์ •๊ทœํ˜•์— ์†ํ•˜๊ณ , ๊ธฐ๋ณธํ‚ค๊ฐ€ ์•„๋‹Œ ๋ชจ๋“  ์†์„ฑ์ด ๊ธฐ๋ณธํ‚ค์— ์ดํ–‰์  ํ•จ์ˆ˜ ์ข…์†์ด ๋˜์ง€ ์•Š์œผ๋ฉด ์ œ 3์ •๊ทœํ˜•์— ์†ํ•œ๋‹ค

=> ์†์„ฑ ๊ฐ„์˜ ํ•จ์ˆ˜ ์ข…์†์„ฑ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

 

 

 

++ ๋‹จ๋‹ตํ˜• + ์ฃผ๊ด€์‹

 

๋„๋ฉ”์ธ : ์†์„ฑ์ด ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์˜ ๋ฒ”์œ„

 

์œ ์ผ์„ฑ : ํ•˜๋‚˜์˜ ํ‚ค๋กœ ํŠน์ • ํ–‰์„ ๋ฐ”๋กœ ์ฐพ์•„๋‚ผ ์ˆ˜ ์žˆ๋Š” ๊ณ ์œ ํ•œ ๋ฐ์ดํ„ฐ ์†์„ฑ

 

๋ทฐ(VIEW) : ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ํŒŒ์ƒ๋œ ํ…Œ์ด๋ธŒ๋กœ, ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋…ธ๋ฆฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ

 

 

728x90
๋ฐ˜์‘ํ˜•
728x90
๋ฐ˜์‘ํ˜•

5๊ณผ๋ชฉ ์ •๋ณด ์‹œ์Šคํ…œ ๊ตฌ์ถ• ๊ด€๋ฆฌ ์š”์•ฝ๋ณธ์ž…๋‹ˆ๋‹ค :)

5๊ณผ๋ชฉ.docx
0.02MB

<5๊ณผ๋ชฉ. ์ •๋ณด์‹œ์Šคํ…œ ๊ตฌ์ถ•๊ด€๋ฆฌ>

-       ์ •๋ณด๋ณด์•ˆ 3์š”์†Œ(๊ธฐ๋ฐ€์„ฑ, ๋ฌด๊ฒฐ์„ฑ. ๊ฐ€์šฉ์„ฑ)

l  ๊ธฐ๋ฐ€์„ฑ : ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด์„œ๋งŒ ์ž์› ์ ‘๊ทผ์ด ๊ฐ€๋Šฅ(์•”ํ˜ธํ™”์‹œ์ผœ์„œ ๋ชป๋ณด๊ฒŒํ•จ)

l  ๋ฌด๊ฒฐ์„ฑ : ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด์„œ๋งŒ ์ž์› ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜์—ฌ ์ „์†ก์ค‘์ธ ์ •๋ณด๋Š” ์ˆ˜์ •์ด ์–ด๋ ต๋‹ค(๊ธˆ์„ ๋™์œผ๋กœ ๋ฐ”๊ฟ”์„œ ์‚ฌ์šฉ์ด ์–ด๋ ต)

l  ๊ฐ€์šฉ์„ฑ : ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž๋Š” ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ถŒํ•œ ๋ฒ”์œ„ ๋‚ด์—์„œ ์–ธ์ œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅ(ํ•„์š”ํ•  ๋•Œ ์–ธ์ œ๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅ)

-       Tac wrapper

: ์–ด๋–ค ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘์†๋˜๋ฉด ์ ‘์† ์ธ๊ฐ€ ์—ฌ๋ถ€๋ฅผ ์ ๊ฒ€ํ•ด์„œ ์ธ๊ฐ€๋œ ๊ฒฝ์šฐ์—๋Š” ์ ‘์†์ด ํ—ˆ์šฉ๋˜๊ณ  ๊ทธ ๋ฐ˜๋Œ€์˜ ๊ฒฝ์šฐ์—๋Š” ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ์ ‘๊ทผ์ œ์–ด ์œ ํ‹ธ๋ฆฌํ‹ฐ

-       Zing

: ๊ธฐ๊ธฐ๋ฅผ ํ‚ค์˜ค์Šคํฌ์— ๊ฐ–๋‹ค ๋Œ€๋ฉด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ”๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ๋กœ 10cm์ด๋‚ด ๊ทผ์ ‘ ๊ฑฐ๋ฆฌ์—์„œ ๊ธฐ๊ฐ€ ๊ธ‰์†๋„๋กœ ๋ฐ์ดํ„ฐ ์ „์†ก์ด ๊ฐ€๋Šฅํ•œ ์ดˆ๊ณ ์† ๊ทผ์ ‘, ๋ฌด์„  ํ†ต์‹  ๊ธฐ์ˆ 

-       ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ ์ ๊ฒ€ ๋ณด๋ฅ˜

l  ๊ด€๋ฆฌ์  ๊ด€์  : ์ •๋ณด ๋ณดํ˜ธ ๊ด€๋ฆฌ์ฒด๊ณ„ ๋ณด์•ˆ ํ†ต์ œ์— ๊ทผ๊ฑฐํ•˜์—ฌ ์ทจ์•ฝ์  ์ ๊ฒ€

l  ๊ธฐ์ˆ ์  ๊ด€์  : ์„œ๋ฒ„ ๋„คํŠธ์›Œํฌ, PC ๋ณด์•ˆ์ ๊ฒ€ ๋“ฑ์„ ํ†ตํ•œ ์ทจ์•ฝ์  ์ ๊ฒ€

l  ๋ฌผ๋ฆฌ์  ๊ด€์  : ์ถœ์ž… ํ†ต์ œ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ด€๋ จ, ํ™”์ œ ๋“ฑ ๊ด€๋ จ

-       Worm

: ์•…์„ฑ์ฝ”๋“œ์˜ ์œ ํ˜• ์ค‘ ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ์Šค์Šค๋กœ ์ „ํŒŒํ•˜๊ฑฐ๋‚˜ ๋ฉ”์ผ๋กœ ์ „ํŒŒ๋˜์–ด ์Šค์Šค๋กœ ์ฆ์‹ํ•˜๋Š” ๊ฒƒ

-       ์•”ํ˜ธํ™” ๊ตฌ๋ถ„

 

 

 

 

 

 

-       DDOS ๊ณต๊ฒฉ ์œ ํ˜•(๊ฐ€์šฉ์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฌ๊ธฐ ์œ„ํ•จ)

l  Smurf Attack : IP, ICMP ํŠน์„ฑ์„ ์ด์šฉํ•˜์—ฌ ๊ณต๊ฒฉ

l  Ping Of Death : ๊ทœ์ • ํฌ๊ธฐ ์ด์ƒ์˜ ICMP ํŒจํ‚ท์œผ๋กœ ์‹œ์Šคํ…œ์„ ๋งˆ๋น„์‹œํ‚ค๋Š” ๊ณต๊ฒฉ

l  Land Attack : ์ถœ๋ฐœ์ง€ IP์™€ ๋ชฉ์ ์ง€ IP๊ฐ€ ๊ฐ™์€ ํŒจํ‚ท์„ ๋งŒ๋“ค์–ด ๋ณด๋‚ด๋Š” ๊ณต๊ฒฉ

l  Teardrop Attack : ์žฌ์กฐํ•ฉ์„ ํ•  ์ˆ˜ ์žˆ๋Š” fragment number๋ฅผ ์œ„์กฐํ•˜๋Š” ๊ณต๊ฒฉ

l  SYN Flooding : TCP์˜ ์—ฐ๊ฒฐ๊ณผ์ •(3Way Handshaking)์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•œ ๊ณต๊ฒฉ

l  VDP Flooding : ๋‹ค๋Ÿ‰์˜ VDP ํŒจํ‚ท์„ ์ „์†กํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ž์›์„ ๊ณ ๊ฐˆ์‹œํ‚ค๋Š” ๊ณต๊ฒฉ

l  Ping Flooding : ํŠน์ • ์‚ฌ์ดํŠธ์— ๋งค์šฐ ๋งŽ์€ ICMP Echo๋ฅผ ๋ณด๋‚ด๋Š” ๊ณต๊ฒฉ

-       ์ ‘๊ทผ ํ†ต์ œ ์ •์ฑ…(๋งค์šฐ์ค‘์š”)

l  ๊ฐ•์ œ์  ์ ‘๊ทผํ†ต์ œ(MPC, Mandatory Access Control) : ์ž์›์˜ ๋ณด์•ˆ๋ ˆ๋ฒจ๊ณผ ์‚ฌ์šฉ์ž์˜ ๋ณด๊ธ‰ ์ทจ๊ธ‰์ผ์ž๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ ‘๊ทผ ์ œ์–ด

l  ์ž„์˜์  ์ ‘๊ทผํ†ต์ œ(DAC, Discretionary Access Control) : ์ž์›์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์ด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ฑฐ๋‚˜ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค

l  ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผํ†ต์ œ(RBAC, Role Based Access Control) : ๊ฐœ๋ณ„์ ์ธ ์‹ ๋ถ„์ด ์•„๋‹ˆ๋ผ ์กฐ์ง ๋‚ด ๊ฐœ์ธ์—ญํ• ์— ๋”ฐ๋ผ ํ—ˆ์šฉ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ชจ๋ธ์ด๋‹ค

-       ์ ‘๊ทผ์ œ์–ด ๋ชจ๋ธ

l  BLP ๋ชจ๋ธ

: ๊ธฐ๋ฐ€์„ฑ, ์ตœ์ดˆ์˜ ์ˆ˜ํ•™๋ชจ๋ธ / ์ •๋ถ€ ๋ฐ ๊ตฐ์šฉ ์‘์šฉ ์‹œ์Šคํ…œ์˜ ์ ‘๊ทผ์„ ์ œ์–ด / No Read Up, No Write Down

l  BIBA ๋ชจ๋ธ

: ๋ฌด๊ฒฐ์„ฑ ์ตœ์ดˆ์˜ ๋ชจ๋ธ / BLP ๋ชจ๋ธ์—์„œ ๋ถˆ๋ฒ• ์ˆ˜์ • ๋ฐฉ์ง€ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ / No Write Up, No Read Down

l  Clark-Wilson ๋ชจ๋ธ : ์ƒ์—… ํ™˜๊ฒฝ์—์„œ ์ ํ•ฉํ•˜๋„๋ก ๊ฐœ๋ฐœ๋œ ๋ถˆ๋ฒ• ์ˆ˜์ • ๋ฐฉ์ง€๋ฅผ ์œ„ํ•œ ๋ชจ๋ธ / ๊ธฐ๋ฐ€์„ฑ ๋ณด๋‹ค๋Š” ๋ฌด๊ฒฐ์„ฑ์— ์ดˆ์ 

l  ๋งŒ๋ฆฌ์žฅ์„ฑ ๋ชจ๋ธ : ์ถฉ๋Œ์ผ ์•ผ๊ธฐ์‹œํ‚ค๋Š” ์–ด๋–ค ์ •๋ณด์˜ ํ๋ฆ„๋„ ์—†์–ด์•ผ ํ•˜๋ฉฐ, ์ดํ•ด ์ถฉ๋Œ ๋ฐœ์ƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋œ ๋‚ด๋ถ€ ๊ทœ์น™

l  Lattice ๋ชจ๋ธ : ์ปดํ“จํ„ฐ์˜ ๋ณด์•ˆ์„ฑ ์žˆ๋Š” ์ •๋ณด ํ๋ฆ„์„ ํ†ต์ œ

 

-       ์ธ์ฆ VS ์ธ๊ฐ€

l  ์ธ์ฆ(Authentication) : ์‹œ์Šคํ…œ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ๊ฒ€์ฆ

l  ์ธ๊ฐ€(Authorization) : ๊ฒ€์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ถŒํ•œ๊ณผ ์„œ๋น„์Šค๋ฅผ ํ—ˆ์šฉ

l  ๊ณ„์ •๊ด€๋ฆฌ(Accounting) : ์‚ฌ์šฉ์ž์˜ ์ž์›์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ๋ชจ์•„์„œ ์šฉ๋Ÿ‰ ์ฆ์„ค ๋ฆฌํฌํŒ… ๋“ฑ

-       ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜๊ธฐ์ˆ 

l  SDN(Softeware Defined Networking) : ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ๋„คํŠธ์›Œํ‚น / ๋„คํŠธ์›Œํ‚น ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ƒํ™”๋œ ์‹œ์Šคํ…œ์œผ๋กœ ์ถ”์ƒํ™”ํ•˜๋Š” IT ์ธํ”„๋ผ์— ๋Œ€ํ•œ ํ•˜๋‚˜์˜ ์ ‘๊ทผ ๋ฐฉ์‹ / ๋น„์šฉ ์ ˆ๊ฐ, ์šฐ์ˆ˜ํ•œ ํ™•์žฅ์„ฑ ๋ฐ ์œ ์—ฐ์„ฑ, ๊ด€๋ฆฌ ๊ฐ„์†Œํ™”

l  SDS(Software Defined Storage) : ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ์Šคํ† ๋ฆฌ์ง€ / ํ•˜๋“œ์›จ์–ด์—์„œ ์Šคํ† ๋ฆฌ์ง€ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ์Šคํ† ๋ฆฌ์ง€ ์•„ํ‚คํ…์ฒ˜ / ์ž๋™ํ™”, ํ‘œ์ค€ ์ธํ„ฐํŽ˜์ด์Šค, ๊ฐ€์ƒํ™”๋œ ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ, ํ™•์žฅ์„ฑ, ํˆฌ๋ช…์„ฑ

l  SDC(Software Defined Computing) : ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ์ปดํ“จํŒ…

l  SDDC(Software Defined Data Center) : ์†Œํ”„ํŠธ์›จ์–ด ์ •์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ /. ๋ฐ์ดํ„ฐ์„ผํ„ฐ์˜ ๋ชจ๋“  ์ดํ”„๋ผ์ธ ๋„คํŠธ์›Œํฌ, ์Šคํ† ๋ฆฌ์ง€, ์ปดํ“จํ„ฐ, ๋ณด์•ˆ ๋“ฑ์ด ๊ฐ€์ƒํ™” ๋˜์–ด ์„œ๋น„์Šค๋กœ์„œ ์ œ๊ณต๋˜๋Š” ์ฐจ์„ธ๋Œ€์˜ ํ•ต์‹ฌ์ ์ธ ๋ฐ์ดํ„ฐ์„ผํ„ฐ ์†”๋ฃจ์…˜ / ์ธ๋ ฅ ๊ฐœ์ž… ์—†์ด ์†Œํ”„ํŠธ์›จ์–ด ์กฐ์ž‘๋งŒ์œผ๋กœ ์ž๋™ ์ œ์–ด ๊ด€๋ฆฌํ•œ๋‹ค.

-       ๋ธ”๋ฃจํˆฌ์Šค ๊ด€๋ จ ๊ณต๊ฒฉ

l  ๋ธ”๋ฃจ๋ฒ„๊ทธ : ๋ธ”๋ฃจํˆฌ์Šค ์žฅ๋น„ ์‚ฌ์ด์˜ ์ทจ์•ฝํ•œ ์—ฐ๊ฒฐ ๊ด€๋ฆฌ๋ฅผ ์•…์šฉํ•œ ๊ณต๊ฒฉ

l  ๋ธ”๋ฃจ์Šค๋‚˜ํ”„ : ๋ธ”๋ฃจํˆฌ์Šค์˜ ์ทจ์•ฝ์ ์„ ํ™œ์šฉํ•˜์—ฌ ์žฅ๋น„์˜ ํŒŒ์ผ์— ์ ‘๊ทผํ•˜๋Š” ๊ณต๊ฒฉ

l  ๋ธ”๋ฃจํ”„๋ฆฐํŒ… : ๋ธ”๋ฃจํˆฌ์Šค ๊ณต๊ฒฉ ์žฅ์น˜์˜ ๊ฒ€์ƒ‰ ํ™œ๋™์„ ์˜๋ฏธ

l  ๋ธ”๋ฃจ์žฌํ‚น : ๋ธ”๋ฃจํŠธ์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์ŠคํŒธ๋ฉ”์ผ์ฒ˜๋Ÿผ ๋ฉ”์‹œ์ง€๋ฅผ ์ต๋ช…์œผ๋กœ ํผํŠธ๋ฆฌ๋Š” ๊ณต๊ฒฉ

-       ๋ฃจํŒ…(Rooting) : ์•ˆ๋“œ๋กœ์ด๋“œ ์šด์˜์ฒด์ œ์—์„œ ์ตœ์ƒ์˜ ๊ถŒํ•œ์„ ์–ป์–ด ํ•ด๋‹น ๊ธฐ๊ธฐ์˜ ์ œ์•ฝ์„ ํ•ด์žฌํ•˜๋Š” ํ–‰์œ„ / IOD ๊ด€๋ จ ์šฉ์–ด์ธ ํƒˆ๋ชฉ๊ณผ ๋น„์Šท

-       ์Šคํ„ฑ์Šค๋„ท

l  ๋Œ€๋‹จํžˆ ์ •๊ตํ•œ ์œ™

l  ๊ธฐ์กด์— ์•Œ๋ ค์ง„ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์›๋„์šฐ ์ œ๋กœ๋ฐ์ด ์ทจ์•ฝ์ ์„ ์ด์šฉํ•ด ์ปดํ“จํ„ฐ๋ฅผ ๊ฐ์—ผ์‹œํ‚ค๊ณ  ํ™•์‚ฐ๋จ

l  ํ•ต๋ฌด๊ธฐ์™€ ์›์‹ฌ๋ถ„๋ฆฌ๊ธฐ ๋“ฑ ๋ฌผ๋ฆฌ์ ์ธ ํ”ผํ•ด๋ฅผ ์ž…ํž˜

-       ์†Œํ”„ํŠธ์›จ์–ด ์žฌ๊ณตํ•™

l  ๋ถ„์„(Analysis) : ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด ๋ช…์„ธ์„œ๋ฅผ ํ™•์ธํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋™์ž‘์„ ์ดํ•ดํ•˜๊ณ , ์žฌ๊ณตํ•™ ํ•  ๋Œ€์ƒ์„ ์„ ์ •ํ•˜๋Š” ํ™œ๋™

l  ์žฌ๊ตฌ์„ฑ(Restructing) : ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌ์กฐ๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ฝ”๋“œ๋ฅผ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ํ™œ๋™ / ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ธฐ๋Šฅ๊ณผ ์™ธ์ ์ธ ๋™์ž‘์€ ๋ฐ”๋€Œ์ง€ ์•Š๋Š”๋‹ค

l  ์—ญ๊ณตํ•™(Reverse Engineering) : ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ์„ค๋ช…ํ•˜๋Š” ๋ถ„์„ ๋ฐ ์„ค๊ณ„ ์ •๋ณด๋ฅผ ์žฌ๋ฐœ๊ฒฌํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ณผ์ • / ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ ๋‹จ๊ณ„์™€๋Š” ๋ฐ˜๋Œ€ ๋ฐฉํ–ฅ์œผ๋กœ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ณต๊ตฌํ•˜๊ฑฐ๋‚˜, ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ทธ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ์„ค๊ณ„๋„๋ฅผ ์ถ”์ถœํ•œ๋‹ค

l  ์ด์‹(Migration) : ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ๋‚˜ ํ•˜๋“œ์›จ์–ด ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ€ํ™˜

-       ๋น„์šฉ ์‚ฐ์ • ๊ธฐ๋ฒ• (์ƒํ–ฅ์‹/ ํ•˜ํ–ฅ์‹)

1.     ์ƒํ–ฅ์‹ LOC(์›์‹œ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜), ๊ฐœ๋ณ„ ๋‹จ๊ณ„๋ณ„ ์ธ์›์ˆ˜๊ธฐ๋ฒ•,  ์ˆ˜ํ•™์  ์‚ฐ์ • ๊ธฐ๋ฒ•

l  LOC : ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ ๊ธฐ๋Šฅ์˜ ์›์‹œ ์ฝ”๋“œ ๋ผ์ธ ์ˆ˜์˜ ๋น„๊ด€์น˜, ๋‚™๊ด€์น˜, ๊ธฐ๋Œ€์น˜๋ฅผ ์ธก์ •ํ•˜์—ฌ ์˜ˆ์ธก์น˜๋ฅผ ๊ตฌํ•˜๊ณ  ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋น„์šฉ์„ ์‚ฐ์ •ํ•˜๋Š” ๊ธฐ๋ฒ• / ์ธก์ •์ด ์šฉ์ดํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ / ์˜ˆ์ธก์น˜๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ, ๋…ธ๋ ฅ, ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ๋“ฑ์˜ ๋น„์šฉ ์‚ฐ์ •

l  ๊ฐœ๋ฐœ ๋‹จ๊ณ„๋ณ„ ์ธ์›์ˆ˜ ๊ธฐ๋ฒ• : LOC ๊ธฐ๋ฒ•์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ฒ•์œผ๋กœ, ๊ฐ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„์‹œํ‚ค๋Š” ๋ฐ ํ•„์š”ํ•œ ๋…ธ๋ ฅ์„ ์ƒ๋ช… ์ฃผ๊ธฐ์˜ ๊ฐ ๋‹จ๊ณ„๋ณ„๋กœ ์‚ฐ์ •

l  ์ˆ˜ํ•™์  ์‚ฐ์ • ๊ธฐ๋ฒ•(COCOMO๋ชจํ˜•, Putnam ๋ชจํ˜•, ๊ธฐ๋Šฅ์ ์ˆ˜ ๋ชจํ˜•)

l  COCOMO ๋ชจํ˜• : ๋ณดํ—ด์ด ์ œ์•ˆํ•œ ๊ฒƒ์œผ๋กœ, ์›์‹œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ทœ๋ชจ์ธ LOC์— ์˜ํ•œ ๋น„์šฉ ์‚ฐ์ • ๊ธฐ๋ฒ• / ๋น„๊ต์  ์ž‘์€ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ต๊ณ„ ๋ถ„์„ํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜ํ•œ ๋ชจ๋ธ

l  Putnam ๋ชจํ˜• : ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช… ์ฃผ๊ธฐ์˜ ์ „ ๊ณผ์ • ๋™์•ˆ์— ์‚ฌ์šฉ๋  ๋…ธ๋ ฅ์˜ ๋ถ„ํฌ๋ฅผ ๊ฐ€์ •ํ•ด ์ฃผ๋Š” ๋ชจํ˜•

2.     ํ•˜ํ–ฅ์‹(๊ณผ๊ฑฐ์˜ ์œ ์‚ฌํ•œ ๊ฒฝํ•จ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•จ) : ์ „๋ฌธ๊ฐ€ ๊ฐ์ • ๊ธฐ๋ฒ• / ๋ธํŒŒ์ด ๊ธฐ๋ฒ•

l  ์ „๋ฌธ๊ฐ€ ๊ฐ์ • ๊ธฐ๋ฒ• : ์กฐ์ง ๋‚ด์˜ ๊ฒฝํ—˜์ด ๋งŽ์€ ๋‘ ๋ช… ์ด์ƒ์˜ ์ „๋ฌธ๊ฐ€์—๊ฒŒ ๋น„์šฉ ์‚ฐ์ • ์˜๋ขฐ

l  ๋ธํŒŒ์ด ๊ธฐ๋ฒ• : ์ „๋ฌธ๊ฐ€ ๊ฐ์ • ๊ธฐ๋ฒ•์˜ ์ฃผ๊ด€์ ์ด ํŽธ๊ฒฌ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ „๋ฌธ๊ฐ€์˜ ์˜๊ฒฌ์„ ์ข…ํ•ฉํ•˜์—ฌ ์‚ฐ์ •ํ•˜๋Š” ๊ธฐ๋ฒ•

 

 

-       ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ํ‘œ์ค€์˜ ๊ฐœ์š” : ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ํ’ˆ์งˆ ๊ด€๋ฆฌ์— ์‚ฌ์šฉ๋˜๋Š” ๊ตญ์ œ ํ‘œ์ค€์„ ์˜๋ฏธ / ex) ISO/IEC 12207, CMMI, SPICE ๋“ฑ

l  ISO/IEC 12207 : ISO ๊ตญ์ œํ‘œ์ค€์—์„œ ๋งŒ๋“  ํ‘œ์ค€ ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช… ์ฃผ๊ธฐ ํ”„๋กœ์„ธ์Šค๋กœ, ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐœ๋ฐœ, ์šด์˜, ์œ ์ง€๋ณด์ˆ˜ ๋“ฑ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์†Œํ”„ํŠธ์›จ์–ด ์ƒ๋ช… ์ฃผ๊ธฐ ํ‘œ์ค€์„ ์ œ๊ณต

l  CMMI(๋Šฅ๋ ฅ ์„ฑ์ˆ™๋„ ํ†ตํ•ฉ ๋ชจ๋ธ) : ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์กฐ์ง์˜ ์—…๋ฌด ๋Šฅ๋ ฅ ๋ฐ ์กฐ์ง์˜ ์„ฑ์ˆ™๋„๋ฅผ ํ‰๊ฐ€ํ•˜๋Š” ๋ชจ๋ธ / ์ดˆ๊ธฐ, ๊ด€๋ฆฌ, ์ •์˜ , ์ •๋žต์  ๊ด€๋ฆฌ, ์ตœ์ ํ™”์˜ 5๋‹จ๊ณ„

๋‹จ๊ณ„ ํ”„๋กœ์„ธ์Šค ํŠน์ง•
์ดˆ๊ธฐ    
๊ด€๋ฆฌ    
์ •์˜    
์ •๋Ÿ‰์  ๊ด€๋ฆฌ    
์ตœ์ ํ™”    

l  SPICE(์†Œํ”„ํŠธ์›จ์–ด ์ฒ˜๋ฆฌ ๊ฐœ์„  ๋ฐ ๋Šฅ๋ ฅ ํ‰๊ฐ€ ๊ธฐ์ค€) : ์ •๋ณด ์‹œ์Šคํ…œ ๋ถ„์•ผ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ํ’ˆ์งˆ ๋ฐ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์†Œํ”„ํŠธ์›จ์–ด ํ”„๋กœ์„ธ์Šค๋ฅผ ํ‰๊ฐ€ ๋ฐ ๊ฐœ์„ ํ•˜๋Š” ๊ตญ์ œ ํ‘œ์ค€

๋‹จ๊ณ„ ํŠน์ง•
   
   
   
   
   
   

-       ํ”„๋ ˆ์ž„์›Œํฌ(Framework) : ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ์™€ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ผ๋ฐ˜ํ™”ํ•˜์—ฌ ์†์‰ฝ๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ๋Šฅ๋“ค์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ๋ฐ˜์ œํ’ˆ ํ˜•ํƒœ

l  ๋ชจ๋“ˆํ™” : ์บก์Šํ™”๋ฅผ ํ†ตํ•ด ๊ฐ•ํ™”, ํœด์ง€๋ณด์ˆ˜ ์šฉ์ด / ์žฌ์‚ฌ์šฉ์„ฑ : ์˜ˆ์‚ฐ ์ ˆ๊ฐ, ํ’ˆ์งˆ ๋ณด์ฆ

l  ํ™•์žฅ์„ฑ : ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„ ์–ดํ”Œ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ / ์ œ์–ด์˜ ์—ญํ๋ฆ„ : ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ

728x90
๋ฐ˜์‘ํ˜•

+ Recent posts