IT-Engineering131 ์ํผ๊ฐ๋ฐ์์ ์๊ฒฉ[3] - ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ? ํ์ด์ง์ ์ค์์ ๋ฌด์์ธ๊ฐ? ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ ๋ฌด์์ธ๊ฐ? ์๋์ฐ์ ๊ฐ์ ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ค ๋ณด๋ฉด ํํ๊ฒ ์ ํ๋ ๋จ์ด์ด๊ธฐ๋ ํ๊ณ , ์๋์ ๊ฐ์ด ์ค์ ์ฐฝ์์๋ ์ข ์ข ์ง๋์ณค๋ ๊ฒ ๊ฐ์ ๋จ์ด์ธ๋ฐ, ์ด๋ค ์๋ฏธ์ธ์ง ์ ๋ชจ๋ฅด๊ธฐ๋ ํ๋ ๊ทธ๋ฐ ๊ฐ๋ ์ด๋ค. ๊ฐ์๋ฉ๋ชจ๋ฆฌ๋, "ํ๋๋์คํฌ๋ SSD์ ๊ฐ์ ๋ณด์กฐ๊ธฐ์ต ์ฅ์น์ ์ฃผ๊ธฐ์ต์ฅ์น์ธ ๋จ(RAM)์ ๋ด์ฉ ์ผ๋ถ๋ฅผ ์ ๋ฌํด ์ฐ๊ณ ์ฝ๋ ๊ฐ์์ ๋ฉ๋ชจ๋ฆฌ ํ์" ์ด๋ค. ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ผ๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์กฑํ ๋ ํจ๊ณผ์ ์ผ๋ก ๋์ฒํ ์ ์๋ค. ์์ปจ๋, ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ ๋ณด์กฐ๊ธฐ์ต ์ฅ์น๊ฐ ๋ฐ์์ฃผ๋ฉด์ ๋ค์ํ ์ค๋ฅ ์ํฉ์ ๋๋นํ ์ ์๋ค. ๋ค๋ง, ์ด๋ฐ ์ํฉ์ด ๋ฐ์ํ๋ฉด ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ฝ๋ ์๋๋ ์ฃผ๊ธฐ์ต์ฅ์น์ ๋นํ๋ฉด SSD๋ผ๊ณ ํ ์ง๋ผ๋ ๋งค์ฐ ๋๋ฆฌ๊ธฐ ๋๋ฌธ์, ๋น์ฐํ ์ปดํจํฐ๋ ์ฒด๊ฐํ๊ธฐ๋ก๋ ๋งค์ฐ ๋๋ ค์ง๊ฒ.. 2020. 11. 3. ํ์ด์ฌ(Python) ๋๋ ํ ๋ฆฌ ์์ฑ, ์์ผ๋ฉด ๋ง๋ค๊ธฐ ํ์ด์ฌ(Python)์ผ๋ก ๋๋ ํ ๋ฆฌ(directory)๋ฅผ ์์ฑํ ๋ ๋ฐ๋ก ๋ง๋ค ์๋ ์์ง๋ง, ์๋์ง ์ฒดํฌ๋ฅผ ํ๊ณ ๋ง๋ค๋ฉด ์์ ํ๊ฒ ๋ง๋ค ์๋ ์๊ณ , ํจ์๋ฅผ ํ๋ ์ ๋ง๋ค์ด ๋๋ฉด ๋๋ ํ ๋ฆฌ๊ฐ ์๋ ์๋ ํจ์ ํธ์ถ์ ํ๋ฉด ๋๋ค๋ ์ฅ์ ์ด ์๋ค. ๊ฑฐ๋์ ๋ฏธํ๊ณ ๋ฐ๋ก ์๋์ ํจ์๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฌ์ฉํ๋ฉด ๋๋ค. ์ง์ ๋ง๋ ํจ์์ด๋ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋ค. import os def createDirectory(directory): try: if not os.path.exists(directory): os.makedirs(directory) except OSError: print("Error: Failed to create the directory.") try, except ๊ตฌ๋ฌธ์ ํตํด ํ์ธต ๋ ์์ ํ๊ฒ ๋ง๋ค์ด์ง ํจ์์ด๋ ๋ง ๊ฐ์ ธ.. 2020. 10. 20. AWS Instance Scheduler ์ฌ์ฉ๋ฒ AWS EC2 ๋น์ฉ ์ ๊ฐ ๋ฐฉ๋ฒ(ํ์ด๋จธ๋ก EC2 ์ธ์คํด์ค๋ฅผ ๊ป๋ค ์ผฐ๋ค ํด๋ณด์) ์ ๋ชฉ์ด ๊ธธ์๋ค. ๊ทธ๋งํผ ์ด๋ฒ ํฌ์คํ ์ ์ฌ๋ฌ ์ฝ์ง ๋์ ์์ฃผ ์ข์ ์ ๋ณด ๊ธ์ด ๋ ๊ฒ์ด๋ผ ํ์ ํ๊ณ ๊ธ์ ์ ๋๋ค. ์ฌ๋ฌ ๊ธ๋ค์ ์ฐพ์๋ณด์์ง๋ง, ๋งค๋ด์ผ์กฐ์ฐจ๋ ์ด๋ฒ ํฌ์คํ ๋ณด๋ค ์ฝ์ง๋ ์์ ๊ฒ์ด๋ผ ์๋ถํ๋ค. ๋งค๋ด์ผ ๋ฒ์ญ๋ ๊ทธ๋ค์ง ๊น๋ํ์ง ์๊ณ , ์ด๋ฏธ AWS ์๋น์ค๋ฅผ ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์๋ค์๊ฒ ์ ํฉํ๊ธฐ ๋๋ฌธ์ ์ดํดํ๊ธฐ ์ฝ์ง๊ฐ ์๋ค. ๊ฒ๋ค๊ฐ ์ ๋ฒ ์ฝ์ง์ ํ๋ค๊ฐ ์์๋ธ ์์ฃผ ์ฌ์ด ๋ฐฉ๋ฒ์ด๊ธฐ์ ๊ฐ์น๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ๋จผ์ , AWS EC2 ์ธ์คํด์ค ์์ฑ์ด๋ ๊ธฐ๋ณธ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์๋ค๊ณ ๊ฐ์ ํ๊ฒ ๋ค. EC2 ์ธ์คํด์ค ์์ฑ๊น์ง๋ ๋ง์ ๋ธ๋ก๊ทธ์์ ๋ค๋ฃจ๊ณ ์์ผ๋ ๊ตฌ๊ธ๋งํด์ ์ ์ผ ๋จผ์ ๋จ๋ ๊ธ์ ๋งํฌํ๋ค. [AWS] EC2 (1) - EC2 ์ธ์คํด์ค ์์ฑํ๊ธฐ 2020.02.06 ์์ 1. ์๋น์ค ์๊ฐ AWS EC2๋ ๊ฐ๋จํ๊ฒ ๊ฐ์์๋ฒ๋ผ.. 2020. 10. 13. Ruby Development Kit์ Rubygem SSL ์ธ์ฆ ๋ฌธ์ ๋จ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ๊ณตํฌ์ SSL ์ค๋ฅ๋ฅผ ๋ ๋ง์ดํ๋ค. ์ด์ ๋ ์ด ๋ฌธ์ ํด๊ฒฐ์ ๊ทผ๋ณธ์ ๊ณ ์น๊ณ ๋์ ์ ๋๋ก ํฌ์คํ ์ ํด์ผํ ๋ฏ์ถ๋ค. gem install *** ๊ณผ ๊ฐ์ ๊ตฌ๋ฌธ์ ์คํํ์ ๊ณตํฌ์ ์๋ฌ ๋ฌธ๊ตฌ๋ค์ด ๋ํ๋ฌ๋ค. ERROR: SSL verification error at depth 1: self signed certificate in certificate chain (19) ERROR: Root certificate is not trusted (/C=KR/O=Somansa/CN=Somansa Root CA) ์ฐธ๊ณ ๋ก ์๋ฌ๋ฉ์์ง์ Somansa๋ ๊ตญ๋ด์ ๋ณด์์ ์ฒด์ธ๋ฐ, ํ ํ์ฌ๊ฐ ์ด ์ ์ฒด๋ฅผ ํตํด ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ฌ์ฉํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. Self signed certificate in certificate chain ์ด ๋ฉ์.. 2020. 9. 24. ํ์ด์ฌ ๋ ์ง-์๊ฐ ์ฌ์ฉ๊ณผ ๊ณ์ฐ์ ์ ์ฉํ datetime ๋ชจ๋ ํ์ฉ ์์ ๋ชจ์ ํ์ด์ฌ์์ ๋ฆฌ์คํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ pandas์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ ์ง ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์ผ์ด ์ ๋ฒ ์๋ค. ๋ณธ ํฌ์คํ ์์๋ ํํ๊ฒ ์ฌ์ฉ๋๋ datetime ๋ชจ๋์ ์ฌ์ฉ ์์๋ค์ ๋ ธํธ๋ถ์์ ์์ ํ ๋ด์ญ์ ์ญ ๋ถ์ฌ์ ๋ณด์ฌ์ค์ผ๋ก์จ datetime์ ๋ค์ํ ํํ์ ํ์ฉ์ ๋๊ณ ์ ํ๋ค. datetime๋งค๋ด์ผ์ ํตํด ๋์ฑ ์์ธํ ํ์ธํ๊ณ ๋ค์ํ ๊ธฐ๋ฅ์ ํญ๋๊ฒ ์ฌ์ฉํ ์๋ ์์ง๋ง, ์ฒ์ ์ฌ์ฉํ๋ ์ฌ์ฉ์์ ์ ์ฅ์์๋ ์๋์์ ๋ณด์ธ ์์๋ค๋ง์ผ๋ก๋ ์ถฉ๋ถํ ๋ง์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ผ๋ฆฌ๋ผ ๋ณธ๋ค. datetime ๋ชจ๋ ์ฌ์ฉํ๊ธฐ¶ In [2]: import datetime as dt now()ํจ์๋ฅผ ํตํด ํ์ฌ ์๊ฐ ๋ถ๋ฌ์ค๊ธฐ¶ In [3]: current_time = dt.datetime.now() In [4.. 2020. 9. 22. Git Push๋ฅผ ๊ท์ฐฎ๊ฒ ๋ง๋๋ ์๋ฌ ํด๊ฒฐ: Enter passphrase for key '~/.ssh/id_rsa' ๋ฌธ์ ์ Could not open a connection to your authentication agent. ๋ฌธ์ ๋๋ค ํด๊ฒฐํ๊ธฐ ์ธ์ ๊ฐ๋ถํฐ https๋ก git repository๋ก๋ถํฐ ์์ค๋ฅผ ๋ฐ์ ๋ ์๊พธ ๊ณ์ ํ์ธ์ด ๋จ๋๊ฒ ๊ท์ฐฎ์๋ค. ๊ทธ๋์ ssh key๋ฑ๋ก์ ํ๊ณ ํ๋ฒ ๊ท์ฐฎ์์ ๊ฐ์ํ๊ณ ๊ณ์ ํธํ๊ฒ ํ๋ ค๊ณ ssh ์ค์ ์ ๊ฐํํ๋ค. git push์ ์๋ ๋ก๊ทธ์ธ ์ค์ - username, password๊ทธ๋ง ์ ๋ ฅํ์ github respository์ git push -u origin master ๋ฅผ ํ์ ๋ ์๋์ ๊ฐ์ด ์๊พธ ๋ก๊ทธ์ธ์ ์์ฒญํ๋ ๊ฒฝ์ฐ ํด๊ฒฐ ๋ฐฉ๋ฒ ์ ๋ฆฌ. repository์ฃผ์๋ฅผ https ๋ก ๋ฐ์์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ์ ํ๋กํ ์ฝ์ ssh ๋ก ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ด๋ค.. gentlesark.tistory.com ํจ๊ป๋ณด๋ฉด ์ข์ ๊ธ ๊ทธ๋ฐ๋ฐ ์ด์ฉ ์ผ์ธ์ง ์์ ํ๋ ์ปดํจํฐ ์ค ํ ๋์ ์ง์์ ์ผ๋ก ์๋์ ๋ฉ์์ง๋ฅผ ๋ฑ๋ ๊ฒ์ด ์๋๊ฐ? (์ฐธ๊ณ .. 2020. 9. 11. Windowsํ๊ฒฝ์์ Python mysql ์ ์ ๋ฌธ์ ํด๊ฒฐ (Alchemy, MySQLdb ์ฌ์ฉ์) ์ด๋ฒ ๊ฒฝ์ฐ๋ ์๋์ ์ฝ๋์ฒ๋ผ pandas์ DataFrame๊ฐ์ฒด๋ฅผ mysql db์ ์ฝ์ ํ๋ ๊ณผ์ ์์ ๋ฐ์ํ ์๋ฌ์๋ค. engine = create_engine('mysql+mysqlconnector://'+MYSQL_USER+':'+MYSQL_PASSWORD+'@'+MYSQL_HOST_IP+':'+MYSQL_PORT+'/'+MYSQL_DATABASE, echo=False) df = pd.read_csv("./test.csv") with engine.connect() as conn, conn.begin(): df.to_sql('Table1', conn, if_exists='replace') ์๋ฌ ๋ด์ฉ์ ๊ฐ๋ต์ ์ผ๋ก ์๋์ ๊ฐ๋ค. MySQLdb._exceptions.OperationalError: (2059.. 2020. 9. 3. Python ๋ฆฌ์คํธ(list) csv ํ์ผ๋ก ์ฝ๊ณ ์ฐ๊ธฐ(๋ถ๋ฌ์ค๊ธฐ, ์ ์ฅํ๊ธฐ) ๋ฅ๋ฌ๋ ๋ฑ AI๊ด๋ จ ์์ ์ ํ๋ค๋ณด๋ฉด csv๋ฅผ ๊ฐ์ ธ์์ ์ด๊ณ ์์ ์ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ ๋ฒ ๋ง๋ค. ๊ทธ๋ฐ๋ฐ, ๋ง์ ์ง์ ๋ง๋ ์ฝ๋์์csv๋ฅผ ๋ฝ์๋ด๊ณ ๊ทธ ํ์ผ์ ๋ถ๋ฌ๋ค์ด๋ ค๋ค ๋ณด๋ฉด ์ฝ๋ ์์ฑ์ด ํท๊ฐ๋ฆด ๋๊ฐ ์๋ฐ. ๊ทธ๋์ ํน์ ์์ ๋ฅผ ๋ง๋ค์ด csvํ์ผ์ ์ฝ๋ ๊ณผ์ ๊ณผ ์ฐ๋ ๊ณผ์ ์ ๊ฐ๊ฐ ๋ณด์ด๋๋ก ํ๊ฒ ๋ค. Python ๋ฆฌ์คํธ csv๋ก ์ ์ฅํ๊ธฐ ํ์ด์ฌ ๋ชจ๋์ธ csv ๋ชจ๋์ importํ๊ณ ๋ฐ์ดํฐ๋ ๋ ์ง ๋ฐ์ดํฐ, ์ ์ ๋ฐ์ดํฐ, ๋ถ๋์์์ ์๋ฃํ ๋ฐ์ดํฐ๊ฐ ์๋ค๊ณ ๊ฐ์ ํ๋ค. ์์ ๋ก ๊ทธ๋ฆฐ๋ค๋ฉด ์ด ๋ฐฉํฅ์ผ๋ก ๊ทธ๋ฆด ๊ฒ ๊ฐ์ง๋ง, ํ์ด์ฌ ๋ฆฌ์คํธ๋ก ํํํ์ฌ ํ ๋ฐฉํฅ์ผ๋ก ๋์ด๋์๋ค. # csv ๋ชจ๋ importํ๊ธฐ import csv # list ๋ง๋ค๊ธฐ date = ['200801','200802','200803','200804','20080.. 2020. 8. 7. Python์ผ๋ก ์ค์๊ฐ ๋ก๊ทธ ํ์ผ ๋ชจ๋ํฐ๋ง ์ฝ๋ ๊ตฌํ ํ์ด์ฌ(Python)์ผ๋ก ์ค์๊ฐ(real-time) ๋ก๊ทธ(log) ํ์ผ ๋ชจ๋ํฐ๋ง(monitoring) ์ฝ๋ ๊ตฌํ Python์ผ๋ก ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ๋ ๊ณ์ํด์ ๋ก๊ทธ๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ด ๋ ๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ ์ฐํ๋ ๋ก๊ทธ๋ฅผ ๊ณ์ํด์ ๋ชจ๋ํฐ๋งํ๋ ์ฝ๋๋ฅผ ๊ตฌํํด์ผ ํ ๋๊ฐ ์๋ค. ์๋ฅผ๋ค์ด ๊ณ ์ฑ๋ฅ HPC์์ ์์ ์ ๋๋ฆฌ๊ณ ํด๋น PC์์ logํ์ผ์ ์ถ๋ ฅํ๊ณ ์๋๋ฐ, ํด๋ผ์ด์ธํธ ์ฅ๋น์ธ ๋ด ์ปดํจํฐ์์ ํด๋น logํ์ผ์ ์ค์๊ฐ์ผ๋ก ๋ชจ๋ํฐ๋งํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์ด๋ฐ ๊ฒฝ์ฐ๊ฐ ๋๊ฒ ๋ค. ๋จผ์ ๋ก๊ทธํ์ผ์ ์ฐ๋ ์์์ฝ๋์ด๋ค. logging.py with open("log.txt", "w") as f: for i in range(100): text = "I love sark. %d\n" % i print(text, .. 2020. 7. 30. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 15 ๋ค์