Locations Plugin ๐ŸŒ

๊ธฐ๋Šฅ ์š”์ฒญ ์‚ฌํ•ญ์œผ๋กœ ์ด ์ฃผ์ œ๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ์–ธ๊ธ‰ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ๊ณ„ํšํ•  ๋•Œ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์€ ์ด์ œ ๊ตฌ๊ธ€ ์ง€๋„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์•ˆ๋œ ์ด๋ฒคํŠธ ์žฅ์†Œ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ฉ€๋ฆฌ ๋–จ์–ด์ ธ ์žˆ๋Š”์ง€ ํ™•์ธํ•  ๋•Œ์—๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. (์šฐ๋ฆฌ๋Š” ์Šค์ฟ ๋ฒ„ ๋‹ค์ด๋น™ ํฌ๋Ÿผ์„ ์šด์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์‚ฌ๋žŒ๋“ค์€ ํฌ๋Ÿผ์—์„œ ๋‹ค์ด๋น™ ํŒŒํŠธ๋„ˆ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.)

3๊ฐœ์˜ ์ข‹์•„์š”

@Roi, ๋‹ค์Œ ๋‚ด์šฉ์ด ํฅ๋ฏธ๋กœ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” Discourse Chatbot :robot: ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ์œ„์น˜๋ฅผ ์œ„ํ•œ (์‹คํ—˜์ ) ์ž์—ฐ์–ด ๊ฒ€์ƒ‰์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  • โ€œ๋‚ด ์œ„์น˜์—์„œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด 5๋ช…์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜์—ดํ•ด ์ค˜โ€ โ€ฆ (์œ„์น˜๋ฅผ ๋“ฑ๋กํ•œ ๊ฒฝ์šฐ) โ€ฆ ๋˜๋Š”
  • โ€œ๋‚ด ์œ„์น˜์—์„œ 500km ์ด๋‚ด์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜์—ดํ•ด ์ค˜.โ€
  • โ€œ๋ฒ ๋ฅผ๋ฆฐ์—์„œ 200km ์ด๋‚ด์˜ ์‚ฌ์šฉ์ž๋ฅผ ๋‚˜์—ดํ•ด ์ค˜.โ€

์•„์ง ์ฃผ์ œ(Topic) ์œ„์น˜๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค โ€ฆ ํ•˜์ง€๋งŒ ์ด๋ฏธ 3๋ถ„์˜ 2๋Š” ์™„๋ฃŒ๋˜์–ด ๊ฐœ๋ฐœ ์ค‘์ž…๋‹ˆ๋‹ค โ€ฆ

์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” ๋ฐ์ดํ„ฐ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์•Œ๋ ค ์ฃผ์‹œ๋ฉด ๋„์›€์„ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

8๊ฐœ์˜ ์ข‹์•„์š”

์•„์ง ์ž‘์—… ์ค‘์ธ ์ƒํƒœ์ด๋ฏ€๋กœ ์ด๋ฏธ ์•Œ๊ณ  ๊ณ„์‹ค ์ˆ˜๋„ ์žˆ์ง€๋งŒโ€ฆ

  1. ์‚ฌ์šฉ์ž ์ง€๋„๋ฅผ ์—ด ๋•Œ ๋นˆ ์ง€๋„๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๊ตญ๊ฐ€ ์ง€๋„๋Š” ํ‘œ์‹œ๋˜์ง€๋งŒ ๊ทธ ์œ„์— ์‚ฌ์šฉ์ž๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๋‹ค์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ญ์ƒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์ฐพ์ง€ ๋ชปํ–ˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ง€๋„๋ฅผ ์—ด ๋•Œ ์ตœ์†Œ 50% ์ด์ƒ์˜ ๋นˆ๋„๋กœ ๋นˆ ์ง€๋„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋นˆ ์ง€๋„๋Š” ์‚ฌ์šฉ์ž ์ง€๋„์—์„œ๋งŒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ฃผ์ œ ์ง€๋„์—์„œ๋Š” ์•„์ง ํ™•์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

  2. ์ด๋ฆ„/์‚ฌ์šฉ์ž ์ด๋ฆ„/๋“ฑ ๋ผ๋””์˜ค ๋ฒ„ํŠผ ํ•„๋“œ ์™ผ์ชฝ์— ๋นˆ ํฐ์ƒ‰ ์ƒ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ:

image

1๊ฐœ์˜ ์ข‹์•„์š”
  1. ๋„ค, ์†”๋ฃจ์…˜์ด ์™„๋ฒฝํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ์ œ ๊ด€์‹ฌ์‚ฌ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. PR ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

  2. ์˜๋„์ ์œผ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค: ๊ฒ€์ƒ‰ ์ƒ์ž์ž…๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”

์•„! ๊ทธ๋ ‡๊ตฐ์š”.

๋˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ ํ† ํ”ฝ ๋งต์—๋Š” ํ•ญ๋ชฉ์ด ๋งŽ์ง€ ์•Š์€๋ฐ, ๋ฏธ๊ตญ์—์„œ๋Š” ๋™ํ•ด์•ˆ์— 3๊ฐœ, ์„œํ•ด์•ˆ์— 2๊ฐœ์”ฉ ๊ตฐ์ง‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™ํ•ด์•ˆ ๊ตฐ์ง‘์„ ํด๋ฆญํ•˜๋ฉด ํ™•๋Œ€๋˜์–ด ์„ธ ๊ฐœ์˜ ๊ฐœ๋ณ„ ํ† ํ”ฝ ์œ„์น˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์œ„์น˜ ์ค‘ ์•„๋ฌด ๊ณณ์ด๋‚˜ ํด๋ฆญํ•˜๋ฉด ๊ด€๋ จ ํ† ํ”ฝ์ด ์—ด๋ฆฌ์ง€ ์•Š๊ณ , ์„œํ•ด์•ˆ์˜ ๋‘ ์œ„์น˜๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ๋‹ค์‹œ ํ™•๋Œ€๋ฉ๋‹ˆ๋‹ค. ์ด ํ˜„์ƒ์€ ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค - ์ œ ์‚ฌ์ดํŠธ์—์„œ ์ง์ ‘ ํ™•์ธํ•ด ๋ณด์„ธ์š”: Weather-Watch Forum

2๊ฐœ์˜ ์ข‹์•„์š”

์ •๋ง ํฅ๋ฏธ๋กญ๋„ค์š”! ์ด์ƒํ•˜๊ฒŒ๋„ ์ œ ๋ฐ์ดํ„ฐ์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ง€๋„์—์„œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ฆฌ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ๋„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

Leaflet ๋ฒ„์ „์ด ์ƒ๋‹นํžˆ ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”โ€ฆ ๋ฌธ์ œ๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๊ฒ ์Šต๋‹ˆ๋‹คโ€ฆ

1๊ฐœ์˜ ์ข‹์•„์š”

Leaflet์™€ ์ธ๊ธฐ ์žˆ๋Š” ๋งˆ์ปค ํด๋Ÿฌ์Šคํ„ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋ฒ„์ „์„ ์ตœ์‹ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๋Š”์ง€ ํ™•์ธํ•ด ์ฃผ์„ธ์š”:

์ตœ์‹  ์ฝ”๋“œ๋กœ ์ œ๋Œ€๋กœ ๊นจ์ ธ๋ณด๋Š” ๊ฒƒ๋„ ๊ดœ์ฐฎ์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค :sweat_smile:

(์˜ค๋ž˜๋œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋ฌด์Šจ ๋ฌธ์ œ๋ฅผ ๋…ผ์˜ํ•˜๋Š” ์˜๋ฏธ๊ฐ€ ์—†์ฃ . ์–ด๋–ค ๊ฒƒ๋“ค์ด ์ˆ˜์ •๋˜์—ˆ๋Š”์ง€่ฐ็Ÿฅ้“ํ•  ์ˆ˜ ์—†์œผ๋‹ˆ๊นŒ์š”!).

3๊ฐœ์˜ ์ข‹์•„์š”

๋น ๋ฅธ ์—…๋ฐ์ดํŠธ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ, ์ด์ œ ๋” ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ํ…Œ์ŠคํŠธํ•ด ๋ณธ ๋ช‡ ๊ฐ€์ง€ ์‚ฌ๋ก€์—์„œ๋Š” ์ด์ƒํ•œ ๋™ํ•ด์•ˆ์—์„œ ์„œํ•ด์•ˆ์œผ๋กœ์˜ ์ ํ”„๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋‚ด์ผ ์ข€ ๋” ํ…Œ์ŠคํŠธํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

๋„ค, ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค. ์ข‹์Šต๋‹ˆ๋‹ค! ๋น ๋ฅด๊ฒŒ ๋‹ค์‹œ ํ™•์ธํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

2๊ฐœ์˜ ์ข‹์•„์š”

์˜ค๋Š˜ ์ถ”๊ฐ€ ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ณธ ๊ฒฐ๊ณผ, ๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ๋กœ ์ธํ•ด ์ฒ˜์Œ ์—ด ๋•Œ ๋นˆ ์ง€๋„๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋ฌธ์ œ์™€ ๊ตฐ์ง‘๋œ ์œ„์น˜์—์„œ ๋™ํ•ด์•ˆ์—์„œ ์„œํ•ด์•ˆ์œผ๋กœ ์ด์ƒํ•˜๊ฒŒ ์ ํ”„ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋œ ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค :grinning:

4๊ฐœ์˜ ์ข‹์•„์š”

์ด๋ ‡๊ฒŒ ์•Œ๋ ค์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋ฉฐ์น  ๋™์•ˆ ์—ฌ๊ธฐ์— ์—†์–ด์„œ ๋Œ“๊ธ€์„ ๋‹ฌ์ง€ ๋ชปํ–ˆ๋˜ ์  ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค.

์ •๋ง ์œ ๋งํ•ด ๋ณด์ด๋„ค์š”. :slight_smile: ํ•˜์ง€๋งŒ ํ˜„์žฌ ์šฐ๋ฆฌ ํฌ๋Ÿผ์—์„œ๋Š” AI ์ฑ—๋ด‡์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. OpenAI์—์„œ API ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์œผ๋ ค๋ฉด ์–ผ๋งˆ ์ •๋„์˜ ๋น„์šฉ์ด ๋“ค์ง€ ์•Š์„๊นŒ ๊ณ„์† ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋น„์˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ์šด์˜ํ•˜๋ฉฐ ํšŒ์›์„ ๋Œ€์ƒ์œผ๋กœ ๋ˆ์„ ๋ฐ›์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋ช‡ ์•ˆ ๋˜๋Š” ๊ธฐ๋ถ€๊ธˆ๊ณผ ๊ธฐํƒ€ ์ˆ˜์ž…์œผ๋กœ ์„œ๋ฒ„ ๋ฐ ๋„๋ฉ”์ธ ๋น„์šฉ์กฐ์ฐจ ๊ฒจ์šฐ ์ถฉ๋‹นํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด ๋ฌธ์ œ๋Š” ์šฐ๋ฆฌ์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ์ฃผ์ œ์ž…๋‹ˆ๋‹ค. :wink:

์˜ˆ์‹œ ๊ณ„์‚ฐ์ด ํฌํ•จ๋œ ๊ฒŒ์‹œ๋ฌผ์— ๋Œ€ํ•œ ๋‹ต๋ณ€ ๋งํฌ๊ฐ€ ๋” ์ด์ƒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋””์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ๋ ค์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? :slight_smile:

๊ทธ๋ฆฌ๊ณ  AI ์ฑ—๋ด‡ ํ†ตํ•ฉ ์™ธ์—๋„: ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๊ฑฐ๋ฆฌ ์ •๋ณด๋„ ํฌํ•จํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”? ์–‘์ชฝ ๋ชจ๋‘ ์œ„์น˜๋ฅผ ์„ค์ •ํ•œ ๊ฒฝ์šฐ, ํ˜„์žฌ ๋กœ๊ทธ์ธํ•œ ์‚ฌ์šฉ์ž์—์„œ ์ด๋ฒคํŠธ๋‚˜ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‹จ์ˆœํžˆ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ ๋ง์ž…๋‹ˆ๋‹ค. ์ด์ „์— ์‚ฌ์šฉํ•˜๋˜ phpBB ์œ„์น˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์—์„œ๋Š” ๊ทธ๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

๋น„์šฉ ๊ด€๋ จ ๊ฒŒ์‹œ๊ธ€์€ ์ฃผ์ œ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ง€๊ณ  ์žˆ์–ด์„œ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. OP์—์„œ๋„ ํ•ด๋‹น ๋ถ€๋ถ„์„ ์ œ๊ฑฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. (์™„๋ฃŒ)

์ฒ˜์Œ์—๋Š” ๊ถŒํ•œ์ด ์Šคํƒœํ”„์—๊ฒŒ๋งŒ ๋ถ€์—ฌ๋œ ์ƒํƒœ๋กœ ํ…Œ์ŠคํŠธํ•ด ๋ณด์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ์ฑ„ํŒ…๋ด‡ ์—†์ด ๋กœ์ผ€์ด์…˜(Locations) ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์ œ๊ณตํ•˜๋ ค๋Š” ๊ณ„ํš์€ ์—†์Šต๋‹ˆ๋‹ค.

์„œ๋ธŒํด๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ๋ถ„์„ ์œ„ํ•ด, @renato ๋‹˜์ด ํ•ด๋‹น ๊ตฌ์„ฑ์—์„œ ๋งˆ์ปค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋„๋ก PR์„ ์˜ฌ๋ ค์ฃผ์…จ์Šต๋‹ˆ๋‹ค:

@renato ๋‹˜, ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! :pray:

5๊ฐœ์˜ ์ข‹์•„์š”

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!
๊ฐ„๋‹จํ•œ ์งˆ๋ฌธ ํ•˜๋‚˜:
์ด ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์–ด๋–ป๊ฒŒ ์—…๋ฐ์ดํŠธํ•˜๋‚˜์š”? run ./reset-all-repos๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์œ„ํ—˜ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค.
์ด๋ฏธ ์ž…๋ ฅ๋œ 180๊ฐœ ํ”„๋กœ์ ํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์žƒ์ง€ ์•Š๊ณ  ์ด ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์ž…๋‹ˆ๋‹ค.

1๊ฐœ์˜ ์ข‹์•„์š”

์ •ํ™•ํžˆ ํŠน์ • ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋Œ€ํ•œ ์งˆ๋ฌธ์€ ์•„๋‹ˆ์ง€๋งŒ, ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋“ค์ด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋ ค๋ฉด tests-passed ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ์ •์ ์ธ ์„ค์น˜๋ฅผ ์›ํ•˜์ง€ ์•Š๋Š” ํ•œ ํ•ญ์ƒ ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :sweat_smile: (์•ˆ์ •์ ์ธ ์„ค์น˜๋ฅผ ์›ํ•˜์‹ ๋‹ค๋ฉด ์ด ์—…๋ฐ์ดํŠธ๋Š” ์•„์ง ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค).

์˜จ๋ผ์ธ ์—…๊ทธ๋ ˆ์ด๋“œ(/admin/upgrade์—์„œ)๊ฐ€ ์ž‘๋™ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ํ‘œ์ค€ ์„ค์น˜ ํ™˜๊ฒฝ์ด๋ผ๋ฉด ํ‰์†Œ์ฒ˜๋Ÿผ ./launcher rebuild app์œผ๋กœ ์žฌ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์˜ ์œ ์ง€๋ณด์ˆ˜ ์ˆ˜์ค€์— ๋Œ€ํ•ด์„œ๋Š” ํ™•์‹ ํ•  ์ˆ˜ ์—†์ง€๋งŒ, ์ข‹์€ ๊ฒฐ๊ณผ ์žˆ์œผ์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค! :sweat_smile:

1๊ฐœ์˜ ์ข‹์•„์š”

๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์— ๋‚˜์—ด๋œ ๋ฐฉ๋ฒ•์„ ์‹œ๋„ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
Ubuntu ์‹œ์Šคํ…œ์ด๋ฉฐ, ์žฌ๋ถ€ํŒ…๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๊ณ ,
./launcher restart app, ./launcher start app๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

./launcher rebuild app ์‹คํ–‰ ์‹œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€

......
111:M 12 Dec 2023 12:11:02.199 * DB saved on disk
111:M 12 Dec 2023 12:11:02.200 # Redis is now ready to exit, bye bye...



FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 3553 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

@itsbhanusharma ๋‹˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด์ „ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์–ด, ๊ทธ ์˜ค๋ฅ˜๋“ค์„ ์—ฌ๊ธฐ์— ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.

I, [2023-12-13T00:50:13.222274 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundl                e exec rake db:migrate'
2023-12-13 00:50:18.347 UTC [3597] discourse@discourse ERROR:  invalid input syntax for type double precision: ""

2023-12-13 00:50:18.347 UTC [3597] discourse@discourse STATEMENT:  INSERT INTO locations_topic                 (topic_id, latitude, longitude, name, street, district, city, state, postalcode, country, count                rycode, international_code, locationtype, boundingbox, updated_at, created_at) (
          SELECT
          tc.topic_id,
          (tc.value::json->'geo_location'->>'lat')::FLOAT,
          (tc.value::json->'geo_location'->>'lon')::FLOAT,
          tc.value::json->'geo_location'->>'name',
          tc.value::json->'geo_location'->>'street',
          tc.value::json->'geo_location'->>'district',
          tc.value::json->'geo_location'->>'city',
          tc.value::json->'geo_location'->>'state',
          tc.value::json->'geo_location'->>'postalcode',
          tc.value::json->'geo_location'->>'country',
          tc.value::json->'geo_location'->>'countrycode',
          tc.value::json->'geo_location'->>'international_code',
          tc.value::json->'geo_location'->>'type',
          ARRAY[
            (tc.value::json->'geo_location'->'boundingbox'->>0)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>1)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>2)::FLOAT,
            (tc.value::json->'geo_location'->'boundingbox'->>3)::FLOAT
          ],
          tc.updated_at,
          tc.created_at
        FROM topic_custom_fields tc
        WHERE tc.name = 'location'
        AND tc.value NOT IN ('"{}"', '{}', '')
        AND tc.value::json->'geo_location'->>'lat' IS NOT NULL
        AND tc.value::json->'geo_location'->>'lon' IS NOT NULL
        )
        ON CONFLICT DO NOTHING

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled: (StandardError)

ERROR:  invalid input syntax for type double precision: ""
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'

#--------------
Caused by:
PG::InvalidTextRepresentation: ERROR:  invalid input syntax for type double precision: "" (PG:: InvalidTextRepresentation)
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb: 110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.0/lib/patches/db/pg.rb:  110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'

๊ทธ๋ฆฌ๊ณ  docker ps ๋ฉ”์‹œ์ง€

/var/discourse# docker ps
CONTAINER ID   IMAGE                 COMMAND        CREATED             STATUS         PORTS                                                                      NAMES
d3c8e85149a8   local_discourse/app   "/sbin/boot"   About an hour ago   Up 6 minutes   0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp   app

์งˆ๋ฌธ์ž๋‹˜์˜ ์˜ค๋ฅ˜๋Š” OP(์›๊ธ€ ์ž‘์„ฑ์ž)์˜ ์˜ค๋ฅ˜์™€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์žฌ๋นŒ๋“œ(rebuild)์— ๋Œ€ํ•œ ์ „์ฒด ๋กœ๊ทธ๋ฅผ ์ œ๊ณตํ•ด ์ฃผ์‹ค ์ˆ˜ ์žˆ๋‚˜์š”?

Bhanu๋‹˜, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์žฌ๋นŒ๋“œ ๊ณผ์ •์„ ๋‹ค์‹œ ์ˆ˜ํ–‰ํ–ˆ๊ณ , ์ด์ „ ๊ฒŒ์‹œ๋ฌผ์—์„œ "์ด์ „ ์˜ค๋ฅ˜"๋ฅผ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์‹ค ์ˆ˜ ์žˆ์„๊นŒ์š”?

์œ„์น˜ ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ด€๋ จ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋นŒ๋“œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์ œ์™ธํ•˜๊ณ  ๋‹ค์‹œ ๋นŒ๋“œํ•ด ๋ณด์‹œ๊ฒ ์–ด์š”?

1๊ฐœ์˜ ์ข‹์•„์š”

์ข‹์•„์š”! ๋ฐฉ๊ธˆ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ๊ตฌ์ถ•ํ–ˆ๋Š”๋ฐ, ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์†”์งํžˆ ๋ง์”€๋“œ๋ฆฌ๋ฉด, ์œ„์น˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ด€๋ จ ๋””๋ฒ„๊น…์ด ๊ฐ€๋Šฅํ•˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.