Skip to content

jinwoki2/Extreme_C

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

73 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์ฝ”๋“œ ์„ค๊ณ„์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. Code Complete๋ฅผ ์ฝ๋˜ ์ค‘ ๊ทธ๋ฆฌ๊ณ  ๋™๋ฃŒ์— ์˜ํ•ด, ๊ฐ์ฒด์ง€ํ–ฅ์„ ์•Œ์•„์•ผ ์ฝ”๋“œ ์„ค๊ณ„๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ C๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด๋ณด๊ธฐ ์œ„ํ•ด Extreme_C๋ฅผ ์ฝ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ๋ช…์˜ ์˜๋ฏธ EC_8_3_8_11_student.h EC: ExtremeC EC_์˜ˆ์ œ8_๋ฒˆํ˜ธ3_์ฝ”๋“œ๋ฐ•์Šค8_๋ฒˆํ˜ธ11_ํŒŒ์ผ๋ช….ํ™•์žฅ์ž

๋”ฐ๋กœ ์‹คํ—˜์„ ํ•ด๋ณด๋Š” ์ฝ”๋“œ๋Š” ํŒŒ์ผ๋ช…์— Expt๊ฐ€ ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. Expt == Experiment

20250403


์‹œ๊ฐ„์ด ๋งŽ์ด ํ˜๋ €๋„ค์š”. ๊ฐ์ฒด์ง€ํ–ฅ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์–ด๋А ์ •๋„๋Š” ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด 42(Born2Code)๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, 4 circle graphic ๊ณผ์ œ ์ „๊นŒ์ง€๋Š” ์ถ”์ฒœ๋“œ๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 42(BeyondTheCode)๋ผ๋ฉด ๊ทธ๋ƒฅ ์ƒ๊ฐ์กฐ์ฐจ ํ•˜์ง€ ๋งˆ์‹ญ์‡ผ. ๋Œ€๋ถ€๋ถ„์˜ ๊ณผ์ œ๋Š” ๋Œ€ํ˜• ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ public์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒŒ ๋” ํŽธํ•ฉ๋‹ˆ๋‹ค. ft_printf(bouns), minishell์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค๋งŒ, ์ผ๋‹จ ์ ˆ์ฐจ์ง€ํ–ฅ์œผ๋กœ ํ•ด๋ณด์‹ญ์‡ผ. ํŠนํžˆ ์„ฑ๋Šฅ์„ ์ค‘์š”์‹œ ํ•œ๋‹ค๋ฉด ๋”๋”์šฑ ์ ˆ์ฐจ์ง€ํ–ฅ์„ ๊ณ ๋ คํ•ด๋ณด์‹ญ์‡ผ.

๋‹ค๋งŒ g++ ๊ธฐ๋ฐ˜ C++๋ฅผ ๊นŠ๊ฒŒ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ถ์œผ์‹œ๊ฑฐ๋‚˜, C๋กœ TDD๋ฅผ ํ•˜๊ณ  ์‹ถ์œผ์‹œ๊ฑฐ๋‚˜, ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜์‹ค ์ƒ๊ฐ์ด๋ผ๋ฉด ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Extreme_C์—์„œ ๊ฐ€๋ฅด์น˜๋Š” C์˜ ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๊ฐ€ g++๋กœ CPP๋ฅผ ์ปดํŒŒ์ผ ํ–ˆ์„ ๋•Œ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋งค์šฐ ์œ ์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„์›€์ด ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค. Testable Code(ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ)์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ Dependency Injection(์˜์กด์„ฑ ์ฃผ์ž…)์ธ๋ฐ C์˜ OOP๋Š” ์ด๋ฅผ ํ•˜๊ธฐ๊ฐ€ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์‹ค์ˆ˜์™€ ๋ฐ˜๋ณต์„ ์ค„์ด๊ธฐ ์œ„ํ•ด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒŒ ํŽธํ•˜์‹ค ๊ฒ๋‹ˆ๋‹ค.

์ €๋Š” ๊ฐ„์ด gc(garbage collector)์™€ errhdlr(error handler)๋ผ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ๊ฐ€์žฅ ๋งŽ์ด ํ™œ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. (์ถ”ํ›„์— ์˜ฌ๋ ค๋ณด๋„๋ก ํ•˜์ฃ ) ๊ฐ„์ด gc๋Š” ๋‹จ์ˆœํžˆ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋Š” ํด๋ž˜์Šค์ด๋ฉฐ, errhdlr๋Š” ๊ฐ„์ด errno์™€ ๊ฐ„์ด try-catch๋ฅผ ์ง€์›ํ•˜๋Š” ํด๋ž˜์Šค์ž…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŽธ๋ฆฌํ•จ ๋ณด๋‹ค ์˜คํ•˜๋ ค if-else ๊ธฐ๋ฐ˜์˜ ๊ตฌ์กฐ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์ ˆ์ฐจ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์†Œ์ค‘ํ•จ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋™๋ฃŒ๊ฐ€ ๋งํ•ด์ค€ ๊ฒƒ์€ ๊ฒฐ๊ตญ์—๋Š” ์•„ํ‚คํ…์ฒ˜๊ฐ€(๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด) ๊ฐ์ฒด์ง€ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ(ํŠนํžˆ JAVA๋กœ) ๋งŽ์ด ์—ฐ๊ตฌ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด์—ˆ๋˜ ๊ฒƒ์œผ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊นจ๋‹ฌ์€ ๊ฒƒ์€ ๋‹ค๋ฅธ ๊ฒƒ์„ ํ•™์Šตํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ์ผ๋‹จ C์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž์ฒด์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์ด ๋จผ์ €์˜€๋‹ค๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ „ํ†ต์ ์ธ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํžˆ ์‰ฝ๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์˜คํžˆ๋ ค ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ๋…ผ๋ฆฌ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€๋”” ๊ฐ์ฒด์ง€ํ–ฅ C ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋‚˜ ๋””์ž์ธ ํŒจํ„ด์„ ๊ณ ๋ คํ•˜์‹œ๊ธฐ ์ „์— C๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ˆ™์ง€๋ฅผ ๋จผ์ € ํ•ด๋ณด์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ C์—์„œ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ ๊ตฌ์กฐ์ฒด ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋†’์€ ์ดํ•ด์™€ C์—์„œ ์ •๋ณด์€๋‹‰์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๋‚˜์ค‘์— ํ•˜์…”๋„ ๋Šฆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์ €๋Š” C ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ์ฒด์ง€ํ–ฅ๊ณผ ์ ˆ์ฐจ์ง€ํ–ฅ์„ ์„ž์–ด์„œ ์‚ฌ์šฉํ•  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ๋งŒ ์‚ฌ๊ณ ํ•˜๋ ค๋Š” ๊ฒฝํ–ฅ์€ ์˜คํžˆ๋ ค ๋…์ด ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ํŒจ๋Ÿฌ๋‹ค์ž„์— ๊ฐ‡ํžˆ์ง€ ์•Š๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค. 20260212

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors