โถ ์ค๋ ์คํ ๊ฐ๋ฅํ ์ธ๋ถ ๋ชฉํ
=> ๊ณต๋ถ ๊ด๋ จ
1) ์คํธ๋ฆผ
2) ์๋ฐ ๋ฆฌํฉํ ๋ง
3) ๊ธ์ผ ๋ฐฐ์ด ๋ด์ฉ ๋ณต์ต
4) ์คํ๋ง ๊ฐ์ฒด์งํฅ ์ฑ 1๋จ์
=> ํ์ด๋ ํ๋ก์ ํธ ๊ด๋ จ
1) ํ๋ฉด ์ค๊ณ์ ํ์ (ํธ๋ ์ด๋ ๊ด๋ฆฌ ๋ถ๋ถ)
โถ ๋ฌธ์ ์ ๋ฆฌ
1. ์ต๋ช ๊ฐ์ฒด์ ๊ฐ๋ ์ ์๊ฐ ํ์ค์น ์์์ ๋๋ค์์ ์ดํด๊ฐ ์ด๋ ค์ ๋ค.
=> ์ต๋ช ๊ฐ์ฒด(ํด๋์ค)์ ๊ฐ๋ ํ์คํ ์ ๋ฆฌ
=> ์ผํ์ฑ์ ์ด๋ฒคํธ์ด๋ฏ๋ก ๊ฐ์ฒด์ ๋ฐ๋ก ์ ์ํ๋ ๊ฒ์.
โถ ๊ณต๋ถ ๋ด์ฉ
JSTL (Java Standard Tag Library)
foreach ํ๊ทธ
- ํ๊ทธ๋ด์ฉ์ ๋ฐ๋ณต์ ์ผ๋ก ํฌํจํ์ฌ ์ถ๋ ฅํ๊ธฐ ์ํ ํ๊ทธ
- var ์์ฑ : ์ค์ฝํ ๊ฐ์ฒด์ ์ ์ฅ๋ ์์ฑ๊ฐ
- begin ์์ฑ : ์ค์ฝํ ๊ฐ์ฒด์ ์ ์ฅ๋ ์์๊ฐ(Integer)์ ์์ฑ๊ฐ์ผ๋ก ์ค์
- end ์์ฑ : ์ค์ฝํ ๊ฐ์ฒด์ ์ ์ฅ๋ ์ข ๋ฃ๊ฐ(Integer)์ ์์ฑ๊ฐ์ผ๋ก ์ค์
- step ์์ฑ: ์ฆ๊ฐ๊ฐ(Integer)์ ์์ฑ๊ฐ์ผ๋ก ์ค์
⇒ foreach ํ๊ทธ๋ ๋ฐฐ์ด ๋๋ ์ปฌ๋ ์ ์ ์์ ๊ฐ์ ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ณต๋ฐ์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ ์ ๊ณต
- var ์์ฑ : ์์ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ์ค์ฝํ ๊ฐ์ฒด์ ์์ฑ๋ช
- items ์์ฑ : ๋ฐ๋ณต ์ฒ๋ฆฌํ ๋ฐฐ์ด ๋๋ ์ปฌ๋ ์ ์ ์์ฑ๊ฐ์ผ๋ก ์ค์
fortokens ํ๊ทธ
- ์ค์ฝํ ๊ฐ์ฒด์ ์ ์ฅ๋ ์์ฑ๊ฐ์ ํน์ ๋ฌธ์์ด๋ก ๋ถ๋ฆฌํ์ฌ ๋ฐ๋ณต ์ฒ๋ฆฌํ๋ ํ๊ทธ
- items ์์ฑ : ๋ถ๋ฆฌํ๊ธฐ ์ํ ์ค์ฝํ ๊ฐ์ฒด์ ์์ฑ๊ฐ(String)์ ์์ฑ๊ฐ์ผ๋ก ์ค์
- delims ์์ฑ : ๋ถ๋ฆฌํ๊ธฐ ์ํ ๊ตฌ๋ถ๊ฐ(String)์ ์์ฑ๊ฐ์ผ๋ก ์ค์
- var ์์ฑ : ๋ถ๋ฆฌ๋ ๊ฐ์ ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ณต๋ฐ๊ธฐ ์ํ ์์ฑ๋ช ์ ์์ฑ๊ฐ์ผ๋ก ์ค์
import ํ๊ทธ
- ๋ค๋ฅธ ์นํ๋ก๊ทธ๋จ์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์๋ต๋ฐ์ ํฌํจํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ํ๊ทธ
- url ์์ฑ : ์๋ต ๊ฒฐ๊ณผ๋ฅผ ํฌํจ์ํฌ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
- ⇒ include ์ก์ ํ๊ทธ์ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณต
- include ํ๊ทธ๋ ํ์ฌ ์๋ฒ์ ์นํ๋ก๊ทธ๋จ๋ง์ ์์ฒญํ์ฌ ์คํ๊ฒฐ๊ณผ๋ฅผ ์๋ต๋ฐ์ ํฌํจํ์ง๋ง import ํ๊ทธ๋ ๋ค๋ฅธ ์๋ฒ์ ์นํ๋ก๊ทธ๋จ์ ์์ฒญํ์ฌ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์๋ต๋ฐ์ ํฌํจ ๊ฐ๋ฅ
- ⇒ HTML์ iframe ํ๊ทธ์ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณต
- URL ๊ด๋ฆฌ ํ๊ทธ์๋ param ํ๊ทธ๋ฅผ ํ์ํ๊ทธ๋ก ์ฌ์ฉํ์ฌ ๊ฐ ์ ๋ฌ ๊ฐ๋ฅ
param ํ๊ทธ
- ์์ฒญ ์นํ๋ก๊ทธ๋จ์๊ฒ ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ํ ํ๊ทธ
- ⇒ URL ๊ด๋ฆฌ ํ๊ทธ์ ์ข ์ ํ๊ทธ
- ⇒ URL ๊ด๋ฆฌ ํ๊ทธ์ param ํ๊ทธ๋ฅผ ์ ์ธํ ์ฝ๋๊ฐ ์กด์ฌํ ๊ฒฝ์ฐ ์๋ฌ ๋ฐ์ - JSP ์ฃผ์ ์์ธ
redirect ํ๊ทธ
- ํด๋ผ์ด์ธํธ์๊ฒ URL ์ฃผ์๋ฅผ ์ ๋ฌํ์ฌ ์ฌ์์ฒญ ํ๋๋ก ์๋ตํ๋ ํ๊ทธ
- url ์์ฑ : ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์์ฒญํ ์นํ๋ก๊ทธ๋จ์ URL ์ฃผ์๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
Core - URL ๊ด๋ฆฌ ํ๊ทธ
- ์๋ฒ์ ์ ์ฅ๋ ๋ฆฌ์์ค ํ์ผ(๋ฉํฐ๋ฏธ๋์ด ํ์ผ, CSS ํ์ผ, JS ํ์ผ ๋ฑ)์ ์๋๊ฒฝ๋ก๋ก ํํํ์ฌ ์ ๊ณต
- ์๋๊ฒฝ๋ก : ํ์ฌ ์์ฒญ ์นํ๋ก๊ทธ๋จ์ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์์ค ํ์ผ์ ๊ฒฝ๋ก ํํํ๋ ๋ฐฉ๋ฒ
- ์์ฒญ ์นํ๋ก๊ทธ๋จ(Controller)๊ณผ ์๋ต ์นํ๋ก๊ทธ๋จ(View)์ ๊ฒฝ๋ก๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ 404 ์๋ฌ์ฝ๋ ๋ฐ์
- ⇒ ์๋ฒ์ ์ ์ฅ๋ ๋ฆฌ์์ค ํ์ผ์ ์ ๋๊ฒฝ๋ก๋ก ํํํ์ฌ ์ ๊ณตํ๋ ๊ฒ์ ๊ถ์ฅ
- ์ ๋ ๊ฒฝ๋ก : ์ต์์ ๋๋ ํ ๋ฆฌ(์๋ฒ ๋๋ ํ ๋ฆฌ)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฆฌ์์ค ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ
- ๋ฆฌ์์ค ํ์ผ์ด ๋์ผํ ์๋ฒ์ ์กด์ฌํ ๊ฒฝ์ฐ ์ ์ ์๋ฒ ์๋ต ๊ฐ๋ฅ
- ⇒ ์ปจํ ์คํธ๋ช ์ด ๋ณ๊ฒฝ๋๋ ์ปจํ ์คํธ ๊ฒฝ๋ก๋ ๋ณ๊ฒฝ๋๋ฏ๋ก 404 ์๋ฌ์ฝ๋ ๋ฐ์ ๊ฐ๋ฅ
- request.getContextPath() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ ์ปจํ ์คํธ ๊ฒฝ๋ก๋ฅผ ๋ฐํ๋ฐ์ ๋ฆฌ์์ค ํ์ผ์ ์ ๋ ๊ฒฝ๋ก ์ค์
- EL ํํ์์์ pageContext ๋ด์ฅ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์คํธ ๊ฒฝ๋ก๋ฅผ ์ ๊ณต ๋ฐ์ ๋ฆฌ์์ค ํ์ผ์ ์ ๋ ๊ฒฝ๋ก ํํ
url ํ๊ทธ (์์ฃผ ์ฌ์ฉ๋๋ฏ๋ก ์ ์์๋์)
- ์ปจํ ์คํธ ๊ฒฝ๋ก๊ฐ ํฌํจ๋ ๋ฆฌ์์ค ํ์ผ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๋ ํ๊ทธ
- value ์์ฑ : ์ปจํ ์คํธ ๊ฒฝ๋ก๋ฅผ ์ ์ธํ ๋ฆฌ์์ค ํ์ผ์ ์ ๋๊ฒฝ๋ก๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
ํํฐ ํด๋์ค Filter Class
- ํน์ ์นํ๋ก๊ทธ๋จ ์์ฒญ์ ๋ํด ๋์ ์ ์คํ๋ ๋ช ๋ น๊ณผ ๋์ ํ ์๋ต ์ ์คํ ๋ ๋ช ๋ น์ ์์ฑํ๊ธฐ ์ํ ํด๋์ค
- ⇒ ์น ํ๋ก๊ทธ๋จ ๋์ ์ ์คํ๋ ๋ช ๋ น : request ๋ฉ์ธ์ง(HttpServletRequest Intance)์ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝ
- ⇒ ์น ํ๋ก๊ทธ๋จ ๋์ ํ ์คํ๋ ๋ช ๋ น : response ๋ฉ์ธ์ง(HttpServletResponse Intance)์ ์ ๋ณด๋ฅผ ๋ณ๊ฒฝ
- ํํฐ ํด๋์ค๋ ๋ฐ๋์ Filter ์ธํฐํ์ด์ค๋ฅผ ์์ ๋ฐ์ ์์ฑ
- ⇒ ํํฐ ํด๋์ค๋ @WebFilter ์ด๋ ธํ ์ด์ ๋๋ web.xml ํ์ผ์ filter ์๋ฆฌ๋จผํธ๋ฅผ ์ฌ์ฉํ์ฌ ํํฐ๋ก ๋์๋๋๋ก ์ค์
FilterChain.doFilter(ServletRequest request, ServletResponse response)
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์นํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํ์ฌ ์คํ๋๋๋ก ์ค์ ํ๋ ๋ฉ์๋
Formatter - ๋ ์ง์ ์๊ฐ ๋ณํ ํ๊ทธ
formatDate ํ๊ทธ
- ์ค์ฝํ ๊ฐ์ฒด์ ์ ์ฅ๋ Date ์ธ์คํด์ค์ ๋ ์ง์ ์๊ฐ์ ์ํ๋ ํจํด์ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ ๊ณตํ๋ ํ๊ทธ - SimpleDateFormat ํด๋์ค์ ์ ์ฌ
- value ์์ฑ : Date ์ธ์คํด์ค๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
- type ์์ฑ : date(๋ ์ง), time(์๊ฐ), both(๋ ์ง์ ์๊ฐ) ์ค ํ๋๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
- ⇒ ์์ฑ๊ฐ์ด [date]์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก [yyyy.M.d] ํจํด์ ๋ฌธ์์ด๋ก ๋ณํ๋์ด ์ ๊ณต
- dateStyle ์์ฑ : full ๋๋ short ์ค ํ๋๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
- ⇒ ์์ฑ๊ฐ์ด [full]์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก [yyyy๋ M์ d์ผ E์์ผ] ํจํด์ ๋ฌธ์์ด๋ก ๋ณํ๋์ด ์ ๊ณต
- ⇒ ์์ฑ๊ฐ์ด [short]์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก [yy.M.d] ํจํด์ ๋ฌธ์์ด๋ก ๋ณํ๋์ด ์ ๊ณต
- ⇒ ์์ฑ๊ฐ์ด [time]์ธ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก [a h.mm.ss] ํจํด์ ๋ฌธ์์ด๋ก ๋ณํ๋์ด ์ ๊ณต
formatNumberํ๊ทธ
- ์ค์ฝํ ๊ฐ์ฒด์ ์ ์ฅ๋ ์ซ์๊ฐ์ ์ํ๋ ํจํด์ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ ๊ณตํ๋ ํ๊ทธ
- → DecomalFormat ํด๋์ค
- value ์์ฑ : ์ซ์๊ฐ์ด ์ ์ฅ๋ ์ธ์คํด์ค๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
- type ์์ฑ : number ๋๋ current ์ค ํ๋๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
- ⇒ ์์ฑ๊ฐ์ด [number] : ์ซ์ 3์๋ฆฌ๋ง๋ค ,๊ฐ ์ฝ์ ๋ ํ์์ ๋ฌธ์์ด๋ก ๋ณํ๋์ด ์ ๊ณต
- ⇒ ์์ฑ๊ฐ์ด [currency] : ์์ ํํ๊ธฐํธ๊ฐ ์ฝ์ ๋๊ณ ์ซ์ 3์๋ฆฌ๋ง๋ค ,๊ฐ ์ฝ์ ๋ ํ์์ ๋ฌธ์์ด๋ก ๋ณํ ์ ๊ณต
- pattern ์์ฑ : ์ซ์๋ฅผ ํํํ๋ ํจํด๋ฌธ์๋ฅผ ์์ฑ๊ฐ์ผ๋ก ์ค์
Functions - EL ํจ์
web.xml
filter
- ํํฐ ํด๋์ค๋ฅผ ํํฐ๋ก ์ค์ ํ๋ ์๋ฆฌ๋จผํธ
- ⇒ servlet ์๋ฆฌ๋จผํธ ์ ์ธ ์ ์ ์์ฑํ๋ ๊ฒ์ ๊ถ์ฅ
filter-mapping
- ํํฐ๊ฐ ๋์๋๊ธฐ ์ํ URL ์ฃผ์๋ฅผ ์ค์ ํ๋ ์๋ฆฌ๋จผํธ
- url-pattern์ /* ์ ํ๋ฉด ํด๋ผ์ด์ธํธ์ ๋ชจ๋ ์์ฒญ์ ๋ํ ํํฐ๊ฐ ๋์๋๋๋ก ์ค์
init-param
- ์คํ ํด๋์ค์๊ฒ ๊ฐ์ ์ ๋ฌํ๊ธฐ ์ํ ์๋ฆฌ๋จผํธ
MyBatis ํ๋ ์์ํฌ
- DAO๋ฅผ ๋ง๋ค์ด์ฃผ๋ ๊ฒ.
- ํ๋ ์์ํฌ : ์์ฑ๋ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์์ ๋ง๋ค์ด ์ค.
- log ํ๋ก๊ทธ๋จ : ๊ธฐ๋กํ๋ ํ๋ก๊ทธ๋จ, ๋ก๊ทธ ํ์ผ๋ก ๋ก๊ทธ ์๋ฒ์ ์ ์ฅ
- erp ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฒ์ ๊ธฐ๋กํด์ผํ๋ค. ๋ฌธ์ ๋ฐ์ ์ ์ญ์ถ์ ๊ฐ๋ฅ.
- slf4j : ์ค์ ๊ธฐ๋กํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- lib์ ์๋ lib๋ค์ ์์กด๊ด๊ณ์ด๋ค.
[๋ชจ๋ ํ๋ก๊ทธ๋จ์ ๊ธฐ๋กํ๋ ๊ฒ์ด ์ค์ํ๋ค]
๋ก๊น
- ๋ง์ด๋ฐํฐ์ค๋ ๋ด๋ถ ๋ก๊ทธ ํฉํ ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๊น ์ ๋ณด๋ฅผ ์ ๊ณต.
- ๋ด๋ถ ๋ก๊ทธ ํฉํ ๋ฆฌ๋ ๋ก๊น ์ ๋ณด๋ฅผ ๋ค๋ฅธ ๋ก๊ทธ ๊ตฌํ์ฒด ์ค ํ๋์ ์ ๋ฌํ๋ค.
→ ๋ฌด์จ ๋ก๊ทธ ํ์ผ์ ์ธ ์ง xmlํ์ผ์์ ๋งคํํด์ค์ผ ํจ.
โถ ๊ฐ์ธ ๊ณต๋ถ
Object ํด๋์ค์ ๋์ผ์ฑ & ๋๋ฑ์ฑ
- ๋์ผ์ฑ (Identival) : ๋๊ฐ์ ๊ฐ์ฒด๊ฐ ์์ ํ ๊ฐ์์ง, == ๋น๊ต
- ⇒ ๊ฐ์ฒด๊ฐ ์ฐธ์กฐํ๊ณ ์๋ ์ฃผ์ ๊ฐ์ ๋น๊ต, ๊ทธ๋์ ์์ฑ๊ณผ ํ์ ์ด ๊ฐ์๋ ์ฐธ์กฐ๊ฐ์ด ๋ค๋ฅด๋ฉด ๋ค๋ฅธ ๊ฐ์ฒด๋ก ๊ตฌ๋ถํจ.
- ๋๋ฑ์ฑ (Equivalent) : ๋์ผํ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋์ง equals() ๋น๊ต
- ⇒ ์ฆ, ๊ฐ์ฒด์ ๋ฉค๋ฒ ํ๋๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ๋ค์ด ์๋ก ๊ฐ๋ค๋ ๊ฒ์ ์๋ฏธํจ. ๋ ๊ฐ์ฒด๊ฐ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ฐ์์ง๋ฅผ ๋น๊ตํ๋ ์
์ฐธ๊ณ ๋ก String์ ๋์ผ์ฑ(==) ๋น๊ต๋ฅผ ํด๋ true. String์ ํน์ฑ๋๋ฌธ์ด๋ค.
JVM์์๋ String์ ์กฐ๊ธ ํน๋ณํ ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์, ๊ฐ์ฒด์ด์ง๋ง new์ฐ์ฐ์๊ฐ ์๋๋ผ ๋ฆฌํฐ๋ด("")์ ์ด์ฉํด์ String ์ ์์ฑ ํ ์์๋ค. ์ด๋ JVM์ ๊ฐ์ฒด์ ์์ญ์ธ heap ์์ญ์ด ์๋๋ผ, constant pool ์์ญ์ผ๋ก ์ฐพ์๊ฐ๋ค. ๊ทธ๋ฆฌ๊ณ constant pool ์์ญ์ ์ด์ ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๊ณ ์๋ String ๊ฐ์ฒด๊ฐ ์๋ค๋ฉด, ๊ทธ ๊ฐ์ฒด์ ์ฃผ์๊ฐ์ ๋ฐํํ์ฌ ์ฐธ์กฐํ๋๋ก ํ๋ค.
HashMap & HashSet์ ์ฐจ์ด?
1. ์ ์
HashMap์ Map ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ก,
HashTable๊ณผ ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
HashSet์ Set ์ธํฐํ์ด์ค์ ๊ตฌํ์ฒด๋ก,
๋ด๋ถ์ ์ผ๋ก HashMap์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์
์ญ์๋ HashTable๊ณผ ์ ์ฌํ ์๋ฃ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
2. ๋ฐ์ดํฐ ์ ์ฅ ํํ
HashMap์ Key-Value ์ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
Key์ Value์ mapping์ ์ ์งํ๊ณ ์๋ค.
HashSet์ ๊ฐ์ฒด ๊ทธ ์์ฒด๋ฅผ ์ ์ฅํ๋ค.
์์์ HashMap์ ๋ด๋ถ์ ์ผ๋ก ์ฌ์ฉํ๋ค๊ณ ํ๋๋ฐ,
Key ๊ฐ์ผ๋ก๋ ์ฝ์ ๋๋ ๊ฐ์ฒด ๊ทธ ์์ฒด๋ฅผ,
Value ๊ฐ์ผ๋ก๋ HashSet ๋ด๋ถ ๊ตฌํ ์ฝ๋์์
๋ฏธ๋ฆฌ ์ ์ธํด๋ dummy ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค.
3. ์ค๋ณต ํ์ฉ ์ฌ๋ถ
HashMap์ ์ค๋ณต Key ๊ฐ์ ํ์ฉํ์ง ์์ง๋ง,
์ค๋ณต Value ๊ฐ์ ํ์ฉํ๋ค.
ex. {'a': 1, 'b': 1, 'c': 2}
HashSet์ ๊ฐ์ฒด ์์ฒด๋ฅผ ๋ฐ์ดํฐ๋ก ์ ์ฅํ๊ธฐ ๋๋ฌธ์
์ค๋ณต์ ํ์ฉํ์ง ์๋๋ค.
ex. {'a', 'b', 'c'}
4. NULL ํ์ฉ ์ฌ๋ถ
HashMap์ ๋จ ํ๋์ NULL ๊ฐ์ Key ๊ฐ์ผ๋ก ๊ฐ์ง ์ ์๊ณ ,
(์ค๋ณต Key ๊ฐ์ ํ์ฉํ์ง ์๊ธฐ ๋๋ฌธ์)
์ฌ๋ฌ NULL ๊ฐ์ Value ๊ฐ์ผ๋ก ๊ฐ์ง ์ ์๋ค.
HashSet์ ๋จ ํ๋์ NULL ๊ฐ์ ๊ฐ์ง ์ ์๋ค.
5. ๋ฐ์ดํฐ ์ฝ์ ๋ฐฉ๋ฒ
HashMap์ put() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋๋ฐ,
Key-Value ์ ๋ฐ์ดํฐ์ ํํ๋ฅผ ์ ์ฅํ๊ธฐ ๋๋ฌธ์
์ฝ์ ์ฐ์ฐ ๋์ ๋จ ํ๋์ ๊ฐ์ฒด๊ฐ ์์ฑ๋๋ค.
HashSet์ add() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ํ๋๋ฐ,
๊ฐ์ฒด ๊ทธ ์์ฒด๋ฅผ ์ ์ฅํ๊ณ
๋ด๋ถ์ ์ผ๋ก HashMap์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์,
์ฝ์ ๋๋ ๊ฐ์ฒด(Key๊ฐ)์ dummy ๊ฐ์ฒด(Value ๊ฐ),
์ด ๋ ๊ฐ์ ๊ฐ์ฒด๊ฐ ์ฝ์ ์ฐ์ฐ ๋์ ์์ฑ๋๋ค.
์ฑ๋ฅ
์ด์ ๊ธ์์๋ ์ธ๊ธํ ๊ฒ์ฒ๋ผ,
HashMap์ด HashSet๋ณด๋ค ๋น ๋ฅด๋ค.
์ด์ ๋ HashSet์ ๋ํด ์์ฑํ ์ด์ ๊ธ์ ์ฐธ๊ณ ํ์.
๊ทธ๋์ ๋ฐ์ดํฐ์ ์ ์ผํจ(Uniqueness)์ ์ ์งํ๊ธฐ ์ํด
ํญ์ HashMap์ด HashSet๋ณด๋ค ์ ํธ๋๋ค.
โถ ํ์ด๋ ํ๋ก์ ํธ
> ํ๋ฉด ๋ชฉ๋ก ์ง๋ฌธ ์ ๋ฆฌ
> ์ ํจ์ฑ ๊ฒ์ฌ ์ ๋ฆฌ ์ค
> ๋ด์ผ ๋์ฝ ํ์
'Legacy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2022.02.24 ์ ๊ธฐ๋ก (0) | 2022.02.24 |
---|---|
2022.02.23์ ๊ธฐ๋ก (0) | 2022.02.23 |
2022.02.21์ ๊ธฐ๋ก (0) | 2022.02.21 |
2022.02.20์ ๊ธฐ๋ก (0) | 2022.02.20 |
2022.02.19์ ๊ธฐ๋ก (0) | 2022.02.19 |