vivimbob/ft_irc

๐Ÿ’ก [LIST command] LIST ๋ช…๋ น์–ด ๊ตฌํ˜„ํ•˜๊ธฐ

Yudongwoo opened this issue ยท 1 comments

๐Ÿ”‘ How

๊ตฌํ˜„ ์‚ฌํ•ญ

  • ๋ฉ”์‹œ์ง€ ํ˜•์‹
    • LIST [์ฑ„๋„ ์ด๋ฆ„1],[์ฑ„๋„ ์ด๋ฆ„2],... ๋กœ ์„ ํƒ
    • ์ด์œ 
      • ๋‘ ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์–ด๋„ LIST ๋ช…๋ น์–ด์˜ ๊ธฐ๋ณธ ์—ญํ• ์€ ์ถฉ๋ถ„ํ•จ.
      • RFC 1459, RFC 2812์˜ ๊ฒฝ์šฐ๋Š” ๋‹ค์ค‘ ์„œ๋ฒ„์ผ ๋•Œ ์˜๋ฏธ๊ฐ€ ์žˆ์Œ.
      • modern irc๋Š” ๋ถ€๊ฐ€์ ์ธ ๊ธฐ๋Šฅ์ž„.
  • Numeric reply
    • RPL_LIST์™€ RPL_LISTEND๋งŒ ์‚ฌ์šฉ.
    • ์ด์œ 
      • RPL_LISTSTART
        • LIST ๋ช…๋ น์–ด ์‘๋‹ต์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค๋Š” ๊ฑธ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•จ์ธ๋ฐ
          RPL_LIST๊ฐ€ ๋ฐ”๋กœ ๋‚˜์™€๋„ LIST ๋ช…๋ น์–ด ์‘๋‹ต์ด ์‹œ์ž‘๋˜์—ˆ๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ
          ๋ณ„ ํ•„์š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•จ.
        • modern irc์—์„œ๋„ ํด๋ผ์ด์–ธํŠธ๊ฐ€ RPL_LISTSTART ์‘๋‹ต์— ์˜์กดํ•˜๋ฉด ์•ˆ๋œ๋‹ค๊ณ  ๋‚˜์™€ ์žˆ์Œ.(MUST NOT)
      • RPL_TOOMANYMATCHES : ์„ค๋ช… ์ž์ฒด๊ฐ€ ์•ˆ ๋‚˜์™€์žˆ์–ด์„œ ๋ฌด์‹œํ•จ.
      • ERR_NOSUCHSERVER : ๋‹ค์ค‘ ์„œ๋ฒ„์ผ ๋•Œ ์˜๋ฏธ๊ฐ€ ์žˆ์–ด์„œ ํ•„์š”์—†์Œ.
      • RPL_LIST
        • ์ฑ„๋„ ์ด๋ฆ„, ํด๋ผ์ด์–ธํŠธ ์ˆ˜, ์ฑ„๋„ ์ฃผ์ œ๋ฅผ ์ถœ๋ ฅ.
        • private ์ฑ„๋„์€ "Prv"๋กœ ์ฑ„๋„ ์ด๋ฆ„ ๋Œ€์ฒดํ•˜๋ฉฐ ์ฑ„๋„ ์ฃผ์ œ๋Š” ์žˆ์–ด๋„ ์ถœ๋ ฅ ์•ˆ ํ•จ.
        • secret ์ฑ„๋„์€ ์•„์˜ˆ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Œ.
        • ๋‹จ ๋ณด์ด์ง€ ์•Š๋Š” ์ฑ„๋„์— ๊ฐ€์ž…๋˜์–ด ์žˆ์œผ๋ฉด ์ผ๋ฐ˜ ์ฑ„๋„์ฒ˜๋Ÿผ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•จ.
  • ํด๋ผ์ด์–ธํŠธ์˜ visible์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ํด๋ผ์ด์–ธํŠธ ์ˆ˜์— ๋ฐ˜์˜ํ•  ์˜ˆ์ •.
    • ์ด์œ 
      • LIST ๋ช…๋ น์–ด๋Š” ์ฑ„๋„์˜ ์ •๋ณด๋ฅผ ๋‚˜์—ดํ•ด์ฃผ๋Š” ์—ญํ• ์„ ํ•จ.
      • ํด๋ผ์ด์–ธํŠธ๊ฐ€ invisible ํ•œ ์ƒํƒœ์— ์žˆ๋‹ค๋Š” ๊ฑด
        ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ง์ ‘์ ์ธ ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋ช…๋ น์–ด์—
        ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๋กœ ํ•ด์„๋จ.
      • ๋ฌธ์„œ๋‚ด์˜ LIST ๋ช…๋ น์–ด์—๋Š” invisible ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์–ธ๊ธ‰์ด ์—†์Œ.
  • ์ฑ„๋„ ์ƒํƒœ๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฑ„๋„์— ๊ฐ€์ž…๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ๋Š” ๋”ฐ๋กœ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ.
    • ์ด์œ 
      • secret์€ ์•„์˜ˆ ๋‚˜์—ด๋˜์ง€ ์•Š๊ณ ,
      • private์€ "Prv"๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ถœ๋ ฅํ•  ์˜ˆ์ •.
      • public์€ ์ฑ„๋„ ์ด๋ฆ„์„ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๋ผ์„œ
      • ๊ตณ์ด "=", "@", "*"๋กœ ๊ตฌ๋ถ„ํ•  ํ•„์š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•จ.
      • ๋‹จ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฑ„๋„์— ๊ฐ€์ž…๋˜์–ด ์žˆ์„ ๋•Œ๋Š”
        ์ผ๋ฐ˜ ์ฑ„๋„์ฒ˜๋Ÿผ ์ฑ„๋„ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•  ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์—
        "=", "@", "*"๋กœ ๊ตฌ๋ถ„ํ•  ์˜ˆ์ •.
  • ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ ํ•จ์ˆ˜๋กœ ๋ฌถ์„ ์˜ˆ์ •.

โœ” To-dos

  • LIST ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ 0๊ฐœ์ผ ๋•Œ 1๊ฐœ์ผ ๋•Œ ๋‚˜๋ˆ ์„œ ์‹œ์ž‘
    • LIST ํŒŒ๋ผ๋ฏธํ„ฐ ์—†์„ ์‹œ
      • ํ˜„์žฌ ๊ฐœ์„ค๋˜์–ด ์žˆ๋Š” ์ฑ„๋„ ์ˆœํšŒ
        • ๊ฐ€์ž…๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ๊ฐ€์ž… ์•ˆ๋˜์–ด์žˆ์ง€๋งŒ public ์ฑ„๋„์ผ ๋•Œ
          • ์ฑ„๋„ ์ƒํƒœ๋ฅผ ์ฑ„๋„ ์ด๋ฆ„ ์•ž์— ๋ถ™์ž„.
          • ํด๋ผ์ด์–ธํŠธ ์ˆ˜ ์ฒดํฌ
          • ์ฃผ์ œ ์žˆ์œผ๋ฉด ์ฃผ์ œ ์ถœ๋ ฅ.
          • ์ฃผ์ œ ์—†์œผ๋ฉด ๋น„์›Œ๋‘ .
          • RPL_LIST.
          • RPL_LISTEND.
        • ๊ฐ€์ž… ์•ˆ๋˜์–ด์žˆ์„ ๋•Œ
          • private ์ฑ„๋„์ด๋ฉด
            • ์ฑ„๋„ ์ด๋ฆ„ : "Prv"
            • ํด๋ผ์ด์–ธํŠธ ์ˆ˜ ์ฒดํฌ
            • ์ฃผ์ œ๋Š” ๋ฌด์กฐ๊ฑด ๋น„์›Œ๋‘ .
            • RPL_LIST.
            • RPL_LISTEND.
          • secret ์ฑ„๋„์ด๋ฉด ๋ฌด์‹œ.
    • LIST ํŒŒ๋ผ๋ฏธํ„ฐ ์žˆ์„ ์‹œ
      • ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋“ค์–ด์˜จ ์ฑ„๋„ ์ด๋ฆ„์„ ','๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ.
      • ์ €์žฅ๋œ ์ฑ„๋„ ์ด๋ฆ„ ์ˆœํšŒ
        • ๊ฐ€์ž…๋˜์–ด ์žˆ๊ฑฐ๋‚˜ ๊ฐ€์ž… ์•ˆ๋˜์–ด์žˆ์ง€๋งŒ public ์ฑ„๋„์ผ ๋•Œ
          • ์ฑ„๋„ ์ƒํƒœ๋ฅผ ์ฑ„๋„ ์ด๋ฆ„ ์•ž์— ๋ถ™์ž„.
          • ํด๋ผ์ด์–ธํŠธ ์ˆ˜ ์ฒดํฌ
          • ์ฃผ์ œ ์žˆ์œผ๋ฉด ์ฃผ์ œ ์ถœ๋ ฅ.
          • ์ฃผ์ œ ์—†์œผ๋ฉด ๋น„์›Œ๋‘ .
          • RPL_LIST.
          • RPL_LISTEND.
        • ๊ฐ€์ž… ์•ˆ๋˜์–ด์žˆ์„ ๋•Œ
          • private ์ฑ„๋„์ด๋ฉด
            • ์ฑ„๋„ ์ด๋ฆ„ : "Prv"
            • ํด๋ผ์ด์–ธํŠธ ์ˆ˜ ์ฒดํฌ
            • ์ฃผ์ œ๋Š” ๋ฌด์กฐ๊ฑด ๋น„์›Œ๋‘ .
            • RPL_LIST.
            • RPL_LISTEND.
          • secret ์ฑ„๋„์ด๋ฉด ๋ฌด์‹œ.

๐Ÿ“ ETC

Originally posted by @Yudongwoo in #173 (comment)

development ๋ธŒ๋žœ์น˜์—์„œ ํ•ด๋‹น ์ด์Šˆ(#178) ๋ธŒ๋žœ์น˜ ๋งŒ๋“ค๊ธฐ
๋ธŒ๋žœ์น˜ ์ด๋ฆ„ : 178/dyu/enhancement/Implement_list_command