๋กœ์ผ“๐Ÿพ
article thumbnail
[ElasticSearch+Java] analyze ์ž๋ฐ”์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ
... 2021. 8. 27. 11:16

ํ‚ค๋ฐ”๋‚˜์—์„œ ์•„๋ž˜ ์ฝ”๋“œ๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์‘๋‹ต์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. analyzer๋Š” ์ปค์Šคํ…€ analyzer ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. tokenizer๋Š” nori๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , filter๋Š” shingle๋ฅผ ์‚ฌ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. AnalyzeRequest request = AnalyzeRequest.withIndexAnalyzer("st_pdt", "nori_discard_1", pdt.getS_name()); AnalyzeResponse response = client.indices().analyze(request, RequestOptions.DEFAULT); List tokens = response.getTokens(); for(An..

article thumbnail
[JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ
... 2021. 8. 27. 10:55

๋ฌดํ•œ ์Šคํฌ๋กค์€ ์ด์ปค๋จธ์Šค ๊ด€๋ จ๋œ ์›น์ด๋‚˜ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋กค์˜ ์œ„์น˜๊ฐ€ ์–ด๋– ํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ฒŒ ๋˜๋ฉด ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒํ’ˆ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. [JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ์‹œ ์ƒํ’ˆ ์œ„์น˜ ์œ ์ง€ ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋ฐ˜๋“œ์‹œ ๋ณ‘ํ–‰๋˜์–ด์•ผ ํ•  ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ฌดํ•œ ์Šคํฌ๋กค๋กœ ๋ Œ๋”๋ง๋œ ์ƒํ’ˆ์„ ๋ˆ„๋ฅด๊ณ  ๋‹ค์‹œ [๋’ค๋กœ๊ฐ€๊ธฐ]๋ฅผ ํ–ˆ์„ ์‹œ ์—ฌ์ „ํžˆ ๊ทธ ์ƒํ’ˆ์˜ ์œ„์น˜๋กœ ์™€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ kingofbackend.tistory.com ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ ๋ฐ”๋กœ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ฌดํ•œ ์Šคํฌ๋กค ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. var stopping = false; var end = false; $(window).scroll(function () { var cst = $(window).scrollTop(); var ..

article thumbnail
[JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ์‹œ ์ƒํ’ˆ ์œ„์น˜ ์œ ์ง€
... 2021. 8. 27. 10:30

๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์žˆ์–ด ๋ฐ˜๋“œ์‹œ ๋ณ‘ํ–‰๋˜์–ด์•ผ ํ•  ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๋ฌดํ•œ ์Šคํฌ๋กค๋กœ ๋ Œ๋”๋ง๋œ ์ƒํ’ˆ์„ ๋ˆ„๋ฅด๊ณ  ๋‹ค์‹œ [๋’ค๋กœ๊ฐ€๊ธฐ]๋ฅผ ํ–ˆ์„ ์‹œ ์—ฌ์ „ํžˆ ๊ทธ ์ƒํ’ˆ์˜ ์œ„์น˜๋กœ ์™€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. [JavaScript] ๋ฌดํ•œ ์Šคํฌ๋กค ๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๊ธฐ ๋ฌดํ•œ ์Šคํฌ๋กค์€ ์ด์ปค๋จธ์Šค ๊ด€๋ จ๋œ ์›น์ด๋‚˜ ์•ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ์Šคํฌ๋กค์˜ ์œ„์น˜๊ฐ€ ์–ด๋– ํ•œ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•˜๊ฒŒ ๋˜๋ฉด ์ถ”๊ฐ€์ ์œผ๋กœ ์ƒํ’ˆ๋“ค์„ ๋ถˆ๋Ÿฌ์˜ต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•˜๋Š”์ง€ kingofbackend.tistory.com ๋งŒ์•ฝ, ์ด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ƒํ’ˆ์„ ๋ˆ„๋ฅด๊ณ  ๋ง˜์— ๋“ค์ง€ ์•Š์•„ [๋’ค๋กœ๊ฐ€๊ธฐ]๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ ๋‹ค์‹œ ์ด ์ƒํ’ˆ์ด ๋‚˜์™”๋˜ ๊ณณ๊นŒ์ง€ ์Šคํฌ๋กค์„ ๋‚ด๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์˜ ์ง‘, ์•„์ด๋””์–ด์Šค์€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์žˆ๋Š” ์ง€ ํ•œ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. [์˜ค๋Š˜์˜ ์ง‘] ์˜ค๋Š˜์˜ ์ง‘..

article thumbnail
[JavaScript] sessionStorage ์ด์šฉํ•˜๊ธฐ
... 2021. 8. 27. 10:09

function setSessionStorage(key, value){ sessionStorage.setItem(key, value); } function getSessionStorage(key){ return sessionStorage.getItem(key); } function setJSONSessionStorage(key, value){ sessionStorage.setItem(key, JSON.stringify(value)); } function getJSONSessionStorage(key){ return JSON.parse(sessionStorage.getItem(key)); } function removeSessionStorage(key){ sessionStorage.removeItem(ke..

article thumbnail
[AWS] IAM ์œ ์ € ๋ฐ MFA ์ƒ์„ฑํ•˜๊ธฐ
... 2021. 8. 26. 22:15

IAM ์ด๋ž€? IAM(AWS Identity and Access Management)์€ AWS ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. IAM์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋œ ๋Œ€์ƒ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ฆฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋ฅผ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ์ถœ์ž…์ด ํ—ˆ๊ฐ€๋œ ์ธ์›๋“ค์€ ์ถœ์ž… ์นด๋“œ๋ฅผ ํ†ตํ•ด ์ถœ์ž…ํ•˜๊ฑฐ๋‚˜, ๋ฆฌ์ŠคํŠธ์— ๋ฐฉ๋ฌธ ๊ธฐ๋ก์„ ํ•˜๊ณ  ํ—ˆ๊ฐ€๋ฅผ ๋ฐ›์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. IAM์€ ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์ถœ์ž… ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” ์ถœ์ž…์นด๋“œ๋‚˜, ๋ฐฉ๋ฌธ ํ—ˆ๊ฐ€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” AWS ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ๋ณด์•ˆ ์ฃผ์ฒด๊ฐ€ ์ธ์ฆ(Authentication)๊ณผ ๊ถŒํ•œ๋ถ€์—ฌ(Authorization)์„ ๋ฐ›์•„ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์Šน์ธํ•˜๋Š” ๊ฒƒ์ด IAM์˜ ์ฃผ์š” ์ž‘๋™ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. AWS ๊ณ„์ •์„ ์ฒ˜์Œ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์ „์ฒด AWS ์„œ๋น„..

๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค. ๋‚ด์šฉ์„ ๋ณด์‹œ๋ ค๋ฉด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.
article thumbnail
[Docker] ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ์ ‘์†ํ•˜๊ธฐ
... 2021. 8. 25. 13:02

์ด ๊ธ€์€ ๋„์ปค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. $ docker run -d -p 8080:80 --name nginx-exposed --restart always nginx ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์™ธ๋ถ€์—์„œ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -d(detach) : ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์˜ต์…˜ -p(publish) : ์™ธ๋ถ€์—์„œ ํ˜ธ์ŠคํŠธ๋กœ ๋ณด๋‚ธ ์š”์ฒญ์„ ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€๋กœ ์ „๋‹ฌํ•˜๋Š” ์˜ต์…˜์œผ๋กœ -p : ํ˜•์‹์ž…๋‹ˆ๋‹ค. * ์ฐธ๊ณ  : ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ จ ์„ค์ •์€ ์ถ”ํ›„ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์„ค์ •์„ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ๋‹ค์‹œ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋„์ปค์˜ ํŠน์ง•์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋ฐฐํฌ ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๋„์™€์ค๋‹ˆ๋‹ค.

article thumbnail
UUID๊ฐ€ ๊ฒน์น˜๋ฉด ์–ด์ฉŒ์ง€?
... 2021. 8. 25. 09:15

์ด ๊ธ€์€ koreanhole ๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. Intro ์ตœ๊ทผ UOS๊ณต์ง€์‚ฌํ•ญ ์•ฑ์˜ ๋ฐฑ์—”๋“œ ์‹œ์Šคํ…œ์„ ๊ต์ฒดํ•˜๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด Firebase์˜ Firestore๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์— ์ƒˆ๋กญ๊ฒŒ Nestjs๋กœ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค. UOS๊ณต์ง€์‚ฌํ•ญ์˜ ์„œ๋ฒ„์—๋Š” ์ด 3๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ( department, notice, user )์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋ชจ๋ธ์˜ ๋ ˆ์ฝ”๋“œ ๋งˆ๋‹ค ๊ณ ์œ ์˜ id๊ฐ’์„ ๋ฐœ๊ธ‰ํ–ˆ๋Š”๋ฐ ๋ชจ๋‘ uuid(v4)๋กœ ๋ฐœ๊ธ‰ํ–ˆ์Šต๋‹ˆ๋‹ค. uuid๋ฅผ ๋งˆ๊ตฌ์žก์ด๋กœ ๋ฐœ๊ธ‰ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜น์‹œ ๋‚˜์ค‘์— ๊ฒน์น˜๋Š” uuid๊ฐ€ ์žˆ์ง€ ์•Š์„๊นŒ? UUID ์†Œ๊ฐœ uuid๋Š” ๋ฒ”์šฉ๊ณ ์œ ์‹๋ณ„์ž(Universal Unique IDentifier)๋ผ๊ณ  ํ•œ๋‹ค. ๋„คํŠธ์›Œํฌ์ƒ์— ์กด์žฌํ•˜๋Š” ๊ฐœ์ฒด๋“ค์„ ์‹๋ณ„ํ•˜๊ณ  ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ ์ฃผ์ฒด๊ฐ€ ์Šค์Šค๋กœ ์ด๋ฆ„์„ ..

article thumbnail
[Node.js] Socket.io Cors(ํฌ๋กœ์Šค ๋„๋ฉ”์ธ) ํ•ด๊ฒฐํ•˜๊ธฐ
... 2021. 8. 24. 21:38

์›น์„ ๊ฐœ๋ฐœํ•˜๋ฉด ํ•œ๋ฒˆ์€ ๊ผญ Cors ๋ฌธ์ œ๋ฅผ ๋งž๋‹ฅ๋œจ๋ฆฝ๋‹ˆ๋‹ค. ์ฑ„ํŒ… ์„œ๋ฒ„๋ฅผ aws๋กœ ๊ตฌ์ถ•ํ•˜๊ณ , ๋กœ์ปฌ์—์„œ ์ฑ„ํŒ… ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•˜์—ฌ ์ฑ„ํŒ…์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์—ญ์‹œ๋‚˜ ๋„๋ฉ”์ธ์ด ๋‹ฌ๋ผ Cors ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค. Node.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ค‘ 'Cors'๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์ง€๋งŒ Socket.io์—์„œ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ๋ผ์„œ ์ด๊ฑธ๋กœ๋Š” ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณธ ๊ฒฐ๊ณผ Socker.io ๊ณต์‹๋ฌธ์„œ์— ๋‹คํ–‰ํžˆ ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. "socket.io": "^4.1.3" ๋ฒ„์ „ ๊ธฐ์ค€์ž…๋‹ˆ๋‹ค. const io = require("socket.io")(server, { cors: { origin: "*", methods: ["GET", "POST"] } }); ์œ„ ์ฝ”๋“œ๋ฅผ server-side์— ์ž‘์„ฑํ•ด์ฃผ์‹œ๊ณ , client-side์—๋Š” ์•„..

article thumbnail
[Docker] ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€ ์•Œ์•„๋ณด๊ธฐ
... 2021. 8. 24. 20:55

์ด ๊ธ€์€ ๋„์ปค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฏธ์ง€๋Š” ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ผ๊ณ  ํ•˜๋Š” ์ €์žฅ์†Œ์— ๋ชจ์—ฌ์žˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋Š” ๋„์ปค ํ—ˆ๋ธŒ์ผ์ˆ˜๋„ ์žˆ๊ณ , ๋‚ด๋ถ€์— ๊ตฌ์ถ•ํ•œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ๋ณ„๋„์˜ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ๋ฅผ ๋ช…์‹œํ•˜์ง€ ์•Š์œผ๋ฉด ๋„์ปค ํ—ˆ๋ธŒ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค. $ docker search nginx ์œ„ ๋ช…๋ น์–ด๋กœ nginx์— ๋Œ€ํ•œ ์ด๋ฏธ์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. INDEX : ์ด๋ฏธ์ง€๊ฐ€ ์ €์žฅ๋œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. NAME : ๊ฒ€์ƒ‰๋œ ์ด๋ฏธ์ง€ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๊ณต์‹ ์ด๋ฏธ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด '๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ฃผ์†Œ/์ €์žฅ์†Œ ์†Œ์œ ์ž/ ์ด๋ฏธ์ง€ ํ˜•ํƒœ' ์ž…๋‹ˆ๋‹ค. DESCRIPTION : ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์„ค๋ช…์ž…๋‹ˆ๋‹ค. STARS : ์ข‹์•„์š” ๊ฐฏ์ˆ˜์ž…๋‹ˆ๋‹ค. OFFICAL : ์ด๋ฏธ์ง€์— ํฌํ•จ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๋ฏธ๋“ค์›จ์–ด ๋“ฑ์„ ๊ฐœ๋ฐœํ•œ ์—…์ฒด์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•œ..

article thumbnail
[Elastic Search] TokenFilter - NGram
... 2021. 8. 24. 15:09

์ด ๊ธ€์€ ๊น€์ข…๋ฏผ(kimjmin@gmail.com)๋‹˜์˜ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฌด๋‹จ ๋ณต์ œ/์ˆ˜์ •์„ ๊ธˆํ•ฉ๋‹ˆ๋‹ค. Elasticsearch๋Š” ๋น ๋ฅธ ๊ฒ€์ƒ‰์„ ์œ„ํ•ด ๊ฒ€์ƒ‰์— ์‚ฌ์šฉ๋  ํ…€ ๋“ค์„ ๋ฏธ๋ฆฌ ๋ถ„๋ฆฌํ•ด์„œ ์—ญ ์ธ๋ฑ์Šค์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณผํ•™ ์šฉ์–ด์ง‘ ๊ฒ€์ƒ‰ ๊ฐ™์€ ํŠน์ •ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋”ฐ๋ผ ํ…€์ด ์•„๋‹Œ ๋‹จ์–ด์˜ ์ผ๋ถ€๋งŒ ๊ฐ€์ง€๊ณ ๋„ ๊ฒ€์ƒ‰ํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. RDBMS์˜ LIKE ๊ฒ€์ƒ‰ ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๋Š” wildcard ์ฟผ๋ฆฌ๋‚˜ regexp (์ •๊ทœ์‹) ์ฟผ๋ฆฌ๋„ ์ง€์›์„ ํ•˜์ง€๋งŒ, ์ด๋Ÿฐ ์ฟผ๋ฆฌ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๊ฐ€ ๋งŽ๊ณ  ๋А๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์— Elasticsearch์˜ ์žฅ์ ์„ ํ™œ์šฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฐ ์‚ฌ์šฉ์„ ์œ„ํ•ด ๊ฒ€์ƒ‰ ํ…€์˜ ์ผ๋ถ€๋งŒ ๋ฏธ๋ฆฌ ๋ถ„๋ฆฌํ•ด์„œ ์ €์žฅ์„ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ ‡๊ฒŒ ๋‹จ์–ด์˜ ์ผ๋ถ€๋ฅผ ๋‚˜๋ˆˆ ๋ถ€์œ„๋ฅผ NGram ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต์€ unigram(์œ ๋‹ˆ๊ทธ๋žจ ..

article thumbnail
[Kubernetes] ๋ฐฐํฌ๋œ ํŒŒ๋“œ์˜ ์„ธ๋ถ€ ๊ฐ’์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•
... 2021. 8. 24. 12:42

์ด ๊ธ€์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. $ kubectl get pod pod-name -o yaml ์œ„ ๋ช…๋ น์–ด๋Š” ํŒŒ๋“œ์— ๋Œ€ํ•œ yaml ํŒŒ์ผ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. $ kubectl get pods pod-name -o yaml > pod.yaml ๋”ฐ๋ผ์„œ ์œ„์— ๋ช…๋ น์–ด๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ์ถ”ํ›„ ํ•ด๋‹น ํŒŒ๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.

article thumbnail
[Kubernetes] ํŒŒ๋“œ(pods)์˜ ๋™์ž‘ ๋ณด์ฆ ๊ธฐ๋Šฅ
... 2021. 8. 24. 12:35

์ด ๊ธ€์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค์—์„œ ํŒŒ๋“œ ์ž์ฒด์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํŒŒ๋“œ๋ฅผ ์ž๋™ ๋ณต๊ตฌํ•ด์„œ ํŒŒ๋“œ๊ฐ€ ํ•ญ์ƒ ๋™์ž‘ํ•˜๋„๋ก ๋ณด์žฅํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. deployment๋กœ ์ƒ์„ฑํ•œ ์˜ค๋ธŒ์ ํŠธ์™€ ๊ทธ๋ƒฅ ํŒŒ๋“œ ์˜ค๋ธŒ์ ํŠธ 2๊ฐœ๊ฐ€ ์žˆ๊ณ , ์ด๋ฅผ ์‚ญ์ œํ–ˆ๋‹ค๊ณ  ํ–ˆ์„ ์‹œ kubectl get pods ๋ช…๋ น์–ด๋กœ์˜ค๋ธŒ์ ํŠธ๋“ค์„ ํ™•์ธํ•ด๋ณด๋ฉด deployment ์˜ค๋ธŒ์ ํŠธ๋งŒ ์‚ด์•„์žˆ์Šต๋‹ˆ๋‹ค. deployment ์•ˆ์— ์žˆ๋Š” replicat์…‹์— ์˜ํ•ด์„œ ํŒŒ๋“œ์˜ ๊ฐฏ์ˆ˜๋ฅผ ์œ ์ง€ํ•˜๋ ค๊ณ  ํ•˜๊ธฐ ๋•Œ๋ฌธ์— deployment๋กœ ์ƒ์„ฑํ•œ ํŒŒ๋“œ๋“ค์€ ์‚ญ์ œ๋˜๋„ ๋‹ค์‹œ ์ƒ์„ฑ์ด ๋ฉ๋‹ˆ๋‹ค. age๋ฅผ ๋ด๋„ ๋‹ค์‹œ ์ƒ์„ฑ๋œ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ƒฅ ํŒŒ๋“œ๋Š” ์ด๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™๋ณต๊ตฌ๊ฐ€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. *์ฐธ๊ณ  : ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ํด๋Ÿฌ์Šคํ„ฐ..

article thumbnail
[Kubernetes] kubectl exec -it ๋ช…๋ น์–ด์—์„œ -- ์˜๋ฏธ
... 2021. 8. 24. 12:28

์ด ๊ธ€์€ ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ณต๋ถ€ํ•œ ํ”์ ์„ ๋‚จ๊ธฐ๊ธฐ ์œ„ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๋ฐฐํฌํ•œ ํŒŒ๋“œ์— ์ ‘๊ทผ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” $ kubectl exec -it nginx-pod -- /bin/bash ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ 2๊ฐœ์˜ ๋ช…๋ น์–ด๋ฅผ ์˜ˆ์ œ๋กœ ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ kubectl exec -it nginx-pod ls -l /run $ kubectl exec -it nginx-pod -- ls -l /run ์ฒซ๋ฒˆ์งธ ๋ช…๋ น์–ด๋Š” -l ์˜ต์…˜์„ exec์˜ ์˜ต์…˜์œผ๋กœ ์ธ์‹ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‘๋ฒˆ์งธ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ์˜๋„ํ•œ๋Œ€๋กœ /run์˜ ๊ถŒํ•œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ๊ตณ์ด ํ•„์š”ํ•˜์ง€ ์•Š์•„๋„ exec๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋ช…์‹œ์ ์œผ๋กœ '--'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—๋Ÿฌ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

article thumbnail
[Node.js] Ubuntu์—์„œ Node.js ๋ฒ„์ „์—… ํ•˜๊ธฐ
... 2021. 8. 24. 12:24

distro-stable version ์„ค์น˜ (apt) ๊ฐ„๋‹จํ•˜๊ฒŒ apt๋ฅผ ์ด์šฉํ•ด ์„ค์น˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ sudo apt update $ sudo apt install nodejs $ sudo apt install npm ๊ทธ๋Ÿฐ๋ฐ ๋ฒ„์ „์ด ๋„ˆ๋ฌด ๋‚ฎ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  ๋ฒ„์ „์„ ๋ฐ›๊ธฐ ์œ„ํ•ด PPA(Personal package archive)๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. PPA๋กœ ์„ค์น˜ NodeSource์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜๋Š” PPA์—์„œ ์ข€ ๋” ์ตœ์‹  ๋ฒ„์ „์„ ๋ฐ›์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฒŒ์‹œ๋ฌผ ์ž‘์„ฑ ์ผ์ž ๊ธฐ์ค€ LTS ๋ฒ„์ „์€ 12.18.3, Latest ๋ฒ„์ „์€ 14.7.0์ธ๋ฐ Latest์ธ 14๋ฒ„์ „์œผ๋กœ ์„ค์น˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_14_setup.sh ์„ค..

profile on loading

Loading...