Libelektra: μž‘μ—… λΉŒλ“œ : ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈμ˜ 일뢀가 μ •κΈ°μ μœΌλ‘œ μ‹€νŒ¨ 함

에 λ§Œλ“  2019λ…„ 02μ›” 25일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: ElektraInitiative/libelektra

기술

λΉŒλ“œ μž‘μ—… 쀑 ν•˜λ‚˜μ—μ„œ λͺ¨λ“  μž„μ‹œ ν…ŒμŠ€νŠΈ μ‹€νŒ¨λ₯Ό μΆ”μ ν•˜κΈ° μœ„ν•΄ 이것을 이슈둜 μ—΄μ—ˆμŠ΅λ‹ˆλ‹€. λΉŒλ“œ μ‹€νŒ¨μ˜ μ£Όμš” 원인은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

. 졜근 PRμ—μ„œ λͺ¨λ“  것이 μž‘λ™ν•˜κΈ° 전에 Jenkins λΉŒλ“œ μž‘μ—…μ„ 5 번 λ‹€μ‹œ μ‹œμž‘ν•΄μ•Όν–ˆμŠ΅λ‹ˆλ‹€. κ·Έ ν›„ PR μ—μ„œ λ‚΄κ°€ κΈ°μ–΅ν•  μˆ˜μžˆλŠ” ν•œ Jenkins λΉŒλ“œ μž‘μ—…μ„ μ„Έ 번 λ‹€μ‹œ μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μ–΄μ¨Œλ“ , 제 μƒκ°μ—λŠ” μ‹€νŒ¨μœ¨μ΄ λ„ˆλ¬΄ λ†’μŠ΅λ‹ˆλ‹€.

μ‹€νŒ¨

| μœ„μΉ˜ | μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈ | 직업 ꡬ좕 |
| ---------- | ------------- | ----------- |
| master | testmod_gpgme (1) | debian-stable-full |
| master | testmod_gpgme (1), testmod_zeromqsend (1) | debian-stable-full-ini |
| master | testmod_crypto_botan (1), testmod_fcrypt (1), testmod_gpgme (2), testmod_zeromqsend (1) | debian-stable-full-mmap |
| master | testmod_crypto_botan (1), testmod_fcrypt (2) | debian-unstable-full |
| master | testmod_crypto_botan (2), testmod_crypto_openssl (3), testmod_fcrypt (1) | debian-unstable-full-clang |
| PR #2442 | testmod_crypto_openssl (1), testmod_gpgme (1) | debian-stable-full-ini |
| PR #2442 | testmod_crypto_openssl (1), testmod_crypto_botan (1), testmod_fcrypt (1), testmod_gpgme (3) | debian-stable-full-mmap |
| PR #2442 | testmod_crypto_openssl (1), testmod_fcrypt (1) | debian-unstable-full |
| PR #2442 | testmod_crypto_openssl (1), testmod_crypto_botan (1), testmod_fcrypt (1) | debian-unstable-full-clang |
| PR #2442 | testmod_dbus (1), testmod_dbusrecv (1) | 🍎 MMap |
| PR #2443 | testmod_crypto_botan (1), testmod_fcrypt (1) | debian-unstable-full |
| PR #2443 | testmod_crypto_openssl (1), testmod_crypto_botan (1) | debian-unstable-full-clang |
| PR #2443 | testmod_dbus (1), testmod_dbusrecv (1) | 🍎 MMap |
| PR #2445 | testmod_crypto_openssl (1), testmod_crypto_botan (1), testmod_fcrypt (1) | debian-stable-full-ini |
| PR #2445 | testmod_crypto_openssl (2), testmod_crypto_botan (2), testmod_fcrypt (2), testmod_gpgme (1) | debian-stable-full-mmap |
| PR #2445 | testmod_crypto_openssl (2), testmod_fcrypt (2) | debian-unstable-full |
| PR #2445 | testmod_dbus (1), testmod_dbusrecv (1) | 🍏 GCC |

bug build

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

이제 # 3224μ—μ„œ ctest의 μžλ™ 재 μ‹œλ„λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ 의 μΌμ‹œμ μΈ 였λ₯˜κ°€ 계속 λ°œμƒν•˜λ©΄ 문제λ₯Ό λ‹€μ‹œμ—¬μ‹­μ‹œμ˜€. (μ‹œλ„ 횟수λ₯Ό 늘릴 수 μžˆμŠ΅λ‹ˆλ‹€.)

Jenkins / Docker의 λ‹€λ₯Έ μ‹€νŒ¨μ— λŒ€ν•΄μ„œλŠ” λ‹€λ₯Έ μ†”λ£¨μ…˜μ„ μ°Ύμ•„μ•Όν•˜μ§€λ§Œ λ¨Όμ € λ§ˆμ§€λ§‰μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•΄μ•Όν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λŸ¬ν•œ 경우 κ³„μ†ν•΄μ„œ μž‘μ—…μ„ λ‹€μ‹œ μ‹œμž‘ν•˜μ‹­μ‹œμ˜€.

λͺ¨λ“  14 λŒ“κΈ€

μ΄λŸ¬ν•œ 문제λ₯Ό μš”μ•½ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

μž‘μ—…μ΄ μ‹€νŒ¨ν•œ κ³³μ—μ„œλ§Œ μž‘μ—…μ„ λΉ„ν™œμ„±ν™” ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

crypto 및 fcrypt ν”ŒλŸ¬κ·ΈμΈμ˜ 경우 @mpranj λŠ” 높은 μ„œλ²„λ‘œλ“œμ‹œ gpg-agent κ°€ μ‹€νŒ¨ ν•  수 μžˆλ‹€κ³  μ§€μ ν–ˆμŠ΅λ‹ˆλ‹€. crypto 및 fcrypt ν”ŒλŸ¬κ·ΈμΈ ν…ŒμŠ€νŠΈλ₯Όμœ„ν•œ λ³„λ„μ˜ λΉŒλ“œ μž‘μ—…μ„ λ§Œλ“€ 수 μžˆμ„κΉŒμš”? λ”°λΌμ„œ λ‹€λ₯Έ 개발이 μ°¨λ‹¨λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μž…λ ₯ ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

λ¬Έμ œκ°€μžˆλŠ” μž‘μ—…μ„ λΆ„λ¦¬ν•˜λ©΄ 재 ꡬ좕주기가 더 짧아 질 수 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ €λŠ” μš°λ¦¬κ°€ μ–΄λ–€ μˆ˜λ™ 재 ꡬ좕도 μ „ν˜€ μ›ν•˜μ§€ μ•ŠλŠ”λ‹€λŠ” 것이 λΆ„λͺ…ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. λ”°λΌμ„œ λ‹€μŒκ³Ό 같은 μ˜΅μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€.

  • 더 μ‹ λ’°ν•  수 μžˆλ„λ‘
  • μ΄λŸ¬ν•œ 였λ₯˜μ— λŒ€ν•΄ 재 μ‹œλ„ν•˜λŠ” 일뢀 μžλ™ 루프
  • ν…ŒμŠ€νŠΈ λΉ„ν™œμ„±ν™” (λˆ„κ΅°κ°€μ΄ 뢀뢄에 λŒ€ν•΄ μž‘μ—… ν•  λ•Œ λ‹€μ‹œ ν™œμ„±ν™”ν•΄μ•Ό 함)

μ–΄λ–»κ²Œ 생각해?

  • 더 μ‹ λ’°ν•  수 μžˆλ„λ‘

gpg-agent (일괄 μž‘μ—…μ˜ 고톡)을 ν™œμš©ν•˜λŠ” ν•œ 거의 λΆˆκ°€λŠ₯ν•©λ‹ˆλ‹€.

  • μ΄λŸ¬ν•œ 였λ₯˜μ— λŒ€ν•΄ 재 μ‹œλ„ν•˜λŠ” 일뢀 μžλ™ 루프

이것은 λ‚˜μ—κ²Œ λ”λŸ½λ‹€.

  • ν…ŒμŠ€νŠΈ λΉ„ν™œμ„±ν™” (λˆ„κ΅°κ°€μ΄ 뢀뢄에 λŒ€ν•΄ μž‘μ—… ν•  λ•Œ λ‹€μ‹œ ν™œμ„±ν™”ν•΄μ•Ό 함)

μˆ˜λ™ νšŒκ·€ ν…ŒμŠ€νŠΈλ₯Όν•˜λŠ” 것도 쒋지 μ•Šμ§€λ§Œ 뢈편 함을 μ΅œμ†Œν™”ν•˜λŠ” μ˜΅μ…˜ 인 것 κ°™μŠ΅λ‹ˆλ‹€.

νšŒμ˜μ—μ„œ λ…Όμ˜ν•œλŒ€λ‘œ : ν…ŒμŠ€νŠΈλ₯Ό λΉ„ν™œμ„±ν™”ν•΄μ•Όν•©λ‹ˆλ‹€.

νšŒμ˜μ—μ„œλ„ λ…Όμ˜ 된 λŒ€μ•ˆ : ctest --rerun-failed

ctest λ₯Ό μ‹€ν–‰ν•˜λ©΄ <cmake_build_dir>/Testing/Temporary/LastTestsFailed[_timestamp].log 파일이 μƒμ„±λ©λ‹ˆλ‹€ (νƒ€μž„ μŠ€νƒ¬ν”„λŠ” λŒ€μ‹œ λ³΄λ“œ λͺ¨λ“œμ—μ„œλ§Œ μ‚¬μš©λ¨). 이 νŒŒμΌμ€ ctest --rerun-failed μ—μ„œλ„ μ‚¬μš©λ©λ‹ˆλ‹€ (Kitware / CMake @ eb2decc02d28f41a3e189d5387be24552c42060f μ°Έμ‘°). λ§ˆμ§€λ§‰μœΌλ‘œ μ‹€νŒ¨ν•œ ν…ŒμŠ€νŠΈμ˜ λ²ˆν˜Έμ™€ 이름 만 ν¬ν•¨λ©λ‹ˆλ‹€.

λ‚΄ μ œμ•ˆμ€ 이전과 같이 ctest λ₯Ό 호좜 ν•  κ²ƒμž…λ‹ˆλ‹€. μ„±κ³΅μ μœΌλ‘œ μ’…λ£Œλ˜μ§€ μ•ŠμœΌλ©΄ grep μ—μ„œ LastTestsFailed.log λ₯Ό μ‚¬μš©ν•˜μ—¬ μœ„μ— λ‚˜μ—΄λœ ν…ŒμŠ€νŠΈ 쀑 ν•˜λ‚˜κ°€ μ‹€νŒ¨ν–ˆλŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. 그런 λ‹€μŒ ctest --rerun-failed . 이둜 인해 쀑볡 / ν˜Όλ™ 좜λ ₯이 쀄어 λ“­λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ λ¬Έμ œκ°€ μ‹€μ œλ‘œ 큰 λ„μ›€μ΄λ˜μ§€ μ•ŠλŠ” 높은 μ„œλ²„ λΆ€ν•˜λΌλ©΄. λŒ€μ‹  ctest --test-load μ‹œλ„ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€. 이둜 인해 ctestλŠ” CPUλ‘œλ“œλ₯Ό νŠΉμ • μž„κ³„ κ°’ μ•„λž˜λ‘œ μœ μ§€ν•΄μ•Όν•©λ‹ˆλ‹€.

IMOλŠ” μ—¬μ „νžˆ κ°€μž₯ 쒋은 μ˜΅μ…˜μ€ ν…ŒμŠ€νŠΈλ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ³  μ΄λŸ¬ν•œ ν”ŒλŸ¬κ·ΈμΈ / λΌμ΄λΈŒλŸ¬λ¦¬μ— ν•„μš”ν•œ 쒅속성 만 μ„€μΉ˜ν•˜κ³  ν•„μš”ν•œ κ²ƒλ§Œ μ»΄νŒŒμΌν•˜κ³  λ¬Έμ œκ°€μžˆλŠ” ν…ŒμŠ€νŠΈ 만 μ‹€ν–‰ν•˜λŠ” μž‘μ€ λΉŒλ“œ μž‘μ—…μ„ λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€. κ·Έλ ‡κ²Œν•˜λ©΄ λŸ°νƒ€μž„μ„ λͺ‡ λΆ„ 정도 μ™„λ£Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.이 경우 μˆ˜λ™μœΌλ‘œ λ‹€μ‹œ μ‹œμž‘ν•˜λŠ” 것이 ν—ˆμš©λ©λ‹ˆλ‹€. 비ꡐλ₯Ό μœ„ν•΄ FreeBSD μž‘μ—…μ€ ν˜„μž¬ μ•½ 200 개의 ν…ŒμŠ€νŠΈλ₯Ό μ‹€ν–‰ν•˜λŠ” 데 μ•½ 10 λΆ„ (λΉŒλ“œ 7 λΆ„, ν…ŒμŠ€νŠΈ 2 λΆ„, 기타 1 λΆ„)이 κ±Έλ¦½λ‹ˆλ‹€.

μΆ”μ‹ . 섀정에 λŒ€ν•΄ ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ νŠΉμ • λ‹¨κ³„μ—μ„œ μ  ν‚¨μŠ€ νŒŒμ΄ν”„ 라인을 λ‹€μ‹œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

νšŒμ˜μ—μ„œλ„ λ…Όμ˜ 된 λŒ€μ•ˆ : ctest --rerun-failed μ‚¬μš©

쑰사해 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

κ·ΈλŸ¬λ‚˜ λ¬Έμ œκ°€ μ‹€μ œλ‘œ 큰 λ„μ›€μ΄λ˜μ§€ μ•ŠλŠ” 높은 μ„œλ²„ λΆ€ν•˜λΌλ©΄. λŒ€μ‹  ctest --test-loadλ₯Ό μ‹œλ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@ingwinlu λŠ”μ΄ λ°©ν–₯으둜 λ§Žμ€ μž‘μ—…μ„ν–ˆμŠ΅λ‹ˆλ‹€. 당사 μ„œλ²„λŠ” 높은 λΆ€ν•˜λ‘œ μ²˜λ¦¬λŸ‰μ΄ κ°€μž₯ λ†’μŠ΅λ‹ˆλ‹€. 즉 μš°λ¦¬λŠ” κ·ΈλŸ¬ν•œ μ˜΅μ…˜μœΌλ‘œ ν…ŒμŠ€νŠΈ 속도λ₯Ό 늦좜 κ²ƒμž…λ‹ˆλ‹€.

IMOλŠ” μ—¬μ „νžˆ κ°€μž₯ 쒋은 방법은 ν…ŒμŠ€νŠΈλ₯Ό λΉ„ν™œμ„±ν™”ν•˜κ³  λ‹€μŒ 만 μ„€μΉ˜ν•˜λŠ” μž‘μ€ λΉŒλ“œ μž‘μ—…μ„ λ§Œλ“œλŠ” κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“ˆ 식 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λŠ” λ‹¬μ„±ν•˜κ³  μœ μ§€ν•˜κΈ°κ°€ 맀우 μ–΄λ ΅μŠ΅λ‹ˆλ‹€. @ingwinlu λŠ” λ§Žμ€ μž‘μ—…μ„ν–ˆμŠ΅λ‹ˆλ‹€. λͺ‡ 가지 μ‹ λ’°ν•  μˆ˜μ—†λŠ” ν…ŒμŠ€νŠΈμ— λŒ€ν•΄μ„œλ§Œ μ΄λŸ¬ν•œ λ…Έλ ₯을 λ‹€μ‹œ ν•  μˆ˜λŠ” μ—†λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

μΆ”μ‹ . 섀정에 λŒ€ν•΄ ν™•μ‹€ν•˜μ§€ μ•Šμ§€λ§Œ νŠΉμ • λ‹¨κ³„μ—μ„œ μ  ν‚¨μŠ€ νŒŒμ΄ν”„ 라인을 λ‹€μ‹œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

그것은 쒋을 κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ GUI에 λ‹€μ‹œ μ‹œμž‘ λ²„νŠΌμ΄ ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‹€λ₯Έ ν”ŒλŸ¬κ·ΈμΈμ΄λ‚˜ μ΅œμ‹  버전이 ν•„μš”ν•©λ‹ˆκΉŒ? @ingwinlu λŠ” λͺ¨λ“  νŒŒμ΄ν”„ 라인 단계에 λŒ€ν•΄ "jenkins build * please"λ₯Ό μΆ”κ°€ν•˜λ €κ³ ν–ˆμ§€λ§Œ μ•ˆνƒ€κΉκ²Œλ„ μž‘λ™ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

μ—¬μ „νžˆ 였λ₯˜κ°€μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€ (dbus μ°Έμ‘° # 2532).

Mac λΉŒλ“œμ—μ„œ dbus ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό μ œμ™Έν•˜λŠ” 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?

μ—¬μ „νžˆ 였λ₯˜κ°€μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€ (dbus μ°Έμ‘° # 2532).

응 μš°λ¦¬λŠ” 그래.

gcc --version

Configured with: --prefix=/Applications/Xcode-10.2.1.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode-10.2.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1

Apple LLVM version 10.0.1 (clang-1001.0.46.4)

Target: x86_64-apple-darwin18.5.0

Thread model: posix

InstalledDir: /Applications/Xcode-10.2.1.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

(...)

DBUSRECV TESTS

==============

testing prerequisites

detecting available bus types - please ignore single error messages prefixed with "connect:"

connect: Failed to open connection to system message bus: Failed to connect to socket /usr/local/var/run/dbus/system_bus_socket: No such file or directory

test commit

test adding keys

../src/plugins/dbusrecv/testmod_dbusrecv.c:228: error in test_keyAdded: string "system/tests/testmod_dbusrecv/added" is not equal to "user/tests/foo/bar"

    compared: expectedKeyName and keyName (test_callbackKey)

test adding keys

testmod_dbusrecv Results: 34 Tests done β€” 1 error.

λ‘œμ»¬μ—μ„œ μž¬ν˜„ ν•  수 μžˆμ—ˆμŠ΅λ‹ˆκΉŒ?

이 λ¬Έμ œκ°€ μ‚°λ°œμ μœΌλ‘œ λ°œμƒν•˜λŠ” 이유λ₯Ό μ—¬μ „νžˆ μ•Œ 수 μ—†μŠ΅λ‹ˆλ‹€. 의견이 μžˆλ‹€λ©΄ 쒋을 κ²ƒμž…λ‹ˆλ‹€.

λ¬Έμ œκ°€μžˆλŠ” λΉŒλ“œ μž‘μ—…μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό κ°„λ‹¨νžˆ μ œμ™Έ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ dbus * ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ μ‹€ν–‰λ˜λŠ” λͺ¨λ“  λΉŒλ“œ μž‘μ—…μ—μ„œ μ‹€νŒ¨ν•©λ‹ˆκΉŒ?

λ‘œμ»¬μ—μ„œ μž¬ν˜„ ν•  수 μžˆμ—ˆμŠ΅λ‹ˆκΉŒ?

λΆˆν–‰νžˆλ„. μ €λŠ” μš°λΆ„νˆ¬μ— μžˆμŠ΅λ‹ˆλ‹€.

λ¬Έμ œκ°€μžˆλŠ” λΉŒλ“œ μž‘μ—…μ—μ„œ ν…ŒμŠ€νŠΈλ₯Ό κ°„λ‹¨νžˆ μ œμ™Έ ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ dbus * ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€κ°€ μ‹€ν–‰λ˜λŠ” λͺ¨λ“  λΉŒλ“œ μž‘μ—…μ—μ„œ μ‹€νŒ¨ν•©λ‹ˆκΉŒ?

방금 λΉŒλ“œ μž‘μ—…μ„ λ‹€μ‹œ μ‹œμž‘ν•˜μ—¬ λ‹€μ‹œ λ°œμƒν•˜λŠ”μ§€ ν™•μΈν–ˆμŠ΅λ‹ˆλ‹€.

ν•„μš”ν•œ 경우 μ €λ₯Ό λ‹€μ‹œ ν• λ‹Ήν•˜μ‹­μ‹œμ˜€.

이제 # 3224μ—μ„œ ctest의 μžλ™ 재 μ‹œλ„λ₯Ό κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ μŠ€μœ„νŠΈ 의 μΌμ‹œμ μΈ 였λ₯˜κ°€ 계속 λ°œμƒν•˜λ©΄ 문제λ₯Ό λ‹€μ‹œμ—¬μ‹­μ‹œμ˜€. (μ‹œλ„ 횟수λ₯Ό 늘릴 수 μžˆμŠ΅λ‹ˆλ‹€.)

Jenkins / Docker의 λ‹€λ₯Έ μ‹€νŒ¨μ— λŒ€ν•΄μ„œλŠ” λ‹€λ₯Έ μ†”λ£¨μ…˜μ„ μ°Ύμ•„μ•Όν•˜μ§€λ§Œ λ¨Όμ € λ§ˆμ§€λ§‰μœΌλ‘œ λ§ˆμ΄κ·Έλ ˆμ΄μ…˜μ„ μˆ˜ν–‰ν•΄μ•Όν•©λ‹ˆλ‹€. λ”°λΌμ„œ μ΄λŸ¬ν•œ 경우 κ³„μ†ν•΄μ„œ μž‘μ—…μ„ λ‹€μ‹œ μ‹œμž‘ν•˜μ‹­μ‹œμ˜€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰