๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ(266)
-
์ด์์ฒด์ - ์ปค๋
์ด์์ฒด์ - ์ปค๋ (๋ฐ๋งํฌ ์ดํด ๋ถํํฉ๋๋ค^^.) ์ปค๋ ์ปดํจํฐ ์ด์์ฒด๊ณ์ ํต์ฌ, ์ด์์ฒด๊ณ์ ๋ค๋ฅธ ๋ชจ๋ ๋ถ๋ถ์ ์ฌ๋ฌ ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ ์๋น์ค๋ฅผ ์ ๊ณต. ์ด์์ฒด์ ์์คํ ํธ์ถ : ์ปค๋์ด ์์ ์ ๋ณดํธํ๊ธฐ ์ํด ๋ง๋ ์ธํฐํ์ด์ค, ์ปดํจํฐ์ ์์์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ ์ฐจ๋จ. ์ง์ ํธ์ถ์ ์ฌ์ฉ์์ ์ํด ์ง์์ง ์ ์์ -> ๊ทธ๋์ ์์คํ ํธ์ถ๋ก ์์๊ด๋ฆฌํด์ผํจ. -> ์ด๋ฅผ ์ปค๋ ๋ชจ๋๋ผ๊ณ ํ๋๋ฐ ์ด์์ฒด์ ๊ฐ ํ๋ ๊ฒ ์ด์์ฒด์ ๋ ์์คํ ํธ์ถ๋ก ์ ํํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ปค๋์ ๋ค์ด์ค์ง ๋ชปํ๊ฒ ๋ง์. -> ์์ ๋ณดํธ. ๋๋ผ์ด๋ฒ ์ปค๋๊ณผ ํ๋์จ์ด์ ์ธํฐํ์ด์ค ๋ด๋น -> ์ด์ํ๊ฒ ํด์ฃผ๋ ์ํํธ์จ์ด. ๋ง์ฐ์ค ๊ฐ์๊ฑด ํฌํธ๋ง ๋ผ์ฐ๋ฉด ์ด์์ฒด๊ฐ ๋ฐ๋กํด์ค.(์ปค๋์์ด ํ๋์จ์ด์์ฒด์์ ๊ฐ๋ฅ) ํ์ง๋ง ํ๋ฆฐํฐ๊ฐ์ด ์ฌ๋ฌ๊ฐ์ ๋ณต์กํ ๊ฒ๋ค์ ์ํด์๋ ํ๋ฆฐํฐ..
2021.03.11 -
์ปดํจํฐ ๊ตฌ์กฐ - ๋ฒ์ค ์ค์ฌ
์ปดํจํฐ ๊ตฌ์กฐ - ๋ฒ์ค ์ค์ฌ CPU, ์ฃผ๊ธฐ์ต์ฅ์น, ๋ชจ๋ํฐ, ํค๋ณด๋, ํ๋ฆฐํฐ, ์บ์์ ์๋์ ์ ๋ถ "์์คํ ๋ฒ์ค"๋ฅผ ํตํด์ ์๋์ด ๋๋ค. ์ด ์์คํ ๋ฒ์ค์ ์ข ๋ฅ์๋ 3๊ฐ์ง(๋ฐ์ดํฐ ๋ฒ์ค, ์ฃผ์ ๋ฒ์ค, ์ ์ด ๋ฒ์ค)๊ฐ ์กด์ฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์คํ ๋ฒ์ค์ ์ ์๋๋ ์์๋ค ์ค์์ ์ด๋ฌํ ๋ฒ์ค ์ฌ์ฉ์ ์ฃผ์ฒด๊ฐ ๋๋ ์์๋ค์ "๋ฒ์ค ๋ง์คํฐ"๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๋ฒ์ค ๋ง์คํฐ๋ค์ ํ ์๊ฐ์ ํ ๊ฐ์ ๋ฒ์ค ๋ง์คํฐ๋ง ์์คํ ๋ฒ์ค๋ฅผ ์ด์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ "๋ฒ์ค ์ค์ฌ"๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค. ์ค๋ ๋ฐฐ์๋ณผ ๋ด์ฉ์ ๋ฒ์ค ์ค์ฌ์ด๋ค. ๋ฒ์ค ์ค์ฌ - ๋ ๊ฐ ์ด์์ ๋ฒ์ค ๋ง์คํฐ๋ค์ด ๋์์ ๋ฒ์ค ์ฌ์ฉ์ ์์ฒญํ ๊ฒฝ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํด์ฃผ๋ ์์คํ ๋์. ๋ฒ์ค๋ฅผ ์ค์ฌํ๊ธฐ ์ํด์๋ 3๊ฐ์ง ์ ์ด ์ ํธ๊ฐ ํ์ํ๋ค. (๋ฒ์ค ์๊ตฌ ์ ํธ, ๋ฒ์ค ์น์ธ ์ ํธ, ๋ฒ์ค ์ฌ์ฉ์ค..
2020.12.08 -
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ (์ค๋ ๋)
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ (์ค๋ ๋) ์ค๋ ๋ - ํ๋ก๊ทธ๋จ ๋ด๋ถ์ ์๋ ์ ์ด์ ๋จ์ผ ์์ฐจ ํ๋ฆ. ๋จ์ผ ์ค๋ ๋ vs ๋ฉํฐ ์ค๋ ๋ - ๋จ์ผ ์ค๋ ๋๋ ํ, ๊ณต์ ๋ฐ์ดํฐ, ์ฝ๋, ์คํ, ๋ ์ง์คํฐ๊ฐ ํ๋๋ง ์๋ ๊ตฌ์กฐ์ด๊ณ , ๋ฉํฐ ์ค๋ ๋๋ ํ, ๊ณต์ ๋ฐ์ดํฐ, ์ฝ๋, ๋ ์ง์คํฐ๋ ํ๋์ง๋ง, ์คํ์ด ์ฌ๋ฌ๊ฐ์ด๋ฉฐ ์ํ์ ๋ณด๊ฐ ์ฌ๋ฌ๊ฐ์ธ ๊ฒ์ ์๋ฏธํ๋ค. ์ค๋ ๋ ์์ using System; using System.Threading; class SimpleThreadApp { static void ThreadBody() { for (int i =0; i
2020.11.27 -
C# - ๊ณ ๊ธํ๋ก๊ทธ๋๋ฐ (์์ธ)
C# - ๊ณ ๊ธํ๋ก๊ทธ๋๋ฐ (์์ธ) ์ด๋ฒ ์ฅ์์๋ ์์ธ์ ๋ํด์ ์์๋ณผ ๊ฒ์ด๋ค. ์์ธ๋ ํ๋ก๊ทธ๋จ ์คํ์๊ฐ์ ๋ฐ์ํ๋ ์๋ฌ๋ฅผ ์ผ์ปซ๋ ๋ง์ด๋ค. ์ด๋ฌํ ์์ธ์ ๋ํด์ ์ฒด๊ณ์ ์ผ๋ก ๊ฒ์ฌํ๊ณ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํด ์ฃผ๋ ๊ฒ์ด ์ฐ๋ฆฌ ํ๋ก๊ทธ๋๋จธ๋ค์ ์ญํ ์ด๋ค. ์ด๋ฅผ ์์ธ ์ฒ๋ฆฌ๊ธฐ ์์ฑ์ด๋ผ๊ณ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์์ธ๋ Exceptionํด๋์ค์ ํ์ ํด๋์ค์ธ ApplicationException ํด๋์ค๋ฅผ ์์๋ฐ์ ์๋ก์ด ์์ธ ํด๋์ค๋ฅผ ์ ์ํ๋ค. ์๋ ๊ฐ๋จํ ์์ ๋ฅผ ํตํด ํ์ธํด๋ณด์. public class UserErrException : ApplicationException { public UserErrException(string s): base(s) { } } public class Program { public sta..
2020.11.27 -
C# ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ - ์ ํธ๋ฆฌ๋ทฐํธ
C# ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ - ์ ํธ๋ฆฌ๋ทฐํธ ์ ํธ๋ฆฌ๋ทฐํธ - ์ด์ ๋ธ๋ฆฌ๋ ํด๋์ค, ํ๋, ๋ฉ์๋, ํ๋กํผํฐ ๋ฑ์ ๋ค์ํ ์ ๋ณด๋ฅผ ์ถ๊ฐํ๊ธฐ ์ํด์ ์ฌ์ฉ - ๋ฉํ๋ฐ์ดํฐ ํ์์ผ๋ก ์ ์ฅ๋จ. ์ ํธ๋ฆฌ๋ทฐํธ๋ ํ์ค ์ ํธ๋ฆฌ๋ทฐํธ(.NET ํ๋ ์์ํฌ ์ ๊ณต)๊ณผ ์ฌ์ฉ์ ์ ์ ์ ํธ๋ฆฌ๋ทฐํธ๊ฐ ์๋ค. ๋จผ์ ํ์ค ์ ํธ๋ฆฌ๋ทฐํธ๋ฅผ ์์๋ณด์. ํ์ค ์ ํธ๋ฆฌ๋ทฐํธ - Conditional ์ ํธ๋ฆฌ๋ทฐํธ ์กฐ๊ฑด๋ถ ๋ฉ์๋๋ฅผ ์์ฑํ ๋ ์ฌ์ฉ define ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์กฐ๊ฑด์ ์ ํ๋ค. ๋ฐ๋์ System.dianostics๋ฅผ ๋ค์์คํ์ด์ค์ ํฌํจ์์ผ์ผ ํ๋ค. Conditional ์ ํธ๋ฆฌ๋ทฐํธ์ ์์ #define CSHARP using System; using System.Diagnostics; class ConditionalAttrApp { [Conditional("CS..
2020.11.27 -
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ(์ ๋ค๋ฆญ)
C# - ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ(์ ๋ค๋ฆญ) ์ ๋ค๋ฆญ ๋ณ์์ ํ์ ๋งค๊ฐ๋ณ์๋ก ํ์ฌ ํด๋์ค๋ ๋ฉ์๋์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฌด๊ดํ๊ฒ ๊ธฐ์ ํ๋ ๊ธฐ๋ฒ. ์ค์ ํ ์ ๋ณด๋ "๊ฐ์ฒด ์์ฑ ์"์ ์ ๋ฌ๋ฐ์ ์ ๋ค๋ฆญ๋ ํด๋์ค์ด๋ฉด์ ๋งค๊ฐ๋ณ์์ ๋ค์์ฑ์ ๋ด๋ ์ ๋์ ์ธ ํด๋์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ฆ intํ์ ๋งค๊ฐ๋ณ์๊ฐ ๋ค์ด์ค๋ฉด intํ์ ๋ฐ๋ผ ๋ฐฐ์ด์ ๋ง๋ ๋ค๊ฑฐ๋, ๋ฉ์๋๋ฅผ ๋ง๋ค๊ณ , doubleํ์ ์ ํ์ด ๋ค์ด์ค๋ฉด doubleํ์ ์ ๋ง์ถฐ์ ํด๋์ค ๋ด๋ถ๊ฐ ์งํ์ด ๋๋ค. ์ ๋ค๋ฆญ ํด๋์ค ์ฌ์ฉ์ ์ class SimpleGeneric { private T[] values; private int index; public SimpleGeneric(int len) { values = new T[len]; index = 0; } public void Add(para..
2020.11.27