์ค๋๊น์ง ์์ฑํ ๋ด ์ด๋ ฅ์๋ ์ด์ ๊ธฐ๋ณธ ํ
ํ๋ฆฟ์ ์์ฑ๋๊ฑฐ ๊ฐ๋ค.์ธํ
๋ฆฌํฝ 2์ฐจ ํผ๋๋ฐฑ์์ ๋ฐ์ ๊ฒ์ ์ด๋ ฅ์์ ์์ฑ๋๋ฅผ ๋์ด๋ ๊ฒ ๋ฟ์ด์๋ค.๋งํฌ ํต์ผํ( ๋๊ฐ๋
์ฑ..), ํฐ์คํ ๋ฆฌ ํ๊ทธ ํ์ฉํ์ฌ ํ์ดํผ ๋งํฌ ์ฒจ๋ถํ๊ธฐ ๋ฑ๋ฑ..๋งค๋ ฅ๋ ์ธก๋ฉด์์๋ ์์ฃผ ์ข๋ค๋ ํผ๋๋ฐฑ์ ๋ฐ์์ ๋ฟ๋ฏํ๋ค. ์ด์ ๋ด๊ฐ ํ ๊ฒ์ JD ๋ถ์ ํ ์ง์ํ ๊ธฐ์
์ Fitํ ์ง์๋๊ธฐ๋ฅผ ์์ฑํด์ฃผ๋ ๊ฒ์ด๋ค. 1. ์ด๋ฒ์ฃผ ๋ชฉํ : ์ด๋ ฅ์ ์์ฑํ๊ธฐ2. ์ค๋ ํ ์ผ โ
์ด๋ ฅ์ ๋
ธ์
์ผ๋ก ์ฎ๊ธฐ๊ธฐ ( 2์ฐจ ์ธํ
๋ฆฌํฝ ์ด๋ ฅ์ ์ฝ์นญ ํผ๋๋ฐฑ ๋ฐ์ )โ
์ง์ํ ๊ธฐ์
๋ฆฌ์คํธ์
3. ์๋ฌธ์ ๋ฐ ์ด๋ ค์ ๋ ์ - ๊ณผ์ฐ ์ ์
JAVA ๋ฐฑ์๋ ๊ฐ๋ฐ์๋ฅผ ๋ฝ๋ ๊ณณ์ด ์์๊น? ใ
ใ
- ํ๋ํ๋ ๊ธฐ์
์ ๋ถ์ํ์๋ ๋๋ฌด ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค.4. ๊ฐ์ ์ - ๋ด์ผ์ ํ ์ผ์ด์๋ ๋
ธ์
์ด๋ ฅ์๋ฅผ ์ค๋ ์์ฑํด..
์ค๋(2024.05.25 ํ )์ ๋ฌด๋ ค ์คํ๋ผ์ธ ์ผ์ ์ด ์กํ์์๋ค.์์ง๋ Why-How-What์ ์ ๋ฆฌํด์ ๋
น์ฌ๋ด๋ ๊ฒ์ด ํ๋ค๋ค.์ค๋ช
์ด ๊ธธ์ด์ง๋ฉด ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๊ณ , ๊ฐ๋
์ฑ์ ๋์ด๋ฉด ๊ณจ๋ ์ํด์ ์ ์ฉ์ํค๊ธฐ๊ฐ ์ด๋ ค์ด ๋ฏํ๋ค.๊ทธ๋๋ ์ ์ฐจ ๋์์ง๊ณ ์๋ ์ด๋ ฅ์๋ฅผ ๋ณผ ๋๋ง๋ค ๋ฟ๋ฏํ๋ค. 1. ๋ฌธ์ ๋ ํค์๋!์ธ์ฌ ๋ด๋น์์ ์ด๋ชฉ์ ํ ์ฌ๋ก์ก์์ผํ๋ค๋ ๊ฒ์ ์๋ ์ง๊ธ์ด๋ ๊ตญ๋ฃฐ์ด๋ค.์ด๋ ฅ์ ์์ ์์๋ ๋งค๋ ฅ์ ์ธ ํค์๋ ์ค์ฌ์ผ๋ก ์ ์จ๋ด๋ ค๊ฐ์ผํ๋ค. ์ด ํค์๋๋ฅผ ์ ์ ํ ๋๋ ๋ช๊ฐ์ง๋ฅผ ๊ณ ๋ คํด์ผํ๋ค.๊ฐ๋ฐ ํด์ ์ฅ์ X , ๋์ ๊ฐ์ ์ ๋ด์ธ์์ผํ๋ค.ํํ ํ๋ ์ค์๋ก, ์ด๋ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฑ๋ฅ์ด ์ข๊ณ ์ด์ฉ๊ณ ์ ์งธ์ ์ด๊ฑธ ์ด์ฉํด์ ์ผ๋ค. ์ด๊ฑฐ ๋ณด๋จ ๋ด๊ฐ ์ด๋ค ๊ธฐ์ ์ ํ๋จ์ผ๋ก ์ธํด ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ํํ๋๊ฐ (why - how - what )..
์ค๋์ ๋ด ๊ณผ๊ฑฐ ํ๋ก์ ํธ ์ฝ๋๋ฅผ ์ค์ค๋ก ๋ถ์ํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ดค๋ค.์ทจ์
ํ์ ๋ ๊ฑฐ์ ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ๊ฐ์ฅ ๋จผ์ ์ผ๊ฑฐ๋ฆฌ๋ก ๋ฐฐ์ ์ด ๋๋๋ฐ, ๊ทธ๋ฐ ์ํฉ์ ์๋ค๊ณ ์๊ฐํ๊ณ ์์ฒญ ๊ผผ๊ผผํ ๋ดค๋ค.๋งค๋์ ๋์ด ์ ์ํ ๋ช๊ฐ์ง ์ค์ ์ ์ผ๋ก ๋ณผ ๋ฆฌ์คํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์ดํ๊ณ ,๊ธ๋ก ์ค๋ช
ํ๋๋ฐ์๋ ํ๊ณ๊ฐ ์๋ค๊ณ ์๊ฐ์ด ๋ค์ด์ ๋ธ๋ก๊ทธ์ ์์ ํฌ์คํ
์ ํ๋ค. ๋ชฉํ๋ Category์ชฝ๊ณผ Product์ ์ต์
,์ด๋ฏธ์ง,ํ๊ทธ ํ
์ด๋ธ ๊ตฌ์กฐ์ ๊ตฌํํ ์ฝ๋๋ฅผ ํฌ์คํ
ํ๊ณ ์ถ์๋ค.๊ทผ๋ฐ Category๋ง ํด๋ ์์ด ๋ฐฉ๋ํด์ ธ์ ํ์๋ ์ฃผ๋ง์ ํ๋ ๊ฐ ํด์ผ๊ฒ ๋ค. ๐ ์นดํ
๊ณ ๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ ํฌ์คํ
๊ธ ๋งํฌ [๋ง์ผ ๋ธ๋ฆฟ์ง ํ๋ก์ ํธ] ์นดํ
๊ณ ๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ 2. ์ ์ฒด ์นดํ
๊ณ ๋ฆฌ ๋ชฉ๋ก ์กฐํ API, ๊ณ์ธตํ ๊ตฌ์กฐ ์ฒ๋ฆฌ (Qu์ง๋ ํฌ์คํ
์ ์ด์ด ์ด์ ์ค์ง์ ์ผ๋ก ์ด๋ป๊ฒ ์ฝ๋๋ฅผ..
์ง๋ ํฌ์คํ
์ ์ด์ด ์ด์ ์ค์ง์ ์ผ๋ก ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์ง ๊ฑด์ง ์ ๋ฆฌํด๋ณด๋๋ก ํ๊ฒ ๋ค.์ฐ์ , ๊ฐ๋ฐํ๊ฒฝ์ JAVA 17, gradle, Spring 3.2.1 ์ด๋ฌํ๋ค. 1. ํ์ํ API ๋ชฉ๋ก ์ ๋ฆฌA. ์ ์ฒด ์นดํ
๊ณ ๋ฆฌ ๋ชฉ๋ก ์กฐํ API์ฒซ ๋ฉ์ธ ํ๋ฉด์ ์ง์
ํ๋ฉด ๊ฐ์ฅ ๋จผ์ ์ ์ฒด ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์กฐํํ๊ฒ ๋๋ค.B. ํน์ ์นดํ
๊ณ ๋ฆฌ์ ํ์ ์นดํ
๊ณ ๋ฆฌ ๋ชฉ๋ก ์กฐํ API๋ง์ฝ "์๋ฅ" ์นดํ
๊ณ ๋ฆฌ๋ผ๋ฉด ๊ทธ ํ์์ ์กด์ฌํ๋ ํฐ์
์ธ , ๋งจํฌ๋งจ/ํ๋ํฐ ๋ฑ๋ฑ์ ํ์ ์นดํ
๊ณ ๋ฆฌ ๋ชฉ๋ก์ด ํ์ํ๋ค. 2. ์ ์ฒด ์นดํ
๊ณ ๋ฆฌ ๋ชฉ๋ก ์กฐํ API ๊ตฌํ์นดํ
๊ณ ๋ฆฌ ๋ถ๋ถ ์ค์ ๊ตฌํํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ์ด๋ค. A. REQ/RES ํํ ์ ์GET ์์ฒญ์ผ๋ก /category/total ์ด ๋ค์ด์จ๋ค๋ฉด,HTTP/1.1 200 OKContent-Type: application/jsonC..
์ด ํ๋ก์ ํธ์ ์ฒ์ ์์์ "์ฟ ํก"์ ๋ชจํฐ๋ธ๋ก ํ ํ๋ก์ ํธ์๊ณ , ๋ง์ฐํ ์ฟ ํก์ ๋ง์ ๊ธฐ๋ฅ์ ์ฐธ๊ณ ํด๋ณด์! ์๋ค.์ ์ฟ ํก์ผ๋ก ์ก์๋๋ฉด, ์ ํ์ ์ธ ์คํ๋ง์ผ ํ๋ซํผ. ์ฆ, ์ฌ๋ฌ ํ๋งค์๊ฐ ์์ฃผ ๋ค์ํ ์ํ์ ์์ ๋กญ๊ฒ ํ๋งคํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค.-> ํ์ฅ์ฑ์ด ๋งค์ฐ ์ค์ํ ์์
์ด ๋ ๊ฒ ๊ฐ์๊ณ , ๊ทธ๋ก ์ธํด ์ ๊ฒฝ์จ์ผํ ๋ถ๋ถ์ ๊ณต๋ถํด๋ณด๊ณ ์ถ์๊ธฐ ๋๋ฌธ์ด๋ค. ์, ์ด์ ๋ด๊ฐ ๋งก์ ์นดํ
๊ณ ๋ฆฌ ๊ธฐ๋ฅ ๊ตฌํ์ ๋ํด ๊ธฐ๋กํด๋ณด๊ณ ์ ํ๋ค.1. ์ฟ ํก ์นดํ
๊ณ ๋ฆฌ ์ดํด๋ณด๊ธฐA. ์ฟ ํก ์นดํ
๊ณ ๋ฆฌ ํน์ด์ 1. "ํจ์
์๋ฅ/์กํ" ์นดํ
๊ณ ๋ฆฌ๋ ์ต์์ ๋์ค๊ฐ ์๋ ๊ฒ์ด๋ค.ํฌ๋กค๋ง ํ ๋ ์ ์ฌํ ์ดํด๋ณด์๋๋ฐ ์ฟ ํก์ ์ ์ง ์ฒ์์ ํจ์
์๋ฅ/์กํ ์นดํ
๊ณ ๋ฆฌ๊ฐ ๋ฉ์ธ์ด์๋ ๊ฑฐ ๊ฐ๋ค.๋ฐ๊ฟ ๋งํ์๋ฉด, ๊ฐ์ฅ ํฐ ๋๋ถ๋ฅ๊ฐ ์์ ์๋ ์ฌ์ฑํจ์
,๋จ์ฑํจ์
... ๋ถํฐ ์์์ด์๋๊ฑฐ ๊ฐ๋ค.์๋..
1์ผ์ฐจ๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์๋ ๋๋ก ๋ค ๋์ด๋ชจ์์ ๋ค์ฃฝ๋ฐ์ฃฝ ์ ๋ฆฌํ๋ ์๊ฐ์ ๊ฐ์ก๋ค.์ด์ ๊น์ง๋ ์ฌ์ค ์ด๊ฒ ๋ ๊น? ์ถ๊ธฐ๋ํ๊ณ ( ๊ทธ๋์ ๋๋ฌด ๋ง์ด ๋จ์ด์ก๋ ๊ฒ )ํ๋ฒ๋ ์ฒจ์ญ ๊ฐ์ ๊ฑธ ๋ฐ์๋ณด์ง ๋ชปํด์ ๋๋ ต๊ธฐ๋ ํ๊ณ ๊ทธ๋ฌ๋ค.์ค๋์ ์๊ธฐ์๊ฐ์๋ฅผ ์์ฑํ๊ณ , ์ด๋ ฅ์๋ฅผ ๋ง๋ฌด๋ฆฌํด์ ์ธํ
๋ฆฌํฝ์ด๋ผ๋ ์คํ๋ฅดํ ๋ถํธ์บ ํ ์๋ฃ์ ์ ์ฉ ์ทจ์
ํ๋ซํผ์ ์ ์ถํ๋ค.๊ทธ๋ฆฌ๊ณ ํ์ง์์๊ฒ ๊ฐ๋จํ๊ฒ 10๋ถ์ ๋ ์ฝ์นญ์ ๋ฐ๊ฒ ๋์๋ค. ์ด๋ ฅ์ ํ๋๋ฅผ ๊ฐ์ง๊ณ ์ด๋ ๊ฒ ์ค๋์๊ฐ ๊ณต๋ค์ฌ์ ๋น๋์
ํด๋ณด๋ ๊ฒ์ด ์ฒ์์ด๋ผ ๋ฐ์ฑ๋ ํ๋ฉด์ ์ด์ฌํ ํด๋ดค๋๋ฐ,์ ์ ๋์์ง๋ ๊ฒ ๋์ ๋ณด์ฌ์ ๋๋ฌด๋๋ฌด ์ ๊ธฐํ๋ค.๊ทธ๋์์ ์ด๋ ฅ์๋ค์ ๋ค ๋ถํ์๋ฒ๋ฆฌ๊ณ ์ถ์ ์ ๋;ํญ์ทจ๋ฆฌ์์๋ ์ด๋ ฅ์ "๋ฆฌํฉํ ๋ง"์ด๋ผ๊ณ ์ง์นญํ๋๋ฐ ๋ฑ ์๋ง๋ ๋ง์ด๋ค. ์ด๋์ ๊ฐ ๋ดค๋๋ฐ ์ด๋ค ๊ณต๋ถ ๋๊ฒ ์ํ๋ ์ฌ๋์ด ๋ฌธ์ ์ง..
1. ๋ณํ๋ ๊ฒ๊ณผ ๋ณํ์ง ์๋ ๊ฒ1-1. ๋ณ์ : ๋จ ํ๋์ ๊ฐ์ ์ ์ฅํ ์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ( ๋ณํ๋ ๊ฒ )-> ์ ์ฅํ๊ณ ์๋ ๊ฐ์ด ๋ฌ๋ผ์ง ์ ์๋ค.int age; //age๋ผ๋ ์ด๋ฆ์ ๋ณ์ ์ ์ธ/*๋ณ์ ํ์
: int๋ณ์ ์ด๋ฆ : age*/ 1-2. ์์ : ๋ณํ์ง ์๋ ์ ์ฅ ๊ณต๊ฐ- ๋ฐ๋์ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํ ํด์ผํ๋ฉฐ ๊ทธ ํ์ ์์๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.final int MAX_SPEED ; //์๋ฌ ์์๋ ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํํด์ผ๋ง ํจfinal int MAX_SPEED = 100; //OK, ์ ์ธ๊ณผ ๋์์ ์ด๊ธฐํMAX_SPEED = 200; //์๋ฌ ์์์ ๊ฐ์ ๋ณ๊ฒฝ ๋ถ๊ฐ 2. ๋ณ์์ ํ์
๊ธฐ๋ณธํ vs ์ฐธ์กฐํ๊ธฐ๋ณธํ : ์ค์ ๊ฐ(data)๋ฅผ ์ ์ฅ์ฐธ์กฐํ : ์ด๋ค ๊ฐ์ด ์ ์ฅ๋์ด ..
๋ฌธ์ ์ค๋ช
๋ฐฐ์ด arr๊ฐ ์ฃผ์ด์ง๋๋ค. ๋ฐฐ์ด arr์ ๊ฐ ์์๋ ์ซ์ 0๋ถํฐ 9๊น์ง๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค. ์ด๋, ๋ฐฐ์ด arr์์ ์ฐ์์ ์ผ๋ก ๋ํ๋๋ ์ซ์๋ ํ๋๋ง ๋จ๊ธฐ๊ณ ์ ๋ถ ์ ๊ฑฐํ๋ ค๊ณ ํฉ๋๋ค. ๋จ, ์ ๊ฑฐ๋ ํ ๋จ์ ์๋ค์ ๋ฐํํ ๋๋ ๋ฐฐ์ด arr์ ์์๋ค์ ์์๋ฅผ ์ ์งํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค๋ฉด,arr = [1, 1, 3, 3, 0, 1, 1] ์ด๋ฉด [1, 3, 0, 1] ์ return ํฉ๋๋ค.arr = [4, 4, 4, 3, 3] ์ด๋ฉด [4, 3] ์ return ํฉ๋๋ค.๋ฐฐ์ด arr์์ ์ฐ์์ ์ผ๋ก ๋ํ๋๋ ์ซ์๋ ์ ๊ฑฐํ๊ณ ๋จ์ ์๋ค์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.์ ํ์ฌํญ๋ฐฐ์ด arr์ ํฌ๊ธฐ : 1,000,000 ์ดํ์ ์์ฐ์๋ฐฐ์ด arr์ ์์์ ํฌ๊ธฐ : 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ 9๋ณด๋ค ..
์๋ฅ ํฉ๊ฒฉ์กฐ์ฐจ ๋์ง ์๋ ์๊ฒ์ ์๊ฐ์ด ์ง๋๊ณ ์จ๊ฐ ๋ถ์ ์ ์๊ฐ์ด ์์ํ ์ค๋ฉฐ๋ค๊ณ ์์ ๋ ์ฏคํญํด99 ์ทจ์
๋ฆฌ๋ถํธ ์ฝ์ค ๊ด๊ณ ๋ฅผ ๋ณด๊ฒ ๋์๋ค.์ฐ์ , ์ผ๋ฆฌ๋ฒ๋์๊ณ , ์ทจ์
ํ ๋์ ์ง๋ถํ๋ ํ์์ด๋ผ ๋น์ฅ ๋ถ๋ด๋ ์์์ ๋ฟ๋๋ฌ ํญํด99๋ ์์ ์ฌ์
๊ฐ๊ฐ ์๋๊ธฐ์ ๋์ ๋ฒ๋ ค๋ฉด ๋๋ฅผ ์ด๋ป๊ฒ๋ ์ทจ์
์ ์์ผ์ฃผ๊ฒ ๊ตฌ๋ ํ๋ ๋ง์ฐํ ๋ฏฟ์, ๊ทธ๋ฆฌ๊ณ ์ปค๋ฆฌํ๋ผ๊ณผ ํํน ๋ฌธ์ฅ(๋ฌผ๊ฒฝ๋ ฅ ๊ฐ๋ฐ์ ์ทจ์
)์ด ๋๋ฅผ ์ฌ๋ก ์ก์๋ฒ๋ ธ๋ค.ํ๊ธฐ๋ ๋ณด์ํ๋ ๋ง์กฑํ๋ค๋ ํ๊ธฐ๊ฐ ๋ง์๋ ๊ฑฐ ๊ฐ๊ณ , ์ผ๋จ ์ง๋ ์๋ฐ์ ์ ์ ๋ถํธ์บ ํ์์๋ ์ฝ ๋ ๋ฌ๋ง์ ๋ฐ์ด ํญํ๋๋ ์์ฒ๊ฐ ์์๊ธฐ์ ์ด๋ฅผ ๊ทน๋ณตํ๊ณ ์ถ๊ธฐ๋ ํ๋ค. ์ํผ, ์ง๋์ฃผ ํ ์์ผ ์ญ๋ํ๊ฐ๋ฅผ ํตํด ํฉ๊ฒฉํ ์ธ์๋ค๋ง ๋ณธ ๊ณผ์ ์ ํจ๊ปํ ์ ์๋ค๊ณ ํ์ฌ ์ํ์ ์น๋ค๋ค.CS ๊ธฐ๋ณธ ์ง์(๊ฐ๊ด์ 50๋ฌธํญ)๊ณผ ๊ฐ๋จํ ๊ณผ์ ๋ฅผ ์ ์ถ..
๋ฌธ์ ์ค๋ช
๋น๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์์ด์ด ์ฃผ์ด์ง ๋, ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ถ๋ถ ์์ด์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค.๊ธฐ์กด ์์ด์์ ์์์ ๋ ์ธ๋ฑ์ค์ ์์์ ๊ทธ ์ฌ์ด์ ์์๋ฅผ ๋ชจ๋ ํฌํจํ๋ ๋ถ๋ถ ์์ด์ด์ด์ผ ํฉ๋๋ค.๋ถ๋ถ ์์ด์ ํฉ์ k์
๋๋ค.ํฉ์ด k์ธ ๋ถ๋ถ ์์ด์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ๊ธธ์ด๊ฐ ์งง์ ์์ด์ ์ฐพ์ต๋๋ค.๊ธธ์ด๊ฐ ์งง์ ์์ด์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์์ชฝ(์์ ์ธ๋ฑ์ค๊ฐ ์์)์ ๋์ค๋ ์์ด์ ์ฐพ์ต๋๋ค.์์ด์ ๋ํ๋ด๋ ์ ์ ๋ฐฐ์ด sequence์ ๋ถ๋ถ ์์ด์ ํฉ์ ๋ํ๋ด๋ ์ ์ k๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ถ๋ถ ์์ด์ ์์ ์ธ๋ฑ์ค์ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์. ์ด๋ ์์ด์ ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํฉ๋๋ค.์ ํ์ฌํญ5 ≤ sequence์ ๊ธธ์ด ≤ 1,000,000..