Discourseμμ μ½μμ μ¬μ©ν λ μ€ν° μμ΄ μ¬μ©ν μ μλμ?
리맡μ μλν λ λ΄μ΄ μ€λ₯λ₯Ό μλ €μ£Όλ κ±Έ λ³Ό μ μμ΄μ ![]()
Discourseμμ μ½μμ μ¬μ©ν λ μ€ν° μμ΄ μ¬μ©ν μ μλμ?
리맡μ μλν λ λ΄μ΄ μ€λ₯λ₯Ό μλ €μ£Όλ κ±Έ λ³Ό μ μμ΄μ ![]()
κ·Έ λ§μμ΄ μ νν λ¬΄μ¨ λ»μΈμ§ μμ ν νμ μ μμ΅λλ€. μνΈμμ©μ λμ€μ½λμμ μΌμ΄λλλ‘ λμ΄ μκ±°λ μ.
κ·Έλλ μ΄λ€ μ€λ₯κ° λ°μνκ³ μλμ? λμ€μ νλ² νμΈν΄ λ³Όκ²μ.
μ λ κ°μ λ¬Έμ λ₯Ό κ²ͺκ³ μμ΅λλ€. discourse 컨ν μ΄λμ μ§μ ν ν rails c ν둬ννΈλ₯Ό μμνλ©΄ λ΄μ λ€λ₯Έ μΈμ€ν΄μ€κ° μμ±λ©λλ€. κ·Έ κ²°κ³Ό Ping! κ°μ λͺ λ Ήμ λν΄ Pong!μ΄ λ λ² λ°νλκ³ , discordrbλ₯Ό ν΅ν΄ μ¬μ©μ μ΄λ¦μ΄λ λλ€μμ λ³κ²½ν μ μλ λ±μ λ¬Έμ κ° λ°μν©λλ€.
::DiscordBot::Bot.discord_bot.stop λͺ λ Ήμ μ€ννλ©΄ rails cμμ μμ±λ μΈμ€ν΄μ€λ μ’ λ£λμ§λ§, Discourse μμ μ μμ±λ λ΄ μΈμ€ν΄μ€μλ μν₯μ μ€ μ μμ΅λλ€.
리ν¬νΈ κ°μ¬ν©λλ€. μ΄ λ¬Έμ λ₯Ό μλ €μ§ λ¬Έμ λ‘ κΈ°λ‘νκ² μ΅λλ€. (νΈμ§: μλ£ - OPμ βμλ €μ§ λ¬Έμ β μΉμ μ μΆκ°). λ€λ§ μ΄ λ¬Έμ λ μ²μλΆν° μ΄λ κ² λμν΄ μ¨ κ²μΌλ‘ 보μ΄λ©°, λ³΄κ³ κ° λ§€μ° μ΅κ·Όμλ§ λͺ μ°¨λ‘ μ΄λ£¨μ΄μ‘μ λΏμ΄λΌ μΌλ°μ μΌλ‘ ν° λ¬Έμ λ‘ μ¬κ²¨μ§μ§ μλ κ²μΌλ‘ μκ°λ©λλ€. μ΄λ μ£μ§ μΌμ΄μ€μ΄κΈ° λλ¬Έμ λλ€.
κΈ°μ μ μΌλ‘ λ₯μν΄ λ³΄μ΄μλ, ν΄κ²°νμ€ μ μλ€λ©΄ PRμ νμν©λλ€.
μμ§ν λ§νλ©΄, Discordrb μ체μ ν΅μ¬ λ¬Έμ μΌ μλ μμ΅λλ€. λ¬Έμμμ λ€λ₯Έ μ€ν μ€μΈ λ΄μ λͺ©λ‘μΌλ‘ νμνκ±°λ μ ννλ λ°©λ²μ μ°Ύμ μ μκ±°λ μ. μμλ΄λ©΄ μλ €λλ¦¬κ² μ΅λλ€. μ΄ λ΄μ κ΄ν΄μλ νλ‘μ νΈλ₯Ό ν¬ν¬ν΄μ μ λ₯λ ₯κ» μ±ν λΈλ¦¬μ§λ‘ λμνλλ‘ μμ νμ΅λλ€.
λ€, μ°λ¦¬κ° ν΄μΌ ν μΌμ μΈμ€ν΄μ€κ° μ€ν μ€μΈμ§ ν μ€νΈν μ μμ΄μΌ νκ³ , μ΄λ―Έ μ‘΄μ¬νλ μΈμ€ν΄μ€κ° μμΌλ©΄ μλ‘μ΄ μΈμ€ν΄μ€λ₯Ό μ€ννμ§ μλ κ²μ λλ€.
μ΄λ λ μ΄μ€ 컨λμ (κ²½μ μν)μ΄ λ°μν μ μλ μνν μμμ΄μ§λ§, μ λ§ νλ₯ν κ°μ μ¬νμ΄ λ κ²μ λλ€.
λ λ§μ μκ°μ΄ μμλ€λ©΄ λ μΌμ° μ΄ν΄λ³΄μμ ν λ°, μ§μ μλν΄ λ³΄κ³ μΆλ€λ©΄ μμ λ‘κ² ν΄ μ£ΌμΈμ.
λ μΌμ¦ μ½μμ΄ μμλ λ @@DiscordBot λ³μκ° λ€λ₯Έ μ€λ λμ λ€λ₯Έ λ΄μ λ°μΈλ©λκ³ , μλ λ΄μ κ·Έλλ‘ λ¨μ μλ κ²μΌλ‘ 보μ
λλ€. λ μΌμ¦ μ½μμ΄ μμλλ κ²μ κ°μ§νμ¬ λ λ²μ§Έ λ΄μ μμμ λ°©μ§ν μ μλμ§ νμ€νμ§λ μμ§λ§, μ΄κ²μ΄ λ μΌμ¦λ₯Ό ν΅ν΄ λ΄μ μ€μ§ λͺ
λ Ήμ μ€νν΄λ Discourseμ ν¨κ» μμλ λ΄μλ μν₯μ λ―ΈμΉμ§ μλ μ΄μ λ₯Ό μ€λͺ
ν©λλ€.
μλ νμΈμ,
μ λ΄€μ΅λλ€. μ΄κ±Έ μ¬μ©ν΄λ³΄κ³ μΆμλ°, λ¨Όμ κ΄λ ¨μ΄ μλ μ§λ¬Έμ΄ νλ μμ΅λλ€. μ½κ°β¦
μ λ Discourse WP-Connectλ₯Ό μ¬μ©νμ¬ WordPressλ₯Ό SSOμ "λ§μ€ν°"λ‘ μ¬μ©νκ³ μμ΅λλ€ (μ΄κ²μ Discord λ‘κ·ΈμΈλ μ¬μ©ν μ μμ΅λλ€). μ΄ νλ¬κ·ΈμΈμ΄ Discord μ¬μ©μμ λ§€μΉλλλ‘ SSO μμ²μ μ΄λ€ "μ¬μ©μ λ³μ"λ₯Ό μ λ¬ν΄μΌ νλμ§ μμλμ? μλλ©΄ μ΄λ©μΌλ§ νμν 건κ°μ? (μλλΌκ³ μκ°νμ§λ§)
μ΄λ―Έ λͺ κ°μ§ μΆκ° κ°μ 보λ΄κ³ μμ΄μ, μΆκ°λ‘ νλλ§ λ 보λ΄λ©΄ λ κ² κ°μμμ?
OP(μκΈ)μ λ°λ₯΄λ©΄, κ΄κ³ μ€μ μ μν΄ Discordλ₯Ό ν΅ν μΈμ¦(λ΄μ₯λ μ½μ΄ λ‘μ§ μ¬μ©)μ΄ νμν©λλ€.
Wordpressμμ νλμ½λ©λ SSOλ₯Ό μ¬μ©νλ©΄ νΉν μ κ· μ¬μ©μμ κ²½μ° μ΄λ₯Ό λ°©ν΄ν μ μμ΅λλ€.
ν΄κ²° λ°©λ²μ μ°ΎμΌμ ¨λ€λ©΄ PR λλ μΆκ° λ¬Έμ μμ±μ νμν©λλ€.
μ’μ μμ μ΄λ€μ, μνμ΄μ. μ μ©ν ν΅μ°°λ ₯μ λλ€.
λ§μ, λ΄κ° μ€μ λ‘ λ¬Όμ΄λ³Έ 건 μ’ μλκΈ΄ νλ°, μ΄μ Discourseμ Discord λ‘κ·ΈμΈμ΄ κΈ°λ³ΈμΌλ‘ λ΄μ₯λμ΄ μμΌλ μ§μμ λ¬Έμνλ κ² κ°μ₯ μ’μ κ² κ°μ.
λ€, μ΄ νλ¬κ·ΈμΈμ λ²μλ₯Ό λμ΄ μλνλ μ€ SSOλ₯Ό μ§μνλ κ²μ μλλλ€.
νμ§λ§ μ¬λ°λ₯Έ λ°©ν₯μΌλ‘ μλ΄ν΄ λ리μλ©΄, μ΄ ν μ΄λΈμ νλͺ©μ΄ μμ΄μΌ ν©λλ€:
μ΄κ²μ λμ€μ½λλ‘ λ‘κ·ΈμΈν λ μλμΌλ‘ μ²λ¦¬λ©λλ€.
μλνλ μ€ SSOκ° λμ€μ½λλ₯Ό λμ ν΄ μ΄ νλͺ©μ μ±μΈ μ μμμ§λ μλ¬Έμ΄ λ€μ§λ§, νλ Έλ€λ κ²μ μ μ¦ν΄ μ£Όμ λ€λ©΄ λ°κ°κ² μ΅λλ€.
λν λμ€μ½λ λμ μ¬μ©μκ° μ¬μ©ν΄μΌ νλ OAuth μμ€κ° μμ΅λλ€. μ΄λ₯Ό μ°ννκΈ° μν΄ OPμμ μΈκΈλ λμ€μ½λ OAuthλ₯Ό κ·Έλλ‘ λλ, display: none; CSS μ΅μ
μ μ¬μ©νμ¬ λ΄κ° μ¬μ©μμκ² μ¬μ©νκ² νκ³ μΆμ λ‘κ·ΈμΈ μμ€ νλλ₯Ό μ μΈν λͺ¨λ λ€λ₯Έ λ‘κ·ΈμΈ μμ€λ₯Ό μ¨κ²Όμ΅λλ€. λμ€μ½λμμ OAuth κΈ°λ₯μ HTMLμ βκΈ°μ μ μΌλ‘β μ¬μ ν λ¨μ μμ§λ§, μΌλ°μ μΈ μ΅μ’
μ¬μ©μλ μ΄λ₯Ό λ°κ²¬ν κ°λ₯μ±μ΄ μμ΅λλ€.
μ¬μ©μλ μμ μ μ¬μ©μ μ€μ μμ λ€λ₯Έ OAuth μμ€κ° μμ±ν κ³μ μ λμ€μ½λλ₯Ό "μ°κ²°"ν μ μμ΅λλ€.
μ’λ€μ, κ·Έκ±Έ μ°ν λ°©λ²μΌλ‘ μ¬μ©ν μ μκ² λ€μ. νμ§λ§ μ€μ μ½λ ν΄κ²°μ± μ μ‘°μ¬ν΄λ³Ό μλ μμ κ² κ°μμ. κ·Έλ¬λ©΄ μ΄ λ΄μ©μ΄ λμ€μ½urse μ€μ μ νμλλμ? μ΄ μ£Όμ λ₯Ό λ무 κΈΈκ² λ§λ€μ§ μλλ‘ DMμΌλ‘ μ΄μΌκΈ°νλ κ² μ’μκΉμ?
μ Discord μ±λμ Discourseμ μ£Όμ (Topics)κ° μλλΌ μΉ΄ν κ³ λ¦¬(Categories)μ λ§€μΉνλμ? μ€λ³΅λ μ΄λ¦μ μ£Όμ κ° μμ μ μκΈ° λλ¬ΈμΈκ°μ? 5κ°μ μ±λμ 3κ° μΉ΄ν κ³ λ¦¬μ κ΄λ ¨ μ£Όμ μ μ°κ²°νκ³ μΆμλ°, μ΄κ²μ΄ λΆκ°λ₯ν κ² κ°λ€μ?
λ¨μΌ μ£Όμ μ λν 곡μ§λ§ κ³μλλ©΄ κ½€ μ§λ£¨ν΄μ§ κ² κ°μμ?
μλμ μΌλ‘ λμ μμ€μΌλ‘ μ€κ³λμ΄ μμ΄, νΉμ μΉ΄ν κ³ λ¦¬μμ μ μ£Όμ λ₯Ό 곡μ§ν μ μμ΅λλ€.
λ―Έμνμ§λ§, μ΄κ±΄μ λν΄ λ§ν κ±°μμ

그건 ν΄λΌμ΄μΈνΈμ μμ²μ΄μμ΄μ ![]()
κΈ°μ΅μ΄ λ§λ€λ©΄, λͺ¨λ μ±ν μ μΉ΄ν κ³ λ¦¬λΉ νλμ TopicμΌλ‘ λͺ¨μμ Έμ λ무 λ§μ TopicμΌλ‘ μΈν΄ νΌλμ΄ μκΈ°λ κ²μ λ°©μ§ν©λλ€.
μκ² μ΅λλ€
λ¬Όλ‘ μ΄μ£ . νμ§λ§ μΉ΄ν κ³ λ¦¬λ₯Ό μ¬μ©νκ³ μκΈ° λλ¬Έμ, μλ₯Ό λ€μ΄ Discordμ #ford-support μ±λμμ λκΈ°νλλ μ βFordβ μΉ΄ν κ³ λ¦¬ μμ β#ford-supportβ μ€λ λλ₯Ό λ§λ€ μ μμ΅λλ€. Rubyλ μ κ° μ νΈνλ μΈμ΄κ° μλκΈ° λλ¬Έμ, Rubyκ° μλ λ€λ₯Έ λ§μ κ²λ€κ³Ό λ¬λ¦¬ ν¬ν¬νμ¬ μμ νλ κ²μ μ΄λ €μΈ κ² κ°μ΅λλ€.
ν ν½/μ€λ λ μ΄λ¦ κΈ°λ°μΌλ‘ λμνλλ‘ λ§λλ κ²μ΄ μ¬μ΄ μΌμΌκΉμ? μλλ©΄ μ΄λ€ μ ν μ¬νμ΄ μλ κ±ΈκΉμ?
μ°Έκ³ λ‘ μ΄λ―Έμ§(ν₯λ―Έλ‘κ²λ GIFλ)κ° ν ν½μΌλ‘ λκΈ°νλμ§ μμ΅λλ€. μ΄κ²μ΄ μλ €μ§ λ¬Έμ μΈμ§ λͺ¨λ₯΄κ² λ€μ.
μμ : μ, μ κΉ. μμ±λ νμ ν ν½μ μ΄λν μ μλ κ² κ°μ΅λλ€.
λ§μ§λ§μΌλ‘ νμΈνμ λ Ruby Discord APIμλ Threads κΈ°λ₯μ΄ μ 곡λμ§ μμμ§λ§, "κ°λ° μ€"μ΄λΌκ³ λ€μμ΅λλ€(κ·Έκ²λ 2λ μ μ΄μΌκΈ°μ λλ€!)
Threads μ§μμ΄ κ°λ₯ν΄μ§λ©΄ ν΄λΉ κΈ°λ₯μ μΆκ°νλ PRμ νμν©λλ€.
μμ¦ κ°μΈ μμ μΈμλ μ λ£ νλ‘μ νΈμλ§ μ§μ€νκ³ μμ΄ νλ¬κ·ΈμΈ κΈ°λ₯ κ°λ°μ λ§μ μκ°μ ν μ νκΈ°λ μ΄λ ΅μ§λ§, PR 리뷰λ κΈ°κΊΌμ΄ λμλλ¦¬κ² μ΅λλ€.