-
์ฌ์ฉ ์คํ : Spring Web, JPA, Spring AOP, JUnit4, H2 / MySQL, Thymeleaf, Bootstrap, HTML, CSS, Javascript, JQuery, Ajax
-
๊ฐ๋ฐ ๊ธฐ๊ฐ : 2021๋ 8์ 11์ผ ~ 8์ 18์ผ
-
์์ฐ ์์ : https://youtu.be/HTz62mclqMQ
-
ํ๋ก์ ํธ ๋ด์ฉ ์์ฝ
- ๊ธ์ต ์ดํ TOSS์ ๊ฐ์ด, ๊ณ์ข๋ฅผ ๋ฑ๋กํ๊ณ ํธ๋ฆฌํ๊ฒ ์ก๊ธ์ ํ ์ ์๋ ์๋น์ค๋ฅผ ์น ์ฌ์ดํธ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์์ต๋๋ค. ๋จ ์ค์ ์ก๊ธ์ ์๋๊ณ , ๊ฐ์์ ํํ๋ก ์๋ฎฌ๋ ์ด์ ์ ๋๋ฆฝ๋๋ค.
- ์ค๋ฌด์ ์ธ ์ฑ๊ฒฉ์ DB ์ค๊ณ๋ณด๋ค๋, ์ฐ์ต์ ์ธ ์ฑ๊ฒฉ์ DB ์ค๊ณ๋ฅผ ํ์์ต๋๋ค.
- ๋ก๊ทธ์ธ๋ ์ํ์์๋ง ์ด์ฉํ ์ ์๋ ์๋น์ค๋ค์ ๋ํด์๋, ๋ชจ๋ ๋ฉ์๋๊ฐ ํธ์ถ๋ ๋๋ง๋ค ์ธ์ ์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๋งค๋ฒ ํ์ธํ๊ธฐ ์ํด AOP๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
- Service(๋น์ฆ๋์ค ๋ก์ง) ๊ณ์ธต๊ณผ Repository(DAO) ๊ณ์ธต์ ๋ํ ํ ์คํธ ์ฝ๋ 14๊ฐ๋ฅผ ์์ฑํ์์ต๋๋ค.
- ๋ฐ์ ๊ฐ๋ฅํ ์์ธ ์ํฉ์ ๋ํ์ฌ customized exception ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ์ต๋๋ค.
-
์ ์ ๋ฌธ์
-
์ด๋ ค์ ๋ ์ / ๊นจ๋ฌ์ ์
- Persistence Context(์์์ฑ ์ปจํ ์คํธ)์ ๋์ ์๋ฆฌ๋ฅผ ์๊ฐํ๋ฉฐ ์ฝ๋ฉํด์ผ ํ์ต๋๋ค.
- EntityManager.persist()๋ฅผ ํตํ ๋ช ์์ ์ธ ์์ํ ๋ฐฉ๋ฒ๊ณผ Dirty Checking(๋ณ๊ฒฝ ๊ฐ์ง)๋ฅผ ํตํ ์์ํ ๋ฐฉ๋ฒ์ ๋ ๋ค ์ฌ์ฉํด๋ณด๋ฉด์, ํท๊ฐ๋ฆฌ๋ ์ ๋ค์ด ๋ง์์ต๋๋ค.
- EntityManager.merge()๋ ํํ์ Updateํ ๋ ์ฌ์ฉํ๊ธฐ์ ์ ํฉํ๋ค๋ ๊ฑธ ์์์ต๋๋ค.
- Entity ํด๋์ค์ @OneToMany ๋ฑ์ ์ด๋ ธํ ์ด์ ์ผ๋ก Entity ๊ฐ ์ฐ๊ด ๊ด๊ณ๋ฅผ ์ค์ ํ๋ ๊ฒ์ด ํท๊ฐ๋ ธ์ต๋๋ค. Foreign Key๋ฅผ ๊ด๋ฆฌํ๋ ํด๋์ค๊ฐ ์ด๋ ์ชฝ์ธ์ง ๊ธฐ์ตํ๋ ๊ฒ์ด ํ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
- ์์์ฑ ์ ์ด(Cascade) ์ ์ฉ ์ฌ๋ถ์ ๋ฐ๋ผ ์ด๋ค ์ฐจ์ด๊ฐ ๋ฐ์ํ๋์ง ๊ฒฝํํ ์ ์์์ต๋๋ค.
- ๋น์ฆ๋์ค ๋ก์ง์ '์ํฐํฐ ํด๋์ค ๋ด๋ถ'์ ๋ฃ๋๋ '์๋น์ค ๊ณ์ธต ํด๋์ค ๋ด๋ถ'์ ๋ฃ๋๋์ ๋ฐ๋ผ 'ํธ๋์ญ์ ์คํฌ๋ฆฝํธ(Transaction Script) ํจํด'๊ณผ '๋๋ฉ์ธ ๋ชจ๋ธ(Domain Model) ํจํด'์ผ๋ก ๋๋๋ค๋ ๊ฑธ ์๊ฒ ๋์ต๋๋ค.
- JPA๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ ๋ฉ์๋๋ฅผ ํตํ ์ฟผ๋ฆฌ๊ฐ ์๋ ์ข ๋ ๋ณต์กํ ์ฟผ๋ฆฌ๋ ์ฑ๋ฅ ์ต์ ํ๊ฐ ํ์ํ ์ฟผ๋ฆฌ๋, JPQL์ ์ฌ์ฉํด์ผ ํ๋ค๋ ๊ฑธ ์๊ฒ ๋์ต๋๋ค.
- ๊ณ ๋ฏผํ๋ ํ์ : https://www.inflearn.com/chats/283136
- @Transactional์ด ์๋ ๋ฉ์๋๊ฐ @Transactional์ด ๋ฌ๋ฆฐ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๊ฒฝ์ฐ, ๋ ๋ฉ์๋๊ฐ ๊ฐ์ ํด๋์ค ๋ด์ ์์ผ๋ฉด ํธ๋์ญ์ ์ด ์ ์ฉ๋์ง ์๊ณ , ๋ ๋ฉ์๋๊ฐ ๊ฐ๊ฐ ๋ค๋ฅธ ํด๋์ค์ ์์ด์ผ ํธ๋์ญ์ ์ด ์ ์์ ์ผ๋ก ์ํ๋๋ค๋ ๊ฑธ ์๊ฒ ๋์ต๋๋ค.
-
๋๋ ์
- ์คํ๋ง ๊ฐ๋ฐ์ ์ฒ์์ด๋ผ, ์ด๋ค ์ฝ๋๊ฐ ์์ ์ฑ๊ณผ ์ฑ๋ฅ์ด ์ข์ ์ฝ๋์ธ์ง ๊ฐ์ด ์ ์์ต๋๋ค. ํ์ผ์ฑ ์๋ ํด๋ฆฐ ์ฝ๋๋ ๋ชป ๋ง๋ ๊ฒ ๊ฐ์ต๋๋ค.
- ๊ฐ๋ฐ ์ด๊ธฐ์ ์ค๋ฐ๋ถ์๋ ๊ณ์์ ์ผ๋ก ์ง๊ธ๊น์ง ์์ฑํ ๊ฐ์ฒด๋ค์ ๋ํ ๋จ์ ํ ์คํธ ์ฝ๋๋ฅผ ํตํด ์ค๋ฅ ์์ด ์ฝ๋ฉํ๊ณ ์๋์ง ๊ฒ์ฆํ๋๊น, ์์ฌ๋ ๋๊ณ , ๊ฐ๋ฐ ํ๋ฐ๋ถ์ ์ฝ๋๋ฅผ ๊ฐ์ ์์ ์ผ๋ ์์ด์ง๋ฉฐ, ๋๋ฒ๊น ์ ๋ถ๋ด๋ ์ค์ด๋ ๋ค๋ ๊ฒ์ ๋๊ผ์ต๋๋ค.
- ์คํ๋ง์ด ์ํฐํ๋ผ์ด์ฆ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ์ ์์ด์ ํ์ํ ์ฌ๋ฌ ๊ฐ์ง ๋๊ตฌ๋ค๊ณผ ๊ธฐ์ ๋ค์ ์ง์ํ๊ณ ์๋ค๋ ๊ฒ์ ๋๊ผ๊ณ , ์์ผ๋ก ๋์ฑ ๊น์ด ๊ณต๋ถํด๋ณด๊ณ ์ถ์ด์ก์ต๋๋ค.
-
์ฐธ๊ณ ํ ์๋ฃ
- ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ (๊น์ํ ์ )
-
Notifications
You must be signed in to change notification settings - Fork 0
JasonYoo1995/spring-sample-project
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
ย | ย | |||
Repository files navigation
About
remittance service with spring web mvc and jpa
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published