๐GIT checkout VS resetโก checkout์ head๋ฅผ ๋ฐ๊พผ๋ค.git checkout A : ์์
๋๋ ํ ๋ฆฌ๋ A๋ฒ์ ์ด๋๋ค.์๊ฐ์ฌํ์ ํ๋ ๊ฒ git checkout main : ํค๋๋ฅผ ๋ฉ์ธ์ผ๋ก ๋ฐ๊พผ๋ค.์ํน๋๋ ํ ๋ฆฌ๋ ๋ค์ B์ ๊ฐ์์ง๋ค. ์๊ฐ์ฌํ์ ๋๋ธ ๊ฒ โก reset์ head์ branch๋ฅผ ๋ฐ๊พผ๋ค.git reset A : head๊ฐ ๊ฐ๋ฆฌํค๋ branch์ธ main์ A๋ก ๋ฐ๊พผ๋ค.B ๋ฒ์ ์ ์ญ์ ํ๋ ๊ฒ. git reset B : main์ด B๋ฅผ ๋ค์ ๊ฐ๋ฆฌํค๊ฒ ํ๋ค.B ๋ฒ์ ์ ์ญ์ ํ๋ ๊ฒ. B๋ ๋ณต์๋ ๊ฒ. ์ด ์ํ์์ git checkout B ํ๋ฉด ์ด ์ํ์์ ๋ค์ git reset A ํ๋ฉด?ํ์ฌ head๊ฐ ๊ฐ๋ฆฌํค๋ branch๋ ์๊ธฐ ๋๋ฌธ์ head๊ฐ ์ง์ A๋ฅผ ๊ฐ๋ฆฌํจ๋ค..
My Tech Blog (๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ)
์ด๋ฒ ํฌ์คํ
์ ์ฝ๋ฉ ์ ํ ์์์์ ๋ณด๊ธฐ์ข๊ฒ ์ ์์ฝ๋ ๋ถ๋ถ๋ง ๊ฐ์ ธ์๋ค.๊ณต๋ถํ๋ ค๊ณ ๋ธ๋ก๊ทธ ํ๋ ๊ฑด๋ฐ ๋ค ์๋ ๊ฑด ์์ผ๋ก ์๊ฐ ๋ค์ฌ์ ํฌ์คํ
ํ์ง๋ ์์ ๊ฒ์ด๋ค.์ ์ ํฌ์คํ
์ด ๊ท์ฐฎ์์ง๊ณ ์๋ค. ๋ช
๋ น์ด๋ ์ฝ๋๋ฅผ ์คํํ ๋๋ง๋ค ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ ํ๋ฉด์ด ์ด๋ป๊ฒ ๋๋์ง ์คํฌ๋ฆฐ์ทํด์ ๊ณ์ ๋ณด์ฌ์ค์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค.์ฝ๋ ์ํ๋๋๋ก ๊ณ ์น๋ ๊ฒ๋ ๋
ธ๊ฐ๋ค + ์๊ฐ ์์ญ์ธ๋ฐ๊ธฐ๋ก ๊น์ง ๋จ๊ธฐ๋๊ฑด ์ผ๋ง๋ ๋ถ์ง๋ฐํ ์ฌ๋๋ค์ธ๊ฐMBTI P์ธ ๋๋ก์จ๋ ์ ์ฐจ ๋ธ๋ก๊ทธ์ ๊ธฐ๋ก ๋จ๊ธฐ๋ ๊ฒ๋ ํ๋ค์ด์ง๊ณ ์๋ค.(๊ทธ๋ฅ ํผ์ ์๊ณ ๋๋ด๊ณ ์ถ์ ์ ํน์ด) โกgit diff (์ ์์ฐ๋ ๋ฐฉ์)- ์ต๊ทผ commit vs ํ์ฌ ํ์ผ์ ์ฐจ์ด์ ์ ๋ณด์ฌ์ค๋ค.- `j`, `k`๋ก ์คํฌ๋กค ์กฐ์, `q` ํค๋ก ์ข
๋ฃ- ๋จ์ : ๋ณด๊ธฐ๊ฐ ํ๋ค๋ค. โกgit difftool- Vim ์..
โก๊นํ๋ธ ์น์์ ๋จ์ถํค ํ๋๋ก ๋ฐ๋ก ์ฝ๋ ์ฌ๋ ๋ฒ(Feat. VSCode) ์์ ํ๊ณ ์ถ์ ๋ ํ์งํ ๋ฆฌ๋ฅผ ํด๋ฆญํ๋ค.๋๋ html_css์ ํด๋ฆญํด์ฃผ์๋ค. ํค๋ณด๋์์ . ์ ๋๋ฌ๋ณด์. ๊ทธ๋ฌ๋ฉด ์ฃผ์์ฐฝ์ github.com์ด github.dev๋ก ๋ฐ๊ฟ๋ฉด์์น์์ ๋ฐ๋ก ํธ์งํ ์ ์๋ ์ํ๊ฐ ๋๋ค. ๋ ํ์งํ ๋ฆฌ๊ฐ VSCode๋ก ์น ์ฐฝ์์ ์ด๋ฆฌ๊ณ ๊ทธ ์๋ฆฌ์์ ์์ ํ ๋ฐ๋ก ์ปค๋ฐ๋ ๋๋ค.์ฝ๋๋ ์์ ํ ๋ฐ๊ฐ ์์ด์ ๊ฐ๋จํ๊ฒ READ.md ํ์ผ์ ํ
์คํธ๋ฅผ ๋ช ์ ์ ์ด ๋ดค๋ค.์ด๋ ๊ฒ ๋ณ๊ฒฝ์ฌํญ์ด ์๊ธฐ๋ฉด ์ข์ธก์ ์์ค์ ์ด ์์ด์ฝ์ ์ซ์ 1์ด ๋ฌ๋ค. VSCode์์ ์์ค ์ ์ด ํญ(๋ฒ์ ์ ์ด)์ ํ์๋๋ ์ซ์ "1"์ ํ์ฌ ์์
๋๋ ํ ๋ฆฌ์์ ๋ณ๊ฒฝ๋์๊ฑฐ๋ ์ถ๊ฐ๋์์ง๋ง ์์ง Git์ ์คํ
์ด์ง๋์ง ์์ ํ์ผ์ด ํ๋ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์..
ํ์ผ์ ์์ ํ๋ค ๋ณด๋ฉด ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฝค ์ด๋ ต๋ค.์ด๋ค ์ํฉ์์ ๊ธฐ์กด ์๋ณธ์ด ์ด๋ป๊ฒ ์ฐ์ผ ์ง ๋ชจ๋ฅด๋๊น ์ญ์ ๋ฅผ ํ์ง ๋ชปํ๊ณ ๊ณ์ ์ด๋ฐ ์์ผ๋ก ์ ์ฅ๋์ ์์ด๋ ๊ฒ์ด๋ค. ์ฝ๋๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ์ฒ์์ ๋ธ๋ก๊ทธ๋ฅผ ์ปค์คํ
ํ ๋๋ ๋ฌธ์ ๊ฐ ์์๋๋ฐ ์กฐ๊ธ์ฉ ์ฌ๊ธฐ ์ ๊ธฐ ํ
๋ง๋ฅผ ์
ํ๋ค ๋ณด๋ ์ด์ ์๋ก์ด ๊ธฐ๋ฅ์ ํ๋๋ฅผ ์ถ๊ฐํ๋ฉด ๊ธฐ์กด์ ์ ๋ณด์ด๋ ๊ตฌ๋
๋ฒํผ์ด ์์ด์ง๋ค๋๊ฐ ํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค. ์ฒ์์๋ ํ ๋ ๊ตฐ๋ฐ๋ง ์ปค์คํ
ํ๋ฉด์ ๊ทธ๋ฅ ์ฃผ์์ผ๋ก ์ถ๊ฐํ ๊ธฐ๋ฅ๊ณผ ๋ ์ง ์ ๋๋ง ์ ์ด ๋์๋๋ฐ ์ด์ ๋ถํฐ๋ ์ด๋ฐ ์์ผ๋ก ํ๋ฉด ๋์ค์๋ ๊ด๋ฆฌ๊ฐ ์ ๋ ๊ฒ ๊ฐ์์ ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํ๋ฉด์ ๋ด๊ฐ ์ธ์ ์ด๋ค ๋ถ๋ถ์ ์์ ํ๋์ง ์ถ์ ์ ํด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค. ์ด๋ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด Git(๊น)์ด๋ค. 1. Git vs GitHub ์ฐธ๊ณ ๋ก ๊น์ด๋ ๊นํ๋ธ(๊ณ ์์ด)๋ ๋ค๋ฅด..
์ธ๋ค์ผ ๊ท์ฐฎ๋ค์ธ๋ค์ผ ์์ฌ๋ฆฌ๋ฉด ๋ธ๋ก๊ทธ ๋ ์ด์์์ด ์์ด๋ป์ ์ด์ฉ ์ ์์ด ์ฌ๋ฆฐ๋ค >๋ฐ๋น ์ ์์ ๋ฐ๋ก ์ ๋ค์ด์๋ธ๋ก๊ทธ ํ ์๊ฐ์ด ์๋คใ
ใ
ใ
ใ
์ค๋ ๋ธ๋ก๊ทธ PC๋ฒ์ ์ปค์คํ
ํ ๋ด์ฉ๋ฌด๋ฃ ์ ์๊ถ ์๋ ๋ฐฐ๊ฒฝ์์
(์บ๋กค) ๋ฑ๋ก์ฌ์ด๋๋ฐ ๋ฉ๋ด hover ํ๋ฉด ๊ธ์จ ํํฌ ๊ทธ๋ผ๋ฐ์ด์
๋ฉ์ธ ํค๋ ์์ ๊ณ ํ์ดํฌ๊ทธ๋ํผ ์ปค์คํ
๋ฉ์ธํค๋/์ธ๋ค์ผํค๋ → ๋๋ค ๋ช
์ธ ์์ฑ๊ธฐ์ธ๋ค์ผ ํค๋์ 2024 ์ธ์ฌ๋ง ๋ด์ผ 6์๋ฐ ํ์ ์ ์๋น ์์ฝ12์ 1์ผ -> ์ธํ๋ฐ ์คํ๋ง, ์ฝ๋ฉ์ ํ ๊ฐ์ ๊ตฌ๋งค๊ตฌ๋
๋ฒํผ ์ ๋จ๋ ๋ฌธ์ ํด๊ฒฐํ๊ธฐLiquid Button ํฐ์คํ ๋ฆฌ ๊ตฌ๋
๋ฒํผ ํ๊ทธ ์ฒ์์ ๊ตฌ๋
๋ฒํผ ์ปค์คํ
ํ๋ ค๊ณ ํ๋๋ฐ ์ ๋ ์ ์ด์ํ๋ค ์๊ฐํ๋คํ์ฐธ ์ค์ ๋ค์ด๊ฐ์ ๊ตฌ๋
๋ฒํผ ํ์ธํ๋ค๊ฐํ๊ทธ๋ฅผ ์์ธํ ์ดํด ๋ณด๋ owner์ด๋ฉด ์๋จ๋๊ฑฐ๊ตฌ๋...๊ทธ๋์ ๊ตฌ๋
๋ฒํผ์ ํ์ธํ๋ ค..
์ฝ๋ฉ ์ ํ ๋ณด๋ค๊ฐ ์ข์ ๋ด์ฉ์ด ์์ด์ ์คํฌ๋ฉ ์ค๋๋ ์ฌ์ง๋ค์ด๋ ์ธํฐ๋ท์์ ๋๊ณ ๋๋ ์ฌ์ง์์๋ ์ฌ์ง์ฒ๋ผ ๊นจ์ ธ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.์ JPEG๋ ๋์งํธ ํํ๊ฐ ์๊ธธ๊น? ๋ง์ฝ ์ค๋งํธํฐ์ผ๋ก ์ฐ์ 1000*1000px ์ฌ์ง์ ์
๋ก๋ํ๋ ค๋ฉด ์ ์ฅ ๊ณต๊ฐ์ด ์ผ๋ง๋ ํ์ํ ๊น? ๋จผ์ ์์ ํ๋(ํ๋์ ํฝ์
)๋ฅผ ์ ์ฅํ๋ ค๋ฉด 3Byte์ ์ฉ๋์ด ํ์ํ๋ค. ํ๋์ ํฝ์
์๋ํ๋์ RGB์์์ด ๋ค์ด ์๋๋ฐ์ผ๋ฐ์ ์ผ๋ก RGB๋ Red, Green, Blue 3๊ฐ์ ์์์ ์กฐํฉํด์ผ ํ๋์ ์์์ด ๋์จ๋ค. ๋ฐ๋ผ์ ํ๋์ ๊ฐ๋ก ์ธ๋ก 1000ํฝ์
์ธ ์ฌ์ง ํ ์ฅ์ ์ ์ฅํ๋๋ฐ์๋ ์ ์ด๋ 3mb์ ๊ณต๊ฐ์ด ํ์ํ๋ค๊ณ ๊ณ์ฐ ํด ๋ณผ ์ ์๋ค.ํ๋์ ์ฌ์ง ์ฉ๋ = 1000*1000*3Byte = 3mb ๊ทผ๋ฐ ์ฐ๋ฆฌ๊ฐ ์ธํฐ๋ท์ ์ฌ์ง์ ์
๋ก๋ ํด ๋ณด๋ฉด? ํจ..
์๋ธ๋ฆฟ์ ํฌ์๋ ๋ฐฉ๋ฒ 4๊ฐ์งredirect, Refresh, location, dispatch ์์ฃผ ์ฌ์ฉ๋๋ ๊ฒsendRedirect์ forward(์คํ๋ง์์ ๋ง์ด ์ฌ์ฉ) โกRedirect- HttpServletResponse ๊ฐ์ฒด์ sendRedirect()- ์น๋ธ๋ผ์ฐ์ ์ ์ฌ์์ฒญ ํ๋ ๋ฐฉ์- ๋ค๋ฅธ ์น ์ปจํ
์ด๋์ ์๋ ์ฃผ์๋ก ์ด๋ ๊ฐ๋ฅ- ์ถ๊ฐ์ ์ผ๋ก ๋ฐ์ํ๋ ์ฒ๋ฆฌ์ ์ํด ํฌ์๋ฉ๋ณด๋ค ์ฑ๋ฅ์ด ๋๋ฆฌ๋ค.sendRedirect("ํฌ์๋ํ Servlet ๋๋ JSP") โกlocation- ์๋ฐ์คํฌ๋ฆฝํธ location ๊ฐ์ฒด์ href ์์ฑ์ ์ด์ฉ- ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฌ์์ฒญํ๋ ๋ฐฉ์location.href = '์์ฒญํ ์๋ธ๋ฆฟ ๋๋ JSP' โกdispatch- ์ผ๋ฐ์ ์ผ๋ก ํฌ์๋ฉ ๊ธฐ๋ฅ์ ์ง์นญ- ์๋ธ๋ฆฟ์ด ์ง์ ์์ฒญ- Requ..
1. form ํ๊ทธencrype์์ฃผ ์ฌ์ฉ๋๋ ์์ฑ๊ฐ "name", "method", "actioin", "encrype" ํ์ผ์ด๋ ์ด๋ฏธ์ง ์
๋ก๋๊ฐ ์๋ ํผ์ ๋ฐ๋์ enctype="multipart/from-data" ์ด ํ์
์ผ๋ก ์ง์ ์ ํด์ผ ํ์ผ ์
๋ก๋(์ ์ก)์ด ๋๋ค. ๊ทธ๋์ผ ์๋ฒ์ ํ์ผ์ ์ ์ฅํด์ ์ฒ๋ฆฌ ํ ์ ์๋ค. ๋ณด์๋๋ฌธ์ ์๋์์ฑ์ด๋ ์
๋ ฅ ๊ฐ ์ฒดํฌ๋ฅผ ํ์ง ์๋๋ก ํ๋ ค๋ฉด qutocomoplete="off" ํผ ์์ฑ๊ณผ "novalidate" ์์ฑ ์ฌ์ฉ + + 2. input ํ๊ทธplaceholder="ํ
์คํธ"์
๋ ฅ ํ๋์ ์์๋๋ ์ถ์ฒ ๊ฐ์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ํ๋ ์ฉ๋ ํ๊ทธ ํฌ์ปค์ค ๋๋ฉด ์ฌ๋ผ์ง readonly์ฝ๊ธฐ ์ ์ฉ. ์
๋ ฅํ๋๊ฐ ์ฌ์ฉ์ ์
๋ ฅ ๋ถ๊ฐํ ์ํ๊ฐ ๋จ. ..