JavaRush /Java Blog /Random-KO /์ธํ„ฐ๋ทฐ ์ค‘ ๊ธฐ์ˆ ์ ์ธ ์งˆ๋ฌธ
Roman Beekeeper
๋ ˆ๋ฒจ 35

์ธํ„ฐ๋ทฐ ์ค‘ ๊ธฐ์ˆ ์ ์ธ ์งˆ๋ฌธ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
๊ทธ๋ž˜์„œ ๋ฉด์ ‘์€ ์ด ๊ณ„ํš๋Œ€๋กœ ์ง„ํ–‰๋์–ด์š”
  1. ์ž๋ฐ”์ฝ”์–ด
  2. ์ด๋Ÿฐ!
  3. ๋‚˜๋จธ์ง€
  4. ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค
  5. ๋‹น์‹ ์ด ์‚ฌ์šฉํ•˜๋Š” ๋„๊ตฌ.
๋ฉด์ ‘ ์ค‘ ๊ธฐ์ˆ ์ ์ธ ์งˆ๋ฌธ - 1

์ž๋ฐ”์ฝ”์–ด

  • ๋จผ์ €, ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•œ ์ธํ„ฐํŽ˜์ด์Šค ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๊ทธ๋ ค ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค(์–ด๋ ต์ง€๋Š” ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๋ช‡ ๊ฐ€์ง€(์ปฌ๋ ‰์…˜, ๋ชฉ๋ก, ์„ธํŠธ, โ€‹โ€‹ํ, ๋งต)๋งŒ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ArrayList์™€ LinkedList์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? (์ด๊ฒƒ์€ ์ธํ„ฐ๋„ท์—์„œ ๊ฐ€์žฅ ๋‚œํ•ดํ•œ ์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€ ์ค‘ ํ•˜๋‚˜์ด๋ฉฐ ๋‹จ์ง€ ์–ด๋‘ ์ž…๋‹ˆ๋‹ค.)
  • ์ฟผ๋ฆฌ ์‹คํ–‰ ์†๋„์™€ ์‹œํŠธ ๊ฐ„์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Object ํด๋ž˜์Šค์— ๊ด€ํ•œ ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ์˜ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ด๋ฉฐ, ๋ฌด์—‡์„ ํ•˜๋Š”๊ฐ€?
  • ๋ฐ˜์‚ฌ. getClass() ๋ฉ”์†Œ๋“œ๋Š” ๋ฌด์—‡์„ ํ•ฉ๋‹ˆ๊นŒ? ๋งค์šฐ ํฅ๋ฏธ๋กœ์šด ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์‚ดํŽด๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ํŠนํžˆ ํด๋ž˜์Šค์— ๋น„๊ณต๊ฐœ ๋ฉ”์„œ๋“œ๋‚˜ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋”๋ผ๋„ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์–ป๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์— ๋Œ€ํ•ด ๋ฌธ์˜ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์ด ๋ฌด์—‡์ธ์ง€ ์ดํ•ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๊ฒƒ์€ ๋ฏธํกํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ƒˆ ์Šค๋ ˆ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ฒƒ. ํ˜„์‹ค์ ์œผ๋กœ, ๋‹น์‹ ์ด ๋ ˆ๋ฒจ 20+์ด๋ผ๋ฉด ์ด ์งˆ๋ฌธ๋“ค์ด ๋‹น์‹ ์—๊ฒŒ ์žฌ๋ฏธ์žˆ์–ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • Stream์— ๋Œ€ํ•ด ๋ฌด์—‡์„ ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ Java 8์— ๊ด€ํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ธํ„ฐํŽ˜์ด์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ •์˜(๋ฌธ์ž ๋ฐ ๋ฐ”์ดํŠธ)์ž…๋‹ˆ๋‹ค. ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์˜ˆ์™ธ. ์—ฌ๊ธฐ์„œ๋„ ์˜ˆ์™ธ์˜ ๊ณ„์ธต ๊ตฌ์กฐ, ์–ด๋–ค ์œ ํ˜•์ด ์žˆ๋Š”์ง€, ์–ด๋–ค ์œ ํ˜•์ด ์„ ํƒ๋˜์—ˆ๋Š”์ง€, ์–ด๋–ค ์œ ํ˜•์ด ์„ ํƒ ์ทจ์†Œ๋˜์—ˆ๋Š”์ง€๋ฅผ ๊ทธ๋ ค ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๋Ÿฐํƒ€์ž„ ์˜ˆ์™ธ๋กœ ์ˆ˜ํ–‰ํ•  ์ž‘์—… ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ NullPointerException์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ํ™•์ธ๋œ ์˜ˆ์™ธ๋กœ ๋ฌด์—‡์„ ํ•ด์•ผ ํ•˜๋Š๋ƒ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(์ถ”๊ฐ€ ์ „๋‹ฌ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค - ๋‘˜ ๋‹ค ๋ช…ํ™•ํ•ฉ๋‹ˆ๋‹ค).

์ด๋Ÿฐ!

  • OOP๋ž€ ํ•œ๋งˆ๋””๋กœ ๋ฌด์—‡์ธ๊ฐ€์š”?
  • ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์—๋Š” ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋‚˜์š”? OOP์™€ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€์š”?
  • OOP(์ƒ์†, ๋‹คํ˜•์„ฑ, ์บก์Šํ™”)์˜ ๊ธฐ๋ณธ ์›์น™์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ทธ๋“ค ๊ฐ๊ฐ์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์‹ญ์‹œ์˜ค. ์ง€๊ธˆ๊นŒ์ง€ ๋ชจ๋“  ๊ฒƒ์€ ์ถ”์ƒ์ ์ด๋ฉฐ ์–ด๋–ค ์–ธ์–ด์—๋„ ์–ฝ๋งค์ด์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ์„ค๊ณ„ ์ดํ•ด ๊ณผ์ œ: ๋ง๊ณผ ์ƒˆ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜๊ฐ€์ˆ˜์Šค๋ฅผ ๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์›์น™์€ "has a"์™€ "is a"์ž…๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€

  • REST๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Wikipedia๋Š” ์ด์— ๋Œ€ํ•ด ๋งค์šฐ ๋ƒ‰์ •ํ•˜๊ฒŒ ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ Wikipedia์˜ ๊ธฐ์‚ฌ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • HTTP. ์—ฌ๊ธฐ์—๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฌธ๊ตฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ์˜ ๋ฐฉ๋ฒ•, ๊ฐ๊ฐ์˜ ์šฉ๋„.
  • HTTP ์ƒํƒœ ์ฝ”๋“œ. ์–ด๋–ค ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆ„์–ด์•ผ ํ• ๊นŒ์š”? ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ๋ถ€๋ถ„(200,204,404,500,501)์— ๋Œ€ํ•ด ์•Œ๋ ค์ฃผ์„ธ์š”. ์™œ ๊ทธ๋ ‡์Šต๋‹ˆ๊นŒ? 401ํ˜ธ, 403ํ˜ธ๋„ ๋ฌผ์–ด๋ดค๋Š”๋ฐ ์ €๋Š” ๋ชฐ๋ž์–ด์š”. ๊ทธ๋“ค์€ ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค

์—ฌ๊ธฐ์„œ ๋‚˜๋Š” MySQL์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์„ธ ๊ฐ€์ง€ ์ •๊ทœํ˜•์— ๋Œ€ํ•ด ๋งํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ์กฐ์ธ์ด ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ณ  ๋‹ค์–‘ํ•œ ์กฐ์ธ์ด ์‚ฌ์šฉ๋˜๋Š” ์˜์—ญ์˜ ๊ต์ฐจ์ ์„ ๊ทธ๋ ธ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์–ด๋–ป๊ฒŒ ์ดํ•ดํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” MongoDB์— ๋Œ€ํ•ด ์žŠ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. MongoDB๋Š” NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์ด๊ฒƒ์— ๋Œ€ํ•ด์„œ๋„ ์“ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์•Œ๊ณ  ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค. ACID๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‹จ์—ด ์ˆ˜์ค€์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด ์ง€์‹์„ ํ†ตํ•ด ์–ด๋Š ์ˆ˜์ค€์ธ์ง€ ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐํƒ€ ๋„๊ตฌ

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ๋‚ด ์ด๋ ฅ์„œ๋ฅผ ์‚ดํŽด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์–ด์…ˆ๋ธ”๋ฆฌ์—๋Š” Maven/Gradle์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž‘์—…์—๋Š” JIRA, git, Docker, Swagger๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์†์ ์ธ ํ†ตํ•ฉ์„ ์œ„ํ•ด - Stash, Bamboo, Puppet. JUnit, Mockito, JMeter ํ…Œ์ŠคํŠธ์šฉ. ์ œ๊ฐ€ ์žŠ์–ด๋ฒ„๋ฆฐ ๊ฒƒ์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ๊ด€์‹ฌ์ด ์žˆ์œผ์‹œ๋ฉด ๋Œ“๊ธ€๋กœ ์งˆ๋ฌธํ•ด ์ฃผ์‹œ๋ฉด ๋‹ต๋ณ€ํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ธฐ์‚ฌ๋ฅผ ์ข‹์•„ํ•˜๊ณ  ์œ ์šฉํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜ ํ‰๊ฐ€ํ•˜๊ณ  ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋˜ํ•œ ๋‚ด github ๊ณ„์ • romankh3์„ ๊ตฌ๋…ํ•˜์„ธ์š”. ๋‚ด ๋‹ค๋ฅธ ๊ธฐ์‚ฌ๋„ ์ฐธ์กฐํ•˜์„ธ์š”: - ์ผ์ž๋ฆฌ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•? ์ด๋ ฅ์„œ ๋ณด๋‚ด๊ธฐ ํŒ. Random ๊ทธ๋ฃน์˜ ๊ธฐ์‚ฌ - ์„ฑ๊ณต ์‚ฌ๋ก€. ์ผ์ฃผ์ผ์— 20์‹œ๊ฐ„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ์„์‚ฌ ํ•™์œ„ ๋ฐ ๊ฐœ์ธ ์ƒํ™œ - ์ง์—…์  ์†Œ์ง„. ์ €ํ•ญํ•˜๋Š” ๋ฐฉ๋ฒ•?
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION