Welcome! ๐Ÿ™‹โ€โ™‚๏ธ View more

Personal/Toy Project

์ฒซ ๋ฒˆ์งธ ํ† ์ด ํ”„๋กœ์ ํŠธ ํšŒ๊ณ  (๋ฐฉํƒˆ์ถœ ์ทจ์†Œ ์ž๋ฆฌ ์ฐพ๊ธฐ) (feat. AWS EC2, ์›นํฌ๋กค๋ง, node.js)

DeepFlame 2022. 3. 14. 19:00

๋‚˜์˜ ์ฒซ๋ฒˆ์งธ ํ† ์ด ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ๋‹ค.

๊ทธ์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ ์ฃผ์ œ ์„ ์ •๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ณ ๋ฏผํ–ˆ๋˜ ๋ถ€๋ถ„์„ ํšŒ๊ณ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

๐Ÿ™‹‍โ™‚๏ธ ๋ชฉ์ฐจ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

  1. ์ฃผ์ œ ์ •ํ•˜๊ธฐ 
  2. ์›น ์ •๋ณด ํฌ๋กค๋ง
  3. ์›น ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ
  4. AWS EC2๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ตฌ์ถ•
  5. ๋งˆ๋ฌด๋ฆฌ

 

1. ์ฃผ์ œ ์ •ํ•˜๊ธฐ


ํ† ์ด ํ”„๋กœ์ ํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€... ๐Ÿค”

ํ† ์ด ํ”„๋กœ์ ํŠธ๋ž€ ๊ฑฐ์ฐฝํ•œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ์žฅ๋‚œ๊ฐ(ํ† ์ด)๋ฅผ ๊ฐ€์ง€๊ณ  ๋†€ ๋“ฏ ํฅ๋ฏธ ์œ„์ฃผ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ƒ๊ฐํ•˜๋ฉด๋œ๋‹ค. 

๋‚˜์˜ ๊ฒฝ์šฐ, ํ‰์†Œ์— ๋ถˆํŽธํ–ˆ๋˜ ์  ๋˜๋Š” ์ด๋Ÿฐ ์„œ๋น„์Šค๊ฐ€ ์žˆ์œผ๋ฉด ์ฐธ ์ข‹์„ํ…๋ฐ... ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ์ ‘๊ทผํ–ˆ๋‹ค. 

 

๋ฐฉํƒˆ์ถœ ์ทจ์†Œ ์ž๋ฆฌ ์ฐพ๊ธฐ!

๊ทธ๋ž˜์„œ ์ƒ๊ฐํ•œ ๊ฒƒ์ด ๋ฐฉํƒˆ์ถœ ์ทจ์†Œ ์ž๋ฆฌ ์ฐพ๊ธฐ์ด๋‹ค. 

ํ™๋Œ€ ๋””์ฝ”๋”์˜ Tempo Rubato์˜ ๊ฒฝ์šฐ, 1๋…„๊ฐ„ ์˜ˆ์•ฝ์ด ๊ฝ‰ ์ฐจ์žˆ๋‹ค. 
1๋…„ ๋’ค ์—ด๋ฆฌ๋Š” ์ž๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ทจ์†Œ ์ž๋ฆฌ๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ด ์ข€ ๋” ํ•ฉ๋ฆฌ์ ์ผ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๊ณ , ์ด๊ฒƒ์„ ์‚ฌ๋žŒ์ด ์ฃผ๊ธฐ์ ์œผ๋กœ ํ•  ์ˆ˜๋Š” ์—†์œผ๋‹ˆ ์„œ๋ฒ„์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ™•์ธํ•˜์—ฌ ์•Œ๋ ค์ฃผ๋Š” ์„œ๋น„์Šค๊ฐ€ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

 

 

2. ์›น ์ •๋ณด ํฌ๋กค๋ง


1. selenium์œผ๋กœ ๊ตฌํ˜„

Tempo Rubato์˜ ์›น ํ™”๋ฉด์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

๋”ฐ๋ผ์„œ ํŠน์ • ๋‚ ์งœ์— ์˜ˆ์•ฝ ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผํ•œ๋‹ค. 

  1. ๋‹ฌ๋ ฅ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์›ํ•˜๋Š” ๋‚ ์งœ๋ฅผ ์ฐพ์•„ ํด๋ฆญํ•œ๋‹ค.
  2. ์‹œ๊ฐ„ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€๋Šฅํ•œ ์‹œ๊ฐ„์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

Tempo Rubato ์˜ˆ์•ฝ์ฐฝ

์œ„ ๊ณผ์ •์€ ์›น์ปจํŠธ๋กค์ด ํ•„์š”ํ–ˆ๊ณ , ํ•ด๋‹น ๊ณผ์ •์„ selenium์œผ๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค.

๊ตฌํ˜„ ๋‚ด์šฉ์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€์— ์ž์„ธํžˆ ์„ค๋ช…๋˜์–ด์žˆ๋‹ค.

https://deep-flame.tistory.com/6

 

AWS EC2์™€ Python Selenium ์„ ํ™œ์šฉํ•œ ํ† ์ด ํ”„๋กœ์ ํŠธ ๐Ÿ’ป (feat. ๋ฐฉํƒˆ์ถœ ์ž๋ฆฌ ์ฐพ๊ธฐ!)

ํ•„์ž๋Š” ์ตœ๊ทผ์— AWS Certified Cloud Practitioner ์ž๊ฒฉ์ฆ์„ ์ทจ๋“ํ–ˆ๋‹ค. Data Engineer๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ทธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ์–ธ์–ด๋Š” ์•Œ์•„์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•ฉ๊ฒฉ์˜ ๊ธฐ์จ๋„ ์ž ์‹œ, ์ž๊ฒฉ์ฆ๋„ ์ทจ๋“

deep-flame.tistory.com

 

 

2. requests๋กœ ๊ตฌํ˜„

๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์›น์—์„œ ์˜ˆ์•ฝ ์—ฌ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” url์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด selenium์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋น ๋ฅด๊ฒŒ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ํ™•์ธํ–ˆ๋‹ค. 

selenium vs requests ์‹œ๊ฐ„ ๋น„๊ต ๋‚ด์šฉ์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
๋‚ด์šฉ์„ ์š”์•ฝํ•˜์ž๋ฉด "selenium์€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋„์šฐ๋Š” ์‹œ๊ฐ„๋„ ์˜ค๋ž˜๋ฟ๋”๋Ÿฌ, ์›น ์ปจํŠธ๋กค์„ ์ฐพ๋Š” ์‹œ๊ฐ„์ด 4๋ฐฐ ๋” ๊ฑธ๋ฆฐ๋‹ค."

https://deep-flame.tistory.com/27

 

[Python] ํฌ๋กค๋ง ๋ฐฉ๋ฒ•๊ณผ ๋น„๊ต (requests, BeautifulSoup, selenium)

Python์—์„œ ์›น ํฌ๋กค๋ง์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‘ ๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. requests ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์›น ์ •๋ณด๋ฅผ ๋ฐ›๊ณ , BeautifulSoup๋กœ ํŒŒ์‹ฑํ•œ๋‹ค. selenium ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์—ด์–ด ์›น ์ •๋ณด๋ฅผ ๋ฐ›๋Š”๋‹ค. ๋ณดํ†ต ์›น ์ปจํŠธ๋กค์ด ํ•„์š”

deep-flame.tistory.com

 

๋‹คํ–‰ํžˆ ์˜ˆ์•ฝ ํŽ˜์ด์ง€์—์„œ ์˜ˆ์•ฝ ๊ฐ€๋Šฅ ์—ฌ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” url์„ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์—ˆ๊ณ , ์›น ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ทธ ๊ฒฐ๊ณผ ๋‘ ๋‹ฌ์˜ ์˜ˆ์•ฝ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์‹œ๊ฐ„์„ 142์ดˆ์—์„œ 12์ดˆ๋กœ ์ค„์ด๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํ˜„์žฌ๋Š” 1๋…„๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

Tempo Rubato ์˜ˆ์•ฝ์ฐฝ์˜ ๋„คํŠธ์›Œํฌ ์ •๋ณด

 

๊ทธ ํ›„ ์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๋Š” ๊ณผ์ •์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.

https://yeolco.tistory.com/93

 

ํŒŒ์ด์ฌ์œผ๋กœ ์ด๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ(SMTP)

์•ˆ๋…•ํ•˜์„ธ์š” ์—ด์ฝ”์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ์—๋Š” ํŒŒ์ด์ฌ์„ ํ™œ์šฉํ•˜์—ฌ ์ง€๋ฉ”์ผ(Gmail)๋กœ ๋ฉ”์ผ ๋ณด๋‚ด๊ธฐ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ๋ฉ”์ผ์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋ณ„๋„๋กœ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ, 'SMT

yeolco.tistory.com

 

 

 

3. ์›น ์„œ๋ฒ„ ๋งŒ๋“ค๊ธฐ


๋‚˜๋Š” ์ƒ๊ฐํ–ˆ๋‹ค. ๋‚˜์—๊ฒŒ ํ•„์š”ํ•˜๋ฉด.... ๋ˆ„๊ตฐ๊ฐ€๋Š” ํ•„์š”ํ•˜์ง€ ์•Š์„๊นŒ...?

์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” 2๊ฐ€์ง€ ๊ณ ๋ฏผ์ด ํ•„์š”ํ•˜๋‹ค.

  1. ์œ ์ € ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐ›์„ ๊ฒƒ์ธ๊ฐ€?
  2. ์œ ์ € ์ •๋ณด๋ฅผ ์–ด๋””์—/์–ด๋–ป๊ฒŒ ๋ณด๊ด€ํ•  ๊ฒƒ์ธ๊ฐ€?

 

1. ์œ ์ € ์ •๋ณด๋ฅผ ์–ด๋–ป๊ฒŒ ๋ฐ›์„ ๊ฒƒ์ธ๊ฐ€? ๐Ÿค” 

์œ ์ € ์ •๋ณด๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ๋Š” DB์™€ ํ†ต์‹ ํ•˜๋Š” ๊ฐ„๋‹จํ•œ ๋กœ์ง์„ ๊ตฌ๋™ํ•˜๋Š” ์›น ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. 
Spring, Django, node.js๋ฅผ ๋น„๊ตํ•ด๋ณด์•˜๊ณ , node.js + Express๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ์›น ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ–ˆ๋‹ค.

node.js๋Š” ์ฑ„ํƒํ•œ ์ด์œ ๋Š” ์„œ๋ฒ„์— ๋ฌด๋ฆฌ๊ฐ€ ์ ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•„์ž๋Š” ์„œ๋ฒ„๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด์„œ AWS ํ”„๋ฆฌํ‹ฐ์–ด EC2๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์— ๋ฌด๋ฆฌ๊ฐ€ ๊ฐ€์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ค‘์š”ํ–ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ธฐ์— ์ ์ ˆํ•˜๋‹ค๋Š” ์ด์œ ๋„ ์žˆ์—ˆ๋‹ค. 

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

์ด ์™ธ์—๋„ node.js๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์žฅ์ ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
4. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์•„์„œ ์›ํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ž…๋ง›์— ๋งž๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค.
5. PM2๋ฅผ ํ†ตํ•ด ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์†์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
6. MongoDB์™€ ๊ฐ™์€ JSON๊ธฐ๋ฐ˜ DB๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ Java์—์„œ๋Š” ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜์ด ์ƒ๊ธฐ์ง€๋งŒ, node.js์—์„œ๋Š” ๋ณ„๋„์˜ ๋ณ€ํ™˜์ด ์—†์–ด ์œ ๋ฆฌํ•˜๋‹ค.

 

node.js๋ฅผ ํ†ตํ•ด ๊ตฌ์ถ•ํ•œ ์›น์„œ๋ฒ„

 

2. ์›น์„œ๋ฒ„์—์„œ ๋ฐ›์€ ์œ ์ € ์ •๋ณด๋ฅผ ์–ด๋””์—/์–ด๋–ป๊ฒŒ ๋ณด๊ด€ํ•  ๊ฒƒ์ธ๊ฐ€? ๐Ÿค” 

์œ ์ € ์ •๋ณด๋ฅผ DB์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ์–ด์ฐŒ๋ณด๋ฉด ๋‹น์—ฐํ•˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด SQL๊ณผ NoSQL ์ค‘ ๋ฌด์—‡์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ? 

ํ•„์ž์˜ ๊ฒฝ์šฐ๋Š” NoSQL์„ ์„ ํƒํ–ˆ๋‹ค. ๊ทธ ์ค‘ MongoDB๋ฅผ ์„ ํƒํ–ˆ๋‹ค.
๊ทธ ์ด์œ ๋Š” ๊ฐ„๋‹จํ•˜๋ฉฐ ์Šคํ‚ค๋งˆ๊ฐ€ ๋А์Šจํ•˜๊ณ , ์ด๋ฉ”์ผ ๋ฐœ์†ก ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. 

์ด๋ฉ”์ผ ๋ฐœ์†ก ์ •๋ณด: {"์ทจ์†Œ ์ž๋ฆฌ datetime" : "์ „์†ก ์‹œ๊ฐ„"} ํ˜•ํƒœ์˜ ์ •๋ณด๋ฅผ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๊ฐ€์ง„ ์ •๋ณด์ด๋‹ค. ์ด ์ •๋ณด๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ๋Š” ๊ฐ™์€ ์ž๋ฆฌ์— ๋Œ€ํ•ด์„œ ์ค‘๋ณตํ•ด์„œ ๋ณด๋‚ด์ง€ ์•Š๊ธฐ ์œ„ํ•จ์ด์—ˆ๋‹ค.

 

MongoDB์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ์ •๋ณด

 

 

4. AWS EC2๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์„œ๋น„์Šค ๊ตฌ์ถ•


AWS EC2 ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ๋‹ค.

  1. git์„ ํ†ตํ•ด์„œ ์™„์„ฑํ•œ ๊นƒํ—ˆ๋ธŒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐ€์ ธ์™”๋‹ค. 
  2. ์›น์„œ๋ฒ„๋Š” PM2๋ฅผ ํ†ตํ•ด์„œ ๋ฐฐํฌํ–ˆ๋‹ค. (์ด ๊ณผ์ •์—์„œ EC2 ์ธ์Šคํ„ด์Šค์˜ ํฌํŠธ๋ฅผ ์—ด์–ด์ฃผ๋Š” ๊ณผ์ •์ด ๊ผญ ํ•„์š”ํ•˜๋‹ค.)
  3. 24์‹œ๊ฐ„ ์ž‘์—… ์‹คํ–‰์„ ์œ„ํ•ด nohup์„ ํ†ตํ•ด์„œ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์„ ์‹คํ–‰ํ–ˆ๋‹ค. 
    ์ด๋•Œ, ์ฃผ์˜ํ•  ์ ์€ nohup์„ ํ†ตํ•ด์„œ ์ €์žฅ๋˜๋Š” ๋กœ๊ทธ ํŒŒ์ผ์—๋Š” ํŒŒ์ด์ฌ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ print()๋ฅผ ํ†ตํ•œ ์ถœ๋ ฅ์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ logging ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์—… ์ง„ํ–‰์ƒํ™ฉ์„ ํ™•์ธํ–ˆ๋‹ค.

๋กœ๊ทธ ํŒŒ์ผ์„ ํ†ตํ•ด์„œ ์ž‘์—… ์ง„ํ–‰ ์ƒํ™ฉ์„ ๊ณ„์†ํ•ด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

nohup๊ณผ logging์€ ์•„๋ž˜ ๊ฒŒ์‹œ๊ธ€์— ์ž์„ธํ•œ ์„ค๋ช…์ด ๋˜์–ด์žˆ๋‹ค.

https://joonyon.tistory.com/98

 

์‰ฝ๊ฒŒ ์„ค๋ช…ํ•œ nohup ๊ณผ &(๋ฐฑ๊ทธ๋ผ์šด๋“œ) ๋ช…๋ น์–ด ์‚ฌ์šฉ๋ฒ•

์•ˆ๋…•ํ•˜์„ธ์š”. ๋ฆฐ์•„์ €์”จ ์ž…๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ณด๋ฉด ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์„ธ์…˜๊ณผ์˜ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ ธ๋„ ๋Œ๋ ค์•ผํ•  ์ผ์ด ๋งŽ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿด๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๊ฐ€ ๋ฐ”๋กœ nohup ๊ณผ &

joonyon.tistory.com

https://deep-flame.tistory.com/32

 

[Python] logging ์‚ฌ์šฉ๋ฒ•๊ณผ ํด๋ž˜์Šคํ™”

Python์—๋Š” print๋ผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค. ๋ณดํ†ต์€ ์ด ๊ธฐ๋Šฅ์„ ํ†ตํ•ด์„œ output์„ ํ™•์ธํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ print๋กœ๋Š” output์„ ํ™•์ธํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ํ•„์ž๋Š” airflow์˜ ์—๋Ÿฌ ๋กœ๊ทธ๊ฐ€ print๋กœ๋Š” ํ™•์ธ๋˜์ง€ ์•Š์•„ logging ๋ชจ๋“ˆ

deep-flame.tistory.com

 

 

5. ๋งˆ๋ฌด๋ฆฌ


์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—์„œ ๋А๋‚€์ ์€... ๐Ÿ‘€

  1. ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ, ๋ฌด์ž‘์ • ๋ถ€๋”ชํ˜€๋ณด๋Š” ๊ฒƒ๋„ ํ•„์š”ํ•˜๋‹ค. 
  2. ๋ฌธ์ œ์ ์„ ์ •์˜ํ–ˆ์œผ๋ฉด ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ์ˆ ๋“ค์„ ์ฐพ์•„๋ณด๊ณ , ๋น„๊ตํ•ด๋ณด์ž.
    (์ฒ˜์Œ์— selenium์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ๋Š” ์‹œ๊ฐ„๋„ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๊ณ , ์—๋Ÿฌ๋„ ๋งŽ์ด ๋‚ฌ๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ ์ข€ ๋” ์ฐพ์•„๋ดค๋”๋ผ๋ฉด ์ž‘์—…์ด ์ข€ ๋” ์‰ฌ์› ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋œ๋‹ค.)

 

์ฒซ๋ฒˆ์งธ ํ† ์ด ํ”„๋กœ์ ํŠธ์˜€๊ณ , ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์„ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์ฒ˜์Œ์ด๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์–ด๋ ค์›€์ด ๋งŽ์•˜๊ณ , ํž˜๋“ค์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํŠน์ง•/์žฅ๋‹จ์ ๋งŒ ๊ธ€๋กœ๋งŒ ์•Œ๊ณ  ์žˆ์—ˆ๋˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๊ธฐ์ˆ ๋“ค์„ ์ง์ ‘ ๋ชธ์œผ๋กœ ๋А๋‚€ ๊ฒฝํ—˜์€ ์ •๋ง ๊ฐ’์ง„ ๊ฒฝํ—˜์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค!

 

 

๐Ÿš€ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ์€ ์•„๋ž˜ ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

https://github.com/DeepFlame-JR/RoomEscape_Cancellation

 

GitHub - DeepFlame-JR/RoomEscape_Cancellation: ๋ฐฉํƒˆ์ถœ ๋นˆ์ž๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์•Œ๋ฆฝ๋‹ˆ๋‹ค.

๋ฐฉํƒˆ์ถœ ๋นˆ์ž๋ฆฌ๋ฅผ ์ฐพ์•„์„œ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. Contribute to DeepFlame-JR/RoomEscape_Cancellation development by creating an account on GitHub.

github.com