๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc.../- C, C++, Python, Android43

[C ์–ธ์–ด] ๋ฆฌ๋ˆ…์Šค์—์„œ Makefile ์„ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œํ•˜๊ธฐ ์šฐ๋ฆฌ๊ฐ€ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ด๋‚˜ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ, ๋นŒ๋“œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์„ ํ•˜๊ณค ํ•œ๋‹ค. ์ด๋Ÿฐ ๋นŒ๋“œ ๋„๊ตฌ ๋•๋ถ„์— ์‰ฝ๊ฒŒ ์˜์กด์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๋นŒ๋“œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, C ์–ธ์–ด๋„ ์ด๋Ÿฌํ•œ ๋นŒ๋“œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ๋นŒ๋“œ ๋„๊ตฌ๊ฐ€ ๋ฐ”๋กœ make ์ด๋‹ค. ๋นŒ๋“œ ๋„๊ตฌ, make make ๋Š” Linux์™€ ๊ฐ™์€ ์œ ๋‹‰์Šค ๊ณ„์—ด ์šด์˜์ฒด์ œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋นŒ๋“œ ๋„๊ตฌ(Build Tool) ์ด๋‹ค. ๋นŒ๋“œ ๋„๊ตฌ๋ž€ ๊ฐ„๋‹จํžˆ ์„ค๋ช…ํ•˜์ž๋ฉด, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ ํ…Œ์ŠคํŠธ, ์ •์  ๋ถ„์„์„ ์œ„ํ•ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ž๋™ ์ƒ์„ฑํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ, ์ผ์ข…์˜ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๋นŒ๋“œ ๋„๊ตฌ๋กœ๋Š” Ant ๋‚˜ Maven, Gradle, NPM ์ด ์กด์žฌํ•œ๋‹ค. ์ด๋Ÿฐ ๋นŒ๋“œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ์—ฌ๋Ÿฌ ํŒŒ์ผ๋“ค๋ผ๋ฆฌ์˜ ์˜์กด์„ฑ๊ณผ ๊ฐ ํŒŒ์ผ์— ํ•„์š”ํ•œ ๋ช…๋ น์„ ์ •์˜ํ•ด์„œ ์‰ฝ๊ฒŒ.. 2021. 7. 16.
[C ์–ธ์–ด] ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ์™€ ํ™”์‚ดํ‘œ ์—ฐ์‚ฐ์ž ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด์•˜๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ตฌ์กฐ์ฒด๋ฅผ ์กฐ๊ธˆ ๋” ํšจ์œจ์ ์œผ๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜์ž. ์ง€๋‚œ ์‹œ๊ฐ„์— ์ด์•ผ๊ธฐํ•œ ๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•ด์„œ ํ•œ ์ค„๋กœ ์ •๋ฆฌํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒƒ์ด๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ์—ฌ๋Ÿฌ ์ž๋ฃŒํ˜•์ด ๋ชจ์—ฌ ํ•˜๋‚˜์˜ ํฐ ์‚ฌ์šฉ์ž ์ •์˜ ์ž๋ฃŒํ˜•์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ ์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•ด๋ณผ๋งŒํ•œ ์ฃผ์ œ๊ฐ€ ๋ฐ”๋กœ ํฐ ์ž๋ฃŒํ˜•์ด ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ตฌ์กฐ์ฒด๋Š” ๋Œ€๋ถ€๋ถ„ ์ผ๋ฐ˜ ์ž๋ฃŒํ˜•๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค ์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ง€๋‚œ ์‹œ๊ฐ„์— ์ด์•ผ๊ธฐ ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ƒ๊ธฐํ•ด๋ณด์ž. ์šฐ๋ฆฌ๊ฐ€ ๊ตฌ์กฐ์ฒด๋ฅผ ์ •์˜ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์–ด๋–ค ์˜๋ฏธ์ผ๊นŒ? ๋ฐ”๋กœ Stack ์˜์—ญ์— ๊ตฌ์กฐ์ฒด์˜ ํฌ๊ธฐ๋งŒํผ ๊ณต๊ฐ„์„ ํ• ๋‹น๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ตฌ์กฐ์ฒด๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์—์„œ ๊ตฌ์กฐ.. 2021. 7. 4.
[C ์–ธ์–ด] struct, ๊ตฌ์กฐ์ฒด์˜ ๊ธฐ๋ณธ๊ณผ ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ๊ตฌ์กฐ์ฒด ํ˜„๋Œ€์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•(int, long, char, double) ๋งŒ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋™์ž‘์‹œํ‚ค๊ธฐ์—๋Š” ๋งŽ์€ ์–ด๋ ค์›€์ด ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐœ์ „ํ•˜๊ฒŒ ๋œ ๊ฒƒ์ด ๋ฐ”๋กœ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ฐ์ฒด์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•์—์„œ ๋ฐ”๋กœ ๊ฐ์ฒด๋กœ ๋ฐœ์ „ํ•œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ๊ฐ์ฒด์™€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜• ์‚ฌ์ด์— ์กด์žฌํ•˜๋Š” ๊ฐœ๋…์ด ๋ฐ”๋กœ ๊ตฌ์กฐ์ฒด ์ด๋‹ค ๊ตฌ์กฐ์ฒด์˜ ๊ธฐ๋ณธ ์ปจ์…‰์€ Primitive Data type ์„ ๋ชจ์•„ Abstract data type ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ๊ตฌ์กฐ์ฒด ์‚ฌ์šฉํ•˜๊ธฐ ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋ง์€ ์ผ๋‹จ ์ •์˜ํ•˜๊ณ , ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ๋‹ค. ๊ตฌ์กฐ์ฒด ์ •์˜ํ•˜๊ธฐ ๊ตฌ์กฐ์ฒด๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ์‹์—๋Š” ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. struct ๋กœ ์ •์˜ํ•˜๊ธฐ ๋ณ€์ˆ˜ ์ƒ์„ฑํ•  ๋•Œ struct ํ‚ค์›Œ๋“œ๋ฅผ .. 2021. 7. 4.
[C ์–ธ์–ด] malloc ๊ณผ free ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌํ•˜๊ธฐ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ C ์–ธ์–ด๊ฐ€ ๋งŽ์€ ์‚ฌ๋ž‘์„ ๋ฐ›๋Š” ์ด์œ ๋Š” ๋ฐ”๋กœ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์•„๋‹๊นŒ ์ƒ๊ฐํ•œ๋‹ค๊ณ  ์ฒซ ์‹œ๊ฐ„์— ์ด์•ผ๊ธฐ๋ฅผ ํ–ˆ์—ˆ๋‹ค. ์˜ค๋Š˜์€ C ์–ธ์–ด์˜ ํ•ต์‹ฌ ์ค‘ ํ•˜๋‚˜์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค. ๊ทธ ์ „์— ๋จผ์ € ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์•Œ์•„์•ผํ•˜๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋Š” ์ด 4๊ฐœ๋กœ ๋‚˜๋‰˜์–ด ์ง„๋‹ค. ์Šคํƒ ์˜์—ญ ํž™ ์˜์—ญ ๋ฐ์ดํ„ฐ ์˜์—ญ ์ฝ”๋“œ ์˜์—ญ ์—ฌ๊ธฐ์„œ ์Šคํƒ๊ณผ ํž™์— ์ฃผ๋ชฉ์„ ํ•ด๋ณผ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์Šคํƒ ์˜์—ญ ์ปดํŒŒ์ผ ์‹œ์ ์— ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฒฐ์ •๋˜์–ด ์‹คํ–‰ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ๋‚ญ๋น„๊ฐ€ ์—†๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์Šคํƒ ์˜์—ญ์€ ์ƒ๋Œ€์ ์œผ๋กœ ํ•œ๊ณ„๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์Šคํƒ ์ด์ƒ์„ ์“ฐ๊ฒŒ๋œ๋‹ค๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์กด์žฌํ•œ๋‹ค. ํž™ ์˜์—ญ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•˜๋Š” ํ˜น์€ ํ• ๋‹นํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค. Java ์—์„œ๋Š” GC๊ฐ€ ๋™์ž‘ํ•˜์—ฌ ํ™œ์•ฝํ•˜๋Š” ๊ณต๊ฐ„์ด๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํž™์€ ์ตœ.. 2021. 7. 4.
[C ์–ธ์–ด] ํฌ์ธํ„ฐ๋กœ 2์ฐจ์› ๋ฐฐ์—ด ๋‹ค๋ฃจ๊ธฐ (์ฃผ์†Œ ์ ‘๊ทผ ๋ฐ ์›์†Œ ๊ฐ’ ์ ‘๊ทผ) 2์ฐจ์› ๋ฐฐ์—ด์˜ ํ˜•ํƒœ ์šฐ๋ฆฌ๊ฐ€ 2์ฐจ์› ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐ์— ๋Œ€ํ•œ ์ƒ๊ด€๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ณ  ์กฐ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์ด ๋ฉ”๋ชจ๋ฆฌ์— ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฐ์—ด์ด ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. int arr[3][2] = { {11, 22}, {33, 44}, {55, 66}, }; ๊ทธ๋Ÿผ ๋ฉ”๋ชจ๋ฆฌ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ €์žฅ๋  ๊ฒƒ์ด๋ผ๋Š” ๊ทธ๋ฆผ์„ ๋งŽ์ด ๋ด ์™”๋‹ค ํ•˜์ง€๋งŒ ์ •ํ™•์ด ๋ง ํ•œ๋‹ค๋ฉด, ์ด ๊ทธ๋ฆผ์€ ์กฐ๊ธˆ ์ด์ƒํ•˜๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ ์šฐ๋ฆฌ๊ฐ€ ๋ณด๊ธฐ ์‰ฝ๊ฒŒ ๊ตฌ๋ถ„ํ•ด๋†“์€ ๊ฒƒ์ผ ๋ฟ์ด์ง€ ์ €๋ ‡๊ฒŒ 2์ฐจ์›์œผ๋กœ ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ์—ฐ์†์ ์ธ ํŠน์„ฑ ๋•๋ถ„์— 1์ฐจ์›์œผ๋กœ ๋ณด๋Š” ๊ฒƒ์ด ๋” ์˜ฌ๋ฐ”๋ฅด๋‹ค ๊ทธ๋Ÿผ ๋” ์˜ฌ๋ฐ”๋ฅธ ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค๋ณด์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ด๋ ‡๊ฒŒ ๋จผ์ € ๋จธ๋ฆฌ์— ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์žˆ์–ด์•ผ ํฌ์ธํ„ฐ์™€ 2์ฐจ์› ๋ฐฐ์—ด์˜ ์ƒ๊ด€๊ด€๊ณ„์— ๋Œ€ํ•ด์„œ ์•Œ ์ˆ˜ ์žˆ๋‹ค. .. 2021. 7. 3.
[C ์–ธ์–ด] ํฌ์ธํ„ฐ๋กœ 1์ฐจ์› ๋ฐฐ์—ด ๋‹ค๋ฃจ๊ธฐ (์ฃผ์†Œ ์ ‘๊ทผ ๋ฐ ์›์†Œ ๊ฐ’ ์ ‘๊ทผ) ๋ฐฐ์—ด๊ณผ ํฌ์ธํ„ฐ์˜ ๊ด€๊ณ„ ํฌ์ธํ„ฐ์™€ ๋ฐฐ์—ด์€ ๋งค์šฐ ๊ธด๋ฐ€ํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ณ  ์—ฌ๋Ÿฌ ์„œ์  ๋ฐ ์ž๋ฃŒ์—์„œ ์ด์•ผ๊ธฐ ํ•œ๋‹ค. ์–ด๋–ค ๋ถ€๋ถ„์—์„œ๋Š” ๋ฐฐ์—ด์ด ํฌ์ธํ„ฐ๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ๋„ ํ•˜๊ณ  ํ˜น์€ ํฌ์ธํ„ฐ๊ฐ€ ๋ฐฐ์—ด์„ ๋Œ€์ฒดํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ๋ฐฐ์—ด์„ ๋ฐฐ์šธ ๋•Œ ์šฐ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋ฐฐ์—ด์˜ ์ด๋ฆ„(๋ณ€์ˆ˜๋ช…)์€ ํ•ด๋‹น ๋ฐฐ์—ด์˜ ์ฃผ์†Œ์ž„๊ณผ ๋™์‹œ์— ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ์ฃผ์†Œ ๊ฐ’ ์ด๋‹ค! ์•ž์„  ์‹œ๊ฐ„์— ํฌ์ธํ„ฐ์—์„œ๋Š” ๋˜ ์ด๋Ÿฐ ๋‚ด์šฉ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ํฌ์ธํ„ฐ ๋ณ€์ˆ˜์— ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ ์˜ค๋กœ์ง€ ์ฃผ์†Œ ๊ฐ’! ๊ทธ๋Ÿผ ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ๋™์ž‘ํ• ๊นŒ? #include int main() { int arr[] = {11, 22, 33, 44}; int *pointer = arr; return 0; } ๊ทธ๋ ‡๋‹ค ์œ„์˜ ์ฝ”๋“œ๋Š” ์ „ํ˜€ ๋ฌธ์ œ๊ฐ€ ์—†๋Š” ์ฝ”๋“œ์ด๋ฉฐ ์ž˜ ๋™์ž‘ํ•  ๊ฒƒ์ด๋‹ค. ์•„๋งˆ ๋ฉ”๋ชจ๋ฆฌ ์–ด๋”˜๊ฐ€์— .. 2021. 7. 3.