11.1 ๊ฐ’์ด ์—†๋Š” ์ƒํ™ฉ์„ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ๊นŒ?

public class Person {
	private Car car;
    public Car getCar(){ return car;}
}

public class Car {
	private Insurance insurance;
    public Insurance getInsurance(){ return insurance;}
}

public class Insurance{
	private String name;
    public String getName(){ return name;}
}

์œ„์™€ ๊ฐ™์ด ์ž๋™์ฐจ์™€ ์ž๋™์ฐจ ๋ณดํ—˜์„ ๊ฐ–๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ ๊ฐ์ฒด๋ฅผ ์ค‘์ฒฉ ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ํ•˜์ž.

 

public String getCarInsurance(Person person){
	return person.getCar().getInsurance().getName();
}
  • ์ฐจ๋ฅผ ์†Œ์œ ํ•˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์ด ์žˆ์ง€๋งŒ getCar์„ ํ˜ธ์ถœํ•˜๋ฉด
  • person์ด null์ด๋ผ๋ฉด
  • getInsurance๊ฐ€ null์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด

 

11.1.1 ๋ณด์ˆ˜์ ์ธ ์ž์„ธ๋กœ NullPointerException ์ค„์ด๊ธฐ

NullPointerException์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด์„œ..

null ํ™•์ธ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€

if (person != null) {
	Car car = person.getCar();
    if (car != null) {
    	...

๋ฐ˜๋ณต ํŒจํ„ด ์ฝ”๋“œ๋ฅผ ๊นŠ์€ ์˜์‹ฌ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ฝ”๋“œ์˜ ๊ตฌ์กฐ๊ฐ€ ์—‰๋ง์ด๋˜๊ณ  ๊ฐ€๋…์„ฑ๋„ ๋–จ์–ด์ง„๋‹ค.

 

 

if (person == null) {
	return "Unknown"
}
Car car = person.getCar();
if (car == null){
	...

์œ„ ์ฒ˜๋Ÿผ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ if ๋ธ”๋ก์„ ์—†์• ๊ณ  null ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉด ์ฆ‰์‹œ "Unknown"์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์ถœ๊ตฌ๊ฐ€ ๋งŽ์•„์ ธ ์œ ์ง€๋ณด์ˆ˜์— ์–ด๋ ค์›€์ด ์žˆ๋‹ค.

 

11.1.2 null ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ

  • ์—๋Ÿฌ์˜ ๊ทผ์›์ด๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ์–ด์ง€๋ŸฝํžŒ๋‹ค.
  • ์•„๋ฌด ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.
  • ์ž๋ฐ”์˜ ์ฒ ํ•™์— ์œ„๋ฐฐ๋œ๋‹ค - ๋ชจ๋“  ํฌ์ธํ„ฐ๋ฅผ ์ˆจ๊ฒผ์ง€๋งŒ nullํฌ์ธํ„ฐ๋Š” ์˜ˆ์™ธ๋‹ค.
  • ํ˜•์‹ ์‹œ์Šคํ…œ์— ๊ตฌ๋ฉ์„ ๋งŒ๋“ ๋‹ค. - null์ด ์–ด๋–ค ์˜๋ฏธ๋กœ ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ์•Œ ์ˆ˜ ์—†๋‹ค.

 

 

11.2 Optional ํด๋ž˜์Šค ์†Œ๊ฐœ

java.util.Optional<T> ๋ผ๋Š” ์ƒˆ๋กœ์šด ํด๋ž˜์Šค ์ œ๊ณตํ•œ๋‹ค.

Optional์€ ์„ ํƒํ˜• ๊ฐ’์„ ์บก์Šํ™”ํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค.

 

๊ฐ’์ด ์žˆ์œผ๋ฉด Optional ํด๋ž˜์Šค๋Š” ๊ฐ’์„ ๊ฐ์‹ผ๋‹ค. 

๋ฐ˜๋ฉด ๊ฐ’์ด ์—†์œผ๋ฉด Optional.empty ๋ฉ”์„œ๋“œ๋กœ Optional์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Optional.empty๋Š” Optional์˜ ํŠน๋ณ„ํ•œ ์‹ฑ๊ธ€ํ„ด ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์„œ๋“œ๋‹ค.

 

public class Person {
	// ์‚ฌ๋žŒ์ด ์ฐจ๋ฅผ ์†Œ์œ ํ–‡์„ ์ˆ˜๋„, ์†Œ์œ ํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ Optional์ •์˜
	private Optional<Car> car;
    public Optional<Car> getCar(){ return car;}
}

public class Car {
	// ์ž๋™์ฐจ๊ฐ€ ๋ณดํ—˜์— ๊ฐ€์ž…๋˜์–ด ์žˆ์„ ์ˆ˜๋„ ์•„๋‹ ์ˆ˜ ๋„ ์žˆ์œผ๋ฏ€๋กœ
	private Optional<Insurance> insurance;
    public Optional<Insurance> getInsurance(){ return insurance;}
}

public class Insurance{
	// ๋ณดํ—˜ํšŒ์‚ฌ์—๋Š” ๋ฐ˜๋“œ์‹œ ์ด๋ฆ„์ด ์žˆ๋‹ค.
	private String name;
    public String getName(){ return name;}
}

 

 

11.3 Optional ์ ์šฉ ํŒจํ„ด

 

11.3.1 Optional ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ

 

  • ๋นˆ Optional

Optional<Car> optCar = Optional.empty();

 

  • null์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ Optional ๋งŒ๋“ค๊ธฐ

Optional.of๋กœ null์ด ์•„๋‹Œ ๊ฐ’์„ ํฌํ•จํ•˜๋Š” Optional์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

Optional<Car> optCar = Optional.of(car);

car๊ฐ€ null์ด๋ผ๋ฉด ์ฆ‰์‹œ NullPointerException ๋ฐœ์ƒ

 

  • null๊ฐ’์œผ๋กœ Optional ๋งŒ๋“ค๊ธฐ

Optional<Car> optCar = Optional.ofNullable(car);

car์ด null์ด๋ฉด ๋นˆ Optional ๊ฐ์ฒด๊ฐ€ ๋ฐ˜ํ™˜๋œ๋‹ค.

 

 

11.3.2 ๋งต์œผ๋กœ Optional์˜ ๊ฐ’์„ ์ถ”์ถœํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๊ธฐ

์ด๋ฆ„ ์ •๋ณด์— ์ ‘๊ทผํ•˜๊ธฐ ์ „์— insurance๊ฐ€ null์ธ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

Optional์€ map ๋ฉ”์„œ๋“œ๋ฅผ ์ง€์›ํ•œ๋‹ค.

 

Optional<Insurance> optInsurance = Optional,.ofNullable(insurance);
Optional<String> name = optInsurance.map(Insurance::getName);

 

#1 ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ๊ฐœ์š”

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

์„ฑ๋Šฅ ์ €ํ•˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ 

1. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ๊ตฌ์กฐ์— ์˜ํ•ด
2. ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€์šฉ๋Ÿ‰์ด ๋จ์œผ๋กœ ์ธํ•ด
3. ์ธ๋ฑ์Šค ํŠน์„ฑ์„ ์ถฉ๋ถ„ํžˆ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ์ธ๋ฑ์Šค๋กœ ์ƒ์„ฑํ•จ์œผ๋กœ ์ธํ•ด

 

 

์„ฑ๋Šฅ = ๋ฐ์ดํ„ฐ ์กฐํšŒ์˜ ์„ฑ๋Šฅ

 

 

2. ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ˆ˜ํ–‰ ์‹œ์ 

์‚ฌ์ „์— ํ• ์ˆ˜๋ก ๋น„์šฉ์ด ๋“ค์ง€ ์•Š๋Š”๋‹ค.

ํŠนํžˆ ๋ถ„์„/์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ์„ฑ๋Šฅ์„ ๊ณ ๋ คํžŒ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ์ˆ˜ํ–‰ํ•  ๊ฒฝ์šฐ ๋น„์šฉ ์ตœ์†Œํ™”์˜ ๊ธฐํšŒ๋ฅผ ๊ฐ–๋Š”๋‹ค.

๋ฐ์ดํ„ฐ ์ฆ๊ฐ€๊ฐ€ ๋น ๋ฅผ ์ˆ˜๋ก ์„ฑ๋Šฅ์ €ํ•˜์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ๊ฐœ์„ ๋น„์šฉ์€ ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

3. ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ณ ๋ ค์‚ฌํ•ญ

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

* ๋Œ€๋Ÿ‰ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๋Š” ์ด๋ ฅ ๋ชจ๋ธ์— ๋Œ€ํ•ด ์„ฑ๋Šฅ ๊ณ ๋ ค๋ฅผ ํ•˜๊ณ  PK/FK์˜ ์ˆœ์„œ๊ฐ€ ์ธ๋ฑ์Šค ํŠน์„ฑ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ์˜ํ–ฅ๋„๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ PK/FK๋ฅผ ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•œ ์ˆœ์„œ๋Œ€๋กœ ์นผ๋Ÿผ์˜ ์ˆœ์„œ๋ฅผ ์กฐ์ •ํ•ด์•ผํ•œ๋‹ค.

 

 

 

 

 


#2 ์ •๊ทœํ™”์™€ ๊ธฐ๋Šฅ 

1. ์ •๊ทœํ™”๋ฅผ ํ†ตํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ ์ „๋žต

์ •๊ทœํ™” ํ•˜๋Š” ๊ฒƒ - ์ค‘๋ณต์„ฑ ์ œ๊ฑฐ, ๊ด€์‹ฌ์‚ฌ๋ณ„๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ ํ–ฅ์ƒ์˜ ํŠน์ง•์„ ๊ฐ–๋Š”๋‹ค.

 

์ž…๋ ฅ, ์ˆ˜์ •. ์‚ญ์ œ์˜ ์„ฑ๋Šฅ์€ ์ผ๋ฐ˜์ ์ธ ๋ฐ˜์ •๊ทœํ™”๋œ ํ…Œ์ด๋ธ”์— ๋น„ํ•ด ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋œ๋‹ค. 

์กฐํšŒ ์„ฑ๋Šฅ์€ ํ–ฅ์ƒ๋  ์ˆ˜๋„, ์ €ํ•˜๋  ์ˆ˜๋„ ์žˆ๋‹ค.

* ๋ฐ์ดํ„ฐ์˜ ์ค‘๋ณต ์†์„ฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ๊ฒฐ์ •์ž์— ์˜ํ•ด ๋™์ผํ•œ ์˜๋ฏธ์˜ ์ผ๋ฐ˜ ์†์„ฑ์ด ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ์ง‘์•ฝ๋˜๋ฏ€๋กœ ํ•œ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰์ด ์ตœ์†Œํ™”๋˜๋Š” ํšจ๊ณผ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ

 

์ •๊ทœํ™”ํ•˜์—ฌ ์กฐ์ธ์ด ๋ฐœ์ƒํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ์ €ํ•˜๋˜๋Š”๊ฐ€??? ์•„๋‹ˆ๋‹ค! case by case

 

 


๋ฐ˜์ •๊ทœํ™” :

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

 

 

 

๋ฐ˜์ •๊ทœํ™” ์ ˆ์ฐจ

1. ๋ฐ˜์ •๊ทœํ™” ๋Œ€์ƒ์กฐ์‚ฌ(๋ฒ”์œ„์ฒ˜๋ฆฌ๋นˆ๋„์ˆ˜, ๋ฒ”์œ„, ํ†ต๊ณ„์„ฑ)

2. ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œ ๋„ ๊ฒ€ํ† (๋ทฐ, ํด๋Ÿฌ์Šคํ„ฐ๋ง, ์ธ๋ฑ์Šค ์กฐ์ •)

3. ๋ฐ˜์ •๊ทœํ™” ์ ์šฉ(ํ…Œ์ด๋ธ”, ์†์„ฑ, ๊ด€๊ณ„ ๋ฐ˜์ •๊ทœํ™”)

 

 

 

๋ฐ˜์ •๊ทœํ™” ๋Œ€์ƒ์กฐ์‚ฌ

1. ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํ…Œ์ด๋ธ”์— ์ ‘๊ทผํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๊ฐ€ ๋งŽ๊ณ  ํ•ญ์ƒ ์ผ์ •ํ•œ ๋ฒ”์œ„๋งŒ์„ ์กฐํšŒํ•˜๋Š” ๊ฒฝ์šฐ

2. ํ…Œ์ด๋ธ”์— ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๊ณ  ๋Œ€๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ๋ฒ” ์œ„๋ฅผ ์ž์ฃผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ์— ์ฒ˜๋ฆฌ๋ฒ”์œ„๋ฅผ ์ผ์ •ํ•˜๊ฒŒ ์ค„ ์ด์ง€ ์•Š์œผ๋ฉด ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ

3. ํ†ต๊ณ„์„ฑ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ํ†ต๊ณ„ ์ •๋ณด๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ ๋ณ„๋„์˜ ํ†ต๊ณ„ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•œ๋‹ค.

4. ํ…Œ์ด๋ธ”์— ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์€ ์กฐ์ธ์ด ๊ฑธ๋ ค ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ ํšŒํ•˜๋Š” ์ž‘์—…์ด ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋ ค์šธ ๊ฒฝ์šฐ

 

 

 

์‹๋ณ„์ž ๊ด€๊ณ„

์ฃผ์‹๋ณ„์ž : ์ž์‹์˜ ์ฃผ์‹๋ณ„์ž๋กœ ๋ถ€๋ชจ์˜ ์ฃผ์‹๋ณ„์ž ์ƒ์†

1. ๋ถ€๋ชจ๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‹๋ณ„์ž๋ฅผ ์ž์‹์—”ํ„ฐํ‹ฐ์˜ ์ฃผ์‹๋ณ„์ž ๋กœ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ฐ•ํ•œ ์—ฐ๊ฒฐ๊ด€๊ณ„ ํ‘œํ˜„, ์‹ค์„  ํ‘œ๊ธฐ

 

๋น„์‹๋ณ„์ž : ๋ถ€๋ชจ ์†์„ฑ์„ ์ž์‹์˜ ์ผ๋ฐ˜ ์†์„ฑ์œผ๋กœ ์‚ฌ์šฉ

1. ๋ถ€๋ชจ ์—†๋Š” ์ž์‹์ด ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ

2. ๋ถ€๋ชจ์™€ ์ž์‹์˜ ์ƒ๋ช…์ฃผ๊ธฐ๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ

3. ์—ฌ๋Ÿฌ๊ฐœ์˜ ์—”ํ„ฐํ‹ฐ๊ฐ€ ํ•˜๋‚˜์˜ ์—”ํ„ฐํ‹ฐ๋กœ ํ†ตํ•ฉ๋˜์–ด ํ‘œํ˜„ ๋˜์—ˆ๋Š”๋ฐ ๊ฐ๊ฐ์˜ ์—”ํ„ฐํ‹ฐ๊ฐ€ ๋ณ„๋„์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ๊ฒฝ์šฐ

4. ์ž์‹์—”ํ„ฐํ‹ฐ์— ๋ณ„๋„์˜ ์ฃผ์‹๋ณ„์ž๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ์œ ๋ฆฌํ•œ ๊ฒฝ์šฐ

5. SQL ๋ฌธ์žฅ์ด ๊ธธ์–ด์ ธ ๋ณต์žก์„ฑ ์ฆ๊ฐ€๋˜๋Š” ๊ฒƒ ๋ฐฉ์ง€ ์•ฝํ•œ ์—ฐ๊ฒฐ๊ด€๊ณ„ ํ‘œํ˜„, ์ ์„  ํ‘œ

'๐ŸŒˆ > SQLD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[SQLD] ๋ชจ๋ธ๋ง์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€  (0) 2021.08.23

๋ชจ๋ธ๋ง์˜ ์ •์˜

์‚ฌ์ „์  ๋œป 
๊ฐ€์„ค์  ๋˜๋Š” ์ผ์ • ์–‘์‹์— ๋งž์ถ˜ ํ‘œํ˜„
์–ด๋–ค ๊ฒƒ์— ๋Œ€ํ•œ ์˜ˆ๋น„ ํ‘œํ˜„์œผ๋กœ ๊ทธ๋กœ๋ถ€ํ„ฐ ์ตœ์ข… ๋Œ€์ƒ์ด ๊ตฌ์ถ•๋˜๋„๋ก ํ•˜๋Š” ๊ณ„ํš์œผ๋กœ์„œ ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ 
  • ๋ณต์žกํ•œ 'ํ˜„์‹ค์„ธ๊ณ„'๋ฅผ ๋‹จ์ˆœํ™”์‹œ์ผœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ
  • ์‚ฌ๋ฌผ์ด๋‚˜ ์‚ฌ๊ฑด์— ๊ด€ํ•œ ์–‘์ƒ์ด๋‚˜ ๊ด€์ ์„ ์—ฐ๊ด€๋œ ์‚ฌ๋žŒ์ด๋‚˜ ๊ทธ๋ฃน์„ ์œ„ํ•˜์—ฌ ๋ช…ํ™•ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ
  • ํ˜„์‹ค์„ธ๊ณ„์˜ ์ถ”์ƒํ™”๋œ ๋ฐ˜์˜

 

 

๋ชจ๋ธ๋ง์˜ ํŠน์ง• 

์ถ”์ƒํ™”  ๋‹จ์ˆœํ™”  ๋ช…ํ™•ํ™”

 

๋ชจ๋ธ๋ง์˜ ์„ธ๊ฐ€์ง€ ๊ด€์  

๋ฐ์ดํ„ฐ ๊ด€์ 

์—…๋ฌด๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ์™€ ๊ด€๋ จ์ด ์žˆ๋Š”์ง€, ํ˜น์€ ๋ฐ์ดํ„ฐ๊ฐ„์˜ ๊ด€๊ณ„๋Š” ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด์„œ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐฉ๋ฒ• 

What, Data

 

 

ํ”„๋กœ์„ธ์Šค ๊ด€์ 

์—…๋ฌด๊ฐ€ ์‹ค์ œํ•˜๊ณ  ์žˆ๋Š” ์ผ์€ ๋ฌด์—‡์ธ์ง€, ํ˜น์€ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š”์ง€ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•

How, Process

 

 

๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค์˜ ์ƒ๊ด€๊ด€์ 

์—…๋ฌด๊ฐ€ ์ฒ˜๋ฆฌํ•˜๋Š” ์ผ์˜ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›๊ณ  ์žˆ๋Š”์ง€ ๋ชจ๋ธ๋งํ•˜๋Š” ๋ฐฉ๋ฒ•

 

 


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

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

 

 

 

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ค‘์š”์„ฑ ๋ฐ ์œ ์˜์ 

1. ํŒŒ๊ธ‰ํšจ๊ณผ

๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋“ค์ด ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋Œ€๊ทœ๋ชจ์˜ ๋ฐ์ดํ„ฐ ์ดํ–‰์„ ์„ฑ๊ณต์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋งŽ์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋“ค์ด ์ˆ˜ํ–‰๋˜๊ณ  ๋ฐ˜๋ณต๋œ๋‹ค. ์ด๋Ÿฐ ์‹œ์ ์— ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์˜ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€ํ”ผํ•œ ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค๋ฉด...? 

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

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ธํ•ด ์‹œ์Šคํ…œ ๊ตฌ์ถ• ์ž‘์—… ์ค‘ ๋‹ค๋ฅธ ์–ด๋–ค ์„ค๊ณ„ ๊ณผ์ •๋ณด๋‹ค ๋ฐ์ดํ„ฐ ์„ค๊ณ„๊ฐ€ ์ค‘์š”ํ•˜๋‹ค ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

2. ๊ฐ„๊ฒฐํ•œ ํ‘œํ˜„

๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๊ตฌ์ถ•ํ•  ์‹œ์Šคํ…œ ์ •๋ณด ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ํ•œ๊ณ„๋ฅผ ๊ฐ€์žฅ ๋ช…ํ™•ํ•˜๊ณ  ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ์ด๋‹ค.

๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ทธ๋ ค์ ธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๋ฆฌ๋ทฐํ•˜๋ฉด์„œ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์ด ์š”๊ตฌ์‚ฌํ•ญ์„ ํŒŒ์•…ํ•˜๋Š”๋ฐ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. (๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ์„ค๊ณ„ ๋„๋ฉด์— ํ•ด๋‹น)

 

3. ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ

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

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

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ํ•  ๋•Œ ์œ ์˜ ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1. ์ค‘๋ณต 
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์žฅ์†Œ์— ๊ฐ™์€ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” ์ž˜๋ชป์„ ํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

2. ๋น„์œ ์—ฐ์„ฑ
์‚ฌ์†Œํ•œ ์—…๋ฌด๋ณ€ํ™”์—๋„ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์ˆ˜์‹œ๋กœ ๋ณ€๊ฒฝ๋˜๋ฏ€๋กœ์จ ์œ ์ง€ ๋ณด์ˆ˜์˜ ์–ด๋ ค์›€์„ ๊ฐ€์ค‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.
๋ฐ์ดํ„ฐ ์ •์˜๋ฅผ ๋ฐ์ดํ„ฐ์˜ ์‚ฌ์šฉ ํ”„๋กœ์„ธ์Šค์™€ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์ค‘๋Œ€ํ•œ ๋ณ€ํ™”๋ฅผ ์ผ์œผํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ธ๋‹ค.

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

 

 

 

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

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

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

์ฃผ์š”ํ•œ ํ™œ๋™์€ ํ•ต์‹ฌ ์—”ํ„ฐํ‹ฐ์™€ ๊ทธ๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ฐœ๊ฒฌํ•˜๊ณ , ๊ทธ๊ฒƒ์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—”ํ„ฐํ‹ฐ-๊ด€๊ณ„ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

* ์—”ํ„ฐํ‹ฐ-๊ด€๊ณ„ ๋‹ค์ด์–ด๊ทธ๋žจ : ์กฐ์ง๊ณผ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž์—๊ฒŒ ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค‘์š”ํ•œ์ง€ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉ

* ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ณผ์ •์ด ์ „ ์กฐ์ง์—์„œ ์ด๋ฃจ์–ด์ง„๋‹ค --> ์ „์‚ฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋กœ ์ง€์›ํ•˜๋Š” ์ค‘์š”ํ•œ ๊ธฐ๋Šฅ 

1. ์‚ฌ์šฉ์ž์™€ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐ์ดํ„ฐ ์š”๊ตฌ ์‚ฌํ•ญ์„ ๋ฐœ๊ฒฌํ•˜๋Š” ๊ฒƒ์„ ์ง€์›

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

2, ๊ฐœ๋… ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ํ˜„ ์‹œ์Šคํ…œ์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ˜• ๋˜์–ด์•ผ ํ•˜๋Š”๊ฐ€๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์œ ์šฉ

 

 

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

๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๊ณผ์ • ์ค‘ ๊ฐ€์žฅ ํ•ต์‹ฌ์ด ๋˜๋Š”, ๋น„์ฆˆ๋‹ˆ์Šค ์ •๋ณด์˜ ๋…ผ๋ฆฌ์ ์ธ ๊ตฌ์กฐ์™€ ๊ทœ์น™์„ ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๊ธฐ๋ฒ• ๋˜๋Š” ๊ณผ์ •

๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด ์ตœ์ข…์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์ƒํƒœ -> ๋ฌผ๋ฆฌ์  ์Šคํ‚ค๋งˆ ์„ค๊ณ„์ „ ๋‹จ๊ณ„์˜ "๋ฐ์ดํ„ฐ ๋ชจ๋ธ" ์ƒํƒœ

๋ˆ„๊ฐ€, ์–ด๋–ป๊ฒŒ, ๊ทธ๋ฆฌ๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ๋ฐ์ดํ„ฐ์— ์กด์žฌํ•˜๋Š” ์‚ฌ์‹ค๋“ค์„ ์ธ์‹ํ•˜์—ฌ ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ!

์ •๊ทœํ™”

์ •๊ทœํ™”๋Š” ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์ƒ์„ธํ™” ๊ณผ์ •์˜ ๋Œ€ํ‘œ์  ํ™œ๋™์œผ๋กœ, ์ผ๊ด€์„ฑ์„ ํ™•๋ณดํ•˜๊ณ  ์ค‘๋ณต์„ ์ œ๊ฑฐํ•ด ์ ์ ˆํ•œ ์—”ํ‹ฐํ‹ฐ์— ์†์„ฑ์„ ๋ฐฐ์น˜ํ•จ์œผ๋กœ์จ ๋ณด๋‹ค ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์–ป๋Š”๋ฐ ๋ชฉ์ ์ด ์žˆ๋‹ค.

 

 

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

๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ์„œ ์–ด๋–ป๊ฒŒ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด์— ํ‘œํ˜„๋  ๊ฒƒ์ธ๊ฐ€๋ฅผ ๋‹ค๋ฃฌ๋‹ค.

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

 

 

 

 

 

ํ”„๋กœ์ ํŠธ ์ƒ๋ช… ์ฃผ๊ธฐ์—์„œ ๋ชจ๋ธ๋ง

waterfall ๊ธฐ๋ฐ˜ : ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์œ„์น˜๊ฐ€ ๋ถ„์„๊ณผ ์„ค๊ณ„ ๋‹จ๊ณ„๋กœ ๊ตฌ๋ถ„๋˜์–ด ๋ช…ํ™•ํ•˜๊ฒŒ ์ •์˜ ๊ฐ€๋Šฅ

์ •๋ณด๊ณตํ•™์ด๋‚˜ ๊ตฌ์กฐ์  ๋ฐฉ๋ฒ•๋ก  : ๋ถ„์„๋‹จ๊ณ„์—์„œ ์—…๋ฌด ์ค‘์‹ฌ์˜ ๋…ผ๋ฆฌ์ ์ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ์ˆ˜ํ–‰, ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ํ•˜๋“œ์›จ์–ด์™€ ์„ฑ๋Šฅ์„ ๊ณ ๋ คํ•œ ๋ฌผ๋ฆฌ์ ์ธ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ์ˆ˜ํ–‰

์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ๊ณ„ํš,๋ถ„์„ ๋‹จ๊ณ„์— ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง / ๋ถ„์„ ๋‹จ๊ณ„์—์„œ ๋…ผ๋ฆฌ์  ๋ฐ์ดํ„ฐ / ๋ชจ๋ธ๋ง ์„ค๊ณ„ ๋‹จ๊ณ„์—์„œ ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง
๋‹จ, ํ˜„์‹ค ํ”„๋กœ์ ํŠธ์—์„  ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด ์ƒ๋žต๋œ ๊ฐœ๋…/ ๋…ผ๋ฆฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์ด ๋ถ„์„ ๋‹จ๊ณ„ ๋•Œ ๋Œ€๋ถ€๋ถ„ ์ˆ˜ํ–‰

 

'๐ŸŒˆ > SQLD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[SQLD] ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง  (0) 2021.08.25

1๊ฐ• ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…๊ณผ API์˜ ์—ญํ• 

1.1 ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…

ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ํƒ„์ƒ
"ํ•„์š”ํ•œ IT ์ž์›์„ ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ" → ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์ด ์ œ๋Œ€๋กœ ์‹คํ–‰

 

๊ณต์šฉ ํด๋ผ์šฐ๋“œ์™€ ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ์˜ ์ฐจ์ด

์‚ฌ๋ฌด์‹ค์˜ ์ž๋™ ํŒ๋งค๊ธฐ์™€ ๊ณต์›์˜ ์ž๋™ ํŒ๋งค๊ธฐ / ์‚ฌ์„ค ํด๋ผ์šฐ๋“œ์™€ ๊ณต์šฉ ํด๋ผ์šฐ๋“œ

์‚ฌ์„ค ํด๋ผ์šฐ๋“œ

  • ํ•ด๋‹น ๊ธฐ์—…์˜ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ†ต์ œ
  • ๊ฐ์ข… ํ•˜๋“œ์›จ์–ด ์ž์‚ฐ๋“ค์„ ํ™•๋ณด ํ•„์š” 
  • ์ดˆ๊ธฐ ํˆฌ์ž ๋น„์šฉ ๋ฐœ์ƒ 

์ผ์ •๊ทœ๋ชจ์˜ ๋ฆฌ์†Œ์Šค ํ™œ์šฉ ์˜ˆ์ธก์ด ๊ฐ€๋Šฅํ•  ์‹œ

 

๊ณต์šฉ ํด๋ผ์šฐ๋“œ

  • ๋ฉ€ํ‹ฐ ํ…Œ๋„ŒํŠธ๋กœ ์ƒํ˜ธ ๊ฐ„์˜ ๊ฐ„์„ญ ์—†์ด ์—ฌ๋Ÿฌ ๊ธฐ์—…์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋…๋ฆฝ์ ์ธ ํ˜•ํƒœ๋กœ ์‚ฌ์šฉ
  • ์ดˆ๊ธฐ ํˆฌ์ž ๋น„์šฉ ์—†์Œ
  • ๋ฆฌ์†Œ์Šค๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ํ•„์š”ํ•œ ๋งŒํผ๋งŒ ํ™•๋ณดํ•ด์„œ ์ด์šฉ

๋ฆฌ์†Œ์Šค ์ด๋Ÿ‰์— ํฐ ๋ณ€ํ™”๊ฐ€ ์˜ˆ์ƒ๋˜๊ฑฐ๋‚˜ ์ˆ˜์š” ์ถ”์ด ์˜ˆ์ธก์ด ์–ด๋ ค์šธ ์‹œ

 

๊ณต์šฉ ํด๋ผ์šฐ๋“œ๋Š” ๋ฆฌ์†Œ์Šค์˜ ์‚ฌ์šฉ๋Ÿ‰์— ๋”ฐ๋ผ ๊ณผ๊ธˆ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณดํ†ต ๋น„์šฉ์ด ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€
์‚ฌ์„ค ํด๋ผ์šฐ๋“œ๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ๊ณ ๊ฐˆ๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ถ”๊ฐ€ ํˆฌ์ž๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ๊ณ„์ ์œผ๋กœ ์ฆ๊ฐ€

 

 

 

 

" Iaas, Paas, Saas "

SaaS Software as a Service

์—ญ์‚ฌ์ ์œผ๋กœ ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค๋Š” saas๋กœ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋‹ค์–‘ํ•ด์กŒ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์„ ํด๋ผ์šฐ๋“œ์˜ ํ˜•ํƒœ๋กœ ์„œ๋น„์Šคํ•œ๋‹ค. ( ex. ๊ฐœ์ธ์šฉ ์ด๋ฉ”์ผ )

 

 

PaaS Platform as a Service

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด๋‚˜ ์šด์˜ ํ™˜๊ฒฝ๋“ฑ์„ ์ œ๊ณตํ•œ๋‹ค. ( ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ, ์ปดํŒŒ์ผ๋Ÿฌ )

  • ์‹ ์†ํ•œ ๊ฐœ๋ฐœ ์ฐฉ์ˆ˜ ๊ฐ€๋Šฅ
  • ํŠน์ • ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค์—์„œ๋งŒ ์ œ๊ณตํ•˜๋Š” ๊ณ ์œ  ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ๋„ ๋˜‘๊ฐ™์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ

 

IaaS Infrastructure as a Service

์„œ๋ฒ„, ๋„คํŠธ์›Œํฌ, ์Šคํ† ๋ฆฌ์ง€ ๋“ฑ์˜ IT ์ธํ”„๋ผ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ๊ฐ€์ƒํ™”๋œ ์ธํ”„๋ผ ์ œ๊ณต

์ž์‹ ๋งŒ์˜ ์ „์šฉ ํ…Œ๋„ŒํŠธ ํ™˜๊ฒฝ ์ œ๊ณต

SaaS์™€ ๋‹ฌ๋ฆฌ ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ฌผ๋ฆฌ์  ํ™˜๊ฒฝ๊ณผ ๋…๋ฆฝ๋œ ํ˜•ํƒœ๋กœ ์ œ๊ณต์ด ํ•„์š”ํ•œ IaaS๋Š” ๊ฐ€์ƒํ™” ๋˜์–ด ์žˆ๋‹ค.

 

 

 

 

 

 

1.2 ํด๋ผ์šฐ๋“œ๊ฐ€ ์‹คํ˜„ํ•˜๋Š” ์ธํ”„๋ผ์˜ ํ‘œ์ค€ํ™”

ํด๋ผ์šฐ๋“œ์— ์˜ํ•œ ์‹œ์Šคํ…œ ๊ตฌ์ถ• ์ ˆ์ฐจ์˜ ํ‘œ์ค€ํ™”

  • Iaasํ˜• ํด๋ผ์šฐ๋“œ ๊ณจ์น˜์•„ํ”ˆ ๋ฌผ๋ฆฌ์  ์žฅ๋น„์˜ ์„ค์ • ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ธฐ๋Šฅ์˜ ์ฐจ์ด ์˜์‹์ด ํ•„์š” ์—†๋‹ค.
  • ๋ฌผ๋ฆฌ์  ์žฅ๋น„์˜ ์ฐจ์ด์— ์ƒ๊ด€ ์—†์ด ๋ช‡ ๋ฒˆ์ด๋“  ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹œ์Šคํ…œ ์žฌ๊ตฌ์ถ•์ด ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ๋„ ์‹œํ–‰์ฐฉ์˜ค ์—†์ด ์ด์ „์˜ ๊ฒฝํ—˜์„ ์‚ด๋ ค ํšจ์œจ์  ์ž‘์—… ๊ฐ€๋Šฅ
  • ๊ธฐ์กด ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ์˜ ์‹œ์Šคํ…œ์„ ์ƒˆ๋กœ์šด ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—… ๋˜ํ•œ ์ˆ˜์›”

 

 

์ธํ”„๋ผ์˜ ํ‘œ์ค€ํ™”๋ฅผ ์œ„ํ•œ ์ปดํฌ๋„ŒํŠธ์˜ ์ถ”์ƒํ™”

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

 

 

API์— ์˜ํ•œ ์ œ์–ด ๋ฐฉ๋ฒ•์˜ ํ‘œ์ค€ํ™”

  • ํ•œ๋ฒˆ ์ •์˜ํ•œ ์ž‘์—… ์ ˆ์ฐจ์— ๋”ฐ๋ผ ๋ช‡๋ฒˆ์ด๋“  ๋ฐ˜๋ณต ๊ตฌ์ถ• ๊ฐ€๋Šฅ -> ๋ฌผ๋ฆฌ์  ์ธํ”„๋ผ ์ž‘์—… ํ•„์š” ์—†์Œ
  • ๊ฐ™์€ ์‹œ์Šคํ…œ ๊ตฌ์ถ•์„ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๋ฒˆ์˜ ์ž‘์—…์„ ์ž๋™ํ™” ํ•  ์ˆ˜ ์žˆ์Œ --> API๋ฅผ ์‚ฌ์šฉํ•œ ์ œ์–ด ๋ฐฉ์‹
์ œ์–ด ๋ฐฉ๋ฒ• ์„ค๋ช…
์›น ์ฝ˜์†” GUI์„ ์‚ฌ์šฉํ•œ ์ œ์–ด ์›น ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•ด์„œ GUI ๋ฐฉ์‹์œผ๋กœ ์ œ์–ดํ•จ
๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•œ ์ œ์–ด ํด๋ผ์ด์–ธํŠธ ํˆด์ด ์ œ๊ณตํ•˜๋Š” ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ œ์–ดํ•จ
์ง์ ‘ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•œ ์ œ์–ด ์ง์ ‘ ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ํด๋ผ์šฐ๋“œ API ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ œ์–ดํ•จ
์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•œ ์ œ์–ด ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ์ž๋™ํ™” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ์ œ์–ดํ•จ

 

 

 

 

1.3 ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์˜ ํ™œ์šฉ

  • ์ปดํฌ๋„ŒํŠธ๋“ค์ด ์ถ”์ƒํ™” ๋˜์–ด์žˆ๋‹ค -> ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„, ์›ํ•˜๋Š” ์‹œ๊ธฐ์— ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์ด ํ‘œ์ค€ํ™” ๋˜์–ด ์žˆ๋‹ค. -> API์‚ฌ์šฉํ•œ ์ž๋™ํ™”๋ฅผ ํ†ตํ•ด ๋น ๋ฅธ ๊ตฌ์ถ•.. ์‹ ์„ธ๊ณ„

 

 

 

 


2๊ฐ• ํด๋ผ์šฐ๋“œ์˜ ๋Œ€ํ‘œ์ ์ธ ์ปดํฌ๋„ŒํŠธ

 

2.1 ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์˜ ์ „์ฒด ๊ทธ๋ฆผ

ํ…Œ๋„ŒํŠธ

  • ์‚ฌ์ „์ ์ธ ์˜๋ฏธ๋กœ ์„ธ์ž…์ž (AWS ๊ณ„์ •)
  • ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ด์šฉ์ž๋Š” ์ž์‹ ๋งŒ์˜ ํ…Œ๋„ŒํŠธ ํ™˜๊ฒฝ ๊ฐ€์ง

ํ…Œ๋„ŒํŠธ ๊ตฌ์„ฑ ์˜ˆ

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

 

 

 

 

๋ฆฌ์ „

  • ์ง€๋ฆฌ์ ์œผ๋กœ ๋ฉ€๋ฆฌ ๋–จ์–ด์ง„ ์ง€์—ญ์— ์—ฌ๋Ÿฌ๊ฐœ์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ ๋ถ„์‚ฐ ์šด์˜
  • ๊ตญ๊ฐ€๋‚˜ ์ง€์—ญ์„ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฆ„์„ ์ง“๋Š”๋‹ค ex. ์„œ์šธ๋ฆฌ์ „, ์‹œ๋“œ๋‹ˆ๋ฆฌ์ „
  • ๊ฐ ๋ฆฌ์ „๋“ค์€ ์„œ๋กœ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ -> ์—ฌ๋Ÿฌ ๋ฆฌ์ „์— ๊ฑธ์นœ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ๋ชป ๋งŒ๋“ ๋‹ค.
  • ์‚ฌ์šฉ์ž ๊ณ„์ •์ด๋‚˜ ํ…Œ๋„ŒํŠธ ์ •๋ณด๋Š” ์—ฌ๋Ÿฌ ๋ฆฌ์ „์— ๊ฑธ์น  ์ˆ˜ ์žˆ๋‹ค. ->DRํ™˜๊ฒฝ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

DR Disaster Recover
์žฌํ•ด๋ฐœ์ƒ์‹œ ๋‹ค๋ฅธ ๋ฆฌ์ „์œผ๋กœ ์‹œ์Šคํ…œ์„ ์˜ฎ๊ฒจ ์‚ฌ์šฉ
์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ๋ณ€๊ฒฝ๋œ ๋ฆฌ์ „์˜ ๊ณต์ธ IP ์ฃผ์†Œ๋กœ ๋ฐ”๊ฟ” ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ DNS๊ฐ€ ๋ณ€๊ฒฝ๋œ ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ๋„๋ฉ”์ธ ๋“ฑ๋ก ์ •๋ณด๋ฅผ ๊ฐฑ์‹ ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
๋‹ค๋ฅธ ๋ฆฌ์ „์—์„œ๋„ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฏธ๋ฆฌ ๋ณต์ œํ•ด ๋‘์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ด๋•Œ ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.


         (* ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋Š” ๋ชจ๋“  ๋ฆฌ์ „์—์„œ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค )

์˜คํ”ˆ์Šคํƒ - ๋ฆฌ์ „๊ธฐ๋Šฅ O , ํด๋ผ์šฐ๋“œ์™€ ๊ธฐ์ค€์ด ๋‹ค๋ฆ„
AWS์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋‚˜๋ผ์— ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋ฅผ ์ค€๋น„ํ•ด๋‘๊ณ  ๊ฐ ์ง€์—ญ ๋‹จ์œ„๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜๋„
or ๊ตญ๋‚ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ๋‘๊ณ  ๊ฐ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋‹จ์œ„๋กœ ๋ฆฌ์ „์„ ๊ตฌ์„ฑํ•  ์ˆ˜๋„

 

 

 

 

 

๊ฐ€์šฉ ์˜์—ญ

  • ํ•œ ๋ฆฌ์ „์˜ ํด๋ผ์šฐ๋“œ ์ธํ”„๋ผ๋Š” ๋‹ค๋ฅธ ์ฃผ๋ณ€ ์ง€์—ญ์˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋ถ„์‚ฐ๋  ์ˆ˜ ์žˆ๋‹ค -> ์ด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋Š” ๊ฐ€์šฉ์˜์—ญ!
  • ๋‹ค๋ฅธ AZ์— ์žˆ๋Š” ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์™€ ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€๋Š” ์„œ๋กœ ์—ฐ๊ฒฐ ๋ชปํ•จ
    • ๊ทธ ๊ธฐ๋Šฅ์„ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ๋ณต์ œ ๊ธฐ๋Šฅ์œผ๋กœ ์‚ฌ์šฉ ๋‹ค๋ฅธ AZ์˜ ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋งŒ๋“ค์–ด ์“ฐ๋ฉด ๋œ๋‹ค.

๋ฆฌ์ „๊ณผ ๊ฐ€์šฉ ์˜์—ญ

์˜คํ”ˆ ์Šคํƒ - AZ ๊ฐœ๋… O
๊ฐ€์šฉ ์˜์—ญ ๋ฒ”์œ„ ๋‚ด๋กœ ์ œํ•œ๋˜์ง€ ์•Š๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์šฉ ์˜์—ญ์— ๊ฑธ์ณ์„œ ๋” ๋„“์€ ๋ฒ”์œ„๋กœ๋„ ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
1. AWS์œผ๋กœ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋‹จ์œ„๋กœ ๊ฐ€์šฉ ์˜์—ญ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
   ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์‚ฌ์ด์˜ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์ด ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์œผ๋ฉด, ์ธ์Šคํ„ด์Šค ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๊ฐ€ ๋ฉ€์–ด ์›ํ•˜๋Š” ํ†ต์‹  ์†๋„ ์•ˆ ๋‚˜์˜ด
2. ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”Œ๋กœ์–ด๋‚˜ ๋ž™๊ณผ ๊ฐ™์ด ๋” ์ž‘์€ ๋‹จ์œ„๋กœ ๊ฐ€์šฉ์˜์—ญ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

2.2 ๋„คํŠธ์›Œํฌ ๋ฆฌ์†Œ์Šค

๋ผ์šฐํ„ฐ

  • ํ…Œ๋„ŒํŠธ ์•ˆ์˜ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ + ๋ฌผ๋ฆฌ์ ์ธ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ  ์ด ๋‘˜์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ํ•˜๋‚˜๋‹น, ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ ๋ฐฐ์น˜

 

 

 

 

์Šค์œ„์น˜ (์„œ๋ธŒ๋„ท)

  • ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ์™€ ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์˜ ๊ฐ€์ƒ NIC ์—ฐ๊ฒฐ๋˜๋Š” ์ ‘์ 
  • ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ์Šค์œ„์น˜์— ํ•˜๋‚˜์˜ ์„œ๋ธŒ๋„ท์ด ํ• ๋‹น๋œ๋‹ค.
    • ์„œ๋ธŒ๋„ท : ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์„ค IP ์ฃผ์†Œ์˜ ๋ฒ”์œ„
    • AWS์—์„  ๊ฐ€์ƒ ์Šค์œ„์น˜์™€ ์„œ๋ธŒ๋„ท์„ ํ•˜๋‚˜์˜ ํ†ตํ•ฉ๋œ ํ˜•ํƒœ๋กœ ์ทจ๊ธ‰ํ•˜๋ฉฐ, ์„œ๋ธŒ๋„ท์œผ๋กœ ๋ถ€๋ฅธ๋‹ค.
  • ํ•˜๋‚˜์˜ ๊ฐ€์ƒ ์Šค์œ„์น˜(์„œ๋ธŒ๋„ท)๊ฐ€ ํ•˜๋‚˜์˜ ๊ฐ€์šฉ ์˜์—ญ์— ๋ฐฐ์น˜๋œ๋‹ค.
  • ๊ฐ€์ƒ ์Šค์œ„์น˜๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ ‘์† ํฌํŠธ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ์—ฐ๊ฒฐํ•  ํ•„์š” ์—†๋‹ค.
    • ๊ฐ€์ƒ ์Šค์œ„์น˜์— ์ ‘์† ํฌํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ทธ ํฌํŠธ์— ์„œ๋ธŒ๋„ท ๋ฒ”์œ„ ๋‚ด์— ์ด์šฉ๊ฐ€๋Šฅํ•œ IP ์ฃผ์†Œ ํ• ๋‹น

 

 

 

 

๊ณต์ธ IP ์ฃผ์†Œ

  • ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ ์‚ฌ์šฉํ•˜๋Š” ์‚ฌ์„ค IP ์ฃผ์†Œ๋Š” ๋„คํŠธ์›Œํฌ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์™ธ๋ถ€์—์„œ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์™ธ๋ถ€์™€ ํ†ต์‹ ํ•  ๋•Œ ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ์˜ NAT๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์„ค IP๋ฅผ ๊ณต์ธ IP๋กœ ๋ณ€ํ™˜ ( 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค! )
๋ฐฉ๋ฒ• 1 ) IP ๋งˆ์Šค์ปค๋ ˆ์ด๋”ฉ
๊ฐ€์ƒ ์ธ์Šคํ„ด์Šค๊ฐ€ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ๋กœ ์ ‘์†ํ•  ๋•Œ ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ๊ฐ€ ํ• ๋‹น ๋ฐ›์€ ๊ณต์ธ IP๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ์‹
ex. ๊ฐ€์ •์šฉ LAN์— ์—ฐ๊ฒฐ๋œ ์ดˆ๊ณ ์† PC
cf. ๊ฐ€์ƒ๋จธ์‹  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐ€์ƒ ์Šค์œ„์น˜์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  ์ด ๊ฐ€์ƒ ์Šค์œ„์น˜๊ฐ€ ๋‹ค์‹œ ๊ฐ€์ƒ ๋ผ์šฐํ„ฐ์— ์ ‘์†๋˜์–ด ์žˆ์„ ๋•Œ
    ๋‚ด๋ถ€์—์„œ ์™ธ๋ถ€ O |  ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ X

๋ฐฉ๋ฒ• 2 ) ์—˜๋ผ์Šคํ‹ฑ IP
๋ฏธ๋ฆฌ ํ™•๋ณดํ•ด ๋‘” ๊ณต์ธ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์— ํ• ๋‹นํ•˜๋Š” ๋ฐฉ์‹
๋‚ด๋ถ€์—์„œ ๋‚˜๊ฐ€๋Š” ํ†ต์‹ ๊ณผ ๋“ค์–ด์˜ค๋Š” ํ†ต์‹  ๋ชจ๋‘ ๊ฐ€๋Šฅ
cf. ํ•œ ๋ฆฌ์ „์—์„œ ํ™•๋ณดํ•œ IP๋ฅผ ๋‹ค๋ฅธ ๋ฆฌ์ „์—์„œ ์‚ฌ์šฉ ๋ชปํ•จ

 

 

 

์‹œํ๋ฆฌํ‹ฐ ๊ทธ๋ฃน

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

 

 

 

 

 

2.3 ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค

ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€

  1. ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋™ํ•˜๋ ค๋ฉด ๊ฒŒ์ŠคํŠธ OS๊ฐ€ ์„ค์น˜๋œ ๊ธฐ๋™ ๋””์Šคํฌ๊ฐ€ ํ•„์š”
  2. ๊ธฐ๋™ ๋””์Šคํฌ ๋งŒ๋“ค ๋•, ์‚ฌ์ „์— ์ค€๋น„๋œ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€๋ฅผ ์„ ํƒํ•จ
  3. ์„ ํƒ๋œ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€๋Š” ๋‹ค์šด๋กœ๋“œ๋˜์–ด ๊ฐ€์ƒ ๋””์Šคํฌ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ง
  4. ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค๋Š” ์ด ๊ฐ€์ƒ ๋””์Šคํฌ๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์‚ฌ์šฉ

* ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€๋Š” ํด๋ผ์šฐ๋“œ ์„œ๋น„์Šค ์ œ๊ณต์ž๊ฐ€ ๋ฏธ๋ฆฌ ์ค€๋น„ํ•ด๋‘๊ธฐ๋„ ํ•˜์ง€๋งŒ, ์ด์šฉ์ž๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ๊ฒƒ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Œ

 

 

 

 

์ธ์Šคํ„ด์Šค ์œ ํ˜•

  • ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ปดํ“จํŒ… ์„ฑ๋Šฅ ๋ฐ ์šฉ๋Ÿ‰์„ ๊ฒฐ์ •
  • ๊ฐ ํƒ€์ž…๋ณ„๋กœ ๊ฐ€์ƒ CPU์˜ ๊ฐœ์ˆ˜๋‚˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰, ๊ฐ€์ƒ ๋””์Šคํฌ์˜ ์šฉ๋Ÿ‰ ๋“ฑ์ด ์ •ํ•ด์ ธ ์žˆ์Œ
  • AWS์—์„œ๋Š” ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์‚ฌ์šฉ์ž ์ •์˜๋กœ ์ง์ ‘ ๋งŒ๋“ค์ง€ ๋ชปํ•จ
์˜คํ”ˆ์Šคํƒ์—์„œ๋Š” ํ…Œ๋„ŒํŠธ์˜ ๊ถŒ๋ฆฌ ๊ถŒํ•œ์ด ์žˆ๋Š” ์‚ฌ์šฉ์ž์ธ ๊ฒฝ์šฐ, ํ•ด๋‹น ํ…Œ๋„ŒํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ธ์Šคํ„ด์Šค ์œ ํ˜•์„ ์ง์ ‘ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์„ค์ • ๊ฐ€๋Šฅํ•œ ์ธ์Šคํ„ด์Šค ์œ ํ˜•์˜ ํ•ญ๋ชฉ
1. ๊ฐ€์ƒ CPU : ๊ฐ€์ƒ CPU์˜ ๊ฐœ์ˆ˜
2. ๋ฉ”๋ชจ๋ฆฌ : ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ์˜ ์šฉ๋Ÿ‰
3. ๋ฃจํŠธ ๋””์Šคํฌ : ๊ธฐ๋™ ๋””์Šคํฌ์˜ ํฌ๊ธฐ
4. ์ž„์‹œ ๋””์Šคํฌ : ์ž„์‹œ ๋””์Šคํฌ์˜ ํฌ๊ธฐ
5. ์Šค์™‘ ๋””์Šคํฌ : ์Šค์™‘ ์˜์—ญ์˜ ํฌ๊ธฐ

 

 

 

 

๋„คํŠธ์›Œํฌ ์ ‘์†๊ณผ ์‹œํ๋ฆฌํ‹ฐ ๊ทธ๋ฃน

  • ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์˜ ๊ฐ€์ƒ NIC๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜๋ ค๋ฉด...
    • ๊ฐ€์ƒ ์Šค์œ„์น˜์™€ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•˜๊ณ  ์‹œํ๋ฆฌํ‹ฐ ๊ทธ๋ฃน์ด ์„ค์ •๋˜์–ด์•ผ ํ•จ
      • ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์ƒ ์Šค์œ„์น˜์— ์—ฐ๊ฒฐํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, ๊ฐ€์ƒ ์Šค์œ„์น˜๋ณ„๋กœ ๊ฐ€์ƒ NIC ์—ฌ๋Ÿฌ๊ฐœ ์ค€๋น„!
      • NIC ๋ณ„๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์‹œํ๋ฆฌํ‹ฐ ๊ทธ๋ฃน์„ ์ ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ฐœ๋ณ„์  ์„ค์ •์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

๋กœ๊ทธ์ธ ์ธ์ฆ๊ณผ ํ‚ค ํŽ˜์–ด

  • ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค์˜ ๊ฒŒ์ŠคํŠธ OS์— ๋กœ๊ทธ์ธํ•  ๋–„ ์‚ฌ์šฉ์ž ์ธ์ฆ์ด ํ•„์š”
  • ๊ธฐ๋ณธ์ ์œผ๋กœ SSH์˜ ๊ณต๊ฐœ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋œ๋‹ค.
  • ์ „์šฉ ํ‚ค ํŽ˜์–ด๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. (์ „์šฉ ํ‚ค ํŽ˜์–ด : ๊ณต๊ฐœ ํ‚ค + ๊ฐœ์ธ ํ‚ค)
  • ์ด๋Ÿฌํ•œ ์ธ์ฆ ๊ด€๋ จ ์„ค์ • ์ฒ˜๋ฆฌ๋Š” ๊ฒŒ์ŠคํŠธ OS์•ˆ์˜ Cloud - init์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.
    • Cloud - init์€ ๊ฒŒ์ŠคํŠธ OS๊ฐ€ ์ฒ˜์Œ ๊ธฐ๋™๋  ๋•Œ ์ง€์ •๋œ ๊ณต๊ฐœํ‚ค๋ฅผ ๋ฐ›์•„ SSH์˜ ์ธ์ฆ ์ •๋ณผ๋ฅจ๋ณด๋ฅผ ์„ค์ •ํ•˜๋Š” ์—ญํ• ์„ ํ•จ

 

 

 

 

 

2.4 ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€ ๋ฆฌ์†Œ์Šค

๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ

๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

 

๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€์—์„œ ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค ๊ธฐ๋™ํ•˜๊ธฐ

์•ž์„  ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค ๊ธฐ๋™์‹œ์— ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€ ๋ณต์ œํ•œ ๋ฃจํŠธ ๋””์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด์•˜๋‹ค.

  • ๋ธ”๋ก ์Šคํ† ๋ฆฌ์ง€์˜ ๋ณผ๋ฅจ์— ์žˆ๋Š” ๊ฒŒ์ŠคํŠธ OS๋กœ ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.
  • EBS Boot๋ผ ํ•œ๋‹ค.
    • ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€๋ฅผ ๋ณต์ œํ•œ ๋ณผ๋ฅจ์„ ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋‘”๋‹ค
    • ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ธฐ๋™ํ•  ๋•Œ ๋ฏธ๋ฆฌ ๋ณต์ œํ•ด๋‘” ๋ณผ๋ฅจ์„ ์ง€์ •ํ•œ๋‹ค
    • ๊ฐ€์ƒ ๋จธ์‹  ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋”๋ผ๋„ OS ์˜์—ญ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š๋Š”๋‹ค. ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ~!

 

 

 

2.5 ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ๋ฆฌ์†Œ์Šค

์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ

  • ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋Š” ํŒŒ์ผ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ ์ œ๊ณต
  • ๋ฎ์–ด์“ฐ๊ธฐ๋ฅผ ํ†ตํ•œ ๊ฐฑ์‹  ๋ถˆ๊ฐ€๋Šฅ... -> ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ณ  ์ƒˆ๋กœ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์ €์žฅ
    • ๋งค์šฐ ๋‹จ์ˆœ
    • ๊ฐ€์šฉ์„ฑ ๋†’๊ณ  ์ฒ˜๋ฆฌ์œจ ์šฐ์ˆ˜
      • ๋™์˜์ƒ๊ณผ ๊ฐ™์€ ์ •์  ์ฝ˜ํ…์ธ  ํŒŒ์ผ(์˜ค๋ธŒ์ ํŠธ)์„ ์ €์žฅํ•˜๋Š”๋ฐ ์ ํ•ฉ
  • ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋Š” ์žฅ์†Œ๋‚˜ ์ง€์—ญ์— ์ƒ๊ด€ ์—†์ด ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด ์ ‘์†ํ•˜์—ฌ ์ด์šฉ ๊ฐ€๋Šฅ
  • ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋น„์Šค๋ฅผ Amazon S3๋ผ ํ•œ๋‹ค. 
  • ๋ณดํ†ต ์˜ค๋ธŒ์ ํŠธ ๋ณด์กด ์˜์—ญ์ธ S3 ๋ฒ„ํ‚ท์„ ๋ฆฌ์ „๋ณ„๋กœ ๋งŒ๋“ ๋‹ค.  ( ๋‹ค๋ฅธ ๋ฆฌ์ „์˜ ์ธ์Šคํ„ด์Šค๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ )
์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€์— ํŒŒ์ผ ์ €์žฅ
์˜ค๋ธŒ์ ํŠธ๋ฅผ ๋‹ด์„ ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ฆ‡, ์ปจํ…Œ์ด๋„ˆS3๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค,
๊ฐ ์˜ค๋ธŒ์ ํŠธ๋Š” key  - value ํ˜•์‹์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ€์—ฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ํ™œ์šฉํ•˜๋ฉด ํŠน์ • ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ํŒŒ์ผ๋“ค์„ ์‰ฝ๊ฒŒ ์„ ๋ณ„ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋ฒ„์ €๋‹๊ณผ ์ •์  ์›น ํ˜ธ์ŠคํŒ…

๋ฒ„์ €๋‹ Versioning

  • ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ๋œ ์˜ค๋ธŒ์ ํŠธ์— ๋ฒ„์ „ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ ๊ด€๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ
  • ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€์— ๊ฐ™์€ ์ด๋ฆ„์˜ ํŒŒ์ผ ์ €์žฅํ•ด๋„ ์ƒˆ๋กœ์šด ๋ฒˆํ˜ธ๋กœ ์ €์žฅ๋˜์–ด ๊ธฐ์กด ํŒŒ์ผ ์œ ์ง€ ๊ฐ€๋Šฅ

์ •์  ์›น ํ˜ธ์ŠคํŒ…

  • ์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ฐ„์ด ์›น ์„œ๋ฒ„์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ
    • ์ปจํ…Œ์ด๋„ˆ์˜ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ˆ„๊ตฌ๋‚˜ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ณต์šฉ์œผ๋กœ ์„ค์ •ํ•œ๋‹ค.
    • ๊ทธ ์•ˆ์— ์ •์  HTML ํŒŒ์ผ๋“ค์„ ์ €์žฅํ•œ๋‹ค.
    • ์ดํ›„ ์›น ๋ธŒ๋ผ์šฐ์ € ๊ฐ™์€ client๊ฐ€ ์ด ์˜ค๋ธŒ์ ํŠธ์— ํ• ๋‹น๋œ url๋กœ ์ ‘๊ทผํ•˜๋ฉด ์ €์žฅ๋œ html ํŒŒ์ผ ๋‚ด์šฉ์ด ๋‚˜์˜จ๋‹ค.

 

 

 

์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€์˜ ๋ฐฑ์—…

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

 

 

 

 

 

 

2.6 ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹œ์Šคํ…œ์˜ ๊ตฌ์ถ• ์˜ˆ

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์šฉ ์˜์—ญ์œผ๋กœ ๊ฐ€์šฉ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ

AWS - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์šฉ ์˜์—ญ์œผ๋กœ ๊ฐ€์šฉ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ
์˜คํ”ˆ ์Šคํƒ - ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ€์šฉ ์˜์—ญ์œผ๋กœ ๊ฐ€์šฉ์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ

 

์˜ค๋ธŒ์ ํŠธ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋ณดํ˜ธํ•˜๊ธฐ

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

AUSG spring ๊ธฐ์ดˆ ์Šคํ„ฐ๋””๋ฅผ ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

์˜ฌํ•ด ์ดˆ๋ถ€ํ„ฐ ์Šคํ”„๋ง์„ ๋ถ™์žก๊ณ  ์žˆ๊ธด ํ–ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ๊ณต๋ถ€๋ฅผ ๋”ฅํ•˜๊ฒŒ ํ•ด๋ณด์ง€ ์•Š์•˜๊ณ  ์•„์ง๋„ ์ž”์ž”๋ฐ”๋ฆฌ ์ˆ˜์ค€์ด๋ผ ์ด๋ก ๋ฐ˜์— ์ฐธ์—ฌํ•˜์ง€ ๋ชปํ•˜๊ณ  ๊ธฐ์ดˆ๋ฐ˜์— ์ฐธ์—ฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค....

์ด๋ฒˆ ๊ธฐํšŒ์— ๋งˆ์Šคํ„ฐํ•ด๋ณด๋ฆฌ๋ผ~~~

 


 

 


์ €์ž ๊นƒํ—ˆ๋ธŒ : https://github.com/jojoldu/freelec-springboot2-webservice

ํ•ญ๊ณต๊ธฐ

 

โŠ™ AmsField

package ams;

public class AmsField {
	//				Key
	// ํ•ญ๊ณต์‚ฌ, ํ•ญ๊ณต๊ธฐ๋ฒˆํ˜ธ, ์ตœ๋Œ€์Šน๊ฐ์ˆ˜, ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€
	String[][] arrPlane = new String[100][5];
	int insertCnt;
	int updateIndex;

	// ์ถ”๊ฐ€
	// 2์ฐจ์› ๋ฐฐ์—ด์— 5๊ฐœ์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ธฐ
	void insert(String[] arPlane) {
		arrPlane[insertCnt] = arPlane;
		insertCnt++;
	}

	// ์ˆ˜์ •
	void update(int index, String newValue) {
		boolean updateCheck = true;
		//ํ•ญ๊ณต์‚ฌ, ํ•ญ๊ณต๊ธฐ๋ฒˆํ˜ธ, ์Šน๊ฐ์ˆ˜, ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€
		//0			1				2			3			4
		//index : 0, 1
			arrPlane[updateIndex][index+3] = newValue;
	}

	// ์‚ญ์ œ
	void delete() {
	}

	// ๊ฒ€์ƒ‰
	String select(int index, String keyword) {
		int[] arIndex = null;
		int searchCnt = 0;
		String result = "";
		updateIndex = -1;
		
		for (int i = 0; i < insertCnt; i++) {
			if (keyword.equals(arrPlane[i][index])) {
				// i >> ํ–‰๋ฒˆํ˜ธ : ๊ฒ€์ƒ‰ํ•  ๋น„ํ–‰๊ธฐ ๋ฒˆํ˜ธ
				searchCnt++;
				updateIndex = i;
				//๋ฐ”๋กœ int๋ฐฐ์—ด์— ๋‹ด์„ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—(๊ฒ€์ƒ‰ ๊ฑด์ˆ˜๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ)
				//๋ฌธ์ž์—ด์— ๊ฒ€์ƒ‰๋œ ํ–‰๋ฒˆํ˜ธ๋ฅผ ์—ฐ๊ฒฐ์‹œ์ผœ ๋‹ด๋Š”๋‹ค.(", "๋Š” ๊ตฌ๋ถ„์ ์ด๋‹ค.)
				//๊ตฌ๋ถ„์ ์ด ์žˆ์–ด์•ผ์ง€๋งŒ ๋ฐ‘์—์„œ ๊ฐ ๊ฐ’์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
				result += i + ", ";
			}
		}
		//๊ฒ€์ƒ‰ ๊ฑด์ˆ˜๋ฅผ for๋ฌธ์ด ๋๋‚œ ํ›„์— ์•Œ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—
		//for๋ฌธ ๋ฐ‘์—์„œ new ํ•ด์ค€๋‹ค.
		arIndex = new int[searchCnt];
		for (int i = 0; i < arIndex.length; i++) {
			//	result๋Š” ๋ฌธ์ž์—ด์ด๊ณ  split() ์‚ฌ์šฉ์‹œ 
			//์ „์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๋’ค์— ๋ฐ”๋กœ []๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
			arIndex[i] = Integer.parseInt(result.split(", ")[i]);
		}
		//list(int[] arIndex)๋ฉ”์„œ๋“œ์— ๊ฐ’์„ ์ „๋‹ฌํ•˜๊ณ  list(int[] arIndex)์—์„œ ๋ฆฌํ„ด๋œ
		//๊ฒฐ๊ณผ๊ฐ’์„ select()์—์„œ ๋ฆฌํ„ดํ•œ๋‹ค.
		return list(arIndex);
	}

	// ๋ชฉ๋ก
	String list() {
		String result = "ํ•ญ๊ณต์‚ฌ, ํ•ญ๊ณต๊ธฐ๋ฒˆํ˜ธ, ์ตœ๋Œ€์Šน๊ฐ์ˆ˜(๋ช…), ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€\n";
		for (int i = 0; i < insertCnt; i++) {
			result += "♥";
			for (int j = 0; j < arrPlane[0].length; j++) {
				result += arrPlane[i][j];
				result += j == arrPlane[0].length - 1 ? "" : ", ";
			}
			result += "\n";
		}

		if (insertCnt == 0)
			result = "๋ชฉ๋ก ์—†์Œ";

		return result;
	}
	
	String list(int[] arIndex) {
		String result = "ํ•ญ๊ณต์‚ฌ, ํ•ญ๊ณต๊ธฐ๋ฒˆํ˜ธ, ์ตœ๋Œ€์Šน๊ฐ์ˆ˜(๋ช…), ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€\n";
		for (int i = 0; i < arIndex.length; i++) {
			result += "♥";
			for (int j = 0; j < arrPlane[0].length; j++) {
				result += arrPlane[arIndex[i]][j];
				result += j == arrPlane[0].length - 1 ? "" : ", ";
			}
			result += "\n";
		}

		if (arIndex.length == 0)
			result = "๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์—†์Œ";

		return result;
	}
	
}

 


 

โŠ™ AmsMain

package ams;

import javax.swing.ImageIcon;
import javax.swing.JOptionPane;

public class AmsMain {
	public static void main(String[] args) {
		String title = "ํ•ญ๊ณต๊ธฐ ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ";
		String[] menu = {"์ถ”๊ฐ€ํ•˜๊ธฐ", "๊ฒ€์ƒ‰ํ•˜๊ธฐ", "์ˆ˜์ •ํ•˜๊ธฐ", "์‚ญ์ œํ•˜๊ธฐ", "๋ชฉ๋ก๋ณด๊ธฐ"};
		String[] updateMenu = {"์ถœ๋ฐœ์ง€ ์ˆ˜์ •", "๋„์ฐฉ์ง€ ์ˆ˜์ •"};
		String[] updateMsg = {"์ถœ๋ฐœ์ง€", "๋„์ฐฉ์ง€"};
		AmsField af = new AmsField();
		ImageIcon icon = new ImageIcon("src/img/main.gif");
		int choice = 0;
		String[] arPlane = new String[5];
		String keyword = "";
		
		while(true) {
			choice = JOptionPane.showOptionDialog(null, "", title, JOptionPane.DEFAULT_OPTION,
					JOptionPane.PLAIN_MESSAGE, icon, menu, null);
			
			if(choice == -1) break;
			
			switch(choice) {
			//์ถ”๊ฐ€
			//ํ•ญ๊ณต์‚ฌ, ํ•ญ๊ณต๊ธฐ๋ฒˆํ˜ธ, ์ตœ๋Œ€์Šน๊ฐ์ˆ˜(๋ช…), ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€
			case 0:
				//5๊ฐœ์˜ ๊ฐ’์„ ", "๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ํ•œ๋ฒˆ์— ์ž…๋ ฅํ•˜๊ธฐ
				//split("๊ตฌ๋ถ„์ ")์€ ๋ฆฌํ„ดํƒ€์ž…์ด ๋ฌธ์ž์—ด ๋ฐฐ์—ด์ด๋‹ค.
				//๊ตฌ๋ถ„์ ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ตœ์†Œํ•œ ๊ฐ’์ด 2๊ฐœ ์ด์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด๋กœ ๋ฆฌํ„ดํ•œ๋‹ค.
				arPlane = ("" + JOptionPane.showInputDialog(null,
						"ํ•ญ๊ณต์‚ฌ, ํ•ญ๊ณต๊ธฐ๋ฒˆํ˜ธ, ์ตœ๋Œ€์Šน๊ฐ์ˆ˜(๋ช…), ์ถœ๋ฐœ์ง€, ๋„์ฐฉ์ง€", title, JOptionPane.PLAIN_MESSAGE,
						icon,	null, null)).split(", ");
				
				af.insert(arPlane);
				break;
			//๊ฒ€์ƒ‰
			case 1:
				break;
			//์ˆ˜์ •
			case 2:
				String newValue = "";
				
				choice =JOptionPane.showOptionDialog(null, "", title, JOptionPane.DEFAULT_OPTION,
						JOptionPane.PLAIN_MESSAGE, icon, updateMenu, null);
				
				if(choice == -1) break;
				
				keyword = "" + JOptionPane.showInputDialog(null,
						"์ˆ˜์ •ํ•˜์‹ค ํ•ญ๊ณต๊ธฐ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", title, JOptionPane.PLAIN_MESSAGE,
						icon,	null, null);
				
				if(af.select(1, keyword).equals("๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์—†์Œ")) {
					JOptionPane.showMessageDialog(null, "์ˆ˜์ • ์‹คํŒจ");
				}else {
					newValue = "" + JOptionPane.showInputDialog(null,
							"์ƒˆ๋กœ์šด " + updateMsg[choice] + "๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”", title, JOptionPane.PLAIN_MESSAGE,
							icon,	null, null);
					af.update(choice, newValue);
					JOptionPane.showMessageDialog(null, "์ˆ˜์ • ์„ฑ๊ณต");
				}
				
				break;
			//์‚ญ์ œ
			case 3:
				break;
			//๋ชฉ๋ก
			case 4:
				JOptionPane.showMessageDialog(null, af.list());
				break;
			}
		}
	}
}

 

์ƒ์„ฑ์ž์˜ ๋ชฉ์ 

1. ํž™ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ํด๋ž˜์Šค ํ•„๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” ๋ชฉ์ 

2. ์ดˆ๊ธฐํ™” ์—ญํ• 

 

๋ฉ”์„œ๋“œ์˜ ๋ชจ์–‘ :  name ( )

์ƒ์„ฑ์ž์˜ ๋ชจ์–‘ : class name ( )

 

์œ„์ฒ˜๋Ÿผ ์ƒ์„ฑ์ž๋„ ๋ฉ”์„œ๋“œ์™€ ์ƒ๊น€์ƒˆ๊ฐ€ ๋น„์Šทํ•˜๋„ค?

์ƒ์„ฑ์ž๋„ ๋ฉ”์„œ๋“œ๋‹ค

๊ทธ๋ ‡๋‹ค๋ฉด ์™œ ์ƒ์„ฑ์ž๋Š” ๋ฉ”์„œ๋“œ๋ผ๊ณ  ํ•˜์ง€ ์•Š์„๊นŒ?

 


 

์ƒ์„ฑ์ž๋Š” ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ๊ณผ ๋˜‘๊ฐ™์ง€๋งŒ return์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ๋ผ๊ณ  ๋ถ€๋ฅด์ง€ ์•Š๋Š”๋‹ค.

 


ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ์ˆœ๊ฐ„ ๊ตณ์ด ์ƒ์„ฑ์ž๋ฅผ ์ผ๋ถ€๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์ง€ ์•Š์•„๋„ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ผ๋Š” ๊ฒƒ์ด ์ƒ๊ธฐ๋Š”๋ฐ, ๋ณด์ด์ง„ ์•Š์ง€๋งŒ ๋‚ด๋ถ€์ ์œผ๋กœ ์˜ฌ๋ผ๊ฐ„ ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์„ ์–ธ์—†์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๊ธฐ๋ณธ ์ƒ์„ฑ์ž

1. ํด๋ž˜์Šค ์„ ์–ธ ์‹œ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ๋‹ค.

2. ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์„ ์–ธํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

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

 


< ๋ณ€์ˆ˜ >

๋งค๊ฐœ๋ณ€์ˆ˜ : { } ์•ˆ, ๋‹ซ๋Š” ์ค‘๊ด„ํ˜ธ๋ฅผ ๋งŒ๋‚  ๋•Œ ๋๋‚œ๋‹ค

๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ์ง€์—ญ๋ณ€์ˆ˜๋Š” stack์— ์ €์žฅ์ด๋œ๋‹ค.

์ „์—ญ ๋ณ€์ˆ˜๋Š” data ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค.

 


์˜ค๋ฒ„ ๋กœ๋”ฉ Overloading

๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜๋‚˜ ํƒ€์ž…์ด ๋‹ค๋ฅผ ๋•Œ, ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋‹ค.

         →  ๋ฉ”์„œ๋“œ์˜ ์ด๋ฆ„์€ ๊ฐ™์œผ๋‚˜ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐฏ์ˆ˜ ํ˜น์€ ํƒ€์ž…์ด ๋‹ค๋ฅด๋ฉด ์„ ์–ธ ๊ฐ€๋Šฅ

load : ๋‚˜๊ฐ”๋‹ค๊ฐ€ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ

over : ๋„˜์น˜๊ฒŒ

overload : ๋„˜์น˜๊ฒŒ ๋ถˆ๋Ÿฌ์˜จ๋‹ค (๊ฐ™์€ ์ด๋ฆ„์ด๋ผ) 

 

ใ€Š ์˜ค๋ฒ„ ๋กœ๋”ฉ์€ ๋ฉ”์„œ๋“œ์˜ ์ฒซ ๋ฒˆ์งธ ๊ธฐ๋Šฅ โ‰ซ

 


Car์™€ Road๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž

 

package studyalone;

public class Car {
	//Car ํด๋ž˜์Šค๋Š” ๋ธŒ๋žœ๋“œ, ์ƒ‰, ๊ฐ€๊ฒฉ, ๋น„๋ฒˆ์„ ๊ฐ–๊ณ  ์žˆ๋‹ค
	String brand;
	String color;
	int price;
	String pw="1122";
	
	//์ƒ์„ฑ์ž , ๋น„๋ฒˆ ์ƒˆ๋กœ
	public Car(String b, String c ,int p,String pw) {
		this.brand=b; this.color=c; this.price=p;this.pw=pw;
	}
	
	//์ƒ์„ฑ์ž , ์ดˆ๊ธฐ ๋น„๋ฒˆ ๊ทธ๋Œ€๋กœ
	public Car(String b, String c ,int p) {
		this.brand=b; this.color=c; this.price=p;
	}
	
	//์™ธ๋ถ€์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ ์ž…๋ ฅ๋ฐ›๊ธฐ
	//์ž…๋ ฅ๋ฐ›์€ ๋น„๋ฐ€๋ฒˆํ˜ธ์™€ ์ž๋™์ฐจ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋น„๊ตํ•˜๊ธฐ
	//๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜ํ•œ๋‹ค๋ฉด ์‹œ๋™ ์ผœ์ฃผ๊ธฐ
	//์ด๋ฏธ ์‹œ๋™์ด ์ผœ์ ธ์žˆ๋‹ค๋ฉด "์‹œ๋™์ด ์ด๋ฏธ ์ผœ์ ธ์žˆ์Šต๋‹ˆ๋‹ค"์ถœ๋ ฅ
	//์ด๋ฏธ ์‹œ๋™์ด ๊บผ์ ธ์žˆ๋‹ค๋ฉด "์‹œ๋™์ด ์ด๋ฏธ ๊บผ์ ธ์žˆ์Šต๋‹ˆ๋‹ค"์ถœ๋ ฅ
	//๋น„๋ฒˆ 3ํšŒ ์˜ค๋ฅ˜ ์‹œ ๊ฒฝ์ฐฐ ์ถœ๋™
	
	boolean isOn=false;
	int policeCnt;
	
	//์‹œ๋™ํ‚ค๋Š” ๋ฉ”์„œ๋“œ
	boolean engineStart(String pw ){
		boolean policeCheck=false;
		
		if(this.pw.equals(pw)) {
			if(!isOn) {
				System.out.println(this.brand+" ์‹œ๋™ ํ‚ด");
				isOn=true;
				policeCnt=0;
			}else {
				System.out.println(this.brand+" ์‹œ๋™์ด ์ด๋ฏธ ์ผœ์ ธ์žˆ์Œ");
			}
		}else {
			policeCnt++;
			if(policeCnt==3) {
				System.out.println("๊ฒฝ์ฐฐ ์ถœ๋™");
				policeCheck=true;
			}else {
				System.out.println("๋น„๋ฐ€๋ฒˆํ˜ธ ์˜ค๋ฅ˜");
			}
		}
		return policeCheck;
	}
	
	
	//์‹œ๋™๋„๋Š” ๋ฉ”์„œ๋“œ
	void engineStop(){
		if(!isOn) {
			System.out.println(this.brand+" ์‹œ๋™ ๋”");
		}else {
			System.out.println("์‹œ๋™์ด ์ด๋ฏธ ๊บผ์ ธ์žˆ์Šต๋‹ˆ๋‹ค.");
		}
	}
	
	
	//์ž๋™์ฐจ ์ •๋ณด ์ถœ๋ ฅ ๋ฉ”์„œ๋“œ
	void show() {
		System.out.println(brand+", "+color+", "+price+"๋งŒ์›");
		//์ง€์—ญ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ์ด๋ฆ„์ด ์•„๋‹ˆ๋ผ์„œ ๊ตณ์ด this.brand๋“ฑ๋“ฑ์œผ๋กœ ํ•˜์ง€ ์•Š์€ ๊ฒƒ
	}

	
}
package studyalone;

import java.util.Scanner;

public class Road {
	public static void main(String[] args) {
		Car myCar=new Car("๋ฒคํ‹€๋ฆฌ","blue",1500,"981122");
		
		String menu= "1. ์‹œ๋™ ์ผœ๊ธฐ\n2. ์‹œ๋™ ๋„๊ธฐ";
		Scanner sc =new Scanner(System.in);
		int choice=0;
		String tryPw="";
		
		myCar.show();
		
		//๋ฌดํ•œ๋ฐ˜๋ณต 
		//์‹œ๋™์„ ํ•œ๋ฒˆ์ด๋ผ๋„ ํ‚จ ํ›„ ์‹œ๋™์„ ๋„๋ฉด  break
		while(true) {
			System.out.println(menu);
			
			choice=sc.nextInt();
			
			if(choice==1) {
				System.out.println("๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”");
				tryPw=sc.next();
				
				if(myCar.engineStart(tryPw))
					break;
			}else if(choice==2) {
				//์‹œ๋™์„ ํ•œ๋ฒˆ์ด๋ผ๋„ ์ผœ๊ธฐ ์ „์—” isOn์ด false๋‹ˆ๊นŒ break์•ˆํ•จ
				//ํ•œ๋ฒˆ์ด๋ผ๋„ ์‹œ๋™์„ ๊ฒผ๋‹ค๋ฉด isOn์€ true๋‹ˆ๊นŒ breakํ•จ
				if(myCar.isOn) {
					myCar.engineStop();
				}else {
					myCar.engineStop();
				}
			}
		}
		
	}
}

 

alt shift n ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ
ctrl n ์ƒˆ๋กœ์šด ํด๋ž˜์Šค ๋งŒ๋“ค๊ธฐ ( ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ src ์„ ํƒ ํ›„ )
alt ใ… ํ”„๋กœ์ ํŠธ, ํด๋ž˜์Šค, ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ํ•ด๋‹น ์ด๋‹ˆ์…œ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Œ
ctrl shift + ๊ธ€์”จ ํ‚ค์šฐ๊ธฐ
ctrl shift - ๊ธ€์”จ ์ค„์ด๊ธฐ
ctrl m ์ „์ฒดํ™”๋ฉด
insert ์“ฐ๋Š”๊ฒƒ์ด ๊ฒน์ณ์ง€๋ฉด์„œ ์ง€์›Œ์ง€๊ฒŒํ•˜๋Š” ์ปค์„œ
alt shift s o ์ƒ์„ฑ์ž ๋งŒ๋“ค๊ธฐ
alt shift r ์ „์ฒด์ ์œผ๋กœ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ ( class ์ด๋ฆ„๋„ )
ctrl space๋ฐ” ์ž๋™์™„์„ฑ
ctrl z ๋’ค๋กœ๊ฐ€๊ธฐ
ctrl s ์ €์žฅ
ctrl x ์ €์žฅํ•˜๊ณ  ํ•ด๋‹น ์˜์—ญ ์‚ญ์ œ
ctrl t ๊ฐ€์กฑ ๊ด€๊ณ„๋„
ctrl shift o ์ž๋™ import
ctrl shift f ์ค„ ๋งž์ถค
alt ์œ„ ์•„๋ž˜ ํ•ด๋‹น์˜์—ญ ์œ„ ๋˜๋Š” ์•„๋ž˜๋กœ ์ด๋™
ใ…Šํ•œ์ž ์ œ๊ณฑ๊ทผ์ด๋‚˜ 1/2๊ฐ™์€ ๊ธฐํ˜ธ ์‚ฌ์šฉ

 


 

์ „์—ญ ๋ณ€์ˆ˜๋Š” data ์˜์—ญ์— ์ €์žฅ๋œ๋‹ค.

์ „์—ญ๋ณ€์ˆ˜๋Š” ์ž๋™ ์ดˆ๊ธฐํ™”๊ฐ€ ๋œ๋‹ค.

 


%f ๋ฅผ ์“ฐ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์ˆ˜์  6์ž๋ฆฌ๊ฐ€ ๋‚˜์˜จ๋‹ค.

float๋Š” 4๋ฐ”์ดํŠธ์ด์ž 32๋น„ํŠธ๋‹ค.

 

3.7์ด๋ž€ ์ˆซ์ž๋ฅผ float๋กœ ์ €์žฅํ•œ๋‹ค๊ณ  ํ•˜๋ฉด

1bit 8bit 23bit
์–‘์ˆ˜๋ฉด 0 / ์Œ์ˆ˜๋ฉด 1 exp ์ง„์ˆ˜ ์˜์—ญ f ๊ฐ€์ˆ˜ ์˜์—ญ
3.7์€ ์–‘์ˆ˜๋‹ˆ๊นŒ 0 3.7์˜ ์ •์ˆ˜๋Š” 3์ด๋‹ˆ๊นŒ 0011

3.7์˜ 0.7์ด ๊ฐ€์ˆ˜์˜์—ญ์ด๋‹ˆ๊นŒ ์ด์ง„์ˆ˜๋กœ ๊ตํ™˜ // ๊ฐ€์ˆ˜์˜์—ญ * 2 ํ•œ ๊ฐ’์ด 1๋ณด๋‹ค ํฌ๋ฉด 1์„ ๋„ฃ๊ณ  (๊ณ„์‚ฐ๊ฐ’-1)*2๋ฅผ ํ•ด์ค€๋‹ค. 1.0์ด ๋˜๋Š” ์ˆœ๊ฐ„๊นŒ์ง€ ๋ฌดํ•œ ๋ฐ˜๋ณต์„ ํ•˜๊ฑฐ๋‚˜ 24๋น„ํŠธ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ ๋œ๋‹ค.

0.7*2=1.4 ---> 1์จ์ง ---> 1.4-1=0.4

0.4*2=0.8 ---> 0์จ์ง

0.8*2=1.6 ---> 1์จ์ง ---> 1.6-1=0.6

           . . .

0 0000 0011 10110...

 

์ด๋Ÿฐ ์‹์œผ๋กœ ๋น„ํŠธ๊ฐ€ ๋ฐ˜์˜ฌ๋ฆผ๋˜๋Š” ์ปดํ“จํ„ฐ ์—ฐ์‚ฐ์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค.

 

๊ทธ๋ž˜์„œ 7์ž๋ฆฌ ๊นŒ์ง„ ์ •ํ™•ํ•˜์ง€ ์•Š๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ 6์ž๋ฆฌ๊นŒ์ง€ ์ •ํ™•ํ•˜๋‹ค.

๋”ฐ๋ผ์„œ %f ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ 6์ž๋ฆฌ๊นŒ์ง€ ์ถœ๋ ฅ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

 


eclipse๋ฅผ ์ฒ˜์Œ ๊น”๋ฉด perspective๋ฅผ java๋กœ ์„ ํƒ์ด ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

java๋กœ ์„ ํƒํ•ด๋†“์œผ๋ฉด package explorer์ด ์ผœ์ง€๋Š” ๊ฒƒ์ด๋‹ค.

+ Recent posts