ํ…Œ์ŠคํŠธ๋œ Python ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ 3.6%์—์„œ ์‰ผํ‘œ ์˜ค๋ฅ˜๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ์—์„œ ์‰ผํ‘œ๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ๋œ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ Python ์ฝ”๋“œ์˜ ์ทจ์•ฝ์„ฑ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ ๊ฒฐ๊ณผ๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์—ด๊ฑฐํ•  ๋•Œ Python์ด ๋ชฉ๋ก์˜ ๋ฌธ์ž์—ด์„ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ณ , ๊ฐ’ ๋’ค์— ์‰ผํ‘œ๊ฐ€ ์˜ค๋ฉด ํ•ด๋‹น ๊ฐ’์„ ํŠœํ”Œ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ตฌ์›๋“ค์€ Python ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 666๊ฐœ์˜ GitHub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์ž๋™ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•œ ํ›„ ์—ฐ๊ตฌ๋œ ํ”„๋กœ์ ํŠธ์˜ 5%์—์„œ ๊ฐ€๋Šฅํ•œ ์‰ผํ‘œ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ ์ˆ˜๋™ ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด ์‹ค์ œ ์˜ค๋ฅ˜๋Š” 24๊ฐœ ์ €์žฅ์†Œ(3.6%)์—๋งŒ ์กด์žฌํ•˜๊ณ  ๋‚˜๋จธ์ง€ 1.4%๋Š” ๊ฑฐ์ง“ ๊ธ์ •์ด์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๋Ÿฌ ์ค„์˜ ํŒŒ์ผ ๊ฒฝ๋กœ, ๊ธด ํ•ด์‹œ, HTML์„ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ค„ ์‚ฌ์ด์— ์‰ผํ‘œ๋ฅผ ์˜๋„์ ์œผ๋กœ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Œ). ๋ธ”๋ก ๋˜๋Š” SQL ํ‘œํ˜„์‹). ์‹ค์ œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ 24๊ฐœ ์ €์žฅ์†Œ ์ค‘์—๋Š” Tensorflow, Google V8, Sentry, Pydata xarray, rapidpro, django-colorfield ๋ฐ django-helpdesk์™€ ๊ฐ™์€ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์€ ์ฃผ๋ชฉํ•  ๋งŒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‰ผํ‘œ ๊ด€๋ จ ๋ฌธ์ œ๋Š” Python์—๋งŒ ๊ตญํ•œ๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ฉฐ C/C++ ํ”„๋กœ์ ํŠธ์—์„œ ์ข…์ข… ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(์ตœ๊ทผ ์ˆ˜์ • ์‚ฌํ•ญ์˜ ์˜ˆ๋Š” LLVM, Mono, Tensorflow์ž…๋‹ˆ๋‹ค).

์—ฐ๊ตฌ๋œ ์ฃผ์š” ์˜ค๋ฅ˜ ์œ ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชฉ๋ก, ํŠœํ”Œ, ์ง‘ํ•ฉ์—์„œ ์‹ค์ˆ˜๋กœ ์‰ผํ‘œ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด ๋ฌธ์ž์—ด์ด ๋ณ„๋„์˜ ๊ฐ’์œผ๋กœ ํ•ด์„๋˜์ง€ ์•Š๊ณ  ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Sentry์˜ ํ…Œ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜์—์„œ ๋ชฉ๋ก์˜ "releases"์™€ "discover" ๋ฌธ์ž์—ด ์‚ฌ์ด์— ์‰ผํ‘œ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด "/releases" ๋ฐ "discover"๋ฅผ ํ™•์ธํ•˜๋Š” ๋Œ€์‹  ์กด์žฌํ•˜์ง€ ์•Š๋Š” "/releasesdiscover" ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. /๋ฐœ๊ฒฌ"์„ ๋ณ„๋„๋กœ ์‹คํ–‰ํ•˜์„ธ์š”.
    ํ…Œ์ŠคํŠธ๋œ Python ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ 3.6%์—์„œ ์‰ผํ‘œ ์˜ค๋ฅ˜๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋Š” rapidpro์—์„œ ์‰ผํ‘œ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด ๋‘ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๊ทœ์น™์ด 572ํ–‰์—์„œ ๋ณ‘ํ•ฉ๋˜๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

    ํ…Œ์ŠคํŠธ๋œ Python ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ค‘ 3.6%์—์„œ ์‰ผํ‘œ ์˜ค๋ฅ˜๊ฐ€ ๋ˆ„๋ฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ๋‹จ์ผ ์š”์†Œ ํŠœํ”Œ ์ •์˜ ๋์— ์‰ผํ‘œ๊ฐ€ ์—†์–ด ํ• ๋‹น ์‹œ ํŠœํ”Œ์ด ์•„๋‹Œ ์ผ๋ฐ˜ ์œ ํ˜•์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "values โ€‹โ€‹โ€‹โ€‹= (1,)" ํ‘œํ˜„์‹์€ ํ•œ ์š”์†Œ์˜ ํŠœํ”Œ ๋ณ€์ˆ˜์— ํ• ๋‹น๋˜์ง€๋งŒ "values โ€‹โ€‹โ€‹โ€‹= (1)"์€ ์ •์ˆ˜ ์œ ํ˜•์˜ ํ• ๋‹น์œผ๋กœ ์ด์–ด์ง‘๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ• ๋‹น์˜ ๊ด„ํ˜ธ๋Š” ์œ ํ˜• ์ •์˜์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š์œผ๋ฉฐ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ, ํŠœํ”Œ์˜ ์กด์žฌ ์—ฌ๋ถ€๋Š” ์‰ผํ‘œ์˜ ์กด์žฌ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ํŒŒ์„œ์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.IsAuthenticated' # ํŠœํ”Œ ๋Œ€์‹  ๋ฌธ์ž์—ด์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ) }
  • ๋ฐ˜๋Œ€ ์ƒํ™ฉ์€ ํ• ๋‹น ์ค‘์— ์ถ”๊ฐ€ ์‰ผํ‘œ์ž…๋‹ˆ๋‹ค. ํ• ๋‹น ๋์— ์‹ค์ˆ˜๋กœ ์‰ผํ‘œ๊ฐ€ ๋‚จ๊ฒจ์ง„ ๊ฒฝ์šฐ ์ผ๋ฐ˜ ์œ ํ˜• ๋Œ€์‹  ๊ฐ’์œผ๋กœ ํŠœํ”Œ์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค(์˜ˆ: "value = 1" ๋Œ€์‹  "value = 1"์ด ์ง€์ •๋œ ๊ฒฝ์šฐ).

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€