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

2023. 4. 16. 23:50ยท์ž๊ฒฉ์ฆ/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

 

 

1. ๋‹ค์Œ Java ์ฝ”๋“œ์— ๋Œ€ํ•œ ์•Œ๋งž๋Š” ์ถœ๋ ฅ๊ฐ’์„ ์“ฐ์‹œ์˜ค.

class Connection {
  private static Connection _inst = null;
  private int count = 0;
    static public Connection get() {
      if(_inst == null) {
      _inst = new Connection();
      return _inst; 
      }
    return _inst;
    }
  public void count() { count ++; }
  public int getCount() { return count; }
}
 
public class testcon {
  public static void main(String[] args) {
    Connection conn1 = Connection.get();
    conn1.count();
    Connection conn2 = Connection.get();
    conn2.count();
    Connection conn3 = Connection.get();
    conn3.count();
    
    System.out.print(conn1.getCount());
  }
}
๋”๋ณด๊ธฐ

3

 

์ด ํด๋ž˜์Šค๋Š” ๊ฐœ์ˆ˜๋ฅผ ์ถ”์ ํ•˜๋Š” count ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Connection ํด๋ž˜์Šค๋Š” private ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์ง€๋ฉฐ,

Connection ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ •์  ๋ฉ”์„œ๋“œ get()์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

get() ๋ฉ”์„œ๋“œ๋Š” Connection ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ์ƒˆ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

์ด๋ฏธ ์ธ์Šคํ„ด์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ, ์ด์ „์— ๋งŒ๋“ค์–ด์ง„ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

testcon ํด๋ž˜์Šค๋Š” main ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ,

Connection ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์„ธ ๋ฒˆ ๊ฐ€์ ธ์™€ count() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ count ๋ณ€์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ conn1 ๊ฐ์ฒด์˜ getCount() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ count ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ ์ถœ๋ ฅ์€ "3"์ด ๋ฉ๋‹ˆ๋‹ค.

์ด๋Š” ์„ธ ๊ฐœ์˜ Connection ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ชจ๋‘ ๊ฐ™์€ ์ธ์Šคํ„ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— count ๋ณ€์ˆ˜๊ฐ€ ๊ฐ๊ฐ์˜ ์ธ์Šคํ„ด์Šค์—์„œ ์ฆ๊ฐ€๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

 

 

2. ๋‹ค์Œ์€ ์ •๋ณด ๋ณดํ˜ธ ๊ธฐ์ˆ ์ธ AAA์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. ๊ฐ ์„ค๋ช…์— ๋งž๋Š” ๋‹ต์„ ๊ณ ๋ฅด์‹œ์˜ค

(์‹ค์ œ ๊ธฐ์ถœ๋ฌธ์ œ์—์„œ๋Š” ๋‹ต์˜ ๋ณด๊ธฐ ์ค‘, A์— ๋Œ€ํ•œ ๋ณด๊ธฐ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.(์˜ค๋‹ต ์ค‘, Application ๋“ฑ..))

 

1. ์‹œ์Šคํ…œ์„ ์ ‘๊ทผํ•˜๊ธฐ ์ „์— ์ ‘๊ทผ ์‹œ๋„ํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ๊ฒ€์ฆ

2. ๊ฒ€์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์ˆ˜์ค€์˜ ๊ถŒํ•œ๊ณผ ์„œ๋น„์Šค๋ฅผ ํ—ˆ์šฉ

3. ์‚ฌ์šฉ์ž์˜ ์ž์›(์‹œ๊ฐ„,์ •๋ณด,์œ„์น˜ ๋“ฑ)์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘

๋”๋ณด๊ธฐ
  1. ์‹œ์Šคํ…œ์„ ์ ‘๊ทผํ•˜๊ธฐ ์ „์— ์ ‘๊ทผ ์‹œ๋„ํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์‹ ์›์„ ๊ฒ€์ฆ - Authentication(์ธ์ฆ)
  2. ๊ฒ€์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋–ค ์ˆ˜์ค€์˜ ๊ถŒํ•œ๊ณผ ์„œ๋น„์Šค๋ฅผ ํ—ˆ์šฉ - Authorization(์ธ๊ฐ€)
  3. ์‚ฌ์šฉ์ž์˜ ์ž์›(์‹œ๊ฐ„,์ •๋ณด,์œ„์น˜ ๋“ฑ)์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ - Accounting(๊ฐ์‚ฌ)

 

 

3. Grant์˜ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์•ฝ์ˆ ํ•˜์‹œ์˜ค. 

๋”๋ณด๊ธฐ

DBMS ์—์„œ ์‚ฌ์šฉ์ž ๋˜๋Š” ์‚ฌ์šฉ์ž ๊ทธ๋ฃน์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด(ํ…Œ์ด๋ธ”, ๋ทฐ, ํ”„๋กœ์‹œ์ € ๋“ฑ)์˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” SQL ๋ฌธ์ž…๋‹ˆ๋‹ค.

Grant๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฝ๊ธฐ, ์“ฐ๊ธฐ, ์‹คํ–‰ ๋“ฑ์˜ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ,

์ด๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณด์•ˆ๊ณผ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ, Grant๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฐ„์— ๊ถŒํ•œ์„ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜ ๊ถŒํ•œ์„ ์ œํ•œํ•˜์—ฌ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

4. ๋‹ค์Œ ์ค‘, ์„ค๋ช…์— ๋Œ€ํ•œ ๊ด„ํ˜ธ( ) ์•ˆ์— ๋“ค์–ด๊ฐ€๋Š” ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•˜์‹œ์˜ค.

(์„ค๋ช…๊ณผ ํ•จ๊ป˜ ๋™์ž‘๊ณผ์ • ์ด๋ฏธ์ง€๊ฐ€  ์žˆ์Šต๋‹ˆ๋‹ค.)

 

( ) ์Šคํ‘ธํ•‘์€ ๊ทผ๊ฑฐ๋ฆฌ ํ†ต์‹ ๋ง ํ•˜์—์„œ ( ) ๋ฉ”์‹œ์ง€๋ฅผ ์ด์šฉํ•˜์—ฌ ์ƒ๋Œ€๋ฐฉ์˜ ๋ฐ์ดํ„ฐ ํŒจํ‚ท์„ ์ค‘๊ฐ„์—์„œ ๊ฐ€๋กœ์ฑ„๋Š” ์ค‘๊ฐ„์ž ๊ณต๊ฒฉ ๊ธฐ๋ฒ•์ด๋‹ค.

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

๋”๋ณด๊ธฐ

ARP(Address Resolution Protocol)

 

ARP : IP ์ฃผ์†Œ๋ฅผ ๋ฌผ๋ฆฌ์ ์ธ MAC ์ฃผ์†Œ๋กœ ๋งคํ•‘ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœํ† ์ฝœ๋กœ,

๋„คํŠธ์›Œํฌ์—์„œ ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒํ˜ธ ๊ฐ„์˜ MAC ์ฃผ์†Œ๋ฅผ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

 

ARP Spoofing: ARP ํ…Œ์ด๋ธ”์— ๋“ฑ๋ก๋œ MAC ์ฃผ์†Œ๋ฅผ ๋ณ€์กฐํ•˜์—ฌ ๋‹ค๋ฅธ ๊ธฐ๊ธฐ๋กœ ํŒจํ‚ท์„ ์ „์†กํ•˜๋Š” ๊ณต๊ฒฉ์œผ๋กœ,

์ค‘๊ฐ„์—์„œ ํ†ต์‹  ๋‚ด์šฉ์„ ๊ฐ€๋กœ์ฑ„๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด ๋ณด์•ˆ ์ทจ์•ฝ์ ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

5. ๋‹ค์Œ์€ Coupling์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. ์„ค๋ช…์— ๋Œ€ํ•œ Coupling ์ข…๋ฅ˜๋ฅผ ์˜๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

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

๋”๋ณด๊ธฐ

Control Coupling

 

 

์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์—์„œ coupling์ด๋ž€ ๊ฒฐํ•ฉ๋„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.


๊ฒฐํ•ฉ๋„๋Š” ์•ฝํ• ์ˆ˜๋ก ๋ชจ๋“ˆ์˜ ๋…๋ฆฝ์„ฑ์ด ๋†’์•„์ง€๋Š”๋ฐ,
๋‚ด์šฉ > ๊ณตํ†ต > ์™ธ๋ถ€ > ์ œ์–ด > ์Šคํƒฌํ”„ > ์ž๋ฃŒ ๊ฒฐํ•ฉ๋„ ์ˆœ์œผ๋กœ ๊ฒฐํ•ฉ๋„๊ฐ€ ์•ฝํ•ด์ง‘๋‹ˆ๋‹ค.

  1. ๋‚ด์šฉ ๊ฒฐํ•ฉ๋„(Content Coupling): ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ ๋‚ด๋ถ€์˜ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ, ๋†’์€ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ ์ด๋ฅผ ๋‚ด์šฉ ๊ฒฐํ•ฉ๋„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
  2. ๊ณตํ†ต ๊ฒฐํ•ฉ๋„(Common Coupling): ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์—์„œ ํ•˜๋‚˜์˜ ์ „์—ญ ์ž๋ฃŒ๋‚˜ ๊ณต์œ  ์ž๋ฃŒ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ, ๊ณตํ†ต ๊ฒฐํ•ฉ๋„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  3. ์™ธ๋ถ€ ๊ฒฐํ•ฉ๋„(External Coupling): ํ•œ ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ์ž…๋ ฅ์ด๋‚˜ ์ถœ๋ ฅ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ, ๋‘ ๋ชจ๋“ˆ ๊ฐ„์— ์™ธ๋ถ€ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  4. ์ œ์–ด ๊ฒฐํ•ฉ๋„(Control Coupling): ์–ด๋–ค ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์˜ ๋‚ด๋ถ€ ๋…ผ๋ฆฌ ์กฐ์ง์„ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ์ œ์–ด ์‹ ํ˜ธ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ œ์–ด ๊ฒฐํ•ฉ๋„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  5. ์Šคํƒฌํ”„ ๊ฒฐํ•ฉ๋„(Stamp Coupling): ๋‘ ๋ชจ๋“ˆ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ์ „์†ก ์‹œ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ ํ•ญ๋ชฉ๋งŒ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฒฝ์šฐ, ์Šคํƒฌํ”„ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  6. ์ž๋ฃŒ ๊ฒฐํ•ฉ๋„(Data Coupling): ๋ชจ๋“ˆ ๊ฐ„์— ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜, ๊ณต์œ  ์ž๋ฃŒ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š” ๊ฒฝ์šฐ, ์ž๋ฃŒ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ชจ๋“ˆ ๊ฐ„์˜ ๋…๋ฆฝ์„ฑ์„ ๋†’์ด๋Š”๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

 

6. OSI 7 Layer์˜ ์„ค๋ช…์œผ๋กœ ํ•ด๋‹น๋˜๋Š” ์„ค๋ช…์˜ ๋‹ต์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

1. ๋ฌผ๋ฆฌ๊ณ„์ธต์„ ํ†ตํ•ด ์†ก์ˆ˜์‹ ๋˜๋Š” ์ •๋ณด์˜ ์˜ค๋ฅ˜์™€ ํ๋ฆ„์„ ๊ด€๋ฆฌํ•˜์—ฌ ์•ˆ์ „ํ•œ ์ •๋ณด์˜ ์ „๋‹ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์—ญํ• 
2. ๋ฐ์ดํ„ฐ๋ฅผ ๋ชฉ์ ์ง€๊นŒ์ง€ ๊ฐ€์žฅ ์•ˆ์ „ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ์ „๋‹ฌํ•˜๋Š” ๊ธฐ๋Šฅ
3. ์ˆ˜์‹ ์ž์—์„œ ๋ฐ์ดํ„ฐ์˜ ์••์ถ•์„ ํ’€์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋œ ๋ฐ์ดํ„ฐ ์••์ถ•

๋”๋ณด๊ธฐ

 

 ๋ฌผ๋ฆฌ ๊ณ„์ธต (Physical Layer): ๋ฐ์ดํ„ฐ๋ฅผ ์ „๊ธฐ์ , ๊ธฐ๊ณ„์ , ๊ธฐ๋Šฅ์ ์ธ ์‹ ํ˜ธ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต (Data Link Layer): ๋ฌผ๋ฆฌ ๊ณ„์ธต์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๊ฒ€์ถœํ•˜๊ณ , ์ •์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ „์†ก์„ ์ œ์–ดํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

 

๋„คํŠธ์›Œํฌ ๊ณ„์ธต (Network Layer): ํŒจํ‚ท์˜ ์ด๋™ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋„คํŠธ์›Œํฌ๋“ค์„ ์—ฐ๊ฒฐํ•˜์—ฌ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

 

์ „์†ก ๊ณ„์ธต (Transport Layer): ์–‘ ๋๋‹จ์˜ ์‚ฌ์šฉ์ž๋“ค์ด ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋ถ„ํ• ๊ณผ ๋ณ‘ํ•ฉ, ํ๋ฆ„์ œ์–ด, ์˜ค๋ฅ˜๊ฒ€์ถœ๊ณผ ๋ณต๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

 

์„ธ์…˜ ๊ณ„์ธต (Session Layer): ์–‘ ๋๋‹จ์˜ ์‘์šฉ ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์— ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๊ณ , ์œ ์ง€ํ•˜๋ฉฐ, ์ข…๋ฃŒํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

 

ํ‘œํ˜„ ๊ณ„์ธต (Presentation Layer): ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์„ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜, ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”, ์ธ์ฝ”๋”ฉ, ๋””์ฝ”๋”ฉ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.

 

์‘์šฉ ๊ณ„์ธต (Application Layer): ์ตœ์ข… ์‚ฌ์šฉ์ž์˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ง์ ‘ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๊ณ„์ธต์ž…๋‹ˆ๋‹ค. ์ด ๊ณ„์ธต์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ์‘์šฉ ์„œ๋น„์Šค์™€ ๋„คํŠธ์›Œํฌ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

 

7. ๋‹ค์Œ ์ค‘, ์„ค๋ช…์— ๋Œ€ํ•œ ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค.

 

- ์ถ”์ƒํ™”, ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ด€๊ณ„ ํ‘œํ˜„: (  1. )
- ๊ฐœ๋…ํ™”, ํ•˜๋‚˜์˜ ์‚ฌ๋ฌผ์ด ๋‹ค๋ฅธ ์‚ฌ๋ฌผ์— ๋น„ํ•ด ๋” ์ผ๋ฐ˜์ ์ธ์ง€ ๊ตฌ์ฒด์ ์ธ์ง€๋ฅผ ํ‘œํ˜„: (  2. )
---
๋ณด๊ธฐ
Aggregation, Classification, Generalization, Abstraction, Association

๋”๋ณด๊ธฐ

1. Aggregation
2. Generalization

 

Aggregation์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

๋‘ ๊ฐ์ฒด ์‚ฌ์ด์˜ ์ผ๋Œ€๋‹ค ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ, ์ด ๋•Œ ๋‹ค์ˆ˜์˜ ๊ฐ์ฒด๋Š” ํ•˜๋‚˜์˜ ๊ฐ์ฒด์— ์†ํ•  ์ˆ˜ ์žˆ๋‹ค.

Aggregation ๊ด€๊ณ„๋Š” ๋‘ ๊ฐ์ฒด ๊ฐ„์— ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์ฆ‰, ๋ถ€๋ชจ ๊ฐ์ฒด๊ฐ€ ์‚ญ์ œ๋˜๋”๋ผ๋„ ์ž์‹ ๊ฐ์ฒด๋Š” ๊ณ„์† ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 Generalization์€ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ƒ์† ๊ฐœ๋…์„ ์˜๋ฏธํ•œ๋‹ค.

์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ์—ฐ์‚ฐ์„ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

์ƒ์† ๊ด€๊ณ„์—์„œ๋Š” ์ƒ์œ„ ํด๋ž˜์Šค๊ฐ€ ํ•˜์œ„ ํด๋ž˜์Šค์—๊ฒŒ ๊ณตํ†ต์ ์ธ ํŠน์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ์ƒ์œ„ ํด๋ž˜์Šค์—์„œ ์ƒ์†๋ฐ›์€ ํŠน์„ฑ์„ ํฌํ•จํ•˜์—ฌ ๋” ๊ตฌ์ฒด์ ์ธ ํŠน์„ฑ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ƒ์†์€ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•ด์ค€๋‹ค.

 

 

8. ๋‹ค์Œ์€ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค.

(์‹ค์ œ ๊ธฐ์ถœ๋ฌธ์ œ์—์„œ๋Š” ๋‹ต์— ๋Œ€ํ•œ ๋ณด๊ธฐ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.)

 

(  1. ) | ํ…Œ์ŠคํŠธ ๊ฐ„์˜ ์ข…์†์„ฑ, ํ…Œ์ŠคํŠธ ์ˆ˜ํ–‰ ์ „ ์‹คํ–‰๋˜์–ด์•ผ ํ•  ๊ณ ๋ ค ์‚ฌํ•ญ ๋“ฑ
(  2. ) | ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์‹œ ์ž…๋ ฅํ•  ์ž…๋ ฅ๊ฐ’, ์„ ํƒ ๋ฒ„ํŠผ, ์ฒดํฌ ๋ฆฌ์ŠคํŠธ ๊ฐ’ ๋“ฑ
(  3. ) | ํ…Œ์ŠคํŠธ ์‹คํ–‰ ํ›„ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ, ๊ฒฐ๊ณผ ํ™”๋ฉด, ๊ธฐ๋Œ€ ๋™์ž‘ ๋“ฑ

๋”๋ณด๊ธฐ

1. ํ…Œ์ŠคํŠธ ์กฐ๊ฑด 
2. ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ 
3. ์˜ˆ์ƒ ๊ฒฐ๊ณผ

 

 

 

9. ๋‹ค์Œ ์ค‘, ์„ค๋ช…์— ๋Œ€ํ•œ ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค.

(์‹ค์ œ ๊ธฐ์ถœ๋ฌธ์ œ์—์„œ๋Š” ๋‹ต์— ๋Œ€ํ•œ ๋ณด๊ธฐ ์ค‘, ์˜๋ฌธ ๋ณด๊ธฐ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.)

 

 

(  ) ํ†ตํ•ด ์š”๊ตฌ์‚ฌํ•ญ ๋ช…์„ธ๋ฅผ ์ž…๋ ฅ ์กฐ๊ฑด๊ณผ ์ถœ๋ ฅ ์กฐ๊ฑด ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ๊ด€๊ณ„๋กœ ํ‘œํ˜„ํ•˜๊ณ , 

์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ๋„์ถœํ•œ๋‹ค.


(  )์˜ ‘์›์ธ(causes)’์€ ์ž…๋ ฅ ์กฐ๊ฑด์„ ์˜๋ฏธํ•˜๊ณ  ‘๊ฒฐ๊ณผ(effects)’๋Š” ์ž…๋ ฅ ์กฐ๊ฑด์˜ ๊ฒฐ๊ณผ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ,
์›์ธ๊ณผ ๊ฒฐ๊ณผ ๊ฐ„์˜ ๋…ผ๋ฆฌ์  ๊ด€๊ณ„๋ฅผ AND, OR, NOT ๊ฐ™์€ boolean ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„ํ•œ๋‹ค.

๋”๋ณด๊ธฐ

Cause-Effect Graph

 

Cause-Effect Graph๋Š” ์‹œ์Šคํ…œ์˜ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ ์‚ฌ์ด์˜ ์ธ๊ณผ ๊ด€๊ณ„๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

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

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

Cause-Effect Graph๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ ๋ณ€์ˆ˜์™€ ์ถœ๋ ฅ ๋ณ€์ˆ˜ ์‚ฌ์ด์˜ ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ํ˜•ํƒœ๋กœ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‹œ์Šคํ…œ์„ ํ…Œ์ŠคํŠธํ•  ๋•Œ ํšจ์œจ์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

10. ๋‹ค์Œ ์ค‘, ์„ค๋ช…์— ๋Œ€ํ•œ ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค.

 

(   )๋Š” ๋ธ”๋ก ์•”ํ˜ธ์˜ ์ผ์ข…์œผ๋กœ, ๋ฏธ๊ตญ NBS (National Bureau of Standards, ํ˜„์žฌ NIST)์—์„œ ๊ตญ๊ฐ€ ํ‘œ์ค€์œผ๋กœ ์ •ํ•œ ์•”ํ˜ธ์ด๋‹ค. 
(   )๋Š” 64๋น„ํŠธ ํ‰๋ฌธ์„ 64๋น„ํŠธ ์•”ํ˜ธ๋ฌธ์œผ๋กœ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋Œ€์นญํ‚ค ์•”ํ˜ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.
(   )์˜ ํ‚ค๋Š” 7๋น„ํŠธ๋งˆ๋‹ค ์˜ค๋ฅ˜๊ฒ€์ถœ์„ ์œ„ํ•œ ์ •๋ณด๊ฐ€ 1๋น„ํŠธ์”ฉ ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์งˆ์ ์œผ๋กœ๋Š” 56๋น„ํŠธ์ด๋‹ค.

๋”๋ณด๊ธฐ

DES

 

 

11. ๋‹ค์Œ Java ์ฝ”๋“œ์— ๋Œ€ํ•œ ์•Œ๋งž๋Š” ์ถœ๋ ฅ๊ฐ’์„ ์“ฐ์‹œ์˜ค.

public class testco {
 public static void main(String[] args) {
  int a = 3, b = 4, c = 3, d = 5;
  if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
   a = b + c;
    if(7 == b ^ c != a) {
     System.out.println(a);
    } else {
    System.out.println(b);
    }
  } else {
    a = c + d;
    if(7 == c ^ d != a) {
    System.out.println(a);
    } else {
    System.out.println(d);
    }
  }
 }
}
๋”๋ณด๊ธฐ

7

 

  1. if๋ฌธ ์กฐ๊ฑด์‹์—์„œ ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž |์™€ ^๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋‹ค.
  2. |์€ ๋…ผ๋ฆฌํ•ฉ(OR) ์—ฐ์‚ฐ์ž๋กœ, ์–‘์ชฝ ํ”ผ์—ฐ์‚ฐ์ž ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ(true)์ด๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ, a == 2 | a == c๋Š” false | true๊ฐ€ ๋˜์–ด true๊ฐ€ ๋œ๋‹ค.
  3. &๋Š” ๋…ผ๋ฆฌ๊ณฑ(AND) ์—ฐ์‚ฐ์ž๋กœ, ์–‘์ชฝ ํ”ผ์—ฐ์‚ฐ์ž ๋ชจ๋‘ ์ฐธ(true)์ผ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด ๋œ๋‹ค. !(c > d)๋Š” true๊ฐ€ ๋˜๋ฏ€๋กœ, ์ „์ฒด ์กฐ๊ฑด์‹์€ true & true & (1 == b ^ c != d)๊ฐ€ ๋œ๋‹ค.
  4. ^๋Š” ๋ฐฐํƒ€์  ๋…ผ๋ฆฌํ•ฉ(XOR) ์—ฐ์‚ฐ์ž๋กœ, ์–‘์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅด๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์ฐธ์ด ๋œ๋‹ค. 1 == b ^ c != d๋Š” true๊ฐ€ ๋œ๋‹ค.
  5. ๋”ฐ๋ผ์„œ, if๋ฌธ์˜ ์ฒซ ๋ฒˆ์งธ ๋ธ”๋ก์ด ์‹คํ–‰๋˜์–ด a = b + c๊ฐ€ ์‹คํ–‰๋œ๋‹ค. a๋Š” ์ด์ œ 7์ด ๋œ๋‹ค.
  6. ๋‘ ๋ฒˆ์งธ if๋ฌธ์˜ ์กฐ๊ฑด์‹์€ 7 == c ^ d != a์ด๋‹ค. 
  7. ๋งˆ์ง€๋ง‰์œผ๋กœ, System.out.println(a)๊ฐ€ ์‹คํ–‰๋˜์–ด ์ฝ˜์†”์— 7์ด ์ถœ๋ ฅ๋œ๋‹ค.

 

 

12. ๋‹ค์Œ C์–ธ์–ด์— ๋Œ€ํ•œ ์•Œ๋งž๋Š” ์ถœ๋ ฅ๊ฐ’์„ ์“ฐ์‹œ์˜ค.

#include <stdio.h>
 
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
 
printf("%d\n", *arr[1] + **arr + 1);
 
}
๋”๋ณด๊ธฐ

37

 

arr[1]์€ b์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. *arr[1]์€ b์˜ ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

**arr์€ arr ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์ธ a์˜ ๊ฐ’์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ *arr[1] + **arr + 1์€ b์˜ ๊ฐ’์ธ 24์™€ a์˜ ๊ฐ’์ธ 12๋ฅผ ๋”ํ•˜๊ณ  1์„ ๋”ํ•œ ๊ฒฐ๊ณผ์ธ 37์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

 

 

 

13. ๋‹ค์Œ์€, ํ…Œ์ด๋ธ”์—์„œ ์กฐ๊ฑด๊ฐ’์„ ์‹คํ–‰ํ•œ ํ™”๋ฉด์ด๋‹ค. ์ด์— ๋Œ€ํ•œ ์•Œ๋งž๋Š” ๊ฒฐ๊ณผ๊ฐ’์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 

 

๋”๋ณด๊ธฐ

4

 

 

14. ๋‹ค์Œ ํŒŒ์ด์ฌ ์ฝ”๋“œ์ด๋‹ค. ์•Œ๋งž๋Š” ์ถœ๋ ฅ๊ฐ’์„ ์“ฐ์‹œ์˜ค.

a,b = 100, 200 
print(a==b)
๋”๋ณด๊ธฐ

False

 

 

15. ๋‹ค์Œ ์ค‘, ์„ค๋ช…์— ๋Œ€ํ•œ ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋‹ต์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

( ) ๋‹ค์ด์–ด๊ทธ๋žจ์€ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ๋„๋ฉ”์ธ ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ด์–ด ๋ณด์ด์ง€ ์•Š๋Š” ๋„๋ฉ”์ธ ์•ˆ์˜ ๊ฐœ๋…๊ณผ

๊ฐ™์€ ์ถ”์ƒ์ ์ธ ๊ฐœ๋…์„ ๊ธฐ์ˆ ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ด๋‹ค.
๋˜ํ•œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ค๊ณ„ ํ˜น์€ ์™„์„ฑ๋œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌํ˜„ ์„ค๋ช…์„ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
( ) ๋‹ค์ด์–ด๊ทธ๋žจ์˜ ํ˜•์‹์€ ( )๋ฅผ ํฌํ•จํ•˜์—ฌ ์†์„ฑ(attribute)๊ณผ ๋ฉ”์„œ๋“œ(method)๊ฐ€ ์žˆ๋‹ค.

๋”๋ณด๊ธฐ

ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ

 

 

16. ๋‹ค์Œ ์ค‘, ์„ค๋ช…์— ๋Œ€ํ•œ ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์‹œ์˜ค.

(์‹ค์ œ ๊ธฐ์ถœ๋ฌธ์ œ์—์„œ๋Š” ๋‹ต์— ๋Œ€ํ•œ ๋ณด๊ธฐ ์ค‘, ์˜๋ฌธ ๋ณด๊ธฐ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.)

 

( ) ํŒจํ„ด์€ ๊ฐ์ฒด์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. 
( )๋Š” ๋ถ€๋ชจ(์ƒ์œ„) ํด๋ž˜์Šค์— ์•Œ๋ ค์ง€์ง€ ์•Š์€ ๊ตฌ์ฒด ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํŒจํ„ด์ด๋ฉฐ, 
์ž์‹(ํ•˜์œ„) ํด๋ž˜์Šค๊ฐ€ ์–ด๋–ค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ• ์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ด๊ธฐ๋„ ํ•˜๋‹ค. 
๋ถ€๋ชจ(์ƒ์œ„) ํด๋ž˜์Šค ์ฝ”๋“œ์— ๊ตฌ์ฒด ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ฐ์ถ”๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ๋„ ์‚ฌ์šฉํ•œ๋‹ค.

๋”๋ณด๊ธฐ

Factory method

 

ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ(Factory Method)๋Š” ๊ฐ์ฒด ์ƒ์„ฑ ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋กœ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์—์„œ ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ์ฑ…์ž„์ง€๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด์˜ ์ƒ์„ฑ๊ณผ์ •์„ ์บก์Аํ™”ํ•˜๊ณ , ์œ ์—ฐํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

 

ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด์˜ ํ•ต์‹ฌ ์•„์ด๋””์–ด๋Š” "๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์„ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๊ฒฐ์ •ํ•˜๋„๋ก ๋งŒ๋“ ๋‹ค"์ž…๋‹ˆ๋‹ค.

์ฆ‰, ๊ฐ์ฒด์˜ ์ƒ์„ฑ์„ ์š”์ฒญํ•˜๋Š” ์ฝ”๋“œ๋Š” ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค ์ด๋ฆ„์„ ์•Œ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.

๋Œ€์‹ ์— ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํŒฉํ† ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐ๋งŒ ์žˆ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, ์ž๋™์ฐจ๋ฅผ ์ƒ์‚ฐํ•˜๋Š” ๊ณต์žฅ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž๋™์ฐจ์˜ ์ข…๋ฅ˜์—๋Š” ์Šคํฌ์ธ ์นด, ์„ธ๋‹จ, SUV ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋•Œ ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ ํŒจํ„ด์„ ์ด์šฉํ•˜์—ฌ ์ž๋™์ฐจ๋ฅผ ์ƒ์‚ฐํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋™์ฐจ ํด๋ž˜์Šค๋ฅผ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ์ •์˜ํ•˜๊ณ , ํŒฉํ† ๋ฆฌ ์ธํ„ฐํŽ˜์ด์Šค์—๋Š” createCar()๋ผ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

createCar() ๋ฉ”์„œ๋“œ๋Š” ์ž๋™์ฐจ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์ž์‹ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋„๋ก ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์ด๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ฐ๊ฐ์˜ ์ž๋™์ฐจ ์ข…๋ฅ˜์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ํŒฉํ† ๋ฆฌ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

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

 

 

17. ๋‹ค์Œ C์–ธ์–ด์— ๋Œ€ํ•œ ์•Œ๋งž๋Š” ์ถœ๋ ฅ๊ฐ’์„ ์“ฐ์‹œ์˜ค.

#include <stdio.h>
 
struct jsu {
  char name[12];
  int os, db, hab, hhab;
};
 
int main(){
struct jsu st[3] = {{"๋ฐ์ดํ„ฐ1", 95, 88}, 
                    {"๋ฐ์ดํ„ฐ2", 84, 91}, 
                    {"๋ฐ์ดํ„ฐ3", 86, 75}};
struct jsu* p;
 
p = &st[0];
 
(p + 1)->hab = (p + 1)->os + (p + 2)->db;
(p + 1)->hhab = (p+1)->hab + p->os + p->db;
 
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}
๋”๋ณด๊ธฐ

501

 

ํฌ์ธํ„ฐ ์—ฐ์‚ฐ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ ๊ตฌ์กฐ์ฒด์˜ ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•˜๊ณ , ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ฑ์ ์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ

 

->๋Š” ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ์ž์ž…๋‹ˆ๋‹ค.

๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ p๊ฐ€ s์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ ๋•Œ๋Š” p->x์™€ ๊ฐ™์ด "->" ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.

์ด๋Š” ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋Œ€์ƒ์„ ๊ฐ„์ ‘์ ์œผ๋กœ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

jsu์—๋Š” {name, os, db, hab, hhab} ์ด๋Ÿฐํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.


p = &st[0]; 
p = {"๋ฐ์ดํ„ฐ1", 95, 88}


(p+1)→hab = (p+1)→os + (p+2)→db; :
(p+1) = {"๋ฐ์ดํ„ฐ2", 84, 91}, (p+2) = {"๋ฐ์ดํ„ฐ3", 86, 75}
(p+1)→os + (p+2)→db : 84 + 75 = 159


(p+1)→hhab = (p+1)→hab + p→os + p→db; :
(p+1)→hab + p→os + p→db : 159 + 95 + 88 = 342


printf("%d", (p+1)→hab + (p+1)→hhab) :
(p+1)→hab + (p+1)→hhab : 159 + 342 = 501

 

 

 

18. ๋‹ค์Œ์€, ํŒŒ์ผ ๊ตฌ์กฐ(File Structures)์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค. ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋‹ต์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

ํŒŒ์ผ๊ตฌ์กฐ๋Š” ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋“ค์ด ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜์— ํŽธ์„ฑ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋ฐฉ์‹์ด ๋‹ฌ๋ผ์ง„๋‹ค.

์ ‘๊ทผ ๋ฐฉ๋ฒ•์ค‘, ๋ ˆ์ฝ”๋“œ๋“ค์„ ํ‚ค-๊ฐ’ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๊ธฐ๋กํ•˜๊ณ , ๋ ˆ์ฝ”๋“œ์˜ ํ‚ค ํ•ญ๋ชฉ๋งŒ์„ ๋ชจ์€ (  )์„ ๊ตฌ์„ฑํ•˜์—ฌ ํŽธ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์œผ๋ฉฐ, ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•  ๋•Œ๋Š” (   ) ์ด ๊ฐ€๋ฅดํ‚ค๋Š” ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ผ ๊ตฌ์กฐ์—๋Š” ์ˆœ์ฐจ ์ ‘๊ทผ, (  ) ์ ‘๊ทผ,  ํ•ด์‹ฑ ์ ‘๊ทผ์ด ์žˆ๋‹ค.

๋”๋ณด๊ธฐ

์ธ๋ฑ์Šค(์ƒ‰์ธ)

 

 

19. ๋‹ค์Œ ์„ค๋ช…์— ๋Œ€ํ•œ ์•Œ๋งž๋Š” ๋‹ต์„ ์˜๋ฌธ์•ฝ์–ด๋กœ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

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

๋”๋ณด๊ธฐ

GUI

 

 

20. ๋‹ค์Œ์€ ์†Œํ”„ํŠธ์›จ์–ด ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์„ค๋ช…์ด๋‹ค.  ๊ด„ํ˜ธ ( ) ์•ˆ์— ๋“ค์–ด๊ฐˆ ์•Œ๋งž๋Š” ๋‹ต์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

(  1.  ) ๋ฐฉ์‹์€ ์ด๋ฆ„์—์„œ๋„ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ํ•˜์œ„ ๋ชจ๋“ˆ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ์ƒ์œ„ ๋ชจ๋“ˆ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉฐ,

์ด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” (  2. )๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

(   2.   )๋Š” ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ํ•˜์œ„ ๋ชจ๋“ˆ๊ณผ ์กด์žฌํ•˜์ง€ ์•Š์€ ์ƒ์œ„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•œ๋‹ค.

๋”๋ณด๊ธฐ

1. ์ƒํ–ฅ์‹

2. ํ…Œ์ŠคํŠธ ๋“œ๋ผ์ด๋ฒ„

 

 

 

์ €์ž‘์žํ‘œ์‹œ

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

[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2022๋…„ 2ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ  (0) 2023.04.18
[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2022๋…„ 1ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ  (0) 2023.04.17
[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2021๋…„ 2ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ  (0) 2023.04.15
[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2021๋…„ 1ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ  (0) 2023.04.14
[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2020๋…„ 4ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ  (0) 2023.04.11
'์ž๊ฒฉ์ฆ/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2022๋…„ 2ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ
  • [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2022๋…„ 1ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ
  • [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2021๋…„ 2ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ
  • [์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2021๋…„ 1ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
[์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ์‹ค๊ธฐ] 2021๋…„ 3ํšŒ ๊ธฐ์ถœ๋ฌธ์ œ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”