2021.07 ~ ํ์ฌ
์ด๊ธฐ ๊ฐ๋ฐ์ธ์ : 6๋ช
(ํ๋ก ํธ์๋ ๊ฐ๋ฐ์ 2๋ช
, ๋ฐฑ์๋ ๊ฐ๋ฐ์ 4๋ช
)
https://nolto.app
๋ํ ๋ ์๋ง์ถ์ด ๊ฐ๋ฐ์๋ ๋ถ๋ด์์ด ์์ ์ ์์คํ ํ ์ดํ๋ก์ ํธ๋ฅผ ๊ณต์ ํ๋ ์๋น์ค์ ๋๋ค.
- ์ฌ์ฉ ๊ธฐ์ ์คํ
- ๋ด๋น ์ญํ
- ํ ๊ฐ๋ฐ ๋ฐฉ์
- ์ํฐํฐ ์ฐ๊ด๊ด๊ณ
- ์ธํ๋ผ
- CI/CD ํ๋ก์ธ์ค
- ๋ด๋น ๊ธฐ๋ฅ ๊ตฌํ ๋ด์ฉ
- ๋ฌธ์ ํด๊ฒฐ ์ฌ๋ก / ๋ฐฐ์ด ์
- ์์ฌ์ด ์
- Back-End
- Java8 / Spring Boot 2.5.2 / JPA
- Gradle
- MariaDB 10.5.12 / Jacoco 0.8.5 / Redis 4.0.9
- ํ
์คํธ ํ๊ฒฝ
- JUnit5, Mockito
- H2
- ๋ฌธ์ํ ๋๊ตฌ
- Spring Restdocs
- Java, Spring Boot, JPA๋ฅผ ์ฌ์ฉ, API ์๋ฒ ์ค๊ณ/๊ฐ๋ฐ
- ๋๊ธ CRUD API ์ค๊ณ/๊ตฌํ
- OAuth ํ์ฉ ์์
๋ก๊ทธ์ธ ๊ธฐ๋ฅ ๊ตฌํ
- Github, Google ๋ก๊ทธ์ธ ๊ตฌํ
- ๋ค๋ฅธ ๋ฆฌ์์ค ์๋ฒ(Kakao, Naver.. ๋ฑ๋ฑ) ์ถ๊ฐ์ ์ ์ฐํ๊ฒ ์ค๊ณ
- DB์๋ฒ ๋ถํ ๋ถ์ฐ์ ์ํ Replication ํ๊ฒฝ ๊ตฌ์ถ
- ํ๋ฉด ์๋ต ์ฑ๋ฅ ๊ฐ์ ์ ์ํ gif -> mp4 ํ์ผ ๋ณํ
- ์ธํ๋ผ ๊ตฌ์ถ
- Jenkins CI/CD ํ๊ฒฝ ๊ตฌ์ถ
- Nginx ํ์ฉ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ ๊ตฌ์ถ
- ๋งค์ผ ์์นจ 10์ ๋ฐ์ผ๋ฆฌ ๋ฏธํ ์์ ์์ ์ ์ํ์ ์ด์ ํ๋ ์์ ์ ๊ณต์ ํฉ๋๋ค.
- ์์ ๋ถ๋ฐฐ๊ฐ ์๋ ์ํ๋ฉด ์ค์ ์๊ฐ์ ์์ ์ ๋ถ๋ฐฐํ๊ณ ๊ธฐํ์ ์ ํฉ๋๋ค.
- ์๋ฃํ ์์ ์ PR์ ์์ฑํ์ฌ ์ฝ๋๋ฆฌ๋ทฐ ์์ฒญ.
- ์์ ๊ธฐ๊ฐ์ด ๋๋๋ฉด ํจ๊ป ๋ชจ์ฌ์ ๊ฐ์ ๊ตฌํ์ ๋ํด ๊ฐ๋จํ๊ฒ ์ค๋ช ํ๊ณ Develop ๋ธ๋์น์ Mergeํฉ๋๋ค.
๋ธ๋์น ์ ๋ต์ผ๋ก git-flow ์ ๋ต์ ์ฌ์ฉํ์ต๋๋ค.
- ํต์ฌ ์ํฐํฐ
- User(๋ํ ์ ์ฌ์ฉ์)
- Feed(ํ ์ด ํ๋ก์ ํธ ๊ณต์ ๊ธ)
- Like(๊ธ์ ๋ํ ์ข์์)
- Tech(๊ธฐ์ ์คํ)
- Comment(๊ธ์ ๋ํ ๋๊ธ)
- Reply(๋๊ธ์ ๋ํ ๋๋๊ธ)
- CommentLike(๋๊ธ์ ๋ํ ์ข์์)
- Notification(์๋, ์ ์ ์ ์ํธ์์ฉ์ ์ํด ์ปจํ
์ธ ์ ์ฃผ์ธ(์ ์ )์๊ฒ ๊ฐ๋ ์๋)
- ex. xxx๋์ xxx ๊ธ์ ๋๊ธ์ด ๋ฌ๋ ธ์ต๋๋ค.
-
ํ๋ก ํธ์๋ ์ธํ๋ผ
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง ์๋ฒ์ ํด๋ผ์ด์ธํธ ์ฌ์ด๋ ๋ ๋๋ง์ ์ฌ์ฉ. (์ฒซ ํ๋ฉด ๋ก๋ฉ์ ๊ฒฝ์ฐ ์๋ฒ์ฌ์ด๋ ๋ ๋๋ง์ ํตํด ํ๋ฉด ๋ก๋ฉ์ ๋น ๋ฅด๊ฒ ํจ, ์ดํ์๋ JSํ์ผ์ด ๋ก๋๋ ์ํ์ด๋ฏ๋ก ํ์ด์ง ์ด๋์ SPA๋ฅผ ์ฌ์ฉ) -
๋ฐฑ์๋ ์ธํ๋ผ
Nginx๋ฅผ ํ์ฉ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ฅผ ๊ตฌ์ฑ. ์ธ๋ถ์ ์์ฒญ์ ๋ฆฌ๋ฒ์ค ํ๋ก์ ์๋ฒ๋ก ์์ฒญ(SSL ์์ฒญ์ ์๋ณตํธํ๋ ๋ด๋น ssl termination)
AWS EC2 ์ธ์คํด์ค๋ก 2๋์ WAS ๊ตฌ์ฑ(Java, Spring ์๋ฒ). Nginx์์ ๋ก๋๋ฐธ๋ฐ์ฑ์ ๋ด๋น.
Refresh Token ์ ์ฅ์ ๋ด๋นํ๋ Redis ์ฌ์ฉ
์ด๋ฏธ์ง ์ ์ฅ์๋ก AWS S3 ๋ฒํท์ ์ฌ์ฉ(CloudFront ํจ๊ป ์ฌ์ฉ)
AWS EC2 ์ธ์คํด์ค๋ก DB์๋ฒ ์ฌ์ฉ(MariaDB). Replication ํ๊ฒฝ ๊ตฌ์ถ (MasterDB 1๋, SlaveDB 1๋)
Jenkins์ Github๋ฅผ ์ฌ์ฉํด์ ๊ตฌํ
๋ํ Github ์ ์ฅ์์ main ๋ธ๋์น ๋๋ develop ๋ธ๋์น์ merge๋ฅผ ํธ๋ฆฌ๊ฑฐ๋ก CI/CD๊ฐ ๋์
ํ
์คํธ, ๋น๋๊ฐ ์คํจ์์ด ์๋ฃ๋๋ฉด ๋น๋๋ jar ํ์ผ์ SFTP๋ฅผ ์ฌ์ฉํด ์๋ฒ์ ์ ์กํ๊ณ ์๋ฒ์ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ ์คํ
(๋ฐฑ์๋ ๊ธฐ์ค, ํ๋ก ํธ์๋๋ ๋ณ๋ก์ job์ผ๋ก CD๋ฅผ ์งํ)
ํ ์ดํ๋ก์ ํธ ๊ธ์ ๋ํ ๋๊ธ CRUD API ๊ตฌํ ๋ฐ Restdocs ํ์ฉ API ๋ช
์ธ ๋ฌธ์ํ.
๋๊ธ ์ญ์ ๋ก์ง์ ๋ฌธ์ ๊ฐ ์์ด ํธ๋ฌ๋ธ ์ํ
๊ฒฝํ.(JPA์์ cascade์ ophanRemoval ์ต์
์ ์๋ชป๋ ์ฌ์ฉ)
cascade, orphanRemoval์ ์ ์ดํดํ๊ธฐ์ํด ๋น์ทํ Entity ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด์ ํ์ต ํ
์คํธ๋ฅผ ์งํ.
ํ์ตํ
์คํธ๋ก ์ด๋ฅผ ์ฆ๋ช
ํ๋ ๊ณผ์ ์ผ๋ก ๋น ๋ฅด๊ฒ cascade, orphanRemoval์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ต๋.
์๋ชป ์ฌ์ฉ๋ ๊ณผ์
์ ์ ๋ ๋๊ธ๊ณผ OneToMany๊ด๊ณ. CascadeType.ALL, orphanRemoval = true ์ ์ฉ.
๋๊ธ์ ๋๋๊ธ๊ณผ OneToMany ๊ด๊ณ. CascadeType.ALL, orphanRemoval = true ์ ์ฉ.
- ๋๊ธ ์ญ์ -> ๋๊ธ์ด ํฌํจํ๋ ๋๋๊ธ์ Removed ์ํ ์ ํ
- ์ ์ ๊ฐ ๊ฐ์ง๋ ๋๋๊ธ์ด ์กด์ฌ -> flush()๊ฐ ์ผ์ด๋๋ฉด ๋๋๊ธ ์ํ๊ฐ Persist ์ํ๋ก ๋ณ๊ฒฝ
- ๋๋๊ธ์ด ์ญ์ ๋์ง ์์ -> ๋๋๊ธ์ด ๋๊ธ์ ์ธ๋ํค๋ฅผ ๊ฐ์ง๋ฏ๋ก ์ญ์ ๊ฐ ๋์ง์์
ํด๋น ์ด์์์๋ CascadeType.Remove๋ง์ ์ฌ์ฉํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
- ๊ด๋ จ Pull Request
๋ค๋ฅธ ์์
๋ก๊ทธ์ธ๋ ์ ์ฐํ๊ฒ ์ถ๊ฐํ๋ ์ค๊ณ๋ฅผ ๊ตฌํ. ์ด๋ฅผ ์ํด Layered Architecture ๊ตฌ์กฐ์ ์ถ์ํ๋ฅผ ์ ๊ทน ํ์ฉ.
๋ฆฌ์์ค ์๋ฒ์ ์ธ์ฆ๋ฐ๋ ๊ณผ์ ๊ณผ ๋ฆฌ์์ค๋ฅผ ๋ฐ๋ ๊ณผ์ ์ ์ธ๋ถ์ ์ํธ์์ฉ์ด๋ฏ๋ก infrastructure layer์ ๊ตฌํ์ฒด๋ฅผ ์์ฑ.
service layer๋ ์ ์ ํ ์์
๋ก๊ทธ์ธ ๊ตฌํ์ฒด๋ฅผ ์ ํ(๊ตฌํ์ฒด๋ค์ List ์์ ๋ชจ๋ ๋น์ ์ฃผ์
๋ฐ๋๋ก ๊ตฌํ). ๊ตฌํ์ฒด์ ๋ฉ์ธ์ง ์ ๋ฌ.
๊ตฌํ์ฒด ์ ํ์ ๊ฒฝ์ฐ ํด๋น ๊ตฌํ์ฒด๋ค์ ๋น์ผ๋ก ๋ฑ๋กํ๊ณ ์ ์ ํ ๊ตฌํ์ฒด๋ฅผ ๋ฐํํด์ฃผ๋ Providerํด๋์ค๋ฅผ ๋ง๋ค์ด์ SocialType๊ณผ Oauth๊ตฌํ์ฒด๋ฅผ ๋งคํํด์ฃผ๋ ๋ฐฉ์์ผ๋ก ํด๊ฒฐ.
- ๊ด๋ จ Pull Request
ํ ์ด ํ๋ก์ ํธ ๊ณต์ ๊ธ์ ๋ํ ์ด๋ฏธ์ง๋ก ๋์ ์ธ ์ด๋ฏธ์ง๋ฅผ ์ํ๋ ์ ์ ๋ฅผ ๋ง์กฑ์์ผ์ฃผ๊ธฐ ์ํด gif ํ์ผ๋ ์ ๋ก๋ ๊ฐ๋ฅํ๊ฒ ๊ตฌํ.
gif ํ์ผ ์ฉ๋์ด ์ปค์ ํ๋ฉด ์๋ต ์ฑ๋ฅ์ด ํ๋ฝ๋จ์ ํ์ธ(gif์ ๊ฒฝ์ฐ 30๋
์ด ๋์ ๊ธฐ์ ๋ก ์์ถ๋ฅ ์ด ๋ฎ์). ๋ณํํ ๋์ฒด ํ์ผ ํฌ๋งท์ ๊ฒ์.
WebP, Gif, WebM 3๊ฐ์ง ํฌ๋งท์ด ์๋๋ฐ ์์ถ๋ฅ ์ WebP < MP4 < WebM ์์ผ๋ก ๋์.
WebP, WebM ๊ฐ์ ๊ฒฝ์ฐ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ด์ ์ ์ธ, ์์ถ๋ฅ ๋ ์ ๋นํ๊ณ ๊ฑฐ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ๋ MP4 ์ฑํ.
๋์์ ๋ณํ ๊ตฌํ ๋ฐฉ์์ ์ธ๋ถ API์ ์์ฒญ์ ๋ณด๋ผ์ง, ๋ด๋ถ ํ๋ก๊ทธ๋จ์ ์ค์นํด์ ๋ณํํ ์ง ๊ณ ๋ฏผ.
ํ๋ก์ ํธ ๋ํ ์ด๋ฏธ์ง ์
๋ก๋๋ ํต์ฌ ๊ธฐ๋ฅ์ด๋ฏ๋ก, ์ธ๋ถ API ์์ฒญ ๋ฐฉ์์ ๊ฒฝ์ฐ ์ค๋ฅ ์์ธ์ด ์ธ๋ถ์ ์์ผ๋ฏ๋ก ์ปจํธ๋กค์ด ๋ถ๊ฐ๋ฅํ๋ค.
๋ฐ๋ผ์ ๋ด๋ถ ํ๋ก๊ทธ๋จ์ ์ค์น(FFmpeg ๋ฉํฐ๋ฏธ๋์ด ํ๋ ์์ํฌ)ํด์ ๋ณํํ๋ ๊ฒ์ผ๋ก ๊ตฌํ.
ํด๋น Convert ๊ธฐ๋ฅ์ผ๋ก 3.6MB gif ํ์ผ์ 0.07MB์ mp4 ํ์ผ๋ก ๋ณํ. ํ๊ท ์ ์ผ๋ก 50%~60% ์์ถ๋ฅ ์ ๋ณด์ฌ์ค.
- ๊ด๋ จ Pull Request
- ๊ธฐ๋ฅ ๊ตฌํ ๊ณผ์ ์ ๋ฆฌ ๊ธ
๋ฌธ์ ์ํฉ - gif -> mp4 ํ์ผ ๋ณํ ๊ตฌํ ํ ํ๊ฒฝ ์ค์ ์ ํ์๋ก ๊ฐ๋ฐ์์ ์ถ๊ฐ ํ๊ฒฝ์ค์ ๋ฐ์
- gif -> mp4 Convert ๊ธฐ๋ฅ ๊ตฌํ ํ ๋ชจ๋ local ํ๊ฒฝ์์ FFmpeg ํ๋ก๊ทธ๋จ์ ์ค์น ๊ฒฝ๋ก๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์ค์ ํ์ผ์ ๋ช ์ํด์ค์ผ ๋น๋/ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ๊ฐ๋ฅํฉ๋๋ค. FFmpeg๋ ์ค์น ๋ฐฉ๋ฒ, ์ด์์ฒด์ ์ ๋ฐ๋ผ ๊ฒฝ๋ก๊ฐ ์์ ํ ๋ฌ๋ผ์ง ์ ์์ด ๊ฐ๋ฐ์์๊ฒ ๋ถํธํจ์ ์ค๋๋ค. ์ถ๊ฐ๋ก FFmpeg ์ค์น๋ local ํ๊ฒฝ์ ํ์๋ก ํด์ผ ํ๋ค๋ ๋ถํธํจ๋ ์กด์ฌํ์ต๋๋ค.
[์ ๊ทผ ๋ฐฉ๋ฒ - 1]
- ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์๊ฐํ์ต๋๋ค.
FFmpeg๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ ์์กด์ฑ์ ํฌํจ์์ผ์ ์คํ์ํค๊ธฐ
FFmpeg์ ์ค์น ํด์ผํ์ง๋ง ์คํ ๊ฒฝ๋ก๋ฅผ ์ ํ๋ฆฌ์ผ์ด์ ๋ด๋ถ์์ ์๋์ผ๋ก ์ฐพ์ ์ ์๋๋ก ๊ตฌํ
์ ์๋ฅผ ์ฐ์ ์ํ์ฌ ์งํํ์ต๋๋ค. ffmpeg๋ผ๋ ํค์๋๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฒ์ํด๋ณธ ๊ฒฐ๊ณผ javacpp์ javacv-platform ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ ๋ด๋ถ์ ์ผ๋ก ffmpeg๋ฅผ ์ค์นํ๊ณ ์คํํ๋ ๊ตฌํ์ด ๊ฐ๋ฅํ์ต๋๋ค.
[ํด๊ฒฐ ๋ฐฉ๋ฒ -1]
javacv-platform์ ์ด์์ฒด์ ์ ๋ฐ๋ผ ์ ์ ํ FFmpeg ํ๋ก๊ทธ๋จ์ jar๋ฅผ ์ ๊ณตํฉ๋๋ค. javacpp๋ JNI ์ฝ๋๋ฅผ ์์ฑํ๊ณ C++ ์ปดํ์ผ๋ฌ์ ์ ๋ฌํ์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋น๋์ํต๋๋ค. ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
๋ด๋ถ์ ffmpeg๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌํํ์ต๋๋ค.
์๋ํ๋๋ก ๋์ํ๋๋ก ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ฒ๋ ์ค์ํ์ง๋ง ๊ทธ๋ก์ธํด ๋๋ฃ ๊ฐ๋ฐ์์๊ฒ ๋ถํธํจ์ ์ฃผ๋ ๋ถ๋ถ์ ์๋์ง ์ฒดํฌํด๋ด์ผ ํ๋ค๊ณ ๋๊ผ์ต๋๋ค..
์ด๋ค ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ ์ถ๊ฐ ๋์์ ์ต์ํํ๊ณ ์๋ํ ํ ์ ์๋ ๋ถ๋ถ์ ์ต๋ํ ์ฐพ์๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํฉ๋๋ค.
ํน์ gif ์ด๋ฏธ์ง๋ฅผ ์ธ๋ค์ผ๋ก ํ ์ดํ๋ก์ ํธ ๊ฒ์๊ธ ์ ๋ก๋๋ฅผ ์๋ํ๋ฉด ์ ๋ก๋๊ฐ ์คํจํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
[์ ๊ทผ ๋ฐฉ๋ฒ - 2]
์ ํ๋ฆฌ์ผ์ด์
๋ก๊ทธ๋ฅผ ํ์ธํ๋ย ArrayIndexOutOfBoundsException: 4096
ย ์์ธ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์์ธ๊ฐ ๋ฐ์ํ ํด๋์ค๋ GifImageReader ํด๋์ค ์
๋๋ค. ๋ก๊ทธ์ ์์ธ ๋ฉ์ธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฌ ์ถ์ ๊ฒฐ๊ณผ ํด๋น gifํ์ผ์ ์์ถ๋ฅ ์ด ๋์๋ฐย java์์ gif ๋์ฝ๋ฉ ํ์ค์ ์๋ฐํด์ ์๊ธฐ๋ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ์์์ต๋๋ค. gif ๋์ฝ๋ฉ ๋ช
์ธ๋ 4096 ์ฌ์ด์ฆ ์ด์์ ๋ฌธ์์ด๋ ๊ฐ์ง ์ ์๋๋ก ํด์ผํ๋๋ฐ java์ GifImageReader๋ 4096 ์ฌ์ด์ฆ๋ฅผ ์ด๊ณผํ๋ ์์ถํ์ผ์ ๋์ฝ๋ฉ์ด ๋ถ๊ฐ๋ฅ ํ์ต๋๋ค.
[ํด๊ฒฐ ๋ฐฉ๋ฒ - 2]
ํด๊ฒฐํ๊ธฐ ์ํด ์ง์ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ๊ฒ์ ์์ ์ด๋ฏธ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ ํจํค์ง๊ฐ ์๋์ง ์ฐพ์๋ดค๊ณ ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ GifDecoder ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์กด์ฑ์ ์ถ๊ฐํด์ ํด๊ฒฐํ์ต๋๋ค.
java๋ ๋ถ์์ ํ ๋ถ๋ถ์ด ์์์ ๋๊ผ์ต๋๋ค. ๋ํ ์ด๋ฏธ์ง, ์์ ๋ฑ์ ๋ฏธ๋์ด์๋ ์ ๊ฒฝ ์จ์ผ ํ๋ ๋ถ๋ถ์ด ๋ง๊ณ ๊ด๋ จ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋๋ ๊ผผ๊ผผํ๊ฒ ์๊ฐํด์ผ ์์ธ๋ฅผ ์ต์ํํ ์ ์๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
-
ํ์ฌ๋ ๋๊ธ์ญ์ ์ ๋๋๊ธ๊น์ง ๋ชจ๋ ๋ฌผ๋ฆฌ์ ์ญ์ ๋ฅผ ์งํํฉ๋๋ค. ํ์ง๋ง ๋ค๋ฅธ์ฌ๋์ ์ญ์ ์ ์ํด์ ๋์ ๋๋๊ธ์ด ์ง์์ง๋๊ฑด ์ฌ์ฉ์์๊ฒ ์์ฌ์ด ๊ฒฝํ์ ์ค๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ๋๊ธ ์ญ์ ๊ธฐ๋ฅ์ ๋ ผ๋ฆฌ ์ญ์ ๋ฅผ ๊ตฌํํด์ ๋๊ธ์ด ์ญ์ ๋๋๋ผ๋ ๋๋๊ธ์ ๊ณ์ ๋ณผ ์ ์๋๋ก ๊ตฌํํ๊ณ ์ถ์ต๋๋ค. ํ ์ดํ๋ก์ ํธ ํผ๋ ์ญ์ ๋ ๋ง์ฐฌ๊ฐ์ง๋ก์! ๋๊ตฐ๊ฐ์๊ฒ ํผ๋์ ๋ฌ์๋ ํผ๋๋ฐฑ ๋๊ธ์ด ํฐ ๋ฟ๋ฏํจ์ผ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
-
ํ ์ดํ๋ก์ ํธ ๊ฒ์๊ธ์ ์ฌ๋ฆฌ๋ ๋ชฉ์ ์๋ ์๋์ด๋ ๊ณต์ ๊ฐ ์๊ฒ ์ง๋ง ํผ๋๋ฐฑ์ ๋ชฉ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ์ฌ์ฉ์๋ ์์ต๋๋ค. ํผ๋๋ฐฑ ๋๊ธ์ ํ์ฑํ์ํค๋ฉด ํ๋ก์ ํธ ๊ฐ๋ฐ์์ ์ฑ์ฅ์ ๋ง์ ๋์์ ์ค ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ ์ดํ๋ก์ ํธ ๊ฒ์๊ธ์ ํผ๋๋ฐฑ์ ์ค ์ ์๋ ๋๊ธํ์ ์ผ๋ก '๋์์ค๊ฒ์'๊ฐ ์์ต๋๋ค. ๋์์ค๊ฒ์ ๋๊ธ ํ์ ์ ๋ง์ด ๋จ๊ธฐ๋ ์ฌ๋์๊ฒ ๋๊ธ ์ข์์ ๊ฐ์ ์๋จ์ผ๋ก ์ ์๋ฅผ ๋ถ์ฌํด์ ์ฌ์ฉ์์๊ฒ ๋ฑ๊ธ์ ๋ถ์ฌํ๋ ๊ธฐ๋ฅ์ ๋ง๋ค๊ณ ์ถ์ต๋๋ค. ํด๋น ๊ธฐ๋ฅ์ ํตํด ์ฑ์ทจ๊ฐ์ ์ฌ๋ ค์ ํผ๋๋ฐฑ ๋๊ธ์ ํ์ฑํ์ํค๊ณ ์ด๋ ๊ฐ๋ฐ์์ ์ฑ์ฅ์ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐํฉ๋๋ค!!
(๋ค์ด๋ฒ ์ง์์ธ์ ํ์์ ๊ฐ์ ๋ฑ๊ธ์ ๋ ์ฌ๋ฆด ์ ์์ต๋๋ค) -
ํ๋ก์ ํธ ํ์ ๋ชจ์ง. ์ด ๊ธฐ๋ฅ์ ๋ฐ๋ชจ๋ฐ์ด์ ๋ฐ์ ํผ๋๋ฐฑ์ธ๋ฐ ํ ์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ณ ์ถ์๋ฐ ํผ์ ๋ง๋ค๊ธฐ๋ ์๊ฐ๋ ๋ถ์กฑํ๊ณ ๊ธฐ์ ์ ์์๋ ํ์ ์ ์ผ ์ ์์ต๋๋ค. ๋ํ ์์ ํ ์ดํ๋ก์ ํธ ๋๋ฆผํ์ ๋ชจ์งํ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ฃผ๊ณ ์ถ์ต๋๋ค. ์ด๋ฐ ํ์ ๋ชจ์ง์ ํตํด ๋ง๋ค์ด์ง ํ ์ดํ๋ก์ ํธ๊ฐ ์์ฑ๋์ด ๋ํ ์ ์ฌ๋ ค์ง๋ฉด ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ถ๋ค์๊ฒ ์ข์ ์ธ์ฌ์ดํธ๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ํ ํ ์ดํ๋ก์ ํธ๋ฅผ ๋ ํ์ฑํํด์ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ์ข์ ์๋น์ค๊ฐ ํ์ํ ์ ๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค :)
-
ํ๋ก์ ํธ ์งํ ์ ์ค์ 10์ ~ ์คํ11์๊น์ง ๊ฐ๋ฐ์ด ์ด์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. 2๊ฐ์์ด ํ๋ ์๋ ํ์์๋ฆฌ์์ ๊ฐ์ ํ๊ณ ๋ฅผ ์งํํ๋๋ฐ ํ์ ํ๋ช ์ด ์์ ์๊ฐ์ด ๋๋ฌด ๋ง์ ํ๋ค๋ค๊ณ ์์งํ๊ฒ ๋งํด์คฌ์ต๋๋ค.
2๊ฐ์์ ์๊ฐ๋์ ์ฐธ๊ณ ์์์ ํ์์๊ฒ ๋๋ฌด ๋ฏธ์ํ ๊ฐ์ ์ด ๋ค์๊ณ , ์ดํ์๋ ๋งค์ฃผ ๊ธ์์ผ ๊ฐ์ ํ๊ณ ๋ฅผ ์งํํ๋ฉฐ ๋ถํธํ์ ์ ์์งํ๊ฒ ํธ์ด๋๊ธฐ๋ก ํ์ต๋๋ค. ๊ฐ์ ํ๊ณ ๋ฅผ ํ๋ก์ ํธ ์ด๊ธฐ์ ๋์ ํ๋ค๋ฉด ์ด๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ ์์๊ณ ํด๊ฒฐํ ์ ์์์ํ ๋ฐ ์์ฌ์ด ์๊ฐ์ด ๋ค์์ต๋๋ค. ๊ฐ์ ํ๊ณ ๋ฟ๋ง ์๋๋ผ ํจ๊ปํ๋ ๋๋ฃ์ ๊ฐ์ ์ ๋ฏธ๋ฆฌ ์ฑ๊ธฐ์ง ๋ชปํ ์๋ชป๋ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ๋ค์๊ฐ ์ข์ํ๋ ํ๊ฒฝ๋ ์ข์ง๋ง ์์๋ฅผ ์ํ ํ๊ฒฝ ๋ํ ๋ฐฐ๋ คํด์ฃผ๋๊ฒ๋ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
๋ถ๋ด์์ด ์๋ํ๋ ์๊ณ ์์คํ ๋ด ํ ์ดํ๋ก์ ํธ
์ํฐ ํ๋ก์ ํธ๋ผ๋ ๋๊ตฌ๋ ๋ฟ๋ฏํ๊ฒ ์๋ํ๊ณ ๊ณต์ ํ๋ ๊ณต๊ฐ,
์๋ง์ฐ | ์กฐ์ | ํฌ๋ชจ | ๋ฏธํค | ์ง๊ทธ | ์ฐฐ๋ฆฌ |
---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |