๋ชฉ๋ก์Šคํ„ฐ๋”” (23)

Study Anything ๐Ÿง

[Spark] ์ŠคํŒŒํฌ ์„ค์น˜ํ•˜๊ณ  csv ํŒŒ์ผ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์ŠคํŒŒํฌ๋Š” ๋ฐ์ดํ„ฐ ๊ณผํ•™์—์„œ ์ž์ฃผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฐ˜๋ณต ์—ฐ์‚ฐ์— ์ ํ•ฉํ•œ ๊ฐœ๋…๊ณผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ธ-๋ฉ”๋ชจ๋ฆฌ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์—”์ง„์œผ๋กœ ๋น ๋ฅธ ์†๋„๊ฐ€ ํŠน์ง•์ด๋‹ค. ๋‹ค์–‘ํ•œ ์–ธ์–ด์™€ ๋ฐ์ดํ„ฐ ํฌ๋งท์„ ์ง€์›ํ•˜๊ณ  ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์„œ ๋น…๋ฐ์ดํ„ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๋งŽ์ด ์“ฐ์ด๋Š” ํ•˜๋‘ก๊ณผ ๊ฐ™์ด ์“ฐ์ด๊ธฐ๋„ ํ•œ๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ ๋ฟ ์•„๋‹ˆ๋ผ ์ŠคํŒŒํฌ SQL, MLlib, ์ŠคํŠธ๋ฆฌ๋ฐ ๋“ฑ ์—ฌ๋Ÿฌ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ ์žˆ๋‹ค. ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ๋Š” ๊ฐ์ฒด์˜ ๋ถ„์‚ฐ ์‹œํ€€์Šค์ธ RDD(Resilient Distributed Dataset)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ RDD๋Š” ๋‹ค์–‘ํ•œ ๊ด€๊ณ„ ๋Œ€์ˆ˜ ์—ฐ์‚ฐ์ž(SELECT, JOIN ๋“ฑ)์™€ ์Šค์นผ๋ผ, ํŒŒ์ด์ฌ ๋ณ€ํ™˜ ๋กœ์ง์˜ ํ”ผ์—ฐ์‚ฐ์ž๋กœ ์ ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. RDD๋Š” ๋˜ํ•œ RAM์— ์ €์žฅ๋˜๋ฉฐ ์ž๋™์œผ๋กœ ๊ฒฐํ•จ์„ ๊ทน๋ณตํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ง€์›ํ•œ๋‹ค. ๋งŒ์•ฝ..

[Hadoop] ํ•˜๋‘ก๊ณผ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ

๋ฐ์ดํ„ฐ ๊ณผํ•™, ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๊ด€์‹ฌ์ด ์žˆ๋‹ค๋ฉด ํ•œ ๋ฒˆ์ฏค ์ ‘ํ•˜๊ฒŒ ๋˜๋Š” ์ด๋ฆ„์ด ๋ฐ”๋กœ 'ํ•˜๋‘ก(Hadoop)'์ด๋‹ค. ํ•˜๋‘ก์€ ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ๋ถ„์‚ฐ ์ปดํ“จํŒ… ํ”Œ๋žซํผ์œผ๋กœ, ํ•ต์‹ฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์ธ HDFS(Hadoop Distributed File System) ๋•๋ถ„์— ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ด๋Ÿฐ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ• ๊นŒ? ํ•˜๋‘ก์€ ๊ตฌ๊ธ€์˜ GFS(Google File System)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋Š”๋ฐ, ์ผ๋ฐ˜์ ์ธ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋…ธ๋“œ๋ฅผ ๋ฌถ์–ด์„œ ํ•˜๋‚˜์˜ ๋ถ„์‚ฐ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. ๋”ฐ๋ผ์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๊ณ  ๋Œ€์šฉ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋Ÿฐ HDFS์˜ ์„ค๊ณ„์—๋Š” ์„ธ ๊ฐ€์ง€์˜ ๊ฐ€์ •์ด ๋ฐ˜์˜๋˜์—ˆ๋Š”๋ฐ ์ฒซ ๋ฒˆ์งธ, ๋ฐ์ดํ„ฐ์˜ ํ’€ ์Šค์บ๋‹์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํŒŒ์ผ ์ˆœ..

[Django] ํ•œ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋‹ค๋ฅธ ์•ฑ์˜ ๋ชจ๋ธ ์‚ฌ์šฉํ•˜๊ธฐ

ํ”„๋กœ์ ํŠธ๋ฅผ ์—ฌ๋Ÿฌ ๋ช…์ด ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๋‹ค๋ณด๋‹ˆ ๊ฐ ํŒ€์›์ด ์„œ๋กœ ๋‹ค๋ฅธ ์•ฑ์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด ๋•Œ ๋‹ค๋ฅธ ์•ฑ์˜ ๋ชจ๋ธ ํ•„๋“œ๋ฅผ ์™ธ๋ž˜ํ‚ค๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋ชจ๋ธ ์ž์ฒด๋ฅผ ๋‚ด ์•ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ํŽธ์˜์ƒ ๋‚ด ์•ฑ์˜ ์ด๋ฆ„์€ 'myapp', ๋‹ค๋ฅธ ํŒ€์›์˜ ์•ฑ ์ด๋ฆ„์€ 'yourapp'์œผ๋กœ ์„œ์ˆ ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ๋ชจ๋ธ๋“ค์˜ ๋‚ด์šฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. # myapp/models.py class Review(models.Model): ... userId = models.ForeignKey(User, on_delete=models.CASCADE) ... # yourapp/models.py class User(models.Model): ... Review ๋ชจ๋ธ์—์„œ๋Š” User ๋ชจ๋ธ์„ ์™ธ๋ž˜ํ‚ค๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ ..

์Šคํ„ฐ๋””/Web 2022. 2. 9. 00:03
[Pandas] ํŒ๋‹ค์Šค์™€ ์‹œ๋ฆฌ์ฆˆ ๊ธฐ๋ณธ

์ฐธ๊ณ  : https://wikidocs.net/75004 Pandas(์ดํ•˜ ํŒ๋‹ค์Šค)๋Š” ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ๋ฐ์ดํ„ฐ ์กฐ์ž‘ ๋ฐ ๋ถ„์„์— ์šฉ์ดํ•˜๋ฉฐ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„, ์‹œ๋ฆฌ์ฆˆ, ์ธ๋ฑ์Šค ๋“ฑ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ, SQL๊ณผ ๊ฐ™์€ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‹จ๋… ์‚ฌ์šฉ๋ณด๋‹ค๋Š” NumPy, scikit-leran, matplotlib ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. (1) ํŒ๋‹ค์Šค์˜ ์ž๋ฃŒ๊ตฌ์กฐ ํŒ๋‹ค์Šค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ์‹œ๋ฆฌ์ฆˆ๋Š” ๋ฐฐ์—ด ํ˜•์‹, ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์€ ํ‘œ ํ˜•์‹์˜ ๊ตฌ์กฐ์ด๋ฉฐ ์‹œ๋ฆฌ์ฆˆ๊ฐ€ ๋ชจ์—ฌ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ๊ตฌ์„ฑํ•œ๋‹ค. ์‹œ๋ฆฌ์ฆˆ : ๊ฐ’(values) + ์ธ๋ฑ์Šค(index) ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„ : ์นผ๋Ÿผ(columns) + ์ธ๋ฑ์Šค..

[Django] DRF : Serializer ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•, ์œ ํšจ์„ฑ ๊ฒ€์ฆ

์ฐธ๊ณ  : https://www.django-rest-framework.org/api-guide/serializers/ ์žฅ๊ณ  ๋ ˆ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ(Django REST Framework)๋ฅผ ์ด์šฉํ•ด REST API ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋‹ค๋ณด๋ฉด Serializer๋ฅผ ๊ฑฐ์˜ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ํ•˜์ง€๋งŒ Serializer๊ฐ€ ์–ด๋–ค ๊ฐœ๋…์ธ์ง€ ์ž˜ ์™€๋‹ฟ์ง€ ์•Š์•„์„œ Serializer์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์•Œ๊ฒŒ ๋œ ๊ฒƒ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. (1) Serializer๋ž€? ์ฟผ๋ฆฌ์…‹์ด๋‚˜ ๋ชจ๋ธ ์ธ์Šคํ„ด์Šค ๊ฐ™์€ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ๋“ค์„ ๋„ค์ดํ‹ฐ๋ธŒ ํŒŒ์ด์ฌ ๋ฐ์ดํ„ฐ ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ json, xml ๋“ฑ์˜ ์ปจํ…์ธ  ํƒ€์ž…์œผ๋กœ ์‰ฝ๊ฒŒ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ง๋ ฌํ™”ํ•˜๋Š” Serializer๋Š” ์—ญ์ง๋ ฌํ™” ๊ธฐ๋Šฅ ๋˜ํ•œ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋“ค์–ด์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒ€์ฆํ•œ ํ›„์— ๋ถ„..

์Šคํ„ฐ๋””/Web 2022. 1. 30. 23:28
[Django] DRF : REST API๋ฅผ ํ†ตํ•ด ์žฅ๊ณ ์™€ ๋ฆฌ์•กํŠธ ์—ฐ๊ฒฐํ•˜๊ธฐ

์žฅ๊ณ ์™€ ๋ฆฌ์•กํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ• ์ค‘ DRF(Django REST Framework)๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. REST API ๋ฅผ ํ†ตํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ CRUD(Create, Read, Update, Delete)๋ฅผ ์‰ฝ๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ํŠนํžˆ ๋ฐ์ดํ„ฐ์˜ Create, ๋ฆฌ์•กํŠธ์—์„œ ์ž‘์„ฑํ•œ ๊ธ€์„ ์žฅ๊ณ  ๋ชจ๋ธ์— ๋“ฑ๋กํ•˜๋Š” ๊ณผ์ •์„ ๋‹ค๋ค„๋ณด๋ ค๊ณ  ํ•œ๋‹ค. (๋ฆฌ์•กํŠธ์™€ ์žฅ๊ณ ์˜ ์„ค์น˜๋Š” ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.) ์žฅ๊ณ  REST API ๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ณผ์ •์€ ์ด์ „ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ฃจ์—ˆ๋‹ค. ์žฅ๊ณ  ๋ชจ๋ธ์„ json ๊ฐ์ฒด๋กœ ์ถ”์ถœํ•˜๊ธฐ (DRF) ์žฅ๊ณ ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ํ”„๋ก ํŠธ์™€ ์—ฐ๋™ํ•˜๊ฒŒ ๋  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•๋“ค์€ ์ด์ „ ํฌ์ŠคํŠธ(link)์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ–ˆ๊ณ , ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ทธ ์ค‘ ์žฅ๊ณ ์—์„œ ๋งŒ๋“  ๋ชจ๋ธ์„ json ๊ฐ์ฒด๋กœ ์ถ”์ถœํ•ด์„œ ์ ‘..

์Šคํ„ฐ๋””/Web 2022. 1. 29. 23:34
[Django] DRF : ์žฅ๊ณ  ๋ชจ๋ธ์„ json ๊ฐ์ฒด๋กœ ์ถ”์ถœํ•˜๊ธฐ

์žฅ๊ณ ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ํ”„๋ก ํŠธ์™€ ์—ฐ๋™ํ•˜๊ฒŒ ๋  ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•๋“ค์€ ์ด์ „ ํฌ์ŠคํŠธ(link)์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ–ˆ๊ณ , ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ทธ ์ค‘ ์žฅ๊ณ ์—์„œ ๋งŒ๋“  ๋ชจ๋ธ์„ json ๊ฐ์ฒด๋กœ ์ถ”์ถœํ•ด์„œ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. Django REST Framework(DRF)๋Š” ์›น์—์„œ REST API ์„œ๋ฒ„๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ์˜คํ”ˆ์†Œ์Šค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ๋‹ค์–‘ํ•œ ๊ธฐ๊ธฐ์™€ ํ”Œ๋žซํผ์ด ๋งŒ๋“ค์–ด์ง€๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ๊ธฐ์กด์˜ ๋ฐฉ๋ฒ•์— ํ•œ๊ณ„๊ฐ€ ์ƒ๊ฒผ๊ณ , ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋“ฑ์žฅํ•œ ๋„๊ตฌ๊ฐ€ REST API์ด๋‹ค. (1) ์ค€๋น„ํ•˜๊ธฐ ๋จผ์ €, DRF ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด DRF๋ฅผ ์„ค์น˜ํ•œ๋‹ค. pip install djangorestframework ๋‹ค์Œ์œผ๋กœ ๋ฆฌ์•กํŠธ์—์„œ ์žฅ๊ณ ๊ฐ€ ๋งŒ๋“œ๋Š” api์— ์ ‘๊ทผํ•  ์ˆ˜ ..

์Šคํ„ฐ๋””/Web 2022. 1. 19. 22:54
[Django] ๊ธฐ๋ณธ ๊ฐœ๋… (์•ฑ, ๋ชจ๋ธ, ๊ด€๋ฆฌ์ž)

์ฐธ๊ณ : https://wikidocs.net/73306 (1) ์•ฑ ์žฅ๊ณ ์—์„œ๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด '์•ฑ'์ด๋ผ๋Š” ํ˜•์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ”„๋กœ์ ํŠธ์— ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. (mysite) C:\(์ƒ๋žต)\DjangoProj\mysite>django-admin startapp myapp#์•ฑ ์ด๋ฆ„: myapp ์•ฑ์ด ์ƒ์„ฑ๋˜์—ˆ์œผ๋‹ˆ ํ•„์š”ํ•œ ๋‚ด์šฉ๊ณผ ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ์„ IDE์—์„œ ์ž‘์„ฑํ•˜๊ณ  ๊ฐœ๋ฐœ์„œ๋ฒ„๋ฅผ ๊ตฌ๋™ํ•œ ๋‹ค์Œ ์ฃผ์†Œ ๋’ค์— '/myapp' ๋ฅผ ๋ถ™์ด๋ฉด ํ•ด๋‹น ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋œ ์›น ํŽ˜์ด์ง€๊ฐ€ ๋„์›Œ์ง„๋‹ค. ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด 'ํ”„๋กœ์ ํŠธ/config/urls.py' ์— url ๋งคํ•‘์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. (...) urlpatterns = [ (...) path('myapp', ํ•จ์ˆ˜๋ช…) (...) ] (...) ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งคํ•‘์„..

์Šคํ„ฐ๋””/Web 2022. 1. 6. 21:57