3์ ํ์ฌ๋ฅผ ์ํด ์ค๋น์ค์ด๋ค. 2025-03-12๊น์ง ๋ฐ๋ชจ๋ฅผ ์์ฑํด์ผํ๋ค.
์ง๋ ์ฃผ ๋ถํฐ ๋ง๋คAI๊ฐ์ ์น ํ์ด์ง ํ๋ก์ ํธ๋ฅผ ์งํ์ค์ด๋ค. ๊ธฐ์กด์ ํ๋ก์ ํธ์ Linktree ๊ฐ์ ๋งํฌ ๋ชจ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ค. ๊ธฐ์กด ํ๋ก์ ํธ๋ ์์ฑํ markdown์ ๊ธฐ๋ฐ์ผ๋ก ์๋์ผ๋ก ์ ์ ์น ํ์ด์ง๋ฅผ ๋ง๋ค์ด์ค๋ค. ์ฌ๊ธฐ์ YAML ํ์ผ์ ์ถ๊ฐํ์๋ค. ์ ํด์ง ํ์์ YAMLํ์ผ์ ์ถ๊ฐํ๋ฉด ์ด๋ฅผ markdown ํ์์ผ๋ก ๋ณํํ๋ ๊ฒ์ด ๋ด๊ฐ ๋งก์ ๊ธฐ๋ฅ์ด๋ค. ์ด๋ฅผ ์์๋๊ณผ ๊ฐ์ด ์งํํ๋ค. ์์๋์ link ํ์ด์ง๋ฅผ ์ํ css๋ฅผ ์์ฃผ๋ก ๋ด๋น, ๋๋ YAML ํ์ผ์ Markdown ์ฑ์ผ๋ก ๋ณํํ๋ .NET ์ฝ์ ์ฑ ๊ฐ๋ฐ์ ๋ด๋นํ๋ค.
.NET ๊ฐ๋ฐ์ ๊ฒฝํํ ์ ์๋ค. C#๋ ์ ๋๋ก ๋ฐฐ์ด ์ ์๋ค;; Justin๋์ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์ด๊นจ๋๋จธ๋ก ๋ฐฐ์ด ๊ฒ์ด ์ ๋ถ์ด์ง๋ง.. ๋ง์ ํด๋ณด๋ ๋ณ ๊ฒ ์๋์๋ค. ์ด๋ฐ๊ธ ์ฒ์ ๋ณด๋ ๋ฌธ๋ฒ์ด ๋์ค์ง๋ง GPT์๊ฒ ๋ฌผ์ด๋ณด๋ฉด ๊ทธ๋ง์ด๋ค.
YAML ํ์ผ์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ JSON ๋ฌธ์ ์์ฑ ๋ถํฐ ์ฝ์ง ์์๋ค. ์ฅ JSON? ๊ทธ๋ฅ ์์ฑํ๋ฉด ๋๋๊ฑฐ ์๋? ใ ใ ์๋.. ๋ด๊ฐ ์๊ฐํ ๊ฒ๊ณผ ๋ค๋ฅธ ๋ถ๋ถ์ด ๋ง์๋ค. ๊ผญ ๊ตฌ์กฐ๊ฐ ์ด๋์ผ๋ง ํ๋์ง, ๋ ํจ์จ์ ์ธ ๊ตฌ์กฐ๋ ์์์ง, ๊ตณ์ด ์์ฑํ์ง ์์๋ ๋ ์ฝ๋๊ฐ ์ค๋ณต์ผ๋ก ๋ค์ด๊ฐ์ง๋ ์์๋์ง.. JSON์ผ๋ก YAML์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ๋ ๊ฒ์ด ์ฒ์์ด๋ค ๋ณด๋ ์ค์ ๋ฐฉ๋ฒ๋ ์์ํ๊ธฐ์ ๋ ์ด๋ ค์์ ๋๊ผ๋ค. ๋ฌดํ PR๊ณผ ๋ฌดํ review ๋์ ๊ฐ์ ํ merge ๋์๋ค.
๊ทธ ๋ค์์ IConverterService.cs๋ฅผ ์์ฑํ๋ค. ์ด๋ฆ ๊ทธ๋๋ก ์ธํฐํ์ด์ค๋ค.
ํ๋ก ํธ์๋ ๋ฆฌ์กํธ ๊ฐ๋ฐ์ ์์์ผ๋ก ์ ๋๋ก ๊ณต๋ถํ๊ธฐ ์์ํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์งํฅ์ด ์ต์ํ์ง ์์๋ค.
๊ฐ๋จํ ์ฑ์ธ๋ฐ ๊ตณ์ด ์ธํฐํ์ด์ค๋ฅผ ์์ฑํด์ผํ๋? ์ถ์ด ์ง๋ฌธ์ ํ๋ค.
๋ฏธ๋ฆฌ ๋ฐ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ๋ฌผ๋ก ์ด๊ณ ํ
์คํธ์ ์ฉ์ดํ๋ค๊ณ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ํน๋ณํ ์ฃผ์(?)๋ ๋ฐฐ์ ๋ค.
/// <summary>
/// Loads data from a specified file and deserializes it into an object.
/// </summary>
/// <param name="filepath">the path of data source</param>
/// <returns>Returnss <see cref="LinkCollection"/> instance.></returns>
Task<LinkCollection> LoadAsync(string filepath);์ด๋ฐ์์ผ๋ก HTML๋ง๋ฅ ํ๊ทธ๋ฅผ ์ฌ์ฉํด ์ฃผ์์ ์ฌ์ฉํ๋ค.
๋ฆฌ์กํธ ๊ฐ๋ฐ์๋ @param ์ฒ๋ผ ์ฃผ์์ ๋ฌ๊ณ ๋ ํ์๋ค.
๋น์ฐํ C#์ ๋น๋กฏํ ๋ค๋ฅธ ์ธ์ด์๋ ์์ ๋ง ํ์ง๋ง.. ์ ์๊ฐ์ ๋ชปํ์๊น?
Justin๋์ ๋ฆฌ๋ทฐ๋ฅผ ๋ณด๋ฉฐ ์๋ฌธ ์ฃผ์ ์์ฑ ์คํ์ผ๋ ์กฐ๊ธ ๋ฐฐ์ด ๊ฒ ๊ฐ๋ค.
์๋ฅผ ๋ค์ด, ๋ด๊ฐ returns LinkCollection that represents... ๋ผ๊ณ ์ฅํฉํ๊ฒ ์ค๋ช
ํ ๋ถ๋ถ์ด ์๋ค๋ฉด ์์ ์ฝ๋ ์ฒ๋ผ Returns LinkCollection instance ๋ผ๊ณ ๊ฐ๊ฒฐํ๊ณ ์ ํํ ์๋ฏธ ์ ๋ฌ์ด ๋ ์ ์๊ฒ ๊ณ ์ณ์ฃผ์
จ๋ค.
์ ๋ฒ์ PR๊ณผ review ๋์ merge๋๊ณ , ํ์ฌ ConverterService ๊ตฌํ์ค์ด๋ค. ์ฌ์ค Service ์์ฒด๋ YamlDotNet ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ์ด๋ฏธ ๊ตฌํํ๊ณ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ์ค์ด๋ค. ํ ์คํธ ์ฝ๋ ์์ฑ ์์ฒด๊ฐ ์ฒ์์ด๋ ๋ญ ์ด๋ป๊ฒ ํด์ผํ ์ง ๊ฐ๋ ์์๋ค. ์ด๊ฑธ ๋ญ ๋ก๊ทธ ํ์ผ์ ๋ง๋ค์ด์ผ ํ๋์ง.. ๊ทธ๋ผ ๊ธฐ์กด Service ์ฝ๋๋ฅผ ์์ ํด์ผ ํ๋๊ฑด์ง.. ๊ทธ๋ผ test ํ๋ก์ ํธ๋ ๋ญ ํ๋๊ฑด์ง..
๊ทผ๋ฐ GPT์๊ฒ ๋ฌผ์ด๋ณด๋ ๋ณ ๊ฒ ์์๋ค. ๊ทธ๋ฅ โ๋ด๊ฐ ๊ธฐ๋ํ๋ ๋ฐํ๊ฐโ๊ณผ โ์ค์ ํจ์๋ฅผ ์คํํ์ ๋ ๋ฐํ๊ฐโ์ ๋น๊ตํด๋ณด๋ฉด ๋๋๊ฑฐ์๋ค. Moq, xUnit ์ด๋ผ๋ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. ์์งํ ์์ง์ ์๋ค๊ฐ ์ ํํ ๋ญ์ง ์ ๋ชจ๋ฅด๊ฒ ๋ค. xUnit์ ํ ์คํธ๋ฅผ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, Moq๋ ์ธ์คํด์ค ๋ชฉ์ ์ ์๋์ผ๋ก ์์ฑํด์ฃผ๋ ์ญํ ์ ํ๋ค ์ ๋? ๊ณ์ ์ฝ๋๋ฅผ ์์ฑํ๋ฉฐ ์ตํ๋๊ฐ์ผ๊ฒ ๋ค.