Skip to content

Epikoding/Chinda_chatting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

54 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

แ„Žแ…ฌแ„€แ…ฉแ„‹แ…ด แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณแ„‰แ…กแ†ผ

๋ชฉ์ฐจ

๐ŸŽฎย <์นœ๋‹ค/>: ์˜จ๋ผ์ธ ์ฝ”๋”ฉ ๋ฐฐํ‹€ ์‚ฌ์ดํŠธ

ํ™”์ƒ ๋ฐ ์ฑ„ํŒ…์œผ๋กœ ์†Œํ†ตํ•˜๋ฉฐ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์œผ๋ฉฐ ์ง„ํ–‰ํ•˜๋Š” ๊ฒŒ์ž„! Java, Javascript, Python ์ง€์›!


๐Ÿ“ผย <์นœ๋‹ค/> Demo Youtube

์ด ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์‹œ๋ฉด <์นœ๋‹ค/> ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ์˜์ƒ์„ ์‹œ์ฒญํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ™†๐Ÿปโ€โ™‚๏ธ


๐Ÿ™‹๐Ÿปย ์ €ํฌ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋” ๊ถ๊ธˆํ•˜์‹ ๊ฐ€์š”? โคต๏ธ

๐Ÿ‘‰๐Ÿปย <์นœ๋‹ค/> ์ด์šฉํ•˜๋Ÿฌ ๊ฐ€๊ธฐ ๐Ÿ‘ˆ๐Ÿป

๐Ÿ‘‰๐Ÿป ํ”„๋ก ํŠธ์—”๋“œ GitHub ๐Ÿ‘ˆ๐Ÿป

๐Ÿ‘‰๐Ÿป ๋ฐฑ์—”๋“œ GitHub (game-server) ๐Ÿ‘ˆ๐Ÿป

๐Ÿ‘‰๐Ÿป ๋ฐฑ์—”๋“œ GitHub (chatting-server) ๐Ÿ‘ˆ๐Ÿป


๐Ÿง—๐Ÿปโ€โ™€๏ธย ์ œ์ž‘ ๊ธฐ๊ฐ„ & ํŒ€์› ์†Œ๊ฐœ

๐Ÿ“†ย ์ œ์ž‘ ๊ธฐ๊ฐ„

์ด๊ธฐ๊ฐ„ 2022๋…„ 6์›” 24์ผ ~ 2022๋…„ 8์›” 5์ผ
๋ฐฐํฌ์ผ 2022๋…„ 7์›” 30์ผ
์„œ๋น„์Šค ๊ฐœ์„  2022๋…„ 7์›” 30์ผ ~ 2022๋…„ 8์›” 5์ผ

๐Ÿ‘ซ๐Ÿป ํŒ€์›์†Œ๊ฐœ

ํฌ์ง€์…˜ ์ด๋ฆ„ ๋‹ด๋‹น GitHub
FE๐Ÿ”ฐ ์ตœ์„ฑ์šฐ ์›น์†Œ์ผ“ ํ™œ์šฉ ๊ฒŒ์ž„ ์ง„ํ–‰ ๋กœ์ง, ์ฑ„ํŒ…, WebRTC ํ™”์ƒ์—ฐ๊ฒฐ, AWS S3 CloudFront๋กœ HTTPS ๋ฐฐํฌ, Axios ์—ฐ๊ฒฐ, ์Œํ–ฅํšจ๊ณผ https://github.com/ChoiSungwoo1216
FE ์ด๋ฏผ์„ ์‹œ์ž‘ํŽ˜์ด์ง€ , ์†Œ์…œ ๋กœ๊ทธ์ธ, ๊ฒŒ์ž„ ๋‚ด๋ถ€ ๊ธฐ๋Šฅ ์ œ์ž‘, ๊ฒŒ์ž„ ์ง„ํ–‰ ๋กœ์ง https://github.com/leeminseok22
FE ์ด์œค์˜ ํŠœํ† ๋ฆฌ์–ผ ๋ฐ ๋ชจ๋‹ฌ, ๋ฉ”์ธํŽ˜์ด์ง€, ์œ ์ €์ •๋ณด์กฐํšŒ, ๋ฐ˜์‘ํ˜•, ์บ๋ฆญํ„ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ https://github.com/yunyeongyee
BE๐Ÿ”ฐ ์ด์ •์ฐฌ ๊ฒŒ์ž„ ๋ฐฉ ์กฐํšŒ, ์ž…์žฅ, ํ‡ด์žฅ, ๊ฒŒ์ž„ ์ง„ํ–‰, ๋žœ๋ค ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ƒ์„ฑ ๊ธฐ๋Šฅ, ์ปดํŒŒ์ผ๋Ÿฌ ๊ธฐ๋Šฅ ๊ตฌํ˜„,CI/CD https://github.com/biolkj28
BE ๋ฌธ์ˆ˜์ฐฌ Github ์†Œ์…œ ๋กœ๊ทธ์ธ ๋ฐ ํšŒ์›๊ฐ€์ž… https://github.com/MrEnum
BE ์ด๋™์žฌ ์›น์†Œ์ผ“์„ ํ™œ์šฉํ•œ ์ฑ„ํŒ…๊ณผ ๋น„์†์–ด ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ ๊ตฌํ˜„ https://github.com/Epikoding
Designer ํ—ˆํ™”์˜ ๋””์ž์ธ https://www.instagram.com/workoon__21

๐Ÿงฐย ์‚ฌ์šฉ ๊ธฐ์ˆ  ๋ฐ ํˆด

javaspring springboot spring security jwt stomp Jdoodle selenium queryDsl mysql redis nginx jenkins aws tomcat


๐Ÿ› ๏ธ ย ์„œ๋น„์Šค ์•„ํ‚คํ…์ณ


๐Ÿ”ง ๊ธฐ์ˆ ์  ์˜์‚ฌ๊ฒฐ์ •

๐ŸŒย Back-end

์‚ฌ์šฉ ๊ธฐ์ˆ  ๊ธฐ์ˆ  ์„ค๋ช…
MySQL ์˜คํ”ˆ ์†Œ์Šค ๋Œ€๋น„ ๋น ๋ฅธ ์ฒ˜๋ฆฌ ์†๋„, ํ‘œ์ค€ SQL ํ˜•์‹์„ ์‚ฌ์šฉ, ์•ˆ์ •์ ์ด๋ฉฐ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ๋ฐ ์˜ค๋ฅ˜ ๋ฐœ์ƒ์‹œ ๋งŽ์€ ๊ธฐ์—…๋“ค์ด ์‚ฌ์šฉํ•˜์—ฌ ์ž๋ฃŒ๊ฐ€ ํ’๋ถ€ํ•จ.
JDoodle API ๊ฐ ์–ธ์–ด์— ๋งž๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ๊ตฌํ˜„ ํ•˜๊ธฐ ์œ„ํ•ด graal.js, nashorn,jython๋“ฑ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์‚ฌ์šฉ๊ณผ ๊ด€๋ฆฌ์˜ ๋Ÿฌ๋‹ ์ปค๋ธŒ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
Stomp ์›น ์†Œ์ผ“ ์„œ๋ธŒ ํ”„๋กœํ† ์ฝœ๋กœ์„œ ๋ฉ”์‹œ์ง€ ํฌ๋งท์ด ์ž์œ ๋กญ๊ณ , ์—ฌ๋Ÿฌ ๋ธŒ๋กœ์ปค ์‚ฌ์šฉ ๊ฐ€๋Šฅ, Controller ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•˜์—ฌ ์‚ฌ์šฉ, ๊ฒŒ์ž„์ด ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ง„ํ–‰ ๋˜๋ฉฐ ์ƒ๋Œ€์˜ ์ฝ”๋“œ๋ฅผ ํ™•์ธํ•˜๊ณ , ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์˜ ์ด์ ์„ ์ด์šฉํ•ด ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ฒ˜๋ฆฌ ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ.
Nginx ๋™์‹œ ์ปค๋„ฅ์…˜ ์–‘ ์ตœ์†Œ 10๋ฐฐ ์ฆ๊ฐ€์™€ ๋™์ผํ•œ ์ปค๋„ฅ์…˜์ผ ๋•Œ ์•„ํŒŒ์น˜์— ๋น„ํ•ด 2๋ฐฐ ํ–ฅ์ƒ, ์ธ์ฆ์„œ๋ฅผ ์ ์šฉํ•˜์—ฌ https ์ ์šฉ์„ ์œ„ํ•ด ์‚ฌ์šฉ.
Redis ์ด๋ฒคํŠธ ๋ธŒ๋กœ์ปค ๋ฐ ์บ์‹œ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ(์ •์  ๋ฐ์ดํ„ฐ).
Selenium ์ •์ ์ธ ์š”์†Œ๋งŒ ์Šคํฌ๋ž˜ํ•‘ ํ•  ์ˆ˜ ์žˆ๋Š” Jsop๊ณผ๋Š” ๋‹ค๋ฅด๊ฒŒ ์ •์  ์ธ ์š”์†Œ ๋ฐ ๋™์ ์ธ ์š”์†Œ๋ฅผ ์Šคํฌ๋ž˜ํ•‘ ํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ.
QueryDSL ์ฟผ๋ฆฌ๋ฅผ ๊ฐ€์‹œ์ ์œผ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๊ณ , ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, JPA์™€ ์—ฐ๊ณ„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ.
spring security ๋งŽ์€ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณต๊ณผ ์„ค์ •์˜ ๊ด€๋ฆฌ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์šฉ์ดํ•˜๋ฉฐ ๊ด€๋ จ ์ž๋ฃŒ๊ฐ€ ๋งŽ์•„ ์‚ฌ์šฉ.
JWT ์›น ์†Œ์ผ“ ์‚ฌ์šฉ์œผ๋กœ ์ธํ•œ ๋น„์šฉ์ด ๋งŽ์ด ๋ฐœ์ƒํ•˜์—ฌ ์„œ๋ฒ„์— ๋ถ€๋‹ด์ด ๋œํ•œ ๋ณด์•ˆ ๋ฐฉ์‹์ธ ํ† ํฐ ๋ฐฉ์‹์„ ์ฑ„ํƒ.
Jenkins ๊นƒํ—ˆ๋ธŒ์˜ ์ปค๋ฐ‹์„ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ๊นƒ ํ—ˆ๋ธŒ ํ‘ธ์‹œ๊ฐ€ ๋์„ ๋•Œ ์›น ํ›…์„ ์ด์šฉํ•ด, ssh๋กœ ์—ฐ๊ฒฐ๋œ ์„œ๋ฒ„๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ž๋™ํ™” ๋ฐฐํฌํ•  ์ˆ˜ ์žˆ์–ด ์‚ฌ์šฉ.

โœจย ํ•ต์‹ฌ๊ธฐ๋Šฅ

๐Ÿš€ย ์›น ์†Œ์ผ“์„ ์‚ฌ์šฉํ•œ ์‹ค์‹œ๊ฐ„ 1 vs 1 ์ฝ”๋”ฉ ๊ฒŒ์ž„ ์ง„ํ–‰.

๐Ÿ›ฐย ํ™”์ƒ ๋ฐ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ๊ตฌํ˜„.

๐Ÿ’ฅย ์• ๋‹ˆ๋ฉ”์ด์…˜ ํšจ๊ณผ์™€ ์Œํ–ฅ ํšจ๊ณผ.

๐Ÿ’พย ์ฝ”๋“œ ์—๋””ํ„ฐ๋ฅผ ์ด์šฉํ•œ Java, JavaScript, Python ์–ธ์–ด ์‚ฌ์šฉ ๊ฐ€๋Šฅ.

๐Ÿง‘๐Ÿปโ€๐Ÿš€ย ๊ฐ ๋ฌธ์ œ ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š” Test Case ์ƒ์„ฑ์„ ํ†ตํ•œ ์ปดํŒŒ์ผ ์ •ํ™•๋„ ๊ฒ€์‚ฌ.

๐Ÿ”ญย ์ฑ„ํŒ… ์š•์„ค ํ•„ํ„ฐ๋ง.


๐Ÿ”ฅย Trouble shooting

๐ŸŒย Back-end

๐Ÿทย ์ž…์žฅ๊ณผ ์ค€๋น„ ์‹œ ๋™์‹œ์„ฑ ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿทย ์ž…์žฅ๊ณผ ์ค€๋น„ ์‹œ ๋™์‹œ์„ฑ ๋ฌธ์ œ ๋ฐœ์ƒ ํ•ด๊ฒฐ.

๐Ÿ“ฌย ๋ฌธ์ œ:

  1. ๋™์‹œ ์ž…์žฅ ์š”์ฒญ ์‹œ ๋ฐฉ์— ์ƒ์„ฑ์ž ์™ธ ์ฐธ์—ฌ์ž๊ฐ€ ์—ฌ๋Ÿฌ ๋ช… ๋“ค์–ด๊ฐ€๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ.
  2. ๋™์‹œ ์ค€๋น„ ์‹œ ๊ฐ ์‚ฌ์šฉ์ž๊ฐ€ ์ค€๋น„๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ๋ฐฉ์žฅ ์—๊ฒŒ ์‹œ์ž‘ ๋ฒ„ํŠผ ํ™œ์„ฑํ™”๋ฅผ ์œ„ ํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ.

๐Ÿ“ญย ํ•ด๊ฒฐ:

  1. Redis Watch๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Optimistic Locking ์ ์šฉ, ์ค‘๋ณต๋˜์–ด ๋“ค์–ด์˜ค๋Š” ์š”์ฒญ ์‹œ ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋‹ค๋ฅธ ์š”์ฒญ์—๊ฒŒ ์ •์› ์ดˆ๊ณผ ๋ฉ”์‹œ์ง€ ์ „์†ก.

  2. Thread safe ํ•œ ConcurrentHashMap์„ ์‚ฌ์šฉ, putIfAbsent๋ฅผ ์ด์šฉํ•ด์„œ ํ•ด๋‹น ๋ฐฉ์˜ ์ค€๋น„ ๊ฐ์ฒด์˜ value๊ฐ€ null ์ด ์•„๋‹ˆ๋ฉด ๋‘˜ ๋‹ค ์ค€๋น„ ๋œ ๊ฒƒ์œผ๋กœ ํŒ๋‹จ, ์‹œ์ž‘ ๋ฉ”์‹œ์ง€ ์ „์†ก.

๐Ÿท ๋ฒ„ํผ ์‚ฌ์ด์ฆˆ ๋ถ€์กฑ ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿทย ๋ฒ„ํผ ์‚ฌ์ด์ฆˆ ๋ถ€์กฑ ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿ“ฌย ๋ฌธ์ œ:

์›น ์†Œ์ผ“ ์—ฐ๊ฒฐ ํ›„ ์ฒ˜๋ฆฌ ๋ฒ„ํผ ์‚ฌ์ด์ฆˆ ๋ถ€์กฑ์œผ๋กœ Broken pipe Exception ๋ฐœ์ƒ๋˜๋Š” ์˜ค๋ฅ˜ ๋ฐœ์ƒ.

๐Ÿ“ญย ํ•ด๊ฒฐ:

๊ธฐ์กด ์›น ์†Œ์ผ“์€ configureWebSocketTransport์— ๋ฒ„ํผ ์‚ฌ์ด์ฆˆ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋˜์ง€๋งŒ, Stomp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ DelegatingIntroductionInterceptor ๋ฅผ ์ƒ์† ๋ฐ›์€ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ฉ”์‹œ์ง€ ์‚ฌ์ด์ฆˆ ๊ธฐ๋ณธ ์„ค์ • *2 ๋กœ ๋ณ€๊ฒฝ, ๋ฐฐํฌ ๋ช…๋ น์–ด -Xms1024M -Xmx1024M ๋ฅผ ์‚ฌ์šฉํ•ด Tomcat heap ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์ด์ฆˆ ์ฆ๊ฐ€, EC2 SWAP์„ ํ†ตํ•ด ๋ฉ”๋ชจ๋ฆฌ 1GB โ†’ 4GB๋กœ ์ฆ๊ฐ€ ์‹œ์ผœ ํ•ด๊ฒฐ.

๐Ÿท ์ž…์žฅ ๋ฉ”์‹œ์ง€ ์ „์†ก ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿทย ์ž…์žฅ ๋ฉ”์‹œ์ง€ ์ „์†ก ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ.

๐Ÿ“ฌย ๋ฌธ์ œ:

ChannelInterceptor๋ฅผ ์ƒ์†ํ•ด presend๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์—ฌ subscribe ์‹œ ๊ตฌํ˜„ํ•œ ์ž…์žฅ ๋ฉ”์‹œ์ง€ ์ „์†ก ๊ธฐ๋Šฅ ์ž‘๋™ ์•ˆ๋จ.

๐Ÿ“ญย ํ•ด๊ฒฐ:

subscribe ์ „์— ๋กœ์ง์ด ๋Œ์•„ ์ž‘๋™์ด ์•ˆ๋˜์–ด , ๊ตฌ๋… ํ›„ ์ž‘๋™ํ•˜๋Š”ApplicationListener<AbstractSubProtocolEvent> ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์† ๋ฐ›์•„ ๊ตฌ๋… ์‹œ ์ƒ๋Œ€์—๊ฒŒ ๋ณธ์ธ ์ •๋ณด๋ฅผ ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€ ์ „์†ก ๊ธฐ๋Šฅ์„ ์ ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ.

๐Ÿท ์ค‘๋ณต ๋กœ๊ทธ์ธ์ด ๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ

๐Ÿทย ์ค‘๋ณต ๋กœ๊ทธ์ธ์ด ๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ.

๐Ÿ“ฌย ๋ฌธ์ œ:

์ค‘๋ณต ๋กœ๊ทธ์ธ์ด ๋˜๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ.

๐Ÿ“ญย ํ•ด๊ฒฐ:

๋กœ๊ทธ์ธ ์‹œ ์‚ฌ์šฉ์ž ์ „์  ์ •๋ณด๋ฅผ Redis์— ๋‹ด์•„๋‘๊ณ  ๋กœ๊ทธ์ธ ์‹œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ ๋ฉ”์‹œ์ง€ ์ „๋‹ฌ ๋ฐ ๋ ˆ๋””์Šค์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ ์‚ญ์ œ ํ›„ ๋กœ๊ทธ์•„์›ƒ ์ฒ˜๋ฆฌ.

๐Ÿทย ๋น„์†์–ด์™€ ํ•„ํ„ฐ

๐Ÿทย ๋น„์†์–ด์™€ ํ•„ํ„ฐ

๐Ÿ“ข ํ† ๋ผ๊ฐ€ ๋น„์†์–ด๋ผ ๊ฐ€์ •

๐Ÿ“ฌย ๋ฌธ์ œ:

์ฐฝ์˜์ ์ธ(?) ํ•œ๊ธ€ ๋น„์†์–ด๊ฐ€ ์ œ๋Œ€๋กœ ํ•„ํ„ฐ๊ฐ€ ๋˜์ง€ ์•Š์Œ.

โœ๏ธย ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ๋ฌธ์ œํ•ด๊ฒฐ ๋ฐฉ์•ˆ:

  1. ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋น„์†์–ด๋ฅผ ๋ฆฌ์ŠคํŠธ ํ™”. ex) โ€˜ํ† 1๋ผโ€™, โ€˜ํ† ๋ผ2โ€™, โ€˜ใ…Œใ…—๋ผโ€™, โ€˜ใ…Œใ…—ใ„ฒ1โ€™ โ€ฆ โ†’ ๋„ˆ๋ฌด ๋งŽ์€ ๋ณ€์ˆ˜๋กœ ์ธํ•ด ๊ธฐ๊ฐ.

  2. ์™ธ๋ถ€ API๋ฅผ ์‚ฌ์šฉํ•ด ํ•„ํ„ฐ๋ง์„ ์ง„ํ–‰. โ†’ ์™ธ๋ถ€ API์˜ ๋ถ€์žฌ ๋ฐ api request & response๋กœ ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ…์˜ ์˜๋ฏธ ์ €ํ•˜. ๊ธฐ๊ฐ.

  3. ๋‹จ์–ด ์œ ์‚ฌ๋„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ๋œ ๋‹จ์–ด์™€ ๋น„์†์–ด๋ฅผ ๋น„๊ต ๋ฐ ํ•„ํ„ฐ๋ง. ์ฑ„ํƒ.

๐Ÿงฎย ํ•ด๊ฒฐ:

  1. Levenshtein Distance Algorithm(ํŽธ์ง‘๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜; ์ดํ›„ LDA)์„ ์‚ฌ์šฉ.

  2. LDA๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์š•์„ค ํ•„ํ„ฐ ์ œ์ž‘.

๐Ÿ“ญย ์˜ˆ์‹œ:

  1. ์ž…๋ ฅ๋œ ๋‹จ์–ด๋ฅผ LDA ํ•„ํ„ฐ๋ฅผ ํ†ต๊ณผํ•˜๊ณ  ์ƒ๊ด€๊ณ„์ˆ˜rrr๊ฐ’์ด โ‰ฅ 0.5์ด๋ฉด 2์ฐจ LDA ํ•„ํ„ฐ๋ง ์ง„ํ–‰. ex) โ€˜ํ† ๋ผ'๊ฐ€ ๋น„์†์–ด ์ž„์œผ๋กœ โ€˜ํ† ์„ฑ', ํ† ์ง€', โ€˜์žฅ๋ผ'๋“ฑ์˜rrr๊ฐ’์ด 0.5.

  2. ์ž…๋ ฅ๋œ ๋‹จ์–ด์˜ ๊ฐ ๋ฌธ์ž๋ฅผ ์ดˆ์„ฑ, ์ค‘์„ฑ, ์ข…์„ฑ์œผ๋กœ ๋ถ„ํ•ด, ํ•ด๋‹น ๋‹จ์–ด๋ฅผ ๋น„์†์–ด ๋ฆฌ์ŠคํŠธ์™€ ๋น„๊ต ํ›„ ์œ ์˜ํ™•๋ฅ pโˆ’valuep-valuepโˆ’value๊ฐ€ โ‰ฅ 0.66์ด๋ฉด ๋น„์†์–ด๋กœ ํŒ์ • ๋ฐ ํ•„ํ„ฐ๋ง ์ง„ํ–‰.

    • ex) ์ž…๋ ฅ๋œ ๋‹จ์–ด ํ† ์„ฑ๊ณผ ๊ธฐ์กด ๋น„์†์–ด ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๋‹จ์–ด ํ† ๋ผ๋ฅผ ๊ฐ๊ฐ โ€˜ใ…Œใ…—ใ……ใ…“ใ…‡โ€™๊ณผ โ€˜ใ…Œใ…—ใ„ฒใ…ฃโ€™๋กœ ๋ถ„ํ•ด. ๋‘ ๋‹จ์–ด์˜ ์œ ์‚ฌ๋„๊ฐ€ !โ‰ฅ 0.66์œผ๋กœ ๋น„์†์–ด ์ฒ˜๋ฆฌX.

    • ex2) ์ž…๋ ฅ๋œ ๋‹จ์–ด ํ† 1๋ผ์™€ ๊ธฐ์กด ๋น„์†์–ด ๋ฆฌ์ŠคํŠธ์— ์žˆ๋Š” ๋‹จ์–ด ํ† ๋ผ๋ฅผ ๊ฐ๊ฐ โ€˜ใ…Œใ…—1ใ„ฒใ…ฃ'์™€ โ€˜ใ…Œใ…—ใ„ฒใ…ฃโ€™๋กœ ๋ถ„ํ•ด. ๋‘ ๋‹จ์–ด์˜ ์œ ์‚ฌ๋„๊ฐ€ โ‰ฅ 0.66์œผ๋กœ ๋น„์†์–ด ์ฒ˜๋ฆฌ.


โš™๏ธย ERD

MySQL


๐Ÿ“ฅย FLOW-CHART

์ฑ„ํŒ…์„œ๋ฒ„

๊ฒŒ์ž„์„œ๋ฒ„

๋กœ๊ทธ์ธ

์ธ์ฆ ๋ฐ ์ธ๊ฐ€

๋ฐฉ ์ƒ์„ฑ

๋ฐฉ ์ž…์žฅ

์ค€๋น„

๊ฒŒ์ž„ ์ง„ํ–‰

๋ฐฉ ํ‡ด์žฅ

์ปดํŒŒ์ผ๋Ÿฌ ๋™์ž‘


๐ŸŽคย  ๋งˆ์ผ€ํŒ… ์ „๋žต

๐Ÿทย ํ•ญํ•ด 99 ๋‚ด ์•ฝ 2์ฒœ๋ช…์˜ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ™๋ณด

๐Ÿทย ๋…์ฐฝ์ ์ธ ์‚ฌ์ดํŠธ๋กœ ๋งŽ์€ ์ด๋ชฉ์ด ์ง‘์ค‘

๐Ÿ“ฌย ์ „๋žต:

  1. ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฆ๊ธธ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ์ธ ๋งŒํผ, ๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ชจ์—ฌ์žˆ๋Š” ๊ณณ์—์„œ ํ™๋ณดํ•˜๊ณ  ์žฌ์น˜์žˆ๋Š” ๋ฌธ๊ตฌ๋กœ ์ด๋ชฉ์„ ์ง‘์ค‘๋ฐ›๋Š” ์ „๋žต์„ ์‚ฌ์šฉ
  2. ๊ธฐํ”„ํ‹ฐ์ฝ˜์„ ํ†ตํ•ด ์„ค๋ฌธ์กฐ์‚ฌ ์ฐธ์—ฌ์— ๋™๊ธฐ๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์œ ์ € ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ํˆฌ์ž

๐Ÿ“ญย ๊ฒฐ๊ณผ :

์‚ฌ์ดํŠธ ๊ฐœ์„ค, ํ™๋ณด์™€ ๋™์‹œ์— ๋™์ ‘ 3์ž๋ฆฌ ์ˆ˜๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉฐ ๊ตฌ๋‘์™€ ์„ค๋ฌธ์กฐ์‚ฌ๋กœ ๋‹ค์–‘ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ˆ˜๋ ดํ•˜์˜€์Œ

๐Ÿงฎย ํ™๋ณด ์ž๋ฃŒ:

๐Ÿทย ์ฆ‰๊ฐ ํ”ผ๋“œ๋ฐฑ ๋ฐ˜์˜

๐Ÿทย ์œ ์ €์˜ ํ”ผ๋“œ๋ฐฑ์„ ์†Œ์ค‘ํžˆ ์ƒ๊ฐํ•ด, ํŒจ์น˜๋ฅผ ํ†ตํ•ด ์˜๊ฒฌ์„ ๋ฐ˜์˜

๐Ÿ“ฌย ์ „๋žต:

๊ณตํ†ต๋œ ์œ ์ €๋“ค์˜ ์˜๊ฒฌ์„ ๋ชจ์•„์„œ, ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์‹ ๋ขฐ๋ฅผ ์ฃผ๊ณ , ์œ ์ €์™€ ์†Œํ†ตํ•˜๊ณ  ์žˆ๋Š” ๋Š๋‚Œ์„ ๋ถ€์—ฌ

๐Ÿ“ญย ๊ฒฐ๊ณผ:

ํŒจ์น˜ ์ดํ›„, ํ•ด๋‹น ๋ฌธ์ œ์— ๊ด€๋ จํ•ด์„œ๋Š” ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜์ง€ ์•Š๊ณ , ๋งŒ์กฑ๋„๊ฐ€ ์ƒ์Šนํ•˜์˜€์Œ.

๐Ÿงฎย ํ™๋ณด ์ž๋ฃŒ:

๐Ÿทย ๊ฒŒ์ž„์„ ์žฌ๋ฏธ์žˆ๊ฒŒ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•œ ๋Œ€ํšŒ

๐Ÿทย ์ฐธ๊ฐ€์ž๊ฐ€ ์ €์กฐํ•˜์—ฌ ํ–‰์‚ฌ๋ฅผ ์ง„ํ–‰ํ•˜์ง€ ๋ชปํ•จ

๐Ÿ“ฌย ๋ถ„์„:

  1. ํ™๋ณด๊ฐ€ ๋ถ€์กฑํ•˜์˜€์Œ. ์ „์ฒด๊ฐ€ ๋ชจ์ธ ์ฑ„ํŒ…๋ฐฉ์— ๊ณต์ง€๋งŒ ์˜ฌ๋ฆฌ๊ณ  ์‹ค์ œ๋กœ ๋Œ์•„๋‹ค๋‹ˆ๋ฉด์„œ ์ฐธ๊ฐ€์ž๋ฅผ ๋ชจ์œผ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•จ.

  2. ๋Œ€์ƒ์ž๋“ค์˜ ์ƒํ™ฉ์„ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•จ. ํƒ€๊ฒŸ ๋Œ€์ƒ์ž๋“ค์ธ 7๊ธฐ C๋ฐ˜ ๋™๋ฃŒ๋“ค์˜ ์ตœ์ข… ๋งˆ๊ฐ ๊ธฐ๊ฐ„์ด ๋‹ค๊ฐ€์˜ฌ์ˆ˜๋ก ์ƒ๊ฐ๋ณด๋‹ค ์—ฌ์œ ๊ฐ€ ๋” ์—†์—ˆ๋˜ ๊ฒƒ์„ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ•˜์˜€์Œ.

  3. ํ™๋ณด ์‹œ๊ฐ„์ด ์ž˜๋ชป๋˜์—ˆ์Œ. ์‚ฌ๋žŒ๋“ค์ด Slack์„ ๊ฐ€์žฅ ๋งŽ์ด ๋ณผ, ์•„์นจ์ด๋‚˜, ์ ์‹ฌ์— ํ™๋ณด๋ฅผ ํ–ˆ์–ด์•ผ ํ•˜์ง€๋งŒ, ์ƒˆ๋ฒฝ์— ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ด€์‹ฌ์„ ๋ฐ›์ง€ ๋ชปํ•จ.

๐Ÿ“ญย ๋ฐฐ์šด ์  :

  1. ํƒ€๊ฒŸ์ธต์— ๋Œ€ํ•ด์„œ ๋” ์ •๋ฐ€ํ•œ ๋ถ„์„์ด ํ•„์š”

  2. ํ™๋ณด ๋ฌธ๊ตฌ๊ฐ€ ์ „๋ถ€๊ฐ€ ์•„๋‹Œ, ํ™๋ณด ์‹œ๊ธฐ, ์ฆ‰ ํƒ€์ด๋ฐ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋Š๋‚Œ

  3. ํ•˜๋‚˜์˜ ์ˆ˜๋‹จ์œผ๋กœ ํ™๋ณดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ํƒ€๊ฒŸ์ธต์— ์ ‘๊ทผํ•ด์•ผ ํ™๋ณดํšจ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋จ

๐Ÿงฎย ํ™๋ณด ์ž๋ฃŒ:


๐Ÿง‘๐Ÿปโ€๐Ÿ”งย  ํ”ผ๋“œ๋ฐฑ ๊ฐœ์„ 

๐Ÿทย ๋ฐฐ๊ฒฝ์Œ ๋ฐ ํšจ๊ณผ์Œ ๋ณผ๋ฅจ ์กฐ์ ˆ

๐Ÿทย ๋ฐฐ๊ฒฝ์Œ ๋ฐ ํšจ๊ณผ์Œ ๋ณผ๋ฅจ ์กฐ์ ˆ

๐Ÿ“ฌย ํ”ผ๋“œ๋ฐฑ: ๋ณผ๋ฅจ ์กฐ์ ˆ์ด ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค. Mute ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์š”์ฒญ

๐Ÿ“ญย ๊ธฐ๋Šฅ ๊ฐœ์„  :

๋ฐฐ๊ฒฝ์Œ ๋ฐ ํšจ๊ณผ์Œ ๋ณผ๋ฅจ์„ on/off๊ฐ€ ์•„๋‹Œ ํด๋ฆญ์œผ๋กœ ์กฐ์ ˆ

๐Ÿงฎย Before :

๐Ÿงฎย After :

๐Ÿทย ์‹œ์ž‘ ๋ฒ„ํŠผ ์ถ”๊ฐ€

๐Ÿทย ์‹œ์ž‘ ๋ฒ„ํŠผ ์ถ”๊ฐ€

๐Ÿ“ฌย ํ”ผ๋“œ๋ฐฑ: ์Šคํƒ€ํŠธ ๋ฒ„ํŠผ์ด ๋”ฐ๋กœ ์žˆ๋‹ค๋ฉด ์–ด๋”” ์žˆ๋Š”์ง€ ์ž˜ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. ์ž…์žฅ ํ›„ ์ƒ๋Œ€๋ฐฉ๊ณผ ๋ ˆ๋””๋ฅผ ํ–ˆ์Œ์—๋„ ์‹œ์ž‘์ด ์•ˆ๋˜์—ˆ๋‹ค. ๋งŒ์•ฝ ์‹œ์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ ๋“ฑ์ด ๋”ฐ๋กœ ์žˆ๋‹ค๋ฉด ์กฐ๊ธˆ ๋” ๋ถ„๋ช…ํ•˜๊ฒŒ ๋‚˜ํƒ€๋‚˜๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์˜๊ฒฌ

๐Ÿ“ญย ๊ธฐ๋Šฅ ๊ฐœ์„  :

ready๋งŒ ๋ˆ„๋ฅด๊ณ  ์–‘์ชฝ์ด ๋‹ค ๋ˆ„๋ฅด๋ฉด ์ž๋™์œผ๋กœ ์‹œ์ž‘๋˜์—ˆ๋˜ ๊ธฐ์กด์˜ ๋ฐฉ์‹์—์„œ ์ƒ๋Œ€๋ฐฉ์ด ๋ ˆ๋””๋ฅผ ๋ˆŒ๋ €๋Š”์ง€ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ณ€๊ฒฝํ•˜์˜€๊ณ  ๋ฐฉ์žฅ์ด ๊ฒŒ์ž„์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€

๐Ÿงฎย Before :

๐Ÿงฎย After :

๐Ÿทย ํŠœํ† ๋ฆฌ์–ผ์ด ์ž๋™์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿทย ํŠœํ† ๋ฆฌ์–ผ์ด ์ž๋™์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿ“ฌย ํ”ผ๋“œ๋ฐฑ: ๋’ค๋กœ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์ด๋‚˜ ๋”ฐ๋กœ ์„ค๋ช…์ด ์—†์–ด์„œ ๋’ค๋กœ ๊ฐˆ ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์ด๊ฒƒ์ €๊ฒƒ ๋ˆŒ๋Ÿฌ๋ณด๋‹ค๊ฐ€ ์–ธ์–ด ๋ˆ„๋ฅด๋‹ˆ๊นŒ ๋’ค๋กœ ๊ฐ€๊ฒŒ ๋˜์—ˆ๋‹ค๋ฉฐ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ดํ•ด ๋ถ€์กฑ์œผ๋กœ ์ดํƒˆ์œจ์ด ๋†’์•„์ง€๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ฐœ์„ 

๐Ÿ“ญย ๊ธฐ๋Šฅ ๊ฐœ์„ : ์ดˆ๊ธฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ํŠœํ† ๋ฆฌ์–ผ์ด ์ž๋™์œผ๋กœ ๋ณด์—ฌ์ง€๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿงฎย ์ฐธ๊ณ ์ž๋ฃŒ:

๐Ÿทย ์ •์›์ดˆ๊ณผ ์•Œ๋ฆผ

๐Ÿทย ์ •์›์ดˆ๊ณผ ์•Œ๋ฆผ

๐Ÿ“ฌย ํ”ผ๋“œ๋ฐฑ: ์ธ์›์ด ์ฐฌ ๋ฐฉ์— ์ž…์žฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉฐ ๊ฐœ์„  ์š”์ฒญ

๐Ÿ“ญย ๊ธฐ๋Šฅ ๊ฐœ์„ : ์ •์›์ดˆ๊ณผ ์•Œ๋ฆผ ๊ธฐ๋Šฅ ์ถ”๊ฐ€

๐Ÿงฎย ์ฐธ๊ณ ์ž๋ฃŒ:


โœ๐Ÿปย 7์กฐ ํ•œ ์ค„ ํšŒ๊ณ 

<๋œ ์™ธ๋กœ์šด ๊ณต๊ฐ„>

โ€œ๊ณ 3 ๋•Œ ์ˆ˜๋Šฅ ๊ณต๋ถ€ํ•˜๋Š” ๊ฒƒ ๋งŒํผ ํž˜๋“ค์ง€ ์•Š์•„์š”?โ€ โ€๋ฌด์Šจ์†Œ๋ฆฌ์˜ˆ์š”. ๊ทธ ๋•Œ๋Š” ์ด๋ ‡๊ฒŒ๊นŒ์ง€ ํž˜๋“ค์ง€ ์•Š์•˜์–ด์š”. ์ง€๊ธˆ์ด ๊ทธ ๋•Œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ํž˜๋“ค์ฃ โ€ ํ•ญํ•ด99๋ฅผ ๊ฐ™์ดํ•˜๋Š” ๋ฐ˜ ์‚ฌ๋žŒ์—๊ฒŒ ์œ„์˜ ์งˆ๋ฌธ์„ ํ•  ๋•Œ ๋งˆ๋‹ค ๋Œ์•„์™”๋˜ ๋น„์Šทํ•œ ๋งฅ๋ฝ์˜ ๋Œ€ํ™”. ์—ด์‹ฌํžˆ ๊ณต๋ถ€ํ•ด์„œ ๋Œ€ํ•™์ง„ํ•™์„ ์ค€๋น„ํ–ˆ๋˜ ๊ณ 3 ๋•Œ๋„, ์ž๊ฒฉ์ฆ ์‹œํ—˜์„ ์ค€๋น„ํ–ˆ๋˜ ๋•Œ๋„ ๊ทธ ์–ด๋–ค ๋•Œ์™€ ๋น„๊ต๋ฅผ ํ•ด๋„ ์ง€๊ธˆ์ด ๊ฐ€์žฅ ํž˜๋“ค๋‹ค๊ณ . ์•„๋งˆ ์‚ถ์ด๋ผ๋Š” ๋ฌด๊ฒŒ๊ฐ€ ์–ด๊นจ์œ„๋กœ ์–นํ˜€์กŒ๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ด๋ผ ๋‚˜๋Š” ์ด๋‚ด ์ƒ๊ฐํ–ˆ๋‹ค.

์ •๋ง๋กœ ๋‹ค์‚ฌ๋‹ค๋‚œ ํ•œ 3๊ฐœ์›”์ด์—ˆ๋‹ค. ํ•ญํ•ด99๋ฅผ ์‹œ์ž‘ํ•œ์ง€ ์–ผ๋งˆ ์•ˆ ๋œ ์งํ›„ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๋Š” ํฌ๋ง์ด ์ ˆ๋ง์œผ๋กœ ๋ฐ”๋€Œ๊ธฐ๊นŒ์ง€ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋ ‡๊ฒŒ โ€œ๊ณผ์—ฐ ๋‚ด๊ฐ€ ๊ฐœ๋ฐœ์ž๋ฅผ ํ•  ์ˆ˜ ์žˆ์„๊นŒ?โ€๋ž€ ์˜๋ฌธ์„ ํ’ˆ์€์ฑ„ ์‹ค์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค. ๋‚˜๋„ ๊ทธ๋“ค์ฒ˜๋Ÿผ ๊ฐ€์žฅ ํž˜๋“  ์‹œ๊ฐ„์„ ๋ณด๋‚ด๊ณ  ์žˆ์—ˆ๋‹ค.

์ง€๊ธˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด๊ณ  ํ•œ ์ค„ ํšŒ๊ณ ๋ฅผ ์“ฐ๊ณ ์žˆ๋Š” ์ƒํ™ฉ์—์„œ ๊ณผ๊ฑฐ๋ฅผ ๋Œ์ด์ผœ๋ณด๋‹ˆ ๊ทธ ๋•Œ์˜ ๋Œ€ํ™”๋“ค์ด ์˜๋ฏธ์‹ฌ์žฅํ•˜๋‹ค. ์ •๋ง ํž˜๋“ค์—ˆ๋˜ ๊ทธ ์ˆœ๊ฐ„๋“ค๊ณผ ๊ทธ๋งŒ๋‘๊ณ  ์‹ถ์€ ๋งค ์ˆœ๊ฐ„๋“ค์ด ์•„์ด๋Ÿฌ๋‹ˆํ•˜๊ฒŒ๋„ ๋‚˜๋ฅผ ์ผ์œผ์ผœ ์„ธ์šฐ๋Š” ์›๋™๋ ฅ์ด ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋‚˜์™€ ํ•จ๊ป˜ํ•˜๋Š” ํŒ€์›๋“ค๊ณผ, ๊ฐ™์€ Spring์„ ๊ณต๋ถ€ํ•˜๋Š” ๋™๋ฃŒ๋“ค ๋ชจ๋‘ ๊ฐ™์€ ๊ฐ์ •์„ ๋Š๋ผ๊ณ  ์žˆ์—ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์™ธ๋กœ์›€, ํž˜๋“ฌ, ์ง€์นจ ๋“ฑ ์ •์‹ ์  ๊ทธ๋ฆฌ๊ณ  ์‹ ์ฒด์  ๊ณ ํ†ต์„ ๊ณต์œ ํ•˜๋ฉฐ ์„œ๋กœ๋ฅผ ์œ„๋กœํ–ˆ๋‹ค. ๊ดœ์ฐฎ๋‹ค๊ณ , ์กฐ๊ธˆ๋งŒ ๋ฒ„ํ‹ฐ๋ฉด ๋œ๋‹ค๊ณ  ๊ทธ๋ ‡๊ฒŒ ์„œ๋กœ ๋ฒ„ํŒ€๋ชฉ์ด ๋˜์–ด ๋ชฉ์ ์ง€๋„ ๋ชจ๋ฅด๋Š” ๊ทธ ์–ด๋”˜๊ฐ€๋กœ ํ–ฅํ–ˆ๋‹ค. ์‹ ์ฒด์ ์œผ๋กœ ๋‹ฟ์•„์žˆ์ง€๋Š” ์•Š์ง€๋งŒ ๊ฐ™์ด ๊ณต๋ถ€ํ•˜๋Š” ์ด๋“ค๊ณผ ๊ฐ™์ด ํฌ๋น„์• ๋ฝ์„ ๋‚˜๋ˆ„๋ฉฐ ์šฐ๋ฆฌ๋Š” ์„œ๋กœ ์œ ๋Œ€๊ฐ์„ ๋Š๊ผˆ๋‹ค. ๊ทธ๋กœ ์ธํ•ด ๊ฒŒ๋”๋Š” ๋œ ์™ธ๋กœ์šด ๊ณต๊ฐ„์ด ๋˜์—ˆ๋‹ค.

๊ณ ๋งˆ์›€์„ ํ‘œํ˜„ํ•  ์ด๋“ค์€ ์ผ์ผ์ด ๋‚˜์—ดํ•  ์ˆ˜ ์—†๋‹ค. ์ง€๋‚œ 6์ฃผ ๋™์•ˆ ๋‚˜์™€ ํ•จ๊ป˜ํ•œ 7๊ธฐ C๋ฐ˜ 7์กฐ ๋™๋ฃŒ๋“ค, ์„œ๋กœ๋ฅผ ์˜์ง€ํ•œ์ฒด ๊ณต๋ถ€ํ–ˆ๋˜ Spring ์‚ฌ๋žŒ๋“ค, ์ข‹์€ ๊ธ€๊ณผ ์ฐธ๊ณ ์ž๋ฃŒ๋ฅผ ๋‚จ๊ฒจ์ฃผ์—ˆ๋˜ ์ˆ˜ ๋งŽ์€ ๋ธ”๋กœ๊ฑฐ๋“ค๊ณผ ์œ ํŠœ๋ฒ„๋“ค, ๊ทธ๋“ค์ด ์—†์—ˆ๋‹ค๋ฉด ๋‚˜๋Š” ์•„๋งˆ ๋ฌด์‚ฌํžˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋๋‚ด์ง€ ๋ชปํ–ˆ์„ ๊ฒƒ์ด๋‹ค. ๋‚˜์™€ ๊ฐ™์€ ๊ธธ์„ ๊ฑท๋Š” ๋ชจ๋“ ์ด๊ฐ€ ์–ด๋””๋ฅผ ๊ฐ€๋“  ๋ฌด์—‡์„ ํ•˜๋“  ํ‰์•ˆํ•˜๊ณ  ๋ณต๋˜๊ธธ ๋ฐ”๋ž€๋‹ค๊ณ  ์ด ์ž๋ฆฌ๋ฅผ ๋นŒ๋ ค ๊ฐ์‚ฌ์˜ ๋ง์„ ์ „ํ•ด๋ณธ๋‹ค.

- ์ด๋™์žฌ

์‹ ์ƒ์•„ ๋ฐœ๊ฑธ์Œ

- ๋ฌธ์ˆ˜์ฐฌ

ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•  ๋•Œ, ๋‚จ๋“ค๊ณผ ๊ฐ™์ด ๋ฐฐ์šด ๊ฒƒ์„ ์ตœ์ข… ํ”„๋กœ์ ํŠธ๋กœ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค, ์ฐจ๋ณ„์„ฑ์žˆ๊ฒŒ, ๋ฐฐ์šด ๊ฒƒ์„ ๋…์ฐฝ์„ฑ์žˆ๋Š” ์•„์ด๋””์–ด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ ์‚ผ์•˜์Šต๋‹ˆ๋‹ค.

๋‚จ๋“ค๊ณผ ๋‹ค๋ฅธ ๋ฐฉ์‹์˜ ํ”„๋กœ์ ํŠธ์ด๋‹ค๋ณด๋‹ˆ, ์ด๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ์ด๋Œ๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ๊ฒŒ ๋ฌด์—‡์ผ์ง€ ๋งŽ์ด ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค. 1๋ฒˆ์€ ์†Œํ†ต์ด๊ณ , 2๋ฒˆ์€ ๊ณ„ํš์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ €๋ฅผ ํฌํ•จํ•ด ๋ชจ๋‘๊ฐ€ ๋ฏธ๊ฒฝํ—˜์ž๋กœ ์ƒˆ๋กœ์šด ๊ฒƒ์„ ๋„์ „ํ•˜๋Š” ๊ฒƒ์— ๋‘๋ ค์›€์„ ๊ฐ€์Šด์— ํ’ˆ๊ณ  ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋  ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์—…๋ฌด์ ์ธ ์†Œํ†ต๋งŒ ์˜ค๊ฐ€๋Š” ํ”„๋กœ์ ํŠธ๋Š” ๊ฒฐ๊ตญ ์‚ฌ์†Œํ•œ ์˜๊ฒฌ ์ฐจ์ด์—๋„ ๊ฐ์ •์ด ์‰ฝ๊ฒŒ ์ƒํ•˜๊ณ  ์—‡๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๊ธฐ์—, ์ด๋ฅผ ์กฐ์œจํ•˜๊ณ  ์„œ๋กœ๋ฅผ ๋™๋ฃŒ๋ผ๊ณ  ์ธ์‹ํ•˜๊ฒŒ ํ•˜๋Š” ์—ญํ• ์ด ํ”„๋ก ํŠธ์˜ ์กฐ์žฅ์œผ๋กœ์จ ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

1์ฃผ์ฐจ์— ์ฃผ์ œ๊ฐ€ ์„ ์ •๋˜๋ฉด์„œ ๋จธ๋ฆฌ ์†์— ์–ด๋–ค ๋กœ์ง์„ ์‚ฌ์šฉํ• ์ง€, ์–ธ์ œ๊นŒ์ง€ ๊ตฌ์ƒ์„ ํ• ์ง€ ๊ณ„ํš์„ ์„ธ์›Œ๋ณด๊ณ  ์‹œ์ž‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์•„์‰ฌ์šด ์ ์€ ์ด๋ฅผ ๋ฌธ์„œํ™”ํ•ด ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ํ•ด๋‘์—ˆ์œผ๋ฉด ์ข‹์•˜์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ณ„ํš์ด ์ˆ˜๋ฆฝ๋˜๊ณ  Due Date์ด ์ •ํ•ด์ง€๋‹ˆ, ์—…๋ฌด ๋ถ„๋‹ด์ด ํšจ์œจ์ ์œผ๋กœ ์ด๋ฃจ์–ด ์กŒ๊ณ , ์˜คํžˆ๋ ค ๊ณ„ํš์„ ์œ ๋™์ ์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์–ด์„œ, ๋งˆ๊ฐ ๊ธฐ๊ฐ„ ์•ˆ์— ์ž˜ ๋งˆ๋ฌด๋ฆฌ ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ 6์ฃผ๋™์•ˆ, ํŒ€์žฅ์œผ๋กœ์จ, ๊ฐœ๋ฐœ์ž๋กœ์จ ์ •๋ง ๊ฐ’์ง„ ๊ฒฝํ—˜์„ ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ํŒ€์›๊ณผ ์†Œํ†ตํ•˜๋Š” ๋ฒ•, ์„œ๋กœ์˜ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๋ฐœ์ „ํ•˜๋Š” ๊ฒƒ, ์ƒˆ๋กœ์šด ์ง€์‹์„ ๊ณต๋ถ€ํ•˜๋Š” ๋ฒ•, ๋งค์ผ ๋งค์ผ์ด ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์˜ ์—ฐ์†์ด์—ˆ๊ณ  ์ด๋ฅผ ์–‘๋ถ„์œผ๋กœ์จ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

Open Mindโ€ฆ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ‚ค์›Œ๋“œ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๊ฐ€๋Šฅ์„ฑ์— ๋ฌธ์„ ์—ด์–ด๋†“๊ณ , ๋‚˜์™€ ๋‹ค๋ฅธ ์˜๊ฒฌ์„ ์ธ์ •ํ•  ์ค„ ์•Œ๊ณ , ์ด๋ฅผ ํ† ๋Œ€๋กœ ์„ฑ์žฅํ•˜๋Š” ๊ฒƒ.

์„œ๋ก ์ด ๊ธธ์—ˆ๋„ค์š”โ€ฆ ์ €์˜ ํ•œ ์ค„ ํšŒ๊ณ 

โ€ํ”ผ๋ผ๋ฏธ๋“œ๋Š” ์ง„์งœ ์‚ฌ๋žŒ์ด ๋งŒ๋“ค์—ˆ๊ณ , <์นœ๋‹ค/>๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋งŒ๋“ค์—ˆ๋‹ค.โ€œ

- ์ตœ์„ฑ์šฐ

ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋ชฉํ‘œ๋กœ ๋‘๊ณ  "ํ˜ผ์ž"๊ฐ€ ์•„๋‹Œ "์„œ๋กœ" ์˜์ง€ํ•˜๋ฉฐ ๋ฐค์„ ์ƒˆ์šฐ๊ณ , ๋ฒ„ํ‹ฐ๊ณ , ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์€ ํ˜ผ์ž ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ•จ๊ป˜ ํ•˜๋Š” ๊ฒƒ์ด๋ผ๋Š” ๊ฒƒ์„ ์ ˆ์‹คํ•˜๊ฒŒ ๋Š๋‚„ ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด์—ˆ๊ณ , ํ”„๋ก ํŠธ ๋ถ„๋“ค์˜ ๋…ธ๋ ฅ์„ ๋ณด๋ฉฐ, ๊ฐœ์ธ์ ์œผ๋กœ๋„ ๋ฐฑ์—”๋“œ ํŒ€์œผ๋กœ์„œ๋„ ๋” ํšจ์œจ์ ์ด๊ณ , ๋” ๋น ๋ฅด๊ฒŒ ๊ฒฐ๊ด๊ฐ’์„ ๋“œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก ๋…ธ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋งŽ์€ ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…์„ ๊ฒช๊ณ  ์„ฑ์žฅํ•˜๋ฉฐ, ๋™๊ธฐ๋ถ€์—ฌ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์—ˆ๋˜, ํŒ€์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‹ค์‹œ ์ƒ๊ฐํ•ด ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธด ๊ธฐ๊ฐ„ ๋™์•ˆ, ๋‹ค๋“ค ๋„ˆ๋ฌด ๊ณ ์ƒ ๋งŽ์œผ์…จ์Šต๋‹ˆ๋‹ค!!

- ์ด์ •์ฐฌ

6์ฃผ๊ฐ„ ์ฆ๊ฑฐ์› ๊ณ , ์žฌ๋ฏธ์žˆ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค! ๋‹ค๋“ค ๊ณ ์ƒํ•˜์…จ์Šต๋‹ˆ๋‹ค! โ€œ์ด๊ฒŒ ๋˜๋„คโ€

- ์ด๋ฏผ์„

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published