Skip to content

Conversation

@oliviarla
Copy link
Collaborator

@oliviarla oliviarla commented Nov 15, 2024

๐Ÿ”— Related Issue

โŒจ๏ธ What I did

  • ๋ณธ PR์—์„œ๋Š” ํŒŒ์ดํ”„ ์—ฐ์‚ฐ ์š”์ฒญ์—์„œ ์—๋Ÿฌ(CLIENT_ERROR, ERROR, SERVER_ERROR) ์‘๋‹ต ์‹œ PIPE_ERROR๋ฅผ ๋๊นŒ์ง€ ์ฝ๋„๋ก ๋ณ€๊ฒฝํ•œ๋‹ค.
  • ๊ธฐ์กด์—๋Š” ์—๋Ÿฌ ์‘๋‹ต ์‹œ ์ฆ‰์‹œ ์˜ˆ์™ธ๋ฅผ ์ƒ์„ฑํ•ด ๋˜์กŒ๊ธฐ ๋•Œ๋ฌธ์— PIPE_ERROR๋ฅผ ์ฝ์ง€ ์•Š์•˜๋‹ค.
  • ๋™๊ธฐ ํŒŒ์ดํ”„ ์—ฐ์‚ฐ ์ฒ˜๋ฆฌ ์‹œ ์—๋Ÿฌ๋กœ ์ธํ•ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ์—ฐ์‚ฐ์„ failedResult๋ฅผ ํ†ตํ•ด ์•Œ๋ ค์•ผ ํ•˜๋Š”๋ฐ, ๊ธฐ์กด ํ˜•ํƒœ์—์„œ๋Š” ์—๋Ÿฌ ์‹œ ๋ฐ”๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋ฏ€๋กœ, ์—๋Ÿฌ ๋ฐœ์ƒ์œผ๋กœ ์ธํ•ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ์—ฐ์‚ฐ์— ๋Œ€ํ•ด callback.gotStatus()๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์—†๋‹ค.
  • ๋”ฐ๋ผ์„œ PIPE_ERROR๋ฅผ ์ฝ๋„๋ก ๋ณ€๊ฒฝ๋งŒ ํ•ด๋‘๊ณ , ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ์—ฐ์‚ฐ์— ๋Œ€ํ•œ gotStatus() ํ˜ธ์ถœ์€ INTERNAL: make piped insert operations process synchronouslyย #795 ์— ์ถ”๊ฐ€ํ•˜๋„๋ก ํ•œ๋‹ค.

@jhpark816 jhpark816 removed their request for review November 15, 2024 11:17
@jhpark816
Copy link
Collaborator

@uhm0311 ๋จผ์ € ๋ฆฌ๋ทฐํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Copy link
Collaborator

@uhm0311 uhm0311 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1์ฐจ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.

Copy link
Collaborator

@uhm0311 uhm0311 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2์ฐจ, ๋ฆฌ๋ทฐ ์˜๊ฒฌ๊ณผ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.

@oliviarla oliviarla force-pushed the pipeend branch 2 times, most recently from faec8fa to 20cf3d9 Compare November 19, 2024 06:48
@oliviarla oliviarla self-assigned this Nov 19, 2024
Copy link
Collaborator

@uhm0311 uhm0311 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

3์ฐจ ๋ฆฌ๋ทฐ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค.

@jhpark816
Copy link
Collaborator

@oliviarla @uhm0311
CompositeException์˜ printCallStack() ๊ด€๋ จ PR์€ merge ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

@oliviarla oliviarla force-pushed the pipeend branch 2 times, most recently from 5493230 to 466ff60 Compare November 26, 2024 10:28
@oliviarla
Copy link
Collaborator Author

@uhm0311 @jhpark816
ํ˜„์žฌ END/PIPE_ERROR๊ฐ€ ์˜ค์ง€ ์•Š์•„ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋กœ๊น…์ด ๋˜๋Š”๋ฐ์š”, ์ด ๋•Œ ์–ด๋–ค ์—๋Ÿฌ๊ฐ€ ์–ด๋–ค ์—ฐ์‚ฐ์—์„œ ๋‚ฌ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๊ธด ํ•ฉ๋‹ˆ๋‹ค๋งŒ, ๋ณ„๋‹ค๋ฅธ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ์€ ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. (pipe operation์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” index ์ •๋ณด๋ฅผ ๊ฐ™์ด ๋กœ๊น…ํ•˜๋ฉด ์–ด๋–จ๊นŒ ์ƒ๊ฐํ•ด๋ณด์•˜๋Š”๋ฐ, ๋ฉ”์„œ๋“œ ์ธ์ž ๋“ฑ์„ ๋กœ๊ทธ๋กœ ์•Œ๊ธฐ ์–ด๋ ค์šฐ๋ฏ€๋กœ index๋ฅผ ์•Œ๋”๋ผ๋„ ์“ธ๋ชจ์—†๋Š” ์ •๋ณด๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.)

OperationException: SERVER: Multiple exceptions (3) reported: SERVER_ERROR out of memory @ testnode 0.0.0.0/0.0.0.0:11211, CLIENT_ERROR too large value @ testnode 0.0.0.0/0.0.0.0:11211, END|PIPE_ERROR not received

@oliviarla oliviarla force-pushed the pipeend branch 2 times, most recently from 00d28cd to 63fac49 Compare November 26, 2024 10:53
@oliviarla oliviarla requested a review from uhm0311 November 28, 2024 01:30
Copy link
Collaborator

@uhm0311 uhm0311 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4์ฐจ ๋ฆฌ๋ทฐ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค.

@oliviarla oliviarla force-pushed the pipeend branch 2 times, most recently from a752f86 to 7bf52e7 Compare November 28, 2024 03:09
uhm0311
uhm0311 previously approved these changes Nov 28, 2024
@oliviarla oliviarla requested a review from jhpark816 November 28, 2024 08:23
@oliviarla
Copy link
Collaborator Author

@jhpark816 ๋ฆฌ๋ทฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

@jhpark816
Copy link
Collaborator

@oliviarla ๋ฆฌ๋ทฐ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

Copy link
Collaborator

@jhpark816 jhpark816 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์ผ๋ถ€ ๋ฆฌ๋ทฐ

Copy link
Collaborator

@jhpark816 jhpark816 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฆฌ๋ทฐ ์™„๋ฃŒ,
๋ณต์žกํ•œ ์ด์Šˆ๋„ค์š”.

@oliviarla
Copy link
Collaborator Author

oliviarla commented Dec 9, 2024

@jhpark816 @uhm0311
ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์„ ๋Œ€๋žต ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ๊ฒ€ํ†  ๋จผ์ € ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

  • OperationImpl#readFromBuffer์˜ ๋กœ์ง ๋ณ€๊ฒฝ
    • isPipeOperation()๊ฐ€ true์ด๊ณ  ์ฒซ ๋ฒˆ์งธ ์‘๋‹ต์ด RESPONSE <count> ๋ผ๋ฉด, ์ดํ›„์—๋Š” classifyError()๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  handleLine()์—์„œ
    • CLIENT_ERROR, SERVER_ERROR, ERROR๋ฅผ ์ฝ๊ณ  gotStatus ์ฝœ๋ฐฑ ๋ฉ”์„œ๋“œ์— ๋„˜๊ธด๋‹ค.
  • handleLine(String line)์˜ ๋กœ์ง ๋ณ€๊ฒฝ
    • END๊ฐ€ ์™”์„ ๋•Œ์—๋Š” Operation COMPLETE ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ
    • PIPE_ERROR๊ฐ€ ์™”์„ ๋•Œ์—๋Š” Operation COMPLETE ์ƒํƒœ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , operation์— ์˜ˆ์™ธ๋ฅผ ์ถ”๊ฐ€ํ•ด reconnect๋˜๋„๋ก ํ•˜๊ณ , hasErrored๊ฐ€ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ํ•œ๋‹ค.
  • getFailedResult() ๋ฉ”์„œ๋“œ๋ฅผ pipe ๊ด€๋ จ Future์— ์ถ”๊ฐ€
    • ์—๋Ÿฌ์™€ ์ƒ๊ด€์—†์ด failedResult ๊ฒฐ๊ณผ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

@jhpark816
Copy link
Collaborator

@oliviarla

isPipeOperation()๊ฐ€ true์ด๋ฉด classifyError()๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  handleLine()์—์„œ CLIENT_ERROR, SERVER_ERROR, ERROR๋ฅผ gotStatus ์ฝœ๋ฐฑ ๋ฉ”์„œ๋“œ์— ๋„˜๊ธด๋‹ค.

  • pipe ์š”์ฒญ์— ๋Œ€ํ•ด ERROR ๋“ฑ์ด ๋ฐ”๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๊ฒฝ์šฐ๋Š” classifyError()๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • pipe ์š”์ฒญ์— ๋Œ€ํ•ด RESPONSE <count>\r\n ์‘๋‹ต์ด ์˜จ ์ดํ›„์—๋Š” classifyError()๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

END๊ฐ€ ์˜ค๋ฉด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•œ ํ›„ Operation COMPLETE ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ
PIPE_ERROR๊ฐ€ ์˜ค๋ฉด ๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•œ ํ›„ Operation COMPLETE ์ƒํƒœ๋กœ ๋ณ€๊ฒฝ

๋ฆฌ๋‹ค์ด๋ ‰ํŠธํ•œ๋‹ค๋Š” ๊ฒƒ์ด ์–ด๋–ค ์˜๋ฏธ์ธ๊ฐ€์š”?

future.get()์˜ ๋กœ์ง ๋ณ€๊ฒฝ
hasErrored ์ผ ๋•Œ์—๋Š” exception์„ ๋˜์ง€์ง€ ์•Š๋Š”๋‹ค.

result๊ฐ€ ์žˆ๋Š” ์ง€์— ๋”ฐ๋ผ ํŒ๋‹จํ•ด์•ผ ํ•  ์ง€ ? ์ •๋„์˜ ๋А๋‚Œ์ด ๋“ญ๋‹ˆ๋‹ค.

Copy link
Collaborator

@uhm0311 uhm0311 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ๋‹ค ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•ด์„œ ์งˆ๋ฌธ ๋‚จ๊น๋‹ˆ๋‹ค.

@oliviarla oliviarla changed the title INTERNAL: read while END/PIPE_ERROR received in the pipe operation INTERNAL: read while PIPE_ERROR received in the pipe operation Dec 27, 2024
@oliviarla
Copy link
Collaborator Author

@uhm0311 ๋ฆฌ๋ทฐ ์™„๋ฃŒ๋˜์…จ์„๊นŒ์š”?

@uhm0311
Copy link
Collaborator

uhm0311 commented Jan 2, 2025

@oliviarla

์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค.

uhm0311
uhm0311 previously approved these changes Jan 2, 2025
@oliviarla oliviarla requested a review from jhpark816 January 3, 2025 02:03
Copy link
Collaborator

@jhpark816 jhpark816 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฆฌ๋ทฐ ์™„๋ฃŒ

Copy link
Collaborator

@jhpark816 jhpark816 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฆฌ๋ทฐ ์™„๋ฃŒ

protected void handleError(OperationErrorType eType, String line) throws IOException {
getLogger().error("Error: %s by %s", line, this);
exception = createException(eType, line);
if (count == 0 && index == 0) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CollectionPipedInsertOperationImpl ํด๋ž˜์Šค์—์„œ
๋ช…์‹œ์ ์œผ๋กœ index๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด ๋‘๋Š” ๊ฒƒ์ฒ˜๋Ÿผ
๋ช…์‹œ์ ์œผ๋กœ count๋„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•ด ๋‘๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ , count == 0 ์กฐ๊ฑด๋งŒ ์žˆ์–ด์•ผ ํ•˜๊ณ , index == 0 ์กฐ๊ฑด์€ ๋น ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์•„๋ž˜ ๊ฒฝ์šฐ์— index == 0์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

RESPONSE 1
CLIENT_ERROR ...
PIPE_ERROR

๊ทธ๋ฆฌ๊ณ , switchover์™€ redirectํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•œ๋‹ค๋ฉด,
count == 0 ์กฐ๊ฑด๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•œ ์ง€ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•ด ์ฃผ์„ธ์š”.

Copy link
Collaborator Author

@oliviarla oliviarla Jan 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

switchover / redirectํ•˜๋Š” ๊ฒฝ์šฐ count ๊ฐ’์ด ์ดˆ๊ธฐํ™”๋˜๋„๋ก ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. (count ๊ฐ’์€ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์‹  RESPONSE <count> ์ •๋ณด๋ฅผ ์ €์žฅํ•ด๋‘๋Š” ์šฉ๋„๋กœ๋งŒ ์‚ฌ์šฉํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.)
์ด๋ฅผ ํ†ตํ•ด ์ฒซ ๋ฒˆ์งธ ์‘๋‹ต์œผ๋กœ ERROR๊ฐ€ ์˜ฌ ๊ฒฝ์šฐ ๋ฐ”๋กœ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๊ณ , RESPONSE ์ดํ›„์— ERROR๊ฐ€ ์˜ฌ ๊ฒฝ์šฐ PIPE_ERROR๋ฅผ ์ฝ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

@oliviarla
Copy link
Collaborator Author

๋ฆฌ๋ทฐ ๋ชจ๋‘ ๋ฐ˜์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

uhm0311
uhm0311 previously approved these changes Jan 8, 2025
Copy link
Collaborator

@jhpark816 jhpark816 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

๋ฆฌ๋ทฐ ์™„๋ฃŒ

import net.spy.memcached.ops.OperationType;
import net.spy.memcached.ops.StatusCode;

import static net.spy.memcached.ops.OperationErrorType.CLIENT;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.

  • import static์—์„œ static์€ ์–ด๋–ค ์˜๋ฏธ๊ฐ€ ๋˜๋‚˜์š”?
  • ๊ธฐ์กด ์ฝ”๋“œ์—์„œ๋„ CLIENT๊ฐ€ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ๊ด€๋ จ๋œ import๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ง€ ?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

static import๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ •์˜๋œ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๋ช…์‹œํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ์ผ๋ฐ˜ import ์‹œ์—๋Š” OperationErrorType.CLIENT๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜์ง€๋งŒ, static import ์‹œ์—๋Š” CLIENT๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ธฐ์กด์—๋Š” switch๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ static importํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ CLIENT๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹จ OperationErrorType.CLIENT ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ดํ•ด๊ฐ€ ์‰ฌ์šธ ๊ฒƒ ๊ฐ™์•„ static import๋ฅผ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

if (hasSwitchedOver(line)) {
this.insert.setNextOpIndex(index);
prepareSwitchover(line);
count = 0;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

switchover ๊ฒฝ์šฐ๋ฅผ ์˜ˆ๋กœ ๋“ค๋ฉด,
์ด๋ฏธ ์ผ๋ถ€๊ฐ€ ์ˆ˜ํ–‰๋œ ์ƒํƒœ์—์„œ ๋‚˜๋จธ์ง€๋ฅผ switchoverํ•œ ํ›„์— ์ˆ˜ํ–‰ํ•˜๋ฉด,
๊ทธ ์ดํ›„์˜ ๊ฒฐ๊ณผ๋Š” ์›์†Œ ๊ฒฐ๊ณผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

NOT_MY_KEY ๊ฒฝ์šฐ๋„ ํ•จ๊ป˜ ๊ฒ€ํ†  ๋ฐ”๋ž๋‹ˆ๋‹ค.

Copy link
Collaborator Author

@oliviarla oliviarla Jan 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

switchover, redirect ๋กœ ์ธํ•ด ์ƒˆ๋กœ์šด ๋ณ„๋„ ์š”์ฒญ์„ ๋ณด๋‚ธ ํ›„ ์‘๋‹ต์„ ๋ฐ›์•˜์„ ๋•Œ, RESPONSE๊ฐ€ ์˜ฌ ์ˆ˜๋„ ์žˆ๊ณ  ํ•˜๋‚˜์˜ ERROR ๋ผ์ธ์ด ์˜ฌ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๋•Œ RESPONSE๊ฐ€ ์™”์„ ๋•Œ์—๋งŒ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€์ง€ ์•Š๋„๋ก ํ•˜์—ฌ PIPE_ERROR๊นŒ์ง€ ์ฝ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

@oliviarla
Copy link
Collaborator Author

@jhpark816
count ๋Œ€์‹  readUntilLastLine ํ”Œ๋ž˜๊ทธ๋ฅผ ๋‘๋„๋ก ๋ณ€๊ฒฝํ•˜๊ณ  ์ฃผ์„๋„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

@jhpark816 jhpark816 merged commit fa44194 into naver:develop Jan 9, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants