Spring Data JPA์์ Id์ @GeneratedValue ์ด์ @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; ์์ ์ฝ๋๋ก ์ต์ํ Entity์์ Id ๋ถ๋ถ, ์ฐ๋ฆฌ๋ GenerationType.AUTO๊ฐ DB ๋ฒค๋์ ์๋ง์ ์ ๋ต์ ์ ํํด์ฃผ๊ธฐ ๋๋ฌธ์ DB ์ข ์์ฑ์ด ์ฝํด์ ธ GenerationType.Identity(MySQL์ auto increment ์ญํ )๋ณด๋ค ์ ์ ํ๋ค๊ณ ์๊ณ ์์๋ค. ๊ทธ๋ฌ๋ค ๋ฆฌํฉํ ๋ง์ ์งํํ๋ฉฐ, GenerationType.Identity ์ผ๋ ์ ์๋ํ๋๊ฒ GenerationType.AUTO๋ก ๋ฐ๊พธ๋ ์๋ฌ๊ฐ ๋๊ธฐ ์์ํ๋ค. ๊ฒ์ํด๋ณด๋ ์ค๋๋ jojoldu๋์๊ฒ ๋์์ ๋ฐ์์์์๋ค. https://jojo..
์ํฉ 19.12.10 ์ฐํ ์ฝ ๋ ๋ฒจ4 eat-together ํ๋ก์ ํธ์ Article/Shop/Menu ๊ด๋ จ ๊ตฌํ ์ค ๋ฐ์ํ ์ด์ Shop์ @OneToMany๋ก List๋ฅผ ๊ฐ๊ณ ์๋ค. Menu๋ ์๋ฐฉํฅ์ผ๋ก @ManyToOne Shop์ ๊ฐ๊ณ ์๋ค. ๊ฐ๊ฒ ์กฐํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๊ณผ์ ์์, ํ ์คํธ์์ Shop์ ๋ฆฌํดํ๋ List๋๋ฌธ์ ํฐ์ก๋ค. ๋ฐ์ํ LazyInitializationException ์์ธ๋ฅผ ๊ฒ์ํด๋ณด๋ ๊ด๋ จ ๋ ผ์๊ฐ ๋ง์๋ค. ์ฐธ๊ณ ์๋ฃ ํน๋ฝ๋๋ ๊ธ , ๋์ค์ ์ ๋ ํด๋ณด๊ณ OSIV์ ๋ํด ๊ณ ๋ฏผํด๋ณด์ feco.tistory.com - 3๊ฐ์ง ํด๊ฒฐ๋ฐฉ์ ์ ์ bebong.tistory.com ๋ฌธ์ ํด๊ฒฐ application.properties์ #spring.jpa.open-in-view=false๋ก ์ค์ ๋์์..
12.10) ์ค๋ ํ๋ฃจ๋์ eat-together ๊ฒ์๊ธ ๊ด๋ จ ๊ธฐ๋ฅ ๊ตฌํํ๋ฉฐ ๊ฒฝํํ ๊ฒ๋ค with ํฐ๋ฒ ATDD ํ๋ก์ธ์ค์ ๋ํด ๋ฌธ์ ์ธ์ ATDD๋ฅผ ํ๊ณ ์ถ์ด์ ๊ฐ์ฅ ํฐ ๋๋ฉ์ธ ๋ชจ๋ธ์ธ Article์ ์ก๊ณ ์์. ์ธ์ํ ์คํธ๋ฅผ ํต๊ณผ์ํค๊ธฐ ์ํด ์ ์ผ ๋จผ์ ํ ์คํธ๋ฅผ ์ง๊ณ ๊นกํต Controller๋ฅผ ๋ง๋ค์๋ค. ์ฌ๊ธฐ๊น์ง ๊ด์ฐฎ์๋ฐ, Shop, Order, Menu, Item ๋ฑ ๊ด๋ จ๋ ๋๋ฉ์ธ ๋ชจ๋ธ๋ค์ ๊ฐ์๊ธฐ ํ๋ฒ์ ๋ง๋๋ ค๋ ๊ผฌ์ด๊ธฐ ์์ํ๋ค. ์ฌ๊ธฐ์ ๊ธฐ์์ ๋ฌธ์ ๊ฐ ๋ง์ด ๋ฐ์ํ๋๋ฐ, ํนํ ๊ด๊ณ๋งคํ ๊ด๋ จํด์ ๋์ฑ ํ๋ค์๋ค. ๊ฒ๋ค๊ฐ ๊ฐ ๋ชจ๋ธ๋ค์ ๊ฐ์ฒด์งํฅ์ ์ผ๋ก ๋ง๋ค๊ณ ์๋ค๋ ๋๋์ ์๋ค์๊ณ , Article์ ํ์ํ๋๋ก ๊ธํ๊ฒ ๋ผ์๋ฃ์ผ๋ ค ๋ง๋๋ ๋๋์ด ๋ค์๋ค. ๋ฐฉํฅ์ ๋ฐ๊ฟ๋ณด๊ธฐ๋ก ํ๋ค. Article์ ์ก์์ผ๋ฉด ๊นกํต์ ๋ง๋ค๊ณ ์ด์ ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cwxEUI/btqAjWuYcu9/B939pJNXaPzOj1wCox3Hu1/img.png)
๊ฐ๋ฐ์๋ผ๋ฉด ์ผ๋ฐ์ธ์๊ฒ ๋ค์ด๋ฒ๋งํผ์ด๋ ํ์ Github์ ์์ฃผ ๋ค์ด๊ฐ๋ค. ๋ชจ๋ฅธ๋ค๊ณ ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์์ง๋ง, ๋ช ๊ฐ์ง ํ์ ์๋ฉด Github์ ํจ-์ฌ! ํธํ๊ฒ ์ด์ฉํ ์ ์๋ค. (๊ฐ์ธ์ ์ผ๋ก ์ฅํ ํธ๋ฆฌ๋ฅผ ์ฒ์ ์๊ฒ๋ฌ์๋, ๊ทธ๋์์ ๋ด ์์ ์๊ฒ ๋ฌด์ฒ ๋ฏธ์ํด์ก๋ค :p) Octotree Chrome ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น Github ํ์ ํ์ฅ ์ ํธ, IDE์ฒ๋ผ ํธ๋ฆฌ ํํ๋ก ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค๋ค. ์ค์นํ๋ฉด ์์ฐ์ฑ์ด ๋ฌ๋ผ์ง๋ ๊ฒ์ ๋๋ ์ ์๋ค. Isometric Contributions Chrome ํ์ฅ ํ๋ก๊ทธ๋จ ์ค์น Github ์๋๋ฐญ์ ์ ์ฒด ํํ๋ก ์ด์๊ฒ ๋ณด์ฌ์ค๋ค. ๋ท๋ถ๋ถ์ด ์กฐ๊ธ ๊ฐ๋ ค์ง๊ธด ํ๋๋ฐ ์๋ ํํ๋ก ๋์ค๋๋ก ์ ํํ ์ ๋ ์๋ค. ๋ฌด์๋ณด๋ค, ์ด์๋๊น..!! Git History https://github...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bzNgHP/btrkj8TbesT/Dbbuu1sww2heMxQIiXDHy1/img.png)
๋์ ์ฒซ ๊ฐ๋ฐ์ ์ด๋ ฅ์ ์์ฑ ๋ฐฐ๊ฒฝ ๋๋ 19๋ ๊ฐ์, ํ์์ ํ์์ผ๋ก ์ด์์ค๋ ๋๋ ๋๋์ด '๊ตฌ์งํ๋'์ด๋ ๊ฒ์ ์ฌ์ฌ ์์ํ๊ฒ ๋์๋ค. Word๋ฅผ ์ด์ฉํด ํ๋ก ์ด๋ค์ง ์ ํต์ ์ธ ์ด๋ ฅ์ ํ ํ๋ฆฟ๋ณด๋จ, ์์ ์ ๋ณด์๋ ๊ฐ๋ฐ์์ค๋ฌ์ด ์ด๋ ฅ์๋ฅผ ๋ง๋ค๊ธฐ๋ก ๋ง์๋จน์๋ค. ์ ๋ถํฐ ๋ถ๋งํฌ ํด์จ ๋งํฌ๋ค์ ๋ค์ ๋ค์ง๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์ ๋ถ๋ค์ ์ด๋ ฅ์๋ฅผ ์ฐธ๊ณ ํ๋ฉฐ ๋๋ ๋๋ง์ ์ด๋ ฅ์๋ฅผ ์์ฑํด๋๋ค. ์ฐธ๊ณ ๋ก ๋๋ถ๋ถ์ ๋งํฌ๋ค์ ์ฃผ๋์ด๋ค์ ์ฑ์ง์ธ junior-recruit-scheduler์ ํฌํจ๋์ด ์๋ค. ์ด ๊ธ์ ๋ ธ์ ์ ํ์ฉํ ๋ด ๊ฐ๋ฐ์ ์ด๋ ฅ์ ํ ํ๋ฆฟ ์์์ ์ฒซ ์ด๋ ฅ์ ์์ฑ ํ๊ธฐ ์ ๋์ ๋ด์ฉ์ ํฌํจํ๋ค. '์ข์ ์ด๋ ฅ์๋ ๋ฌด์์ธ๊ฐ์ ์ด๋ค ๋ด์ฉ์ ํฌํจํด์ผํ๋์ง'์ ๋ํ ๋ด์ฉ์ ๊ธ์ด ๊ธธ์ด์ง๊ฒ๊ฐ์ ์ผ๋ถ๋ฌ ์๋ตํ๋ค. ์ด๋ฐ ๋ด์ฉ์ ์ํ๋ค๋ฉด, ์๋์ ์ธ..
์์ ์ ๋ฏธ์ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์ธ์งํด ์ ๋ฆฌํ๋ ๋ด์ฉ์ ํฌ์คํ Collection.stream().forEach() vs Collection.forEach() ์์ Collection.forEach๋ ์ปฌ๋ ์ ์ iterator๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ์์๊ฐ ๋ช ํํ๋ค. ๋ฐ๋ฉด Stream.forEach๋ ์์๊ฐ ๋ช ํํ์ง ์๋ค. ์์ฐจ์คํธ๋ฆผ์ด๋ผ๋ฉด ๋ณดํต ์์๋๋ก ์คํ๋์ง๋ง ๋ณ๋ ฌ์คํธ๋ฆผ์ด๋ผ๋ฉด ์์๊ฐ ๋ณด์ฅ๋์ง ์๋๋ค. Collection ์์ ๊ณผ Side Effect Collection.forEach๋ iter๋์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ณ๊ฒฝ๋์ด์ ์๋๋ค. ์ํํ๋ ๋์ ์์๊ฐ ์ถ๊ฐ/์ญ์ ๋๋ฉด ConcurrentModification Execption์ด ๋ฐ์ํ๋ค. ๋์์ ์ปฌ๋ ์ ์ fail-fastํ๊ฒ ์ค๊ณ๋์๋ค. ์ฆ ๋ณ๊ฒฝ์ด ๋ฐ์ํ๋ฉด ๋ฐ๋ก ์์ธ๊ฐ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b0C12p/btqzOxKceGy/HjfZUuNVPmlWaT0yVZqes1/img.png)
Lv3 - 7~9์ฃผ์ฐจ ๋ฏธ์ : DI ๊ตฌํ https://github.com/woowacourse/jwp-di ํ์ต๋ชฉํ DI ํ๋ ์์ํฌ ๊ตฌํ์ ํตํด DI ๊ฐ๋ ๊ณผ Spring ํ๋ ์์ํฌ ์ดํด AOP ๊ฐ๋ ๋ฐ Spring AOP ์ ์ฉ Transaction๊ณผ Spring Transaction ์๊ตฌ์ฌํญ step1 BeanFactory, BeanScanner ๊ตฌํ ์ด์ ์ MVC ๋ฏธ์ ์ฝ๋๊น์ง, ์๋ฐ Reflection์ ํ์ฉํด @Controller๋ฅผ ์ฐพ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ URL ๋งคํ์ ์๋ํํ๋ค. ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก @Service, @Repository๋ ๊ฐ ํด๋์ค์ ๋ํ ์ธ์คํด์ค ์์ฑ๊ณผ ์์กด๊ด๊ณ ์ค์ ์ ์ด๋ ธํ ์ด์ ์ผ๋ก ์๋ํํ๋ค. ๊ฐ ์ธ์คํด์ค๊ฐ์ ์์กด๊ด๊ณ๋ @Inject ์ด๋ ธํ ์ด์ ์ฌ์ฉ MVC๋ชจ๋์ Controll..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwkoIB/btqzI32Tsgx/ENwkRKZyTyi3nkPxMhIc40/img.png)
Sync/Async, Blocking/Non-Blocking Multi Thread WAS vs Single Thread WAS ์ฌ์ ์ง์ : Process vs Thread ๋ฉํฐ ์ค๋ ๋๋ก ์ ์๋น์คํ๋ ์ด๋๋ , ๊ฐ์๊ธฐ 10k(1๋ง๋ช )๋ฅผ ๋์์ ์๋น์คํ ์ผ์ด ์๊ฒผ๋ค. ์ผ๋ช C10K Problem. 1๋ง๋ช ๋์ ์ด ๊ฐ๋ฅํ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ์๋ฐ์ ๋ํ ๋ฉํฐ ์ค๋ ๋ ์๋ฒ์ธ ํฐ์บฃ์ ๊ธฐ๋ณธ max-thread๊ฐ 200๋ฐ์ ๋์ง ์๋๋ค ! 10k๋ฅผ ๋ฉํฐ ์ค๋ ๋๋ก ๊ตฌํํ ๊ฒฝ์ฐ, ๊ฐ์ฅ ํฐ ๋ฌธ์ ๋ Context-Switching ๋น์ฉ -> Single Thread + Non-Blocking + Async ๊ตฌ์กฐ๋ฉด ๊ฐ๋ฅํ์ง ์์๊น? ์ด๋ค์ ๋ํด ์์๋ณด์. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์์์ sync vs async ๋จผ์ , [์ ํ๋ฆฌ์ผ์ด์ ..
- Total
- Today
- Yesterday
- Data Structure
- ์นํดํน
- Android Studio
- dfs
- graph
- bfs
- Java
- Android
- FRAGMENT
- reversing
- queue
- Algorithm
- Stack
- git
- socket
- C
- sort
- mysql
- ๋ฆฌ๋ฒ์ฑ
- ํด์ธ์ฌํ
- OneToMany
- ํ๋ก๊ทธ๋๋จธ์ค
- javascript
- JPA
- ์ฐ์ํ ํ ํฌ์ฝ์ค
- ํ๊ณ
- Vo
- webhacking.kr
- brute-force
- ๊ฐ๋ฐ์
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |