๋ณดํธ๋์ด ์๋ ๊ธ์
๋๋ค.
๐ Backend
๋จ๊ณ๋ณ๋ก ์ฑ์ฅํ์!1. ๋ฉ์๋ ์ด๋ฆ์์ ์ง์๋๋ ํค์๋ ๊ณต์ ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํด๋ณด์๋ค. public interface MemberRepository extends JpaRepository { List findByGenderAndAgeGreaterThan(String gender, int age); } ์์ ๊ฐ์ด Member ๊ฐ์ฒด์ gender state๊ฐ ์
๋ ฅ๋ gender์ ๊ฐ๊ณ age ์ํ๊ฐ ์
๋ ฅ๋ age๋ณด๋ค ํฐ Member๋ฅผ ์ฐพ๋ ์ฟผ๋ฆฌ ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์๋ค. Method Name์ ๋ง์ฝ ์ํฐํฐ์ ๋ณ์ Name์ด ๋ฐ๋๋ฉด ๊ฐ์ด ๋ณ๊ฒฝํด์ผ ํ๋ค! (์ํ๋ฉด ์๋ฌ๋จ) 2. ์ฟผ๋ฆฌ ๋ฉ์๋ ๊ธฐ๋ฅ ์นด์ดํ
(COUNT): count~By ๋ฐํํ์
์ long ํ์
์กด์ฌ์ฌ๋ถ(EXISTS): exists~By ๋ฐํํ์
์ boolean ํ..
1. EntityManagerFactory์ EntityManager๋ฅผ ๋จผ์ ์์๋ณด์ EntityManager๋ ์ฌ์ฉ์์ ์์ฒญ์ ๋ํ์ฌ ์ปค๋ฅ์
ํ์์ ์ปค๋ฅ์
์ ์ป๊ณ DB์ ์ ๊ทผํ๋ ์ญํ ์ ํ๋ค. EntityManagerFactory๋ ๋ง ๊ทธ๋๋ก ์ฌ์ฉ์์ ์์ฒญ๋ง๋ค EntityManger๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ณต์ฅ์ด๋ค. 2. ์์์ฑ ์ปจํ
์คํธ๊ฐ ๋ญ๊น ๊ทธ๋์ ๊ฐ๋จํ๊ฒ ์ํฐํฐ์ Life Cycle์ ๊ด๋ฆฌํ๋ ์ ์ฅ์์ด๋ค. EntityManager๊ฐ ์์ฑ๋ ๋ PersistenceContext๊ฐ ๊ฐ์ด ์๋์ผ๋ก ์์ฑ๋๋ค. 3. Entity Life Cycle ๋น์์(new/transient): ์์์ฑ ์ปจํ
์คํธ์ ๊ด๊ณ์๋ ์๋ก์ด ์ํ ์์(managed): ์์์ฑ ์ปจํ
์คํธ์ ์ํด ๊ด๋ฆฌ๋๊ณ ์๋ ์ํ ์ค์์(detached): ์..
์ด๋ฒ์ ์งํํ๊ณ ์๋ ํ๋ก์ ํธ์์ ํ์ผ์ ์
๋ก๋ํ๋ ๊ธฐ๋ฅ์ด ํ์ํด์ ๊ณต๋ถํ๊ฒ ๋์๋ค. 1. ๋ ๊ฐ์ง ์ ์ก ๋ฐฉ์ HTML Form์ ๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์์ ํฌ๊ฒ 1. x-www-form-urlencoded Http Body์ bookname=jpabook&quantity=31 ์ ๊ฐ์ด key-valueํ์์ &๋ก ์ฐ๊ฒฐ์ง์ด ๋ฌธ์๋ฅผ ์ ์กํ๋ค. 2. multipart/form-data ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ์ ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋์์ ์ ์กํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค. multipart/form-data์ ๋ํด์ ๋ ์์๋ณด์. 2. multipart/form-data ํผ ๋ฐ์ดํฐ๊ฐ ์๋ฒ๋ก submit ๋ ๋ ์ธ์ฝ๋ฉ ๋๋ ๋ฐฉ์์ ์ง์ ํ๋ enctype(encryptiontype)์ ํด๋น ๋ฐฉ์์ผ๋ก ์ค์ ํ๋ค. ๊ทธ๋ ๊ฒ ์๋์ ๊ฐ์ ํ์์ผ๋ก H..
1. ๊ธฐ๋ณธ ํค ํ ๋น ๋ฐฉ๋ฒ (1) ์ง์ ํ ๋น์ ๊ฒฝ์ฐ @Id private Long id; (2) ์๋ ์์ฑ ํ ๋น์ ๊ฒฝ์ฐ @Id @GeneratedValue(strategy = GenerationType.IDENTITY OR AUTO OR SEQUNCE OR TABLE) private Long id; 2. ์๋ ์์ฑ ํ ๋น ์ ๋ต (1) IDENTITY PK ์์ฑ์ DB์ ์์ํ๋ค. DB๊ฐ ์์์ AUTO INCREMENT๋ก ๊ด๋ฆฌํด์ค๋ค. entityManger.persist()๊ฐ ์คํ๋๋ ์์ ์ ์ฆ์ INSERT ์ฟผ๋ฆฌ๊ฐ ์คํ๋์ด DB์ ๋ฐ์๋๊ณ DB์์ PK๋ฅผ ์์ฑํด์ ์๋ ํ ๋นํ๋ฉฐ ์์์ฑ ์ปจํ
์คํธ์ 1์ฐจ ์บ์์ ๊ฐ์ ์ ์ฅํ๋ค. ์ด๊ฑธ ์๋ฉด ๊ฐ์ ํธ๋์ญ์
๋ด์์๋ persist()์ดํ์๋ SELECT ์ฟผ๋ฆฌ๋ก ID..
Spring MVC์ ๋ํด์ ๊ณต๋ถํ๋ ์ค DispatcherServlet์์ Handler๋ฅผ ๋งคํํ๋๊ฑด ์๊ฒ ๋๋ฐ ์ธ์ url๊น์ง ๋งคํํด์ ํด๋น method๋ฅผ ์คํํ๋๊ฑฐ์ง? ๋ผ๊ณ ๊ถ๊ธ์ฆ์ด ๋ค์ด์ ์์๋ณด๊ฒ ๋์์ต๋๋ค! ์์ ๊ณผ์ ์ ์ดํดํ๋ ค๋ฉด ๋จผ์ FrontController์ ์ญํ ์ ํ๋ ๋จผ์ DispatcherServlet์ doDispatch()๋ฅผ ๋ณด๊ฒ ์ต๋๋ค. (1) DispatcherServlet์ doDispatch() ์์ ํ๋์ค์ ๋ณด๋ฉด getHandler() ๋ฅผ ํตํด request์ ๋ง๋ handler๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ ๊ฐ์๋ฐ ํ๋ฒ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค. (2) DispatcherServlet์ getHandler() ์ฐ์ HandlerExecutionChain์ returnํ๋ฉฐ HandlerMapping..