ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ ๋ฆฌ
1. ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
2. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
2022.07.10 - [๐ Language/โ Language] - ํจ์ํ ํ๋ก๊ทธ๋๋ฐ(Functional Programming)
3. ์ธํฐํ๋ฆฌํฐ์ ์ปดํ์ผ๋ฌ
2022.07.10 - [๐ Language/โ Language] - ์ธํฐํ๋ฆฌํฐ(Interpreter)์ ์ปดํ์ผ๋ฌ(Compiler)
4. ๋ฉ๋ชจ๋ฆฌ ๋์
2022.07.10 - [๐ Language/โ Language] - ๋ฉ๋ชจ๋ฆฌ ๋์(Memory Leak)์ ๊ฐ๋ ๊ณผ ํด๊ฒฐ ๋ฐฉ๋ฒ
5. ์ปดํ์ผ ๊ณผ์
2022.08.13 - [๐ Language/โ Language] - ์ปดํ์ผ ๊ณผ์
C++ ์ ๋ฆฌ
1. STL ์ปจํ ์ด๋
2020.05.14 - [๐ Language/โ C & C++] - [C++] STL ์ปจํ ์ด๋(Containers)
2. Call by value์ Call by reference
2020.05.14 - [๐ Language/โ C & C++] - [C++] Call by value์ Call by reference
3. ์ค๋ฒ๋ก๋ฉ๊ณผ ์ค๋ฒ๋ผ์ด๋ฉ
4. ์์ ๋ณต์ฌ์ ๊น์ ๋ณต์ฌ
5. ์ ์ ๋ฉค๋ฒ ๋ณ์์ ํจ์
2020.05.16 - [๐ Language/โ C & C++] - [C++] ์ ์ (Static) ๋ฉค๋ฒ ๋ณ์์ ํจ์
6. OOP ์๋ฉธ์์ virtual ํค์๋
2020.06.01 - [๐ Language/โ C & C++] - [C++] OOP ์๋ฉธ์์ virtual ํค์๋
7. ๋์ ํ ๋น ์ฐจ์ด
2020.06.01 - [๐ Language/โ C & C++] - [C/C++] malloc()๊ณผ new์ ์ฐจ์ด
8. l-value์ r-value
2020.06.20 - [๐ Language/โ C & C++] - [C++] l-value์ r-value
9. ๋ฌธ์์ด ์คํธ๋ฆผ
2022.04.23 - [๐ Language/โ C & C++] - [C++] ๋ฌธ์์ด ์คํธ๋ฆผ(stringstream)
10. ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ
2022.06.11 - [๐ Language/โ C & C++] - [C++] ์ฐ์ฐ์ ์ค๋ฒ๋ก๋ฉ(Operator Overloading)
C# ์ ๋ฆฌ
1. ๋ธ๋ฆฌ๊ฒ์ดํธ, Func์ Action์ ์ด์ฉํ ๋ฌด๋ช ํจ์ ๋ง๋ค๊ธฐ
2022.05.15 - [๐ Language/โ C#] - [C#] Func์ Action์ ์ด์ฉํ ๋ฌด๋ช ํจ์ ๋ง๋ค๊ธฐ
2. ref์ out ํค์๋
2022.05.20 - [๐ Language/โ C#] - [C#] ref์ out ํค์๋
3. ํ๋กํผํฐ
2022.06.19 - [๐ Language/โ C#] - [C#] ํ๋กํผํฐ(Property)
4. ์ ๋ค๋ฆญ
- ํด๋์ค์์ ์ฌ์ฉํ ํ์ ์ ํด๋์ค ์ธ๋ถ์์ ์ค์ ํ๋๋ก ๋ง๋๋ ๊ฒ์ผ๋ก ์ฌ์ฉ์๊ฐ ์ํ๋ ํ์ ์ผ๋ก ๋ง๋ค์ด์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- C++์์๋ ํ ํ๋ฆฟ์ด๋ผ ๋ถ๋ฅธ๋ค.
JAVA ์ ๋ฆฌ
1. ๊ธฐ๋ณธํ ๋ณ์์ ์ฐธ์กฐํ ๋ณ์
2021.03.14 - [๐ Language/โ JAVA] - [JAVA] ๊ธฐ๋ณธํ ๋ณ์์ ์ฐธ์กฐํ ๋ณ์
2. ํด๋์ค
2021.03.27 - [๐ Language/โ JAVA] - [JAVA] ํด๋์ค
3. ์์
2021.04.02 - [๐ Language/โ JAVA] - [JAVA] ์์
4. ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค
2021.04.02 - [๐ Language/โ JAVA] - [JAVA] ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค
5. ์ค์ฒฉ ํด๋์ค์ ์ค์ฒฉ ์ธํฐํ์ด์ค
2021.04.10 - [๐ Language/โ JAVA] - [JAVA] ์ค์ฒฉ ํด๋์ค์ ์ค์ฒฉ ์ธํฐํ์ด์ค
6. ๊ธฐ๋ณธ API ํด๋์ค
2021.04.17 - [๐ Language/โ JAVA] - [JAVA] ๊ธฐ๋ณธ API ํด๋์ค
7. ์ค๋ ๋
2021.04.17 - [๐ Language/โ JAVA] - [JAVA] ์ค๋ ๋
8. ์ปฌ๋ ์ ํ๋ ์์ํฌ
2021.04.22 - [๐ Language/โ JAVA] - [JAVA] ์ปฌ๋ ์ ํ๋ ์์ํฌ
9. ์ ์ถ๋ ฅ ์คํธ๋ฆผ
2021.04.29 - [๐ Language/โ JAVA] - [JAVA] ์ ์ถ๋ ฅ ์คํธ๋ฆผ
10. ์คํ๋ง
2021.05.09 - [๐ Language/โ JAVA] - Spring๊ณผ SpringBoot
11. JSP์ Servlet
2021.05.16 - [๐ Language/โ JAVA] - JSP์ Servlet
12. ๋ฉ์ด๋ธ
2021.05.22 - [๐ Language/โ JAVA] - Maven(๋ฉ์ด๋ธ)
13. String, StringBuilder, StringBuffer
์๋ฐ์์ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ๋ํ์ ์ธ ํด๋์ค๋ค์ด๋ค. ์ฐ์ฐ์ด ๋ง์ง ์์ ๋๋ ์ด๋ค ๋ฌธ์์ด ํด๋์ค๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ์ด์๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ ๊ฑฐ์ ์๋ค. ๊ทธ๋ฌ๋ ์ฐ์ฐ ํ์๊ฐ ๋ง์์ง๊ฑฐ๋ ๋ฉํฐ์ค๋ ๋, Race condition ๋ฑ์ ์ํฉ์ด ์์ฃผ ๋ฐ์ํ๋ค๋ฉด ๊ฐ ํด๋์ค์ ํน์ง์ ์ดํดํ๊ณ ์ํฉ์ ๋ง๋ ์ ์ ํ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
1) String vs StringBuffer/StringBuilder
String๊ณผ StringBuffer/StringBuilder์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋ถ๋ณ์ฑ(immutable)์ ์ ๋ฌด์ด๋ค.
์๋ ์ฝ๋๋ String์ ์ฐธ์กฐ ๋ณ์ str์ด ๊ฐ๋ฆฌํค๋ ๊ณณ์ ์ ์ฅ๋ "hello"์ "world" ๋ฌธ์์ด์ ๋ํด "hello world"๋ก ๋ณ๊ฒฝํ ๊ฒ์ผ๋ก ์ฐฉ๊ฐํ ์ ์๋ค.
String str = "hello"; // String str = new String("hello");
str = str + " world"; // hello world
๊ทธ๋ฌ๋ ์ฌ์ค์ str์ด "hello world" ๊ฐ์ ๊ฐ์ง๊ณ ์๋ ์๋ก์ด ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ฐ๋ฆฌํค๊ฒ ๋ณ๊ฒฝ๋๊ณ ์ฒ์ ์ ์ธํ๋ "hello"์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ Garbage๋ก ๋จ์์๋ค๊ฐ GC(garbage collection)์ ์ํด ์ฌ๋ผ์ง๊ฒ ๋๋ ๊ฒ์ด๋ค. ์ฆ, String๋ ๋ถ๋ณํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด์ ์์ ํ๋ ์์ ์ ์๋ก์ด String ์ธ์คํด์ค๊ฐ ์์ฑ๋ ๊ฒ์ด๋ค.
- String์ ๋ถ๋ณ์ฑ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ณํ์ง ์๋ ๋ฌธ์์ด์ ์์ฃผ ์ฝ์ด ๋ค์ด๋ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ฉด ์ข๋ค.
- ๋ง์ฝ ๋ฌธ์์ด ์ถ๊ฐ, ์์ , ์ญ์ ๋ฑ์ ์ฐ์ฐ์ด ๋น๋ฒํ๊ฒ ๋ฐ์ํ๋ค๋ฉด, ๊ฐ๋ณ์ฑ์ ๊ฐ์ง๋ StringBuffer, StringBuilder๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. String๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ํ ๋ฉ๋ชจ๋ฆฌ์ ๋ง์ ์์ Garbage๊ฐ ์์ฑ๋์ด ํ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ ์น๋ช ์ ์ธ ์ํฅ์ ๋ผ์น๊ฒ ๋ ์ ์๋ค.
2) StringBuffer vs StringBuilder
StringBuffer์ StringBuilder์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๋๊ธฐํ์ ์ ๋ฌด์ด๋ค.
- StringBuffer๋ ๋๊ธฐํ ํค์๋๋ฅผ ์ง์ํ์ฌ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์์ (thread-safe)ํ๋ค. ์ฐธ๊ณ ๋ก String๋ ๋ถ๋ณ์ฑ์ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์์ ์์ ์ฑ(thread-safe)์ ๊ฐ์ง๊ณ ์๋ค.
- StringBuilder๋ ๋๊ธฐํ๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์ฌ์ฉํ๋ ๊ฒ์ ์ ํฉํ์ง ์๋ค. ๊ทธ๋ฌ๋ ๋จ์ผ ์ค๋ ๋์์์ ์ฑ๋ฅ์ StringBuffer๋ณด๋ค ๋ฐ์ด๋๋ค.
14. checked exception, unchecked exception
์์ธ๋ ์ฌ์ฉ์์ ์๋ชป๋ ์กฐ์ ๋๋ ๊ฐ๋ฐ์์ ์๋ชป๋ ์ฝ๋ฉ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ํ๋ก๊ทธ๋จ ์ค๋ฅ์ด๋ค. ์์ธ๊ฐ ๋ฐ์ํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๊ฐ ๋๋ค๋ ๊ฒ์ ์๋ฌ์ ๋์ผํ์ง๋ง, ์์ธ์ฒ๋ฆฌ(Exception Handling)๋ฅผ ํตํด ํ๋ก๊ทธ๋จ์ ์ข ๋ฃ๋์ง ์๊ณ ์ ์์ ์ผ๋ก ์๋๋๊ฒ ๋ง๋ค์ด์ค ์ ์๋ค.
- Checked Exception: ๋ช ์์ ์ธ ์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ๊ธฐ ๋๋ฌธ์ Checked Exception์ด๋ผ ํ๋ค. ๋ฐ๋์ try ~ catch๋ก ์์ธ๋ฅผ ์ก๊ฑฐ๋ throw๋ก ํธ์ถํ ๋ฉ์๋์๊ฒ ์์ธ๋ฅผ ๋์ ธ์ผ ํ๋ค.
- Unchecked Exception: ๋ช ์์ ์ธ ์์ธ ์ฒ๋ฆฌ๋ฅผ ๊ฐ์ ํ์ง ์๊ธฐ ๋๋ฌธ์ Uncheked Exception์ด๋ผ๊ณ ํ๋ค. ๋ช ์์ ์ธ ์์ธ ์ฒ๋ฆฌ๋ try ~ catch๋ก ์์ธ๋ฅผ ์ก๊ฑฐ๋ throw๋ก ํธ์ถํ ๋ฉ์๋์๊ฒ ์์ธ๋ฅผ ๋์ง์ง ์๋ ํ์๋ฅผ ๋งํ๋ค.