Back-end ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ElastAlert ElastAlert๋?Elasticsearch์ ๋ฐ์ดํฐ์์ ์์ฑํ ๊ท์น์ ๋ฐ๋ผ์ ์๋ฆผ์ ์ ์กํ๋ ํ๋ ์์ํฌ.Elasticsearch์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋กํ๊ณ ์๊ณ ํด๋น ๋ฐ์ดํฐ๊ฐ ํน์ ํจํด(๊ท์น)๊ณผ ์ผ์นํ ๋ ์๋ฆผ์ ๋ฐ๊ณ ์ถ์ ๋ ์ฌ์ฉํ ์ ์์.ElastAlert ์๋ ๋ฐฉ์๋ฐ์ดํฐ ์์ค๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฟผ๋ฆฌ → ์ ์ํ ๊ท์น ์ ํ์ ์ผ์นํ๋ ์ง๋ฅผ ๊ฒ์ฌ → ์ผ์นํ๋ค๋ฉด ์ ์ํ ๋ฐฉ๋ฒ์ผ๋ก alert ๋ฐElastAlert ๊ท์น ๊ตฌ์ฑname : ๊ท์น์ ๊ณ ์ ํ ์ด๋ฆ. ๋์ผํ ์ด๋ฆ์ด 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ElastAlert๊ฐ ์์๋์ง ์๋๋ค.index : ์ฟผ๋ฆฌํ ๋ฐ์ดํฐ ์์ค์ ์์น. ์์ผ๋ ์นด๋, ์ฌ๋ฌ๊ฐ ์ฌ์ฉ ๊ฐ๋ฅindex: topbeat-*,packetbeat-*type : ๊ท์น์ ์ ํ. type์ ๋ฐ๋ผ ๋ค์ํ ๋ฐฉ๋ฒ์ผ.. ๋๋ณด๊ธฐ ์น์๋ฒ(Web Server)์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ(Web Application Server) ์น ์๋ฒ? ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ? ์น ์๋ฒ์ ๋ํด ๊ณต๋ถํ๋ฉด์, ์น ์๋ฒ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ก ๊ตฌ๋ถ๋๋ค๋ ์ฌ์ค์ ์๊ฒ๋์๊ณ , ์ ์ ๋ฆฌ๊ฐ ๋ ๋ธ๋ก๊ทธ๋ฅผ ์ฝ๊ณ ๋๋ฆ๋๋ก ์ ๋ฆฌ(?)๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ์น ์๋ฒ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ์ ์ฐจ์ด์ ์ ์ ๋ฆฌํ๊ธฐ์ ์์, ์น ์๋น์ค๋ ์ด๋ค ๊ตฌ์กฐ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์น ์๋น์ค๋ฅผ ์ด๋ฃจ๊ณ ์๋ ์น์๋ฒ์ ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๊ฐ ๋ฌด์์ธ์ง๋ฅผ ์ ๋ฆฌํด ๋ณด๋ ค๊ณ ํ๋ค. ์น ์๋น์ค ๊ตฌ์กฐ Client → ์น ์๋ฒ → DB Client → ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ → DB Client → ์น ์๋ฒ → ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ → DB ์น ์๋น์ค๋ ์์ฒ๋ผ ๋ค์ํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง ์ ์๋ค. ์น ์๋ฒ๋ง ์ฌ์ฉํ ์๋, ์น ์ดํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ง ์ฌ์ฉํ ์๋, ๋ ๋ค ์ฌ์ฉํ ์๋ ์๋ค. ์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ์ดํดํ๊ธฐ ์ํด.. ๋๋ณด๊ธฐ Slack์ผ๋ก OAuth ์ฌ์ฉํ๊ธฐ OAuth๋? OAuth๋ ์์ ์์ ์(๊ตฌ๊ธ, ์นด์นด์ค, ํ์ด์ค๋ถ, ์ฌ๋)์ HTTP ์๋น์ค ๊ฐ์ ์น์ธ ์ํธ ์์ฉ์ ์กฐ์ ํ๊ฑฐ๋ ์ 3์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ค์ค๋ก ์ก์ธ์ค๋ฅผ ์ป์์ผ๋ก์จ ์์ ์์ ์์ ์๋น์ค์ ๋ํ ์ ํ๋ ์ก์ธ์ค๋ฅผ ์ป์ ์ ์๋ ์ธ์ฆ ํ๋ ์์ํฌ์ด๋ค. ํํ ๋ณผ ์ ์๋ ๊ตฌ๊ธ ๋ก๊ทธ์ธ, ์นด์นด์ค ๋ก๊ทธ์ธ์ OAuth๋ฅผ ํตํด์ ํด๋น ์๋น์ค์ ๊ฐ์ ํ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ผ๋ จ์ ๊ณผ์ ์ ํตํด์ ์ 3์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ ๊ทผํ ์ ์๋๋ก ํด์ ํ์๊ฐ์ ์ ์๋ตํ๊ณ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ๋ ์๋ค. ๋ํ OAuth์ ์ฌ๋์์ ์ ๊ณตํ๋ api๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋์ด ์๋ ๋ด๊ฐ ๋ง๋ ์น์์ ์ฌ๋์ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ ๋ฑ ์์ ์์ ์๊ฐ ์ ๊ณตํ๋ ์๋น์ค๋ฅผ ์ 3์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ ์๋ ์๋ค. OAuth๋ ํฌ๊ฒ Access Token๊ณผ S.. ๋๋ณด๊ธฐ MongoDB: ๊ณ ๊ธ ์ฟผ๋ฆฌ(Advanced Queries - Aggregation Framework) Aggreagation Pipeline Aggregate() function is used for creating pipelines db.COLLECTION_NAME.aggregate(pipline,options) Documents enter a multi-stage pipline that transforms the documents into an aggregated result → document๋ multi-stage pipline์ ํต๊ณผํด์ aggregated๋ result๋ฅผ ๋ฐํ SQL to Attregation Mapping Chart Aggregation Pipeline Stages $match { $match: {query}} aggregation pipeline์ ๊ฐ๋ฅํ๋ฉด ์์ ๋๋ค. ag.. ๋๋ณด๊ธฐ MongoDB: ์ค๊ธ ์ฟผ๋ฆฌ (Manipulating Data - Intermediate Query) Query embedded document {field : document} ์์๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ ๊ฒ์์ด ์๋จ ๋ชจ๋ embedded document์ ํ๋๊ฐ ์์ผ๋ฉด ๊ฒ์์ด ์๋จ // ์๋ง์ ์ฟผ๋ฆฌ db.inventory.find({size: {h:14, w:21, uom: "cm"}}) // ํ๋ฆฐ ์ฟผ๋ฆฌ // ์์๊ฐ ๋ค๋ฅด๋ฉด ๊ฒ์์ด ์๋๋ค. db.inventory.find({size: {w:21, h:14, uom:"cm"}}) // ๋ชจ๋ ๋งค์น๋์ง ์์ผ๋ฉด, ๊ฒ์์ด ์๋๋ค. db.inventory.find({size: {h:14, w:21}}) (”field.nestedField”) // size.uom์ด "in"์ธ ๊ฐ๋ค์ ์ฐพ๋๋ค. db.inventory.find({"size.uom": "in"}) // size... ๋๋ณด๊ธฐ MongoDB: ๊ธฐ๋ณธ ์ฟผ๋ฆฌ(Basic Quries) ์ด ๊ธ์ ์ ๊ณต "๋น ๋ฐ์ดํฐ์์คํ " ๊ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. Query Document The find() method db.COLLECTION_NAME.find(query, projection) collection๋ด์ ๋ชจ๋ document๋ฅผ select db.inventory.find() db.inventory.find().pretty()SELECT * FROM inventoryQuery operator Comparison operators $eq { field : {$eq: value}} SELECT * FROM inventory WHERE qty = 25 db.inventory.find({qty:{$eq:25}}) db.inventory.find({qty:25}) $gt, $gte, $lt, $l.. ๋๋ณด๊ธฐ MongoDB Overview ์ด ๊ธ์ ์ ๊ณต "๋น ๋ฐ์ดํฐ์์คํ " ๊ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. MongoDB ํ๋์ Collection์ด ์ฌ๋ฌ document๋ฅผ ๋ณด๊ดํ ์ ์๋ Document Database Relationship of RDBMS terminology with MongoDB RDBMS MongoDB Database Database Table Collection Tuple/Row Document column field Table Join Embedded Documents Primary Key Primary Key(Defalut Ket _id provded by mongodb it self) Mysqld/Oracle mongod mysql/sqlplus mongo RDBMS์์๋ 3๊ฐ์ ํ ์ด๋ธ์ด ํ์ํ์ง๋ง, MongoDB.. ๋๋ณด๊ธฐ Big Data Storage ์ด ๊ธ์ ์ ๊ณต "๋น ๋ฐ์ดํฐ์์คํ " ๊ฐ์ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. Centralized Storage Data is stored on the database of one single machine Relational databases Allows related data to be stored across multiple tables, and linked by establishing a relationship between the tables ⇒ ๋ค์์ ํ ์ด๋ธ์ ์ฐ๊ด๋ data๋ฅผ ์ ์ฅํ๊ณ , ํ ์ด๋ธ๋ค๊ฐ์ ๊ด๊ณ๋ฅผ ์ค์ ํ์ฌ ์ฐ๊ฒฐํ ์ ์๋ค. Inflexible - ์ฃผ๋ก structured data์ ์ ํฉํ๊ณ ๋ค๋ฅธ ํ์ ์ ๋ํด ์ ์ฐ์ฑ์ด ์๋ค. Velocity - ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ๋ ๋ฐ์ดํฐ๋ณด๋จ ์ ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ํด ์ค๊ณ๋.. ๋๋ณด๊ธฐ ์ด์ 1 2 ๋ค์