bong-u/til

profile
์ •์  ํ…Œ์ŠคํŠธ SW๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ํ…Œ์ŠคํŒ…ํ•˜๋Š” ๊ธฐ๋ฒ• ๋ฆฌ๋ทฐ ์—ฌ๋Ÿฌ ์ „๋ฌธ๊ฐ€๋“ค์ด ๋ชจ์—ฌ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•œ SW ๊ฐœ๋ฐœ ๋ฐ ์‚ฐ์ถœ๋ฌผ์„ ๊ฒ€ํ† ํ•˜๊ณ  ํ…Œ์ŠคํŒ…ํ•˜์—ฌ ๊ฒฐํ•จ์„ ๊ฒ€์ถœํ•˜๋Š” ๋ฐฉ๋ฒ• Inspection ์ „๋ฌธ์ ์ธ inspection team์ด ์ •ํ˜•ํ™”๋œ ๋ฐฉ์‹์œผ๋กœ defect๋ฅผ ์ฐพ๋Š” ๋ฆฌ๋ทฐ ๊ธฐ๋ฒ• Planning -> Overview -> Preparation -> Meeting(Inspection) -> Rework -> Follow-up Peer Review (Technical Review) ๊ฐœ๋ฐœํŒ€์ด ์ฃผ๋„ํ•˜์—ฌ ์ง์ ‘ ๋ชจ์—ฌ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฆฌ๋ทฐ ๊ธฐ๋ฒ• PL ๋˜๋Š” TL์ด ์ฃผ๋„ํ•˜์—ฌ ๋ฆฌ๋ทฐ ๋Œ€์ƒ์„ ์„ ์ •, ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฆฌ๋ทฐ ์š”์ฒญ Walkthrough Peer Review์™€ ์œ ์‚ฌํ•˜๋‚˜ ๋ฌธ์„œ ์ž‘์„ฑ์ž๊ฐ€ ์ฃผ๋„ํ•˜๋Š” ๊ฐ€๋ฒผ์šด ๋งŒ๋‚จ ํ˜•ํƒœ ์ •์  ๋ถ„์„ (๋ฌด๊ธฐ์ฒด๊ณ„SW ๊ฐœ๋ฐœ ๋ฐ ๊ด€๋ฆฌ ๋งค๋‰ด์–ผ ๊ธฐ์ค€) ์ฝ”๋”ฉ ๊ทœ์น™
๋ณธ ๋‚ด์šฉ์€ 2023 MISRA-C ๊ฐ€์ด๋“œ๋ผ์ธ์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ฐœ๋…์„ ์ •๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. dead code <-> unreachable code dead code : ์ฝ”๋“œ์—์„œ ์‹คํ–‰๋˜์ง€๋งŒ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์—†๋Š” ์„น์…˜ unreachable code : ์ œ์–ด ํ๋ฆ„ ๊ฒฝ๋กœ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์‹คํ–‰ํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ผ๋ถ€ tag struct, union, enum ๋’ค์— ๋ถ™๋Š” ์ด๋ฆ„ escape sequence ๋ฐฑ์Šฌ๋ž˜์‹œ()์™€ ํŠน์ •๋ฌธ์ž๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ ํ‘œํ˜„ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ธฐ๋Šฅ, ๋ฌธ์ž๋ฅผ ํ‘œ์‹œํ•ด์ค€๋‹ค. ์ข…๋ฅ˜ (๋Œ€ํ‘œ์ ์ธ ๊ฒƒ๋งŒ ๋ช‡๊ฐœ ๋ฝ‘์•˜๋‹ค) \n : ๊ฐœํ–‰ \t : ์ˆ˜ํ‰ ํƒญ \o(8์ง„์ˆ˜ ์ˆซ์ž) : 8์ง„์ˆ˜ \x(16์ง„์ˆ˜ ์ˆซ์ž) : 16์ง„์ˆ˜ ์—ฐ๊ฒฐ ๋‹ค๋ฅธ ๋ฒ”์œ„์— ์†ํ•˜๋Š” ๋ณ€์ˆ˜๋“ค์„ ์„œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ
๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ”
๐Ÿ”จ ๊ฐœ๋ฐœ ๋„๊ตฌ
๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ”
๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ”
RAG (Retrieval-Augmented Generation) ์ด๋ก  ์ •๋ฆฌ RAG๋Š” ๊ฒ€์ƒ‰๊ณผ ์ƒ์„ฑ์„ ๊ฒฐํ•ฉํ•œ ๋ชจ๋ธ๋กœ, ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์–ป์€ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋ธ LLM์˜ ๋ฌธ์ œ์  ํ• ๋ฃจ์‹œ๋„ค์ด์…˜: ์ƒ์„ฑ ๋ชจ๋ธ์ด ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ์—†๋Š” ๋‚ด์šฉ์„ ์ƒ์„ฑํ•˜๋Š” ํ˜„์ƒ ์ตœ์‹ ์˜ ์‘๋‹ต์„ ๊ธฐ๋Œ€ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์˜ค๋ž˜๋˜์—ˆ๊ฑฐ๋‚˜ ์ผ๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ถœ์ฒ˜๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ œ RAG๋Š” ์œ„์—์„œ ์„œ์ˆ ํ•œ LLM ๋ฌธ์ œ์˜ ์ผ๋ถ€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด๋‹ค. OpenSearch OpenSearch๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ์—”์ง„์œผ๋กœ, ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜์˜ ํฌํฌ ๋ฒ„์ „
๊ฐœ๋ฐœ์ž๋Š” ํ•ญ์ƒ ๋ณ€ํ™”ํ•˜๋ฉด์„œ ์„ฑ์žฅํ•ด์•ผ ํ•œ๋‹ค ๊ฐœ๋ฐœ์ž์˜ ์ง€์†์ ์ธ ์„ฑ์žฅ ๋ฐฉ๋ฒ• ๊น”๋”ํ•œ ์ฝ”๋“œ ์ ์ ˆํ•œ ๋…ผ๋ฆฌ๋ ฅ (= ๋ฌธ์ œ ํ•ด๊ฒฐ ๋Šฅ๋ ฅ) ๊ฐœ๋ฐœ์ด ์™„๋ฃŒ ๋๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ๋ฐฉ๋ฒ• ATDD (Acceptance Test Driven Development) : ๊ณ ๊ฐ, ๊ฐœ๋ฐœ์ž, ํ…Œ์Šคํ„ฐ ๊ฐ„์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋งŒ ๋งŒ๋“ค๊ธฐ (Celler Create) ๋ฆฌํŒฉํ† ๋ง (Refactoring) ์ฝ”๋“œ ์ฝ๊ธฐ (Code Review) ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ (Don’t Reinvent The Wheel) ๋‹จ์ˆœํ•œ ๋””์ž์ธ (Simple Design) ์ง„ํ™”์  ๋””์ž์ธ (Evolutionary Design) ํ˜‘์—… (Cooperative Design Design Review) ๊ธฐ์ˆ  ๋ฒค์น˜๋งˆํ‚น (Benchmarking) ์ด๋ ฅ์„œ์— git repo ์ œ์ถœํ•  ๋•Œ, ๊พธ์ค€ํžˆ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ๊ด€๋ฆฌํ•œ repo๋ฅผ ์ œ์ถœํ•˜์ž
IT ์—…๊ณ„์˜ ์กฐ์ง ๊ตฌ์„ฑ ๋ชฉ์  ์กฐ์ง ํ”„๋กœ์ ํŠธ A : ๊ธฐํš, ๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ ํ”„๋กœ์ ํŠธ B : ๊ธฐํš, ๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ … ํ”„๋กœ์ ํŠธ๊ฐ€ ์ปค์ง€๋ฉด ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ฆ ๊ธฐ๋Šฅ ์กฐ์ง ๊ธฐํš : ๊ธฐํš์ž, ๊ธฐํš์ž, ๊ธฐํš์ž ํด๋ผ์ด์–ธํŠธ : ๊ฐœ๋ฐœ์ž, ๊ฐœ๋ฐœ์ž, ๊ฐœ๋ฐœ์ž ์„œ๋ฒ„ : ๊ฐœ๋ฐœ์ž, ๊ฐœ๋ฐœ์ž, ๊ฐœ๋ฐœ์ž ๋ถ€์„œ๋‚ด ๊ฐœ๋ฐœ์ž๋งˆ๋‹ค ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋‹ค๋ฆ„ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  Waterfall ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ๋ช…ํ™•ํ•œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ฐ€์ง€๊ณ  ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์žฅ์  ๋Œ€๋žต์ ์ธ ์ผ์ • ์‚ฐ์ถœ์ด ๊ฐ€๋Šฅํ•จ ํ”„๋กœ์ ํŠธ์˜ ์‹œ์ž‘๊ณผ ๋์ด ๋ช…ํ™•ํ•จ ๋‹จ์  ํ”ผ๋“œ๋ฐฑ ์ฒ˜๋ฆฌ๊ฐ€ ๋Š๋ฆฌ๋‹ค ์ค‘๊ฐ„์— ์ˆ˜์ •์ด ์–ด๋ ต๋‹ค Agile ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•๋ก  ์งง์€ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๊ณ„์† ๋ฐ˜์˜ํ•˜๋ฉด์„œ ์ง„ํ–‰ ๋‹จ์  ํ”„๋กœ์ ํŠธ์˜ ์‹œ์ž‘๊ณผ ๋์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š๋‹ค ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์–ด๋ ค์›€์ด ์žˆ์Œ Kanban : ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ ๋„๊ตฌ ์นด๋“œ๋ฅผ ์ด์šฉํ•ด์„œ “ํ• ์ผ”, “์ง„ํ–‰ ์ค‘”, “์™„๋ฃŒ” ํ•ญ๋ชฉ์„ ๋‚˜๋ˆ„์–ด์„œ ๊ฐ ํ…Œ์Šคํฌ์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ณด๋“œ