๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

All

(175)
Monkey Patch (๋ฉํ‚ค ํŒจ์น˜) A monkey patch is a way for a program to extend or modify supporting system software locally (affecting only the running instance of the program). ํ”„๋กœ๊ทธ๋žจ์„ ํ™•์žฅํ•˜๊ฑฐ๋‚˜, ๋กœ์ปฌ ์‹œ์Šคํ…œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค(์˜ค์ง ์‹คํ–‰์ค‘์ธ ํ”„๋กœ๊ทธ๋žจ์˜ ์ธ์Šคํ„ด์Šค์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค). ๐Ÿ‘‰ Monkeypatching the Standard Library ๋Ÿฐํƒ€์ž„์ƒ์—์„œ ํ•จ์ˆ˜, ๋ฉ”์„œ๋“œ, ์†์„ฑ์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ์—†๋Š” ์„œ๋“œํŒŒํ‹ฐ ์ œํ’ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ์ค‘ ๊ธฐ๋Šฅ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํ™•์žฅ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋Ÿฐํƒ€์ž„ ์‹คํ–‰์ค‘ ๋ฉ”๋ชจ๋ฆฌ์ƒ์˜ ์˜ค๋ธŒ์ ํŠธ์— ์ ์šฉ๋œ๋‹ค. ๊ฐ€๋Šฅํ•œ ์–ธ์–ด๋กœ๋Š” Javascript, Python, PHP,..
๐Ÿง Ubuntu * SCP → SSH ํŒŒ์ผ ์ „์†ก Port Number = 22 ssh์˜ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ๊ธฐ๋ณธ ๋ฒˆํ˜ธ์ธ 22๋ฒˆ์ธ ๊ฒฝ์šฐ ํŠน๋ณ„ํ•œ ์„ค์ •์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. SSH๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ํŒŒ์ผ์„ ์ „์†กํ•  ๋•Œ scp command๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ scp ์ „์†กํ• ๊ฒƒ ์ˆ˜์‹ ํ• ์„œ๋ฒ„:์ €์žฅ๋ ์œ„์น˜ ์ˆ˜์‹ ํ•  ์„œ๋ฒ„์—๋Š” ssh ์ž…๋ ฅํ•˜์‹ค ๋•Œ์ฒ˜๋Ÿผ ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. root@์ฃผ์†Œ.์ฃผ์†Œ.์ฃผ์†Œ.์ฃผ์†Œ - - - - ์ „์†ก ์˜ˆ์‹œ ๋ฐ ํ™•์ธ ์ž…๋ ฅํ˜•์‹์€ ๋˜‘๊ฐ™์œผ๋ฉฐ, ์ •๋ณด๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ํšŒ์ƒ‰์œผ๋กœ ์น ํ•˜์˜€์Šค๋‹ˆ ์–‘ํ•ด๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค. - - - - Tip. -r ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋””๋ ‰ํ† ๋ฆฌ์˜ ํ•˜์œ„ ํŒŒ์ผ๊นŒ์ง€ ํ•œ๋ฒˆ์— ์ „์†ก์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. $ scp -r ์ „์†กํ• ๋””๋ ‰ํ† ๋ฆฌ ์ˆ˜์‹ ํ• ์„œ๋ฒ„:์ €์žฅ๋ ์œ„์น˜ ๋‹ค๋ฅธ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ -P ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌํŠธ๋ฅผ ์ง€์ •ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. → ์†Œ๋ฌธ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ๊ผญ! ๋Œ€..
โœ… Solved * [Ubuntu] Crypto install Error and How to Install with Python ์•”ํ˜ธํ™”๋ฅผ ํ•ด๋ณด๊ธฐ์œ„ํ•ด Cryto๋ฅผ ์„ค์น˜ํ•˜๋ ค๊ณ  ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ์ณค๋”๋‹ˆ ์ €๋Ÿฐ Error๋ฅผ ๋‚ด๋ฟœ์œผ์…จ๋‹ค.. $ pip install pycryto Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-LL3mve/pycrypto/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-Hz4VaT-record/install-record.txt --single-version-exter..
๐Ÿ Python * Message ์•”ํ˜ธํ™” AES128, HMAC 1. Root๋กœ ์ ‘์†ํ•œ๋‹ค. $ sudo su root 2. ์•”ํ˜ธํ™”์— ํ•„์š”ํ•œ Module์„ ์„ค์น˜ํ•œ๋‹ค. โ—‡ 2020/03/09 - [SW/๐Ÿ Python] - โœ… Solved * [Ubuntu] Crypto install Error and How to Install with Python 3. ์•”ํ˜ธํ™”, ๋ณตํ˜ธํ™”์— ๋Œ€ํ•œ ์ฝ”๋”ฉ ๊ฐ„๋‹จ ์„ค๋ช… ์•„๋ž˜ ์ „์ฒด ์ฝ”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค! A. import module B. HMAC hash C. iv ์ƒ์„ฑ D. ๋ณตํ˜ธํ™” E. ์•”ํ˜ธํ™” F. ์‹คํ–‰ ์ „์ฒด์ฝ”๋“œ # -*- coding: utf-8 -*- import hmac, binascii import Crypto.Random from Crypto.Cipher import AES def gen_sha256_hashed_key_salt(key): ..
SSL(TLS)์— ๋Œ€ํ•˜์—ฌ, ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๋Š” ๋Œ€์นญํ‚ค/๊ณต๊ฐœํ‚ค python genvet module์„ ์‚ดํŽด๋ณด๋‹ค๊ฐ€ SSL์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ ํ˜€์žˆ๋Š” ๊ฒƒ์„ ๋ณด์•˜๋‹ค. ๋Œ€์ฒด SSL์ด ๋ฌด์—‡์ผ๊นŒ ์‹ถ์–ด์„œ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ผ๋‹จ SSL์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ธฐ์ „์— HTTP์™€ HTTPS์˜ ์ฐจ์ด์ ์„ ๋ณด์ž๋ฉด, HTTP๋Š” Hypertext Transfer Protocol๋กœ ํ†ต์‹  ๊ทœ์•ฝ์ค‘์— ํ•˜๋‚˜๋‹ค. HTTPS๋Š” HTTP์—์„œ S๊ฐ€ ์ถ”๊ฐ€๋œ ํ˜•ํƒœ๋กœ ๋ณด์•ˆ์ด ๊ฐ•ํ™” ๋œ HTTP์ธ๋ฐ, S๋Š” Over Secure Socket Layer์˜ ์•ฝ์ž์ด๋‹ค. ๊ฐ€๋” HTTPS์™€ SSL์„ ๊ฐ™์€ ๊ฒƒ ์ฒ˜๋Ÿผ ์–˜๊ธฐํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š”๋ฐ, ์—„๋ฐ€ํžˆ ๋งํ•ด์„œ ๋‹ค๋ฅธ ๊ฒƒ์ด๋‹ค. ์œ„์˜ ์‚ฌ์ง„์—์„œ ์ฒ˜๋Ÿผ, SSL์ด ์ ์šฉ๋  ์ˆ˜์žˆ๋Š” Application Layer๋“ค์€ HTTP, FTP, Telnet ๋“ฑ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ  ๊ทธ ์ค‘์—์„œ HTTP์— ์ ์šฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜..
๐Ÿง Ubuntu * ํ”Œ๋ผ์Šคํฌ(Flask) ์„ค์น˜ํ•˜๊ธฐ ์•„๋ž˜์˜ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„ ์ฐฝ์— ์ž…๋ ฅํ•˜๊ณ  root ๋น„๋ฒˆ์„ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”. $ pip3 install flask ์„ค์น˜๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธ $ flask --version + ๋” ์•Œ์•„๋ณด๊ธฐ ํŠน์ • ๋ฒ„์ „์˜ Flask ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๊ฒฝ์šฐ flask==๋ฒ„์ „ ์„ ์ถ”๊ฐ€ํ•ด ์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1.0 ๋ฒ„์ „์„ ์„ค์น˜ํ•  ๊ฒฝ์šฐ ์•„๋ž˜์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. $ pip3 install flask=1.0 Thanks for ๐Ÿ™ˆ [ book ] Flask ๊ธฐ๋ฐ˜์˜ ํŒŒ์ด์ฌ ์›น ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ์ด์ง€ํ˜ธ ์ง€์Œ -
Pycharm * ์‚ฌ์šฉ์‹œ ๋ฐ‘์ค„, ๋ฌผ๊ฒฐ ํ‘œ์‹œ ๋‹ค๋ฅธ ์—๋””ํ„ฐ์—์„œ ์ฝ”๋”ฉํ•œ ๋‚ด์šฉ์„ Pycharm์œผ๋กœ ์˜ฎ๊ฒผ๋Š”๋ฐ ์ฝ”๋“œ ์ „์ฒด์— ๋ฌผ๊ฒฐ์ด ์ƒ๊ธฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€.. ์•Œ์•„๋ณด๋‹ˆ Pycharm์—๋Š” PBP(Python Enhance Proposal)8์ด๋ผ๋Š” ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค. ๋”ฐ๋ผ์„œ, ํ•ด๋‹น ๋ฐ‘์ค„์€ ์ด ๊ฐ€์ด๋“œ์— ๋งž์ด ์•Š๋‹ค๊ณ  ์•Œ๋ ค์ฃผ๋Š” ๋‚ด์šฉ์ด๋‹ค. ์ด ์ฝ”๋”ฉ ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ๋ฅผ ํ•ด์ง€ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ๋”ฐ๋ผ์„œ ์ฝ”๋”ฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•ด์ง€๋ฅผ ์›ํ•  ๊ฒฝ์šฐ ์•„๋ž˜ ์ฐธ์กฐ๋‚ด์šฉ์—์„œ ํ‚ค์ฝค๋ฐฑ์‹  ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ๋ฅผ Clickํ•˜๋ฉด ๋œ๋‹ค. PBP8 -- Style Guide for Python Code ๊ฐ€์ด๋“œ๋ฅผ ์•Œ์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ์šฐ์˜ PBP8์„ Clickํ•˜๋ฉฐ ๋œ๋‹ค. Thanks for ๐Ÿ™ˆ ํ‚ค์ฝค๋ฐฑ์‹  ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ
๐Ÿ Python * MySQLdb ๋ชจ๋“ˆ ์„ค์น˜ MySQL ์„ค์น˜๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ํ .. ์ž˜ ์•ˆ๋œ๋‹ค.. ์›๋ž˜๋Š” $ pip3 install MySQL-python3 ํ•˜๋ฉด ๋˜์•ผํ•˜๋Š”๋ฐ ์„ค์น˜๊ฐ€ ์•ˆ๋œ๋‹ค!! ๋ง‰๋ง‰ ์ด์ƒํ•œ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉด์„œ.. (์บก์ณ๋ฅผ ๋ชปํ•œ..) ๊ทธ๋ž˜์„œ ์ฐพ์•„๋ณด๋‹ˆ ์˜์กด์„ฑ ํŒจํ‚ค์ง€๊ฐ€ ์—†์–ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋˜์—ˆ๋‹ค. ์˜์กด์„ฑ ํŒจํ‚ค์ง€๋ฅผ ๊น”์•„์ฃผ๊ณ  pip๋กœ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ๊ทธ๋ƒฅ apt-get์œผ๋กœ ์•Œ์•„์„œ ํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž - ๋งŒ์•ฝ ๋ฒ„์ „์ด 2.X์ธ ๊ฒฝ์šฐ์—๋Š” python3๋Œ€์‹  python์„ ์ ์–ด์„œ ์„ค์น˜ํ•ด ์ฃผ๋ฉด ๋œ๋‹ค. 1. apt-get ๋ช…๋ น์–ด ์‚ฌ์šฉ $ apt-get install python3-mysqldb 2. ํŒจํ‚ค์ง€ ์„ค์น˜ ํ›„ pip ๋ช…๋ น์–ด ์‚ฌ์šฉ A. ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜ $ apt-get install python3-de..
๐Ÿง Ubuntu * wsgi๋ฅผ ์ด์šฉํ•œ Apache httpd ์—ฐ๋™ํ•˜๊ธฐ (Flask) ์•„ํŒŒ์น˜๋ฅผ ์œ„ํ•œ ํŒจํ‚ค์ง€๋„ ์„ค์น˜ํ•˜๊ณ  ์•„ํŒŒ์น˜๋„ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด, ์ด์ œ๋Š” wsgi๋ฅผ ์ด์šฉํ•ด์„œ ์•„ํŒŒ์น˜ httpd ์›น ์„œ๋ฒ„๊ฐ€ flask app์„ ์„œ๋น„์Šคํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์น˜ ํ›„ ์—ฐ๊ฒฐ์‹œ์ผœ๋ณด์ž! WSGI๋Š” ๋ฌด์—‡์ผ๊นŒ? ์›น ์„œ๋ฒ„ ๊ฒŒ์ดํŠธ์›จ์ด ์ธํ„ฐํŽ˜์ด์Šค(WSGI, Web Server Gateway Interface)๋Š” ์›น์„œ๋ฒ„์™€ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ๊ณ  ์ •์˜๋˜์–ด์žˆ๋‹ค. ์ฆ‰, ์›น ์„œ๋ฒ„(Apache)์™€ Flask ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์—ฐ๋™ํ•ด์ฃผ๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ์„ค์น˜ํ•ด๋ณด์ž ์ผ๋‹จ WSGI ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ๋ถ€๋ถ„์„ ํด๋ฆญํ•˜์—ฌ ์„ค์น˜ํ•  ๋ฒ„์ „์„ ์„ ํƒํ•˜๊ณ  ๋‹ค์šด๋ฐ›์ž. ํ•ด๋‹น ํฌ์ŠคํŠธ์—์„œ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์šดํ•  ๊ฒƒ์ด๋ฉฐ / ์•„๋ž˜ src ํด๋”๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๊ทธ๊ณณ์—์„œ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ๊ฒƒ ์ด๋‹ค. $ cd /src $ wget https:/..
๐Ÿง Ubuntu * Apache ์„ค์น˜๋ฅผ ์œ„ํ•œ ์˜์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ ์•„ํŒŒ์น˜ ์„ค์น˜ ๋ฐ ์‹คํ–‰์„ ์œ„ํ•ด์„œ๋Š” APR, PCRE๋ฅผ ๋จผ์ € ์„ค์น˜ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. Cent OS์—์„œ yum ๋ช…๋ น์–ด๋กœ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ธํ„ฐ๋„ท์— ๋งŽ์ด ์žˆ์œผ๋‚˜ ๋‚œ ubuntu๊ณ  yum์ด ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋‹ˆ๊นŒ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›์•„์„œ ์„ค์น˜ํ•ด๋ณด์ž! ๊ถŒํ•œ์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ํ•  ๋•Œ๋Š” ๋ช…๋ น์–ด๋“ค ์•ž์— sudo ๋กœ root ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ด์„œ ์ง„ํ–‰ํ•˜๋ฉด ๋œ๋‹ค! APR, APR-Util ์„ค์น˜ํ•˜๊ธฐ ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋ฐ›์•„์„œ ์••์ถ•์„ ํ•ด์ œํ•˜๋ ค๋ฉด ๋‹ค์šด๋กœ๋“œ ํŽ˜์ด์ง€์— ์ ‘์†ํ•ด์„œ ์›ํ•˜๋Š” ๋ฒ„์ „์˜ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค์šด ๋ฐ›๋„๋ก ํ•˜๊ณ , ๋‹ค์šด ๋ฐ›์•„ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ์ด ๊ท€์ฐฎ์€ ๋‚˜๋Š” wget ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•˜์—ฌ ๋‹ค์šด๋ฐ›๋„๋ก ํ•˜๊ฒ ๋‹ค. ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๊ผญ ํ™ˆํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ ๋งํฌ๋ฅผ ํ™•์ธํ•˜๊ณ  ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜์ž! ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ ์•„๋ž˜ src ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์ง„ํ–‰ํ•˜์˜€๋‹ค. $ cd /src $ wge..
๐Ÿง Ubuntu * Apache ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ Flask๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Webserver๋ฅผ ์ƒ์„ฑํ•ด๋ณด๋ ค๊ณ ํ•œ๋‹ค. ์ผ๋‹จ Flask๋งŒ์œผ๋กœ๋Š” Webserver ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋™์ž‘๋งŒ ์‹คํ–‰ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Flask๋งŒ์„ ์‚ฌ์šฉํ•ด์„œ๋งŒ๋“  ์›น์•ฑ์„ ์‹คํ–‰์‹œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค. ์•„ํŒŒ์น˜๋ฅผ ์„ค์น˜ํ•ด์„œ ์‚ฌ์šฉํ•ด ๋ณด๊ธฐ ์ „์— ์•„ํŒŒ์น˜๋ฅผ ์„ค์น˜ ๋ฐ ์‹คํ–‰์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜์กด์„ฑ ํŒจํ‚ค์ง€๋“ค(APR, PCRE)์ด ์„ค์น˜๋„ ํ•„์š”ํ•˜๋‹ค. ๋งŒ์•ฝ configure: error: APR not found. Please read the documentation ์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜จ๋‹ค๋ฉด APR๋ฅผ ์„ค์น˜ํ•ด ์ฃผ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์•„์ง ์ด๋ฅผ ์„ค์น˜ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด Apache ์„ค์น˜๋ฅผ ์œ„ํ•œ ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ ๋ถ€ํ„ฐ ๋จผ์ € ๋ณด๊ณ ์˜ค์ž! โ—‡ 2020/03/09 - [OS/๐Ÿง Linu..
๐Ÿ Python * Linux(Ubuntu) ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ฝ”๋“œ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ 1. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ €์žฅํ•˜๊ธฐ - Terminal ์ฐฝ์—์„œ export command๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. $ export ๋ณ€์ˆ˜๋ช…=๊ฐ’ - ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‚ญ์ œ๋Š” unset command๋ฅผ ์ด์šฉํ•ฉ๋‹ˆ๋‹ค. $ unset ๋ณ€์ˆ˜๋ช… 2. Python์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ - os.environ๋‚˜ os.getenv ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. environ์€ ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ERROR ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— getenv ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. getenv๋Š” ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์—†์„ ๊ฒฝ์šฐ NONE ์„ returnํ•ฉ๋‹ˆ๋‹ค. import os print('\ngetting_system_value.py {}\n'.format('-'*20)) # ================================== # fi..