- ๐ฎ
<์น๋ค/>
: ์จ๋ผ์ธ ์ฝ๋ฉ ๋ฐฐํ ์ฌ์ดํธ - ๐ผ <์น๋ค/> Demo Youtube
- ๐๐ป ์ ํฌ ํ๋ก์ ํธ๊ฐ ๋ ๊ถ๊ธํ์ ๊ฐ์?
โคต๏ธ - ๐ง๐ปโโ๏ธ ์ ์ ๊ธฐ๊ฐ & ํ์ ์๊ฐ
- ๐งฐ ์ฌ์ฉ ๊ธฐ์ ๋ฐ ํด
- ๐ ๏ธ ์๋น์ค ์ํคํ ์ณ
- ๐ง ๊ธฐ์ ์ ์์ฌ๊ฒฐ์
- โจ ํต์ฌ๊ธฐ๋ฅ
- ๐ฅ Trouble shooting
- โ๏ธ ERD
- ๐ฅ FLOW-CHART
- ๐ค ๋ง์ผํ ์ ๋ต
- ๐ง๐ปโ๐ง ํผ๋๋ฐฑ ๊ฐ์
- โ๐ป 7์กฐ ํ ์ค ํ๊ณ
ํ์ ๋ฐ ์ฑํ ์ผ๋ก ์ํตํ๋ฉฐ ์ค์๊ฐ์ผ๋ก ์ฝ๋๋ฅผ ์ฃผ๊ณ ๋ฐ์ผ๋ฉฐ ์งํํ๋ ๊ฒ์! Java, Javascript, Python ์ง์!
๐๐ปย <์น๋ค/> ์ด์ฉํ๋ฌ ๊ฐ๊ธฐ ๐๐ป
๐๐ป ํ๋ก ํธ์๋ 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 |
์ฌ์ฉ ๊ธฐ์ | ๊ธฐ์ ์ค๋ช |
---|---|
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 ์์ฑ์ ํตํ ์ปดํ์ผ ์ ํ๋ ๊ฒ์ฌ.
๐ญย ์ฑํ ์์ค ํํฐ๋ง.
๐ทย ์ ์ฅ๊ณผ ์ค๋น ์ ๋์์ฑ ๋ฌธ์ ๋ฐ์ ํด๊ฒฐ.
๐ฌย ๋ฌธ์ :
- ๋์ ์ ์ฅ ์์ฒญ ์ ๋ฐฉ์ ์์ฑ์ ์ธ ์ฐธ์ฌ์๊ฐ ์ฌ๋ฌ ๋ช ๋ค์ด๊ฐ๋ ๋ฌธ์ ๋ฐ์.
- ๋์ ์ค๋น ์ ๊ฐ ์ฌ์ฉ์๊ฐ ์ค๋น๊ฐ ๋์๋์ง ํ์ธํ๊ณ ๋ฐฉ์ฅ ์๊ฒ ์์ ๋ฒํผ ํ์ฑํ๋ฅผ ์ ํ ๋ฉ์์ง๊ฐ ์ ๋ฌ๋์ง ์๋ ๋ฌธ์ ๋ฐ์.
๐ญย ํด๊ฒฐ:
Redis
Watch๋ช ๋ น์ด
๋ฅผ ์ฌ์ฉํ์ฌOptimistic Locking
์ ์ฉ, ์ค๋ณต๋์ด ๋ค์ด์ค๋ ์์ฒญ ์ ํ๋์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ , ๋ค๋ฅธ ์์ฒญ์๊ฒ ์ ์ ์ด๊ณผ ๋ฉ์์ง ์ ์ก.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์ ๋ด์๋๊ณ ๋ก๊ทธ์ธ ์ ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ ๋ก๊ทธ์์ ์ฒ๋ฆฌ ๋ฉ์์ง ์ ๋ฌ ๋ฐ ๋ ๋์ค์์ ํด๋น ๋ฐ์ดํฐ ์ญ์ ํ ๋ก๊ทธ์์ ์ฒ๋ฆฌ.
๐ทย ๋น์์ด์ ํํฐ
๐ข ํ ๋ผ๊ฐ ๋น์์ด๋ผ ๊ฐ์
๐ฌย ๋ฌธ์ :
์ฐฝ์์ ์ธ(?) ํ๊ธ ๋น์์ด๊ฐ ์ ๋๋ก ํํฐ๊ฐ ๋์ง ์์.
โ๏ธย ์คํ ๊ฐ๋ฅํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ์:
๋์ฌ ์ ์๋ ๋ชจ๋ ๋น์์ด๋ฅผ ๋ฆฌ์คํธ ํ. ex) โํ 1๋ผโ, โํ ๋ผ2โ, โใ ใ ๋ผโ, โใ ใ ใฒ1โ โฆ โ ๋๋ฌด ๋ง์ ๋ณ์๋ก ์ธํด ๊ธฐ๊ฐ.
์ธ๋ถ API๋ฅผ ์ฌ์ฉํด ํํฐ๋ง์ ์งํ. โ ์ธ๋ถ API์ ๋ถ์ฌ ๋ฐ api request & response๋ก ์ค์๊ฐ ์ฑํ ์ ์๋ฏธ ์ ํ. ๊ธฐ๊ฐ.
๋จ์ด ์ ์ฌ๋ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ ๋ ฅ๋ ๋จ์ด์ ๋น์์ด๋ฅผ ๋น๊ต ๋ฐ ํํฐ๋ง. ์ฑํ.
๐งฎย ํด๊ฒฐ:
Levenshtein Distance Algorithm(ํธ์ง๊ฑฐ๋ฆฌ ์๊ณ ๋ฆฌ์ฆ; ์ดํ LDA)์ ์ฌ์ฉ.
LDA๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ค ํํฐ ์ ์.
๐ญย ์์:
์ ๋ ฅ๋ ๋จ์ด๋ฅผ LDA ํํฐ๋ฅผ ํต๊ณผํ๊ณ ์๊ด๊ณ์rrr๊ฐ์ด โฅ 0.5์ด๋ฉด 2์ฐจ LDA ํํฐ๋ง ์งํ. ex) โํ ๋ผ'๊ฐ ๋น์์ด ์์ผ๋ก โํ ์ฑ', ํ ์ง', โ์ฅ๋ผ'๋ฑ์rrr๊ฐ์ด 0.5.
์ ๋ ฅ๋ ๋จ์ด์ ๊ฐ ๋ฌธ์๋ฅผ ์ด์ฑ, ์ค์ฑ, ์ข ์ฑ์ผ๋ก ๋ถํด, ํด๋น ๋จ์ด๋ฅผ ๋น์์ด ๋ฆฌ์คํธ์ ๋น๊ต ํ ์ ์ํ๋ฅ pโvaluep-valuepโvalue๊ฐ โฅ 0.66์ด๋ฉด ๋น์์ด๋ก ํ์ ๋ฐ ํํฐ๋ง ์งํ.
ex) ์ ๋ ฅ๋ ๋จ์ด ํ ์ฑ๊ณผ ๊ธฐ์กด ๋น์์ด ๋ฆฌ์คํธ์ ์๋ ๋จ์ด ํ ๋ผ๋ฅผ ๊ฐ๊ฐ โใ ใ ใ ใ ใ โ๊ณผ โใ ใ ใฒใ ฃโ๋ก ๋ถํด. ๋ ๋จ์ด์ ์ ์ฌ๋๊ฐ !โฅ 0.66์ผ๋ก ๋น์์ด ์ฒ๋ฆฌX.
ex2) ์ ๋ ฅ๋ ๋จ์ด ํ 1๋ผ์ ๊ธฐ์กด ๋น์์ด ๋ฆฌ์คํธ์ ์๋ ๋จ์ด ํ ๋ผ๋ฅผ ๊ฐ๊ฐ โใ ใ 1ใฒใ ฃ'์ โใ ใ ใฒใ ฃโ๋ก ๋ถํด. ๋ ๋จ์ด์ ์ ์ฌ๋๊ฐ โฅ 0.66์ผ๋ก ๋น์์ด ์ฒ๋ฆฌ.
๐ทย ๋ ์ฐฝ์ ์ธ ์ฌ์ดํธ๋ก ๋ง์ ์ด๋ชฉ์ด ์ง์ค
๐ฌย ์ ๋ต:
- ๊ฐ๋ฐ์๊ฐ ์ฆ๊ธธ ์ ์๋ ์ฌ์ดํธ์ธ ๋งํผ, ๋ง์ ๊ฐ๋ฐ์๊ฐ ๋ชจ์ฌ์๋ ๊ณณ์์ ํ๋ณดํ๊ณ ์ฌ์น์๋ ๋ฌธ๊ตฌ๋ก ์ด๋ชฉ์ ์ง์ค๋ฐ๋ ์ ๋ต์ ์ฌ์ฉ
- ๊ธฐํํฐ์ฝ์ ํตํด ์ค๋ฌธ์กฐ์ฌ ์ฐธ์ฌ์ ๋๊ธฐ๋ฅผ ๋ถ์ฌํ์ฌ ๋ค์ํ ์ ์ ํผ๋๋ฐฑ์ ๋ฐ๊ธฐ ์ํด ํฌ์
๐ญย ๊ฒฐ๊ณผ :
์ฌ์ดํธ ๊ฐ์ค, ํ๋ณด์ ๋์์ ๋์ 3์๋ฆฌ ์๊ฐ ๋์ด๊ฐ๋ฉฐ ๊ตฌ๋์ ์ค๋ฌธ์กฐ์ฌ๋ก ๋ค์ํ ํผ๋๋ฐฑ์ ์๋ ดํ์์
๐งฎย ํ๋ณด ์๋ฃ:
๐ทย ์ ์ ์ ํผ๋๋ฐฑ์ ์์คํ ์๊ฐํด, ํจ์น๋ฅผ ํตํด ์๊ฒฌ์ ๋ฐ์
๐ฌย ์ ๋ต:
๊ณตํต๋ ์ ์ ๋ค์ ์๊ฒฌ์ ๋ชจ์์, ๋น ๋ฅด๊ฒ ๋ฐ์ํ๋ ๊ฒ์ผ๋ก ์ ๋ขฐ๋ฅผ ์ฃผ๊ณ , ์ ์ ์ ์ํตํ๊ณ ์๋ ๋๋์ ๋ถ์ฌ
๐ญย ๊ฒฐ๊ณผ:
ํจ์น ์ดํ, ํด๋น ๋ฌธ์ ์ ๊ด๋ จํด์๋ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ง ์๊ณ , ๋ง์กฑ๋๊ฐ ์์นํ์์.
๐งฎย ํ๋ณด ์๋ฃ:
๐ทย ์ฐธ๊ฐ์๊ฐ ์ ์กฐํ์ฌ ํ์ฌ๋ฅผ ์งํํ์ง ๋ชปํจ
๐ฌย ๋ถ์:
ํ๋ณด๊ฐ ๋ถ์กฑํ์์. ์ ์ฒด๊ฐ ๋ชจ์ธ ์ฑํ ๋ฐฉ์ ๊ณต์ง๋ง ์ฌ๋ฆฌ๊ณ ์ค์ ๋ก ๋์๋ค๋๋ฉด์ ์ฐธ๊ฐ์๋ฅผ ๋ชจ์ผ๋ ๊ฒ์ ๊ณ ๋ คํ์ง ๋ชปํจ.
๋์์๋ค์ ์ํฉ์ ๊ณ ๋ คํ์ง ๋ชปํจ. ํ๊ฒ ๋์์๋ค์ธ 7๊ธฐ C๋ฐ ๋๋ฃ๋ค์ ์ต์ข ๋ง๊ฐ ๊ธฐ๊ฐ์ด ๋ค๊ฐ์ฌ์๋ก ์๊ฐ๋ณด๋ค ์ฌ์ ๊ฐ ๋ ์์๋ ๊ฒ์ ๊ณ ๋ คํ์ง ๋ชปํ์์.
ํ๋ณด ์๊ฐ์ด ์๋ชป๋์์. ์ฌ๋๋ค์ด Slack์ ๊ฐ์ฅ ๋ง์ด ๋ณผ, ์์นจ์ด๋, ์ ์ฌ์ ํ๋ณด๋ฅผ ํ์ด์ผ ํ์ง๋ง, ์๋ฒฝ์ ํ๋ ๊ฒ์ผ๋ก ๊ด์ฌ์ ๋ฐ์ง ๋ชปํจ.
๐ญย ๋ฐฐ์ด ์ :
ํ๊ฒ์ธต์ ๋ํด์ ๋ ์ ๋ฐํ ๋ถ์์ด ํ์
ํ๋ณด ๋ฌธ๊ตฌ๊ฐ ์ ๋ถ๊ฐ ์๋, ํ๋ณด ์๊ธฐ, ์ฆ ํ์ด๋ฐ์ด ์ค์ํ๋ค๋ ๊ฒ์ ๋๋
ํ๋์ ์๋จ์ผ๋ก ํ๋ณดํ๋ ๊ฒ์ด ์๋ ๋ค์ํ ๋ฐฉ์์ผ๋ก ํ๊ฒ์ธต์ ์ ๊ทผํด์ผ ํ๋ณดํจ๊ณผ๊ฐ ๋ํ๋๋ ๊ฒ์ ์๊ฒ๋จ
๐งฎย ํ๋ณด ์๋ฃ:
๐ทย ๋ฐฐ๊ฒฝ์ ๋ฐ ํจ๊ณผ์ ๋ณผ๋ฅจ ์กฐ์
๐ฌย ํผ๋๋ฐฑ: ๋ณผ๋ฅจ ์กฐ์ ์ด ํ์ํ ๊ฒ ๊ฐ๋ค. Mute ๊ธฐ๋ฅ ์ถ๊ฐ ์์ฒญ
๐ญย ๊ธฐ๋ฅ ๊ฐ์ :
๋ฐฐ๊ฒฝ์ ๋ฐ ํจ๊ณผ์ ๋ณผ๋ฅจ์ on/off๊ฐ ์๋ ํด๋ฆญ์ผ๋ก ์กฐ์
๐งฎย Before :
๐งฎย After :
๐ทย ์์ ๋ฒํผ ์ถ๊ฐ
๐ฌย ํผ๋๋ฐฑ: ์คํํธ ๋ฒํผ์ด ๋ฐ๋ก ์๋ค๋ฉด ์ด๋ ์๋์ง ์ ๋ณด์ด์ง ์๋๋ค. ์ ์ฅ ํ ์๋๋ฐฉ๊ณผ ๋ ๋๋ฅผ ํ์์๋ ์์์ด ์๋์๋ค. ๋ง์ฝ ์์์ ํ ์ ์๋ ๋ฒํผ ๋ฑ์ด ๋ฐ๋ก ์๋ค๋ฉด ์กฐ๊ธ ๋ ๋ถ๋ช ํ๊ฒ ๋ํ๋๋ ์ข์ ๊ฒ ๊ฐ๋ค๋ ์๊ฒฌ
๐ญย ๊ธฐ๋ฅ ๊ฐ์ :
ready๋ง ๋๋ฅด๊ณ ์์ชฝ์ด ๋ค ๋๋ฅด๋ฉด ์๋์ผ๋ก ์์๋์๋ ๊ธฐ์กด์ ๋ฐฉ์์์ ์๋๋ฐฉ์ด ๋ ๋๋ฅผ ๋๋ ๋์ง ํ์ธ ํ ์ ์๊ฒ ๋ณ๊ฒฝํ์๊ณ ๋ฐฉ์ฅ์ด ๊ฒ์์ ์์ํ ์ ์๊ฒ ๋ฒํผ์ ์ถ๊ฐ
๐งฎย Before :
๐งฎย After :
๐ทย ํํ ๋ฆฌ์ผ์ด ์๋์ผ๋ก ๋ณด์ฌ์ง๋ ๊ธฐ๋ฅ ์ถ๊ฐ
๐ฌย ํผ๋๋ฐฑ: ๋ค๋ก๊ฐ๊ธฐ ๋ฒํผ์ด๋ ๋ฐ๋ก ์ค๋ช ์ด ์์ด์ ๋ค๋ก ๊ฐ ๋ ์ฌ์ฉํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ด๊ฒ์ ๊ฒ ๋๋ฌ๋ณด๋ค๊ฐ ์ธ์ด ๋๋ฅด๋๊น ๋ค๋ก ๊ฐ๊ฒ ๋์๋ค๋ฉฐ ์๋น์ค์ ๋ํ ์ดํด ๋ถ์กฑ์ผ๋ก ์ดํ์จ์ด ๋์์ง๋ ๊ฒ์ ๋ํด ๊ฐ์
๐ญย ๊ธฐ๋ฅ ๊ฐ์ : ์ด๊ธฐ ์ฌ์ฉ์์๊ฒ ํํ ๋ฆฌ์ผ์ด ์๋์ผ๋ก ๋ณด์ฌ์ง๋ ๊ธฐ๋ฅ ์ถ๊ฐ
๐งฎย ์ฐธ๊ณ ์๋ฃ:
๐ทย ์ ์์ด๊ณผ ์๋ฆผ
๐ฌย ํผ๋๋ฐฑ: ์ธ์์ด ์ฐฌ ๋ฐฉ์ ์ ์ฅ์ด ๊ฐ๋ฅํ๋ค๋ฉฐ ๊ฐ์ ์์ฒญ
๐ญย ๊ธฐ๋ฅ ๊ฐ์ : ์ ์์ด๊ณผ ์๋ฆผ ๊ธฐ๋ฅ ์ถ๊ฐ
๐งฎย ์ฐธ๊ณ ์๋ฃ:
<๋ ์ธ๋ก์ด ๊ณต๊ฐ>
โ๊ณ 3 ๋ ์๋ฅ ๊ณต๋ถํ๋ ๊ฒ ๋งํผ ํ๋ค์ง ์์์?โ โ๋ฌด์จ์๋ฆฌ์์. ๊ทธ ๋๋ ์ด๋ ๊ฒ๊น์ง ํ๋ค์ง ์์์ด์. ์ง๊ธ์ด ๊ทธ ๋๋ณด๋ค ํจ์ฌ ๋ ํ๋ค์ฃ โ ํญํด99๋ฅผ ๊ฐ์ดํ๋ ๋ฐ ์ฌ๋์๊ฒ ์์ ์ง๋ฌธ์ ํ ๋ ๋ง๋ค ๋์์๋ ๋น์ทํ ๋งฅ๋ฝ์ ๋ํ. ์ด์ฌํ ๊ณต๋ถํด์ ๋ํ์งํ์ ์ค๋นํ๋ ๊ณ 3 ๋๋, ์๊ฒฉ์ฆ ์ํ์ ์ค๋นํ๋ ๋๋ ๊ทธ ์ด๋ค ๋์ ๋น๊ต๋ฅผ ํด๋ ์ง๊ธ์ด ๊ฐ์ฅ ํ๋ค๋ค๊ณ . ์๋ง ์ถ์ด๋ผ๋ ๋ฌด๊ฒ๊ฐ ์ด๊นจ์๋ก ์นํ์ก๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ผ ๋๋ ์ด๋ด ์๊ฐํ๋ค.
์ ๋ง๋ก ๋ค์ฌ๋ค๋ ํ 3๊ฐ์์ด์๋ค. ํญํด99๋ฅผ ์์ํ์ง ์ผ๋ง ์ ๋ ์งํ ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์๊ฑฐ๋ผ๋ ํฌ๋ง์ด ์ ๋ง์ผ๋ก ๋ฐ๋๊ธฐ๊น์ง ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ์ง ์์๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ฒ โ๊ณผ์ฐ ๋ด๊ฐ ๊ฐ๋ฐ์๋ฅผ ํ ์ ์์๊น?โ๋ ์๋ฌธ์ ํ์์ฑ ์ค์ ํ๋ก์ ํธ๋ฅผ ์์ํ๋ค. ๊ทธ๋ ๋ค. ๋๋ ๊ทธ๋ค์ฒ๋ผ ๊ฐ์ฅ ํ๋ ์๊ฐ์ ๋ณด๋ด๊ณ ์์๋ค.
์ง๊ธ ํ๋ก์ ํธ๋ฅผ ๋๋ด๊ณ ํ ์ค ํ๊ณ ๋ฅผ ์ฐ๊ณ ์๋ ์ํฉ์์ ๊ณผ๊ฑฐ๋ฅผ ๋์ด์ผ๋ณด๋ ๊ทธ ๋์ ๋ํ๋ค์ด ์๋ฏธ์ฌ์ฅํ๋ค. ์ ๋ง ํ๋ค์๋ ๊ทธ ์๊ฐ๋ค๊ณผ ๊ทธ๋ง๋๊ณ ์ถ์ ๋งค ์๊ฐ๋ค์ด ์์ด๋ฌ๋ํ๊ฒ๋ ๋๋ฅผ ์ผ์ผ์ผ ์ธ์ฐ๋ ์๋๋ ฅ์ด ๋์๊ธฐ ๋๋ฌธ์ด๋ค. ๋์ ํจ๊ปํ๋ ํ์๋ค๊ณผ, ๊ฐ์ Spring์ ๊ณต๋ถํ๋ ๋๋ฃ๋ค ๋ชจ๋ ๊ฐ์ ๊ฐ์ ์ ๋๋ผ๊ณ ์์๋ค. ์ฐ๋ฆฌ๋ ์ธ๋ก์, ํ๋ฌ, ์ง์นจ ๋ฑ ์ ์ ์ ๊ทธ๋ฆฌ๊ณ ์ ์ฒด์ ๊ณ ํต์ ๊ณต์ ํ๋ฉฐ ์๋ก๋ฅผ ์๋กํ๋ค. ๊ด์ฐฎ๋ค๊ณ , ์กฐ๊ธ๋ง ๋ฒํฐ๋ฉด ๋๋ค๊ณ ๊ทธ๋ ๊ฒ ์๋ก ๋ฒํ๋ชฉ์ด ๋์ด ๋ชฉ์ ์ง๋ ๋ชจ๋ฅด๋ ๊ทธ ์ด๋๊ฐ๋ก ํฅํ๋ค. ์ ์ฒด์ ์ผ๋ก ๋ฟ์์์ง๋ ์์ง๋ง ๊ฐ์ด ๊ณต๋ถํ๋ ์ด๋ค๊ณผ ๊ฐ์ด ํฌ๋น์ ๋ฝ์ ๋๋๋ฉฐ ์ฐ๋ฆฌ๋ ์๋ก ์ ๋๊ฐ์ ๋๊ผ๋ค. ๊ทธ๋ก ์ธํด ๊ฒ๋๋ ๋ ์ธ๋ก์ด ๊ณต๊ฐ์ด ๋์๋ค.
๊ณ ๋ง์์ ํํํ ์ด๋ค์ ์ผ์ผ์ด ๋์ดํ ์ ์๋ค. ์ง๋ 6์ฃผ ๋์ ๋์ ํจ๊ปํ 7๊ธฐ C๋ฐ 7์กฐ ๋๋ฃ๋ค, ์๋ก๋ฅผ ์์งํ์ฒด ๊ณต๋ถํ๋ Spring ์ฌ๋๋ค, ์ข์ ๊ธ๊ณผ ์ฐธ๊ณ ์๋ฃ๋ฅผ ๋จ๊ฒจ์ฃผ์๋ ์ ๋ง์ ๋ธ๋ก๊ฑฐ๋ค๊ณผ ์ ํ๋ฒ๋ค, ๊ทธ๋ค์ด ์์๋ค๋ฉด ๋๋ ์๋ง ๋ฌด์ฌํ ํ๋ก์ ํธ๋ฅผ ๋๋ด์ง ๋ชปํ์ ๊ฒ์ด๋ค. ๋์ ๊ฐ์ ๊ธธ์ ๊ฑท๋ ๋ชจ๋ ์ด๊ฐ ์ด๋๋ฅผ ๊ฐ๋ ๋ฌด์์ ํ๋ ํ์ํ๊ณ ๋ณต๋๊ธธ ๋ฐ๋๋ค๊ณ ์ด ์๋ฆฌ๋ฅผ ๋น๋ ค ๊ฐ์ฌ์ ๋ง์ ์ ํด๋ณธ๋ค.
- ์ด๋์ฌ
์ ์์ ๋ฐ๊ฑธ์
- ๋ฌธ์์ฐฌ
ํ๋ก์ ํธ๋ฅผ ์์ํ ๋, ๋จ๋ค๊ณผ ๊ฐ์ด ๋ฐฐ์ด ๊ฒ์ ์ต์ข ํ๋ก์ ํธ๋ก ํ๋ ๊ฒ๋ณด๋ค, ์ฐจ๋ณ์ฑ์๊ฒ, ๋ฐฐ์ด ๊ฒ์ ๋ ์ฐฝ์ฑ์๋ ์์ด๋์ด๋ก ํํํ๋ ๊ฒ์ ๋ชฉํ ์ผ์์ต๋๋ค.
๋จ๋ค๊ณผ ๋ค๋ฅธ ๋ฐฉ์์ ํ๋ก์ ํธ์ด๋ค๋ณด๋, ์ด๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ์ด๋๊ธฐ ์ํด์ ํ์ํ๊ฒ ๋ฌด์์ผ์ง ๋ง์ด ์๊ฐํ์์ต๋๋ค. 1๋ฒ์ ์ํต์ด๊ณ , 2๋ฒ์ ๊ณํ์ด๋ผ๋ ์๊ฐ์ด ๋ค์์ต๋๋ค.
์ ๋ฅผ ํฌํจํด ๋ชจ๋๊ฐ ๋ฏธ๊ฒฝํ์๋ก ์๋ก์ด ๊ฒ์ ๋์ ํ๋ ๊ฒ์ ๋๋ ค์์ ๊ฐ์ด์ ํ๊ณ ์์ ์ ์งํํ๊ฒ ๋ ๊ฒ์ ์๊ณ ์์์ต๋๋ค. ๊ทธ๋ ๊ธฐ์ ์ ๋ฌด์ ์ธ ์ํต๋ง ์ค๊ฐ๋ ํ๋ก์ ํธ๋ ๊ฒฐ๊ตญ ์ฌ์ํ ์๊ฒฌ ์ฐจ์ด์๋ ๊ฐ์ ์ด ์ฝ๊ฒ ์ํ๊ณ ์๋๊ฐ ์ ์๊ธฐ์, ์ด๋ฅผ ์กฐ์จํ๊ณ ์๋ก๋ฅผ ๋๋ฃ๋ผ๊ณ ์ธ์ํ๊ฒ ํ๋ ์ญํ ์ด ํ๋ก ํธ์ ์กฐ์ฅ์ผ๋ก์จ ํ์ํ๋ค๊ณ ์๊ฐํ์์ต๋๋ค.
1์ฃผ์ฐจ์ ์ฃผ์ ๊ฐ ์ ์ ๋๋ฉด์ ๋จธ๋ฆฌ ์์ ์ด๋ค ๋ก์ง์ ์ฌ์ฉํ ์ง, ์ธ์ ๊น์ง ๊ตฌ์์ ํ ์ง ๊ณํ์ ์ธ์๋ณด๊ณ ์์ํ์์ต๋๋ค. ๋ค๋ง ์์ฌ์ด ์ ์ ์ด๋ฅผ ๋ฌธ์ํํด ๋ ๋ช ํํ๊ฒ ํด๋์์ผ๋ฉด ์ข์์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ณํ์ด ์๋ฆฝ๋๊ณ Due Date์ด ์ ํด์ง๋, ์ ๋ฌด ๋ถ๋ด์ด ํจ์จ์ ์ผ๋ก ์ด๋ฃจ์ด ์ก๊ณ , ์คํ๋ ค ๊ณํ์ ์ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ด์, ๋ง๊ฐ ๊ธฐ๊ฐ ์์ ์ ๋ง๋ฌด๋ฆฌ ํ ๊ฒ ๊ฐ์ต๋๋ค.
ํ๋ก์ ํธ ๊ธฐ๊ฐ 6์ฃผ๋์, ํ์ฅ์ผ๋ก์จ, ๊ฐ๋ฐ์๋ก์จ ์ ๋ง ๊ฐ์ง ๊ฒฝํ์ ํ์์ต๋๋ค. ํ์๊ณผ ์ํตํ๋ ๋ฒ, ์๋ก์ ์ฝ๋๋ฅผ ํตํด ๋ฐ์ ํ๋ ๊ฒ, ์๋ก์ด ์ง์์ ๊ณต๋ถํ๋ ๋ฒ, ๋งค์ผ ๋งค์ผ์ด ํธ๋ฌ๋ธ ์ํ ์ ์ฐ์์ด์๊ณ ์ด๋ฅผ ์๋ถ์ผ๋ก์จ ์ฑ์ฅํ ์ ์์์ต๋๋ค.
Open Mindโฆ ๊ฐ์ฅ ์ค์ํ ํค์๋์ธ ๊ฒ ๊ฐ์ต๋๋ค. ๋ค์ํ ๊ฐ๋ฅ์ฑ์ ๋ฌธ์ ์ด์ด๋๊ณ , ๋์ ๋ค๋ฅธ ์๊ฒฌ์ ์ธ์ ํ ์ค ์๊ณ , ์ด๋ฅผ ํ ๋๋ก ์ฑ์ฅํ๋ ๊ฒ.
์๋ก ์ด ๊ธธ์๋ค์โฆ ์ ์ ํ ์ค ํ๊ณ
โํผ๋ผ๋ฏธ๋๋ ์ง์ง ์ฌ๋์ด ๋ง๋ค์๊ณ , <์น๋ค/>๋ ์ฐ๋ฆฌ๊ฐ ๋ง๋ค์๋ค.โ
- ์ต์ฑ์ฐ
ํ๋์ ํ๋ก๊ทธ๋จ์ ๋ชฉํ๋ก ๋๊ณ "ํผ์"๊ฐ ์๋ "์๋ก" ์์งํ๋ฉฐ ๋ฐค์ ์์ฐ๊ณ , ๋ฒํฐ๊ณ , ๋ฌธ์ ๋ฅผ ์ฐพ์๊ฐ๋ ๊ณผ์ ์ ํตํด ๊ฐ๋ฐ์ ํผ์ ํ๋ ๊ฒ์ด ์๋ ํจ๊ป ํ๋ ๊ฒ์ด๋ผ๋ ๊ฒ์ ์ ์คํ๊ฒ ๋๋ ์ ์๋ ์๊ฐ์ด์๊ณ , ํ๋ก ํธ ๋ถ๋ค์ ๋ ธ๋ ฅ์ ๋ณด๋ฉฐ, ๊ฐ์ธ์ ์ผ๋ก๋ ๋ฐฑ์๋ ํ์ผ๋ก์๋ ๋ ํจ์จ์ ์ด๊ณ , ๋ ๋น ๋ฅด๊ฒ ๊ฒฐ๊ด๊ฐ์ ๋๋ฆด ์ ์๋๋ก ๋ ธ๋ ฅํ๊ธฐ ์ํด ๊ณต๋ถํ๋ฉด์ ๋ง์ ํธ๋ฌ๋ธ ์ํ ์ ๊ฒช๊ณ ์ฑ์ฅํ๋ฉฐ, ๋๊ธฐ๋ถ์ฌ๋ฅผ ๋ฐ์ ์ ์์๋, ํ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๋ค์ ์๊ฐํด ๋ณผ ์ ์์๋ ์๊ฐ์ด์์ต๋๋ค. ๊ธด ๊ธฐ๊ฐ ๋์, ๋ค๋ค ๋๋ฌด ๊ณ ์ ๋ง์ผ์ จ์ต๋๋ค!!
- ์ด์ ์ฐฌ
6์ฃผ๊ฐ ์ฆ๊ฑฐ์ ๊ณ , ์ฌ๋ฏธ์๊ฒ ํ์ต๋๋ค! ๋ค๋ค ๊ณ ์ํ์ จ์ต๋๋ค! โ์ด๊ฒ ๋๋คโ
- ์ด๋ฏผ์