์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- ๊ธฐ์ด100์
- 2024-08-21
- uri
- url
- ์ด๋ ธํ ์ด์
- datepicker
- 2024-08-20
- reflection
- fontstyle
- Android Studio
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- Dialog
- udp
- OpenAPI
- AndroidStudio
- Factory Method Pattern
- ์ฝ๋์
- di
- menutab
- ์ฑ์ฉํ์ ํ
- http method
- swagger
- URN
- Python
- OOP
- Kotlin
- FACTORY
- ํ๋ IT&E
- IOC
- tcp
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (74)
dingdong coding
SQL Injection ์ด๋? • ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ๋ณด์์์ ์ทจ์ฝ์ ์ ์ด์ฉํ์ฌ ์กฐ์๋ SQL query๋ฌธ์ DataBase์ ์ฃผ์ ์์ผ ๋น์ ์์ ๋ช ๋ น์ ์คํ์ํค๋ ๊ณต๊ฒฉ ๊ธฐ๋ฒ ( web hacking techniques ) • ํด๋น ๊ณต๊ฒฉ์ ๋ฐ์ผ๋ฉด ์กฐ์ง ๋ด๋ถ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ๊ฐ์ธ์ ๋ณด๋ฅผ ํ๋ํ ์ ์์ผ๋ฉฐ, ์ฌ๊ฐํ ๊ฒฝ์ฐ ์กฐ์ง ๋ฐ์ดํฐ ์ ์ฒด๋ฅผ ์ฅ์ ํ๊ฑฐ๋ ์์์ํฌ ์ ์์ต๋๋ค. ๊ณต๊ฒฉ ๋ฐฉ๋ฒ 1 ) ์ธ์ฆ์ฐํ • SQL injection์ ๋ณดํต ์ฌ์ฉ์์๊ฒ ๋ก๊ทธ์ธ(username, userid)๊ณผ ๊ฐ์ ์ ๋ ฅ ์์ฒญ ์ ๋ฐ์ํฉ๋๋ค. • ์ ์์ ์ธ ๊ณ์ ์ ๋ณด ์์ด๋ ๋ก๊ทธ์ธ์ ์ฐํํ์ฌ ์ธ์ฆ์ ํ๋ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ด๋๊ฐ abc, ๋น๋ฐ๋ฒํธ๊ฐ 1234์ผ ๋ ์ฟผ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ด ์ ์ก๋ ๊ฒ์ ๋๋ค. SELECT * FROM US..
1. ๋ชจํ๊ฐ ๊ธธ๋ • ๋ฌธ์ ํ ๋ง์์ ๋ชจํ๊ฐ๊ฐ N๋ช ์์ต๋๋ค. ๋ชจํ๊ฐ ๊ธธ๋์์๋ N๋ช ์ ๋ชจํ๊ฐ๋ฅผ ๋์์ผ๋ก '๊ณตํฌ๋'๋ฅผ ์ธก์ ํ๋๋ฐ, '๊ณตํฌ๋'๊ฐ ๋์ ๋ชจํ๊ฐ๋ ์ฝ๊ฒ ๊ณตํฌ๋ฅผ ๋๊ปด ์ํ ์ํฉ์์ ์ ๋๋ก ๋์ฒํ ๋ฅ๋ ฅ์ด ๋จ์ด์ง๋๋ค. ๋ชจํ๊ฐ ๊ธธ๋์ฅ์ธ ๋๋น์ด๋ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์์ ํ๊ฒ ๊ตฌ์ฑํ๊ณ ์ ๊ณตํฌ๋๊ฐ X์ธ ๋ชจํ๊ฐ๋ ๋ฐ๋์ X๋ช ์ด์์ผ๋ก ๊ตฌ์ฑํ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ์ฐธ์ฌํด์ผ ์ฌํ์ ๋ ๋ ์ ์๋๋ก ๊ท์ ํ์ต๋๋ค. ๋๋น์ด๋ ํ๋ ๋ช ๊ฐ์ ๋ชจํ๊ฐ ๊ทธ๋ฃน์ ๋ง๋ค ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค. ** ๋ชจ๋ ๋ชจํ๊ฐ๋ฅผ ํน์ ํ ๊ทธ๋ฃน์ ๋ฃ์ ํ์๋ ์์ต๋๋ค. ** • ์ ๋ ฅ์กฐ๊ฑด - ์ฒซ์งธ ์ค์ ๋ชจํ๊ฐ์ ์ N์ด ์ฃผ์ด์ง๋ค. ( 1 ≤ N ≤ 100,000 ) - ๋์งธ ์ค์๋ ๊ฐ ๋ชจํ๊ฐ์ ๊ณตํฌ๋ ๊ฐ์ N ์ดํ์ ์์ฐ์๋ก ์ฃผ์ด์ง๋ฉฐ, ๊ฐ ์์ฐ์๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ..
MVC๋? MVC ํจํด์ ์ํคํ ์ณ๋ฅผ ์ค๊ณํ๊ธฐ ์ํ ๋์์ธ ํจํด์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ๊ตฌ์ฑ์์๋ฅผ 3๊ฐ์ง๋ก ๋๋๋๋ค. ์ด๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ๋ถ์์ผ ์๋ก ์ํฅ์์ด ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค. • M ( Model ) "๋ฌด์์" - ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ปดํฌ๋ํธ - ์ปจํธ๋กค๋ฌ๊ฐ ํธ์ถํ ๋, ์์ฒญ์ ๋ง๋ ์ญํ ์ ์ํํฉ๋๋ค. - ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๋ ์์ญ์ผ๋ก ์์ฉ ํ๋ก๊ทธ๋จ์์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ ๋๋ค. • V ( View ) - ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI) ์ปดํฌ๋ํธ - Controller๋ก ๋ถํฐ ๋ฐ์ ๋ชจ๋ธ์ ๊ฒฐ๊ณผ๊ฐ์ ๊ฐ๊ณ ์ถ๋ ฅํ ํ๋ฉด์ ๋ง๋๋ ์ผ์ ํฉ๋๋ค. - ์์ฑ๋ ํ๋ฉด์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์กํ๊ณ ์ถ๋ ฅํ๊ฒ ๋ง๋ญ๋๋ค. - ์ฌ์ฉ์์ ์ํธ์์ฉ(๋ฐ์ดํฐํ์, ์ ๋ ฅ ํผ ๋ฑ)์ ์ํ ์ธํฐํ์ด์ค๋ฅผ ..
RESTful API REST์ ๊ธฐ๋ณธ ์์น์ ์ฑ์คํ ์งํจ API REST ๋? : REpresenrational State Transfer ( + ful ~ํ ) ์ ์ค์๋ง๋ก ์ฆ, ์น์ ์ํ ๋คํธ์ํฌ ๊ธฐ๋ฐ ์ํคํ ์ณ ์คํ์ผ์ ๋๋ค. ๋คํธ์ํฌ ๊ธฐ๋ฐ ์ํคํ ์ณ ๊ณ ๋ ค์ฌํญ์๋ ์ฑ๋ฅ, ๊ท๋ชจํ์ฅ์ฑ(Scalability), ๋จ์์ฑ, ์์ ์ฉ์ด์ฑ(Modifiability), ๊ฐ์์ฑ(Visibility), ์ด์์ฑ(Portability), ์ ๋ขฐ์ฑ(Reliability) ์ด ์์ต๋๋ค. REST๋ ํ๋์ Architecture๋ก Resource Oriented Architecture ์ฆ, " API ์ค๊ณ ์ค์ฌ์ ์์์ด ์๊ณ HTTP Method๋ฅผ ํตํด ์์์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณํ๋ ๊ฒ" ์ ๋๋ค. ๋ฐ๋ผ์ REST์ ๊ธฐ๋ณธ ์์น์ ์ฑ์คํ ์ง..
Optional ์ด๋? ๊ฐ๋ฐ์ ํ ๋ ๊ฐ์ฅ ๋ง์ด ๋ฐ์ํ๋ ์์ธ ์ค ํ๋๋ ๋ฐ๋ก NullPointerException ์ ๋๋ค. NullPointerException ์ ํผํ๊ณ null ์ฒดํฌํ๋ ๋ก์ง์ ์ค์ด๊ธฐ ์ํด ๋น ๊ฐ์ผ ๋ null ๋์ ์ด๊ธฐ๊ฐ์ ์ฌ์ฉํ๊ธธ ๊ถ์ฅํ๊ณค ํฉ๋๋ค. List names = getNames(); names.sort(); // names ๊ฐ null ์ด๋ผ๋ฉด NullPointerException ์ด ์ผ์ด๋๋ค. ์๋ฐ 8์์๋ Optional ํด๋์ค๋ฅผ ์ด์ฉํด์ NullPointerException ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ฆ, ๋ณต์กํ ์กฐ๊ฑด๋ฌธ ์์ด๋ ๋(null) ๊ฐ์ผ๋ก ์ธํด ๋ฐ์ํ๋ ์์ธ๋ฅผ ์ฒ๋ฆฌํ ์ ์๊ฒ ๋ฉ๋๋ค. public final class Optional { // If non-nu..
• ์๋ก์ ์งํฉ (Disjoint Sets) : ๊ณตํต ์์๊ฐ ์๋ ๋ ์งํฉ์ ์๋ฏธํฉ๋๋ค. • ์๋ก์ ๋ถ๋ถ ์งํฉ๋ค๋ก ๋๋์ด์ง ์์๋ค์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์๋ฃ๊ตฌ์กฐ์ ๋๋ค. • ์๋ก์ ์งํฉ ์๋ฃ๊ตฌ์กฐ๋ ๋ ์ข ๋ฅ์ ์ฐ์ฐ์ ์ง์ํฉ๋๋ค. • ํฉ์งํฉ(Union) : ๋ ๊ฐ์ ์์๊ฐ ํฌํจ๋ ์งํฉ์ ํ๋์ ์งํฉ์ผ๋ก ํฉ์น๋ ์ฐ์ฐ์ ๋๋ค. • ์ฐพ๊ธฐ(Find) : ํน์ ํ ์์๊ฐ ์ํ ์งํฉ์ด ์ด๋ค ์งํฉ์ธ์ง ์๋ ค์ฃผ๋ ์ฐ์ฐ์ ๋๋ค. • ์๋ก์ ์งํฉ ์๋ฃ๊ตฌ์กฐ๋ ํฉ์น๊ธฐ ์ฐพ๊ธฐ(Union Find) ์๋ฃ๊ตฌ์กฐ๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํฉ๋๋ค. • ์ฌ๋ฌ ๊ฐ์ ํฉ์น๊ธฐ ์ฐ์ฐ์ด ์ฃผ์ด์ก์ ๋ ์๋ก์ ์งํฉ ์๋ฃ๊ตฌ์กฐ์ ๋์ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. 1. ํฉ์งํฉ(Union) ์ฐ์ฐ์ ํ์ธํ๋ฉฐ, ์๋ก ์ฐ๊ฒฐ๋ ๋ ๋ ธ๋ A, B๋ฅผ ํ์ธํฉ๋๋ค. 1) A์ B์ ๋ฃจํธ ๋ ธ๋ A'..
์ด๋ ธํ ์ด์ ์ด๋? • @ ์ฌ์ธ ํ๋๋ก ๋ง์ ์ปจํ ์คํธ๋ค์ ์ ๊ณต ๋ฐ์ ์ ์๊ฒ ํ๋ค. • @ ์ฌ์ธ์ผ๋ก ์์ํ๋ ๊ฒ์ ์ด๋ ธํ ์ด์ ์ด๋ผ๊ณ ํ๋ค. Spring์ผ๋ก ๊ฐ๋ฐํ ๋ ์ด๋ ธํ ์ด์ ์์ด ๊ฐ๋ฐํ๋ ๊ฒ์ ๊ฑฐ์ ๋ณผ ์ ์๋ค. Controller ๋ฑ๋ก์ด๋ Service, Repository, Test ๋ฑ ์์ฐ์ด๋ ๊ณณ์ด ์์ ์ ๋๋ค. ๋ง์ด ์ฐ์์๋ ๊ฐ๋ฐํ๋ค๊ฐ ๊ฐ๋ ์๊ฐ์ด ์๋๊ฑฐ๋ ๊น๋จน์ ๋๊ฐ ์๊ธฐ์ ์ง๊ธ์ด๋ผ๋ ์กฐ๊ธ์ฉ ์ ๋ฆฌํ ์๊ฐ์ด๋ค. ํฌ์คํธ์ ์ฒ๋ผ ๊ณ์ ์ถ๊ฐํ ์์ โ๏ธ @AfterEach : ๊ฐ ํ ์คํธ๊ฐ ์ข ๋ฃ๋ ๋๋ง๋ค ์คํ 1) Test Case๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ : ๋ฉ๋ชจ๋ฆฌ DB์ ๋จ์์๋ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ค. (์ง์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด์ค) clearStore ๋ฉ์๋ public void clearStore(){ st..
Spring Boot๋ก ๊ฐ๋ฐํ๋ ์ค ์์ฃผ์ฌ์ฉํ๊ฒ ๋๋ ๋๋ค์ ๋ํด ํ ๋ฒ ํ์ตํ๊ณ ๋์ด๊ฐ๊ณ ์ ์ ๋ฆฌํ๊ฒ ๋์๋ค. Lambda? Anonymous function ์ฆ, ์ด๋ฆ์ด ์๋ ์ต๋ช ํจ์๋ฅผ ๋ปํฉ๋๋ค. ๋ณดํต ๋ฉ์๋๊ฐ ์๋ ํจ์๋ก ์ข ์์ ์ด์ง ์๋ค๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. 1. ๋๋ค์ ์ด์ for (int i = 0; i System.out.println(value)); ์ด๋ ๋ฏ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ธ ์ต๋ช ํจ์๋ ์ผ๊ธ๊ฐ์ฒด(first-class-citizen)๋ผ๋ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. first-class-citizen ๋ณ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์์ ํจ์..
'ํค์ ๋ํ ํด์ ๊ฐ์ ์ฌ์ฉํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ์กฐํํ๋ฉฐ, ํค-๊ฐ ์์ ๊ฐ์์ ๋ฐ๋ผ ๋์ ์ผ๋ก ํฌ๊ธฐ๊ฐ ์ฆ๊ฐํ๋ associate array' associate array : Map, Dictionary, Symbol Table ๋ฑ HashMap์ ์์๋ณด๊ธฐ ์ Map์ ๋ํด ์์๋ณด์ Map ์ด๋? Map์ Key-Value์ Mapping์ด๋ค. ์ฆ, ๋ชจ๋ Key๊ฐ ์ ํํ ํ๋์ Value์ Mapping๋๊ณ Key๋ฅผ ์ฌ์ฉํ์ฌ Map์์ ํด๋น Value๋ฅผ ๊ฒ์ํ ์ ์์ต๋๋ค. ๋ํ Key์ Value๋ ๋ชจ๋ ๊ฐ์ฒด๋ก Value๋ ์ค๋ณต์ ์ฅ๋ ์ ์์ง๋ง Key๋ ์ค๋ณต์ ์ฅ์ด ๋ถ๊ฐํฉ๋๋ค. ๋จ์ํ List์ ๊ฐ์ ์ถ๊ฐ ํ์ง ์๋ ์ด์ , HashMap์ด ํ์ํ ์ด์ ๋ ๋ฌด์์ผ๊น? ๊ฐ๋จํ ์ด์ ๋ ์ฑ๋ฅ๋๋ฌธ์ ๋๋ค. List์์ ํน..
Java Language ํน์ง • ํ๋ซํผ ๋ ๋ฆฝ์ฑ : Java Application์ ํด๋์ค ํ์ผ์ ์ ์ฅ๋๊ณ JVM์ ๋ก๋๋๋ ๋ฐ์ดํธ ์ฝ๋๋ก ์ปดํ์ผ : Application์ JVM์์ ์คํ๋๊ธฐ ๋๋ฌธ์ ๋ค์ํ ์ด์์ฒด์ ์ ์ฅ์น์์ ์คํ๊ฐ๋ฅ • ๊ฐ์ฒด ์งํฅ : C ๋ฐ C++์ ๋ง์ ๊ธฐ๋ฅ์ ์ทจํ๊ณ ์ด๋ฅผ ๊ฐ์ ํ ๊ฐ์ฒด์งํฅ ์ธ์ด ์ ๋๋ค. : ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด๋ ํ์ค ์ธ๊ณ๋ฅผ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ฎ๊ฒจ์ ํ์ค ์ธ๊ณ์ ์ฌ๋ฌผ๋ค์ ๊ฐ์ฒด๋ก ๋ณด๊ณ ๊ทธ ๊ฐ์ฒด๋ก๋ถํฐ ๊ฐ๋ฐํ๊ณ ์ ํ๋ ํน์ง๊ณผ ๊ธฐ๋ฅ์ ๋ฝ์์ ํ๋ก๊ทธ๋๋ฐํ๋ ๊ฒ • ์๋ Garbage ์์ง : ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋น ๋ฐ ํ ๋น ํด์ ํ๋ฉฐ ํ๋ก๊ทธ๋จ์ด ํด๋น ์์ ์ ๋ถ๋ด์ ๊ฐ์ง ์๋๋ก ํ๋ค. • ํ๋ถํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ : ์ /์ถ๋ ฅ, ๋คํธ์ํน ๋ฐ ๋ ์ง ์กฐ์๊ณผ ๊ฐ์ ์์ ์ ์ํํ๋๋ฐ ์ฌ์ฉํ ..