์ด์ ํฌ์คํธ์์ ์ค๋ช
ํ ํฌ์ฅํ(wrapper class)์ ์์ฑ์๋ฅผ ์ด์ฉํ๋ฉด ๋ฌธ์์ด์ ๊ธฐ๋ณธํ ๊ฐ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ค. โป ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํตํด์ ์น ํ์ด์ง๋ฅผ ๋ง๋ค๊ณ ํผ ์์์ ์ฌ์ฉ์์ ์
๋ ฅ์ ๋ฐ๊ณ ๋ฐฑ์๋๋ก ๋๊ฒจ์ค ๋ ๋ฌธ์์ด์ ์๋ฃํ์ผ๋ก ์
๋ ฅ์ ๋ฐ์์ ๊ฒ์ด๋ฏ๋ก ์ด ๋ฌธ์์ด ์๋ฃํ์ ํด๋น ๊ฐ์ผ๋ก ๋ณํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค โ๏ธ[ํ 1] ํฌ์ฅํ์ ๊ธฐ๋ณธํ ๊ฐ์ ๋ฐํํ๋ ๊ฐ์ฒด ๋ฉ์๋ ๋ฉ์๋๋ช
๊ธฐ๋ฅ byteValue() byte๊ฐ์ ๋ฐํํ๋ค. shortValue() short๊ฐ์ ๋ฐํํ๋ค. intValue() int๊ฐ์ ๋ฐํํ๋ค. longValue() long๊ฐ์ ๋ฐํํ๋ค. floatValue() float๊ฐ์ ๋ฐํํ๋ค. doubleValue() double๊ฐ์ ๋ฐํํ๋ค. ์๋ฅผ ๋ค์ด์ ๋ค์๊ณผ ๊ฐ์ด Integer ํ ๊ฐ์ฒด์..
Backend๐ฑ

โก๏ธArrayList ๐ArrayList ์ ์ธ ๐ArrayList ์ถ๊ฐ ๐ArrayList ์ญ์ ๐ArrayList ๊ฐ ๊ฒ์ ๐ArrayList ๊ฐ ์ถ์ถ, ์ถ๋ ฅ โก๏ธArrayList์ ํด๋์ค ๊ฐ์ฒด ๐ํด๋์ค ๊ฐ์ฒด ์์ฑ ํ ArrayList์ ์ถ๊ฐ ๐ArrayList ์์ ํด๋์ค ๊ฐ์ฒด์ ๊ฐ ์ถ์ถํ๊ธฐ Q) ๐คArrayList๊ฐ ๋๋์ฒด ๋ญ๊ฐ์?! ์ ๋ฒ์ ๋ฐฐ์ด ๋ฐฐ์ด ์๋๋ฐ ๊ทธ๊ฒ๋ง ์ฐ๋ฉด ๋๋๊ฑฐ ์๋๊ฐ์? ArrayList๋ฅผ ๋๋์ฒด ์ ์ฐ๋ ๊ฑด๊ฐ์!? A) ๐Calm Down... ๋ด ์๊ธฐ์ข ๋ค์ด๋ด ์น๊ตฌ ๋น์ฐํ ์ฐ๋ ์ด์ ๊ฐ ์์ผ๋๊น ์ฌ์ฉํ๊ฒ ์ง? ๋ด๊ฐ ์๋ฅผ ํ๋ ๋ค์ด์ค๊ป ์ฒ์์ 100๋ช
์ ํ์์ ์ํ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ๋๋ฐ ์ด๋ ์๊ฐ ํ์ ์๊ฐ 100๋ช
์ด ๋์๋ค๊ณ ๊ฐ์ ํด๋ณด์ Q) ๐ค๊ทธ๋์์?! ๊ทธ๊ฒ ๋ญ ์ด์จ๋ค๊ตฌ์!! A..
๋๋ค์์ map(), filter(), forEach(), sorted() ArrayList์ add()์ ์นํด์ ธ ๋ณด์ ๐TravelCustomer.java package Chapter13; public class TravelCustomer { private String name; private int age; private int price; public TravelCustomer(String name, int age, int price) { this.name = name; this.age = age; this.price = price; } public String getName() { return name; } public int getAge() { return age; } public int get..

์ถ์ฒ : joont92.github.io/jpa/Spring-Data-JPA/ ์ ์ฌ์ดํธ๊ฐ ๋๋ฌด ์ ๋ฆฌ๋ฅผ ์ ํด ๋์๋ค. ์กฐ๊ธ๋ง ํผ์จ๋ค๋ ๊ฒ์ด ํ๋๋ ๋บ ์ ์๋ ์ฃผ์ฅ๊ฐ์ ๊ธ์ด๋ฏ๋ก ๋๋ฌด ๊ฐ์ฌํ๋ค. JpaRepository(๊ณตํต ์ธํฐํ์ด์ค) JpaRepository๋ ์์ ์ธ๊ธํ๋ CRUD ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ณตํต ์ธํฐํ์ด์ค์ด๋ค. public interface MemberRepository extends JpaRepository{ } ์ด ์ธํฐํ์ด์ค๋ฅผ ์์๋ฐ์ ์ธํฐํ์ด์ค๋ง ์์ฑํ๋ฉด ํด๋น ์ํฐํฐ์ ๋ํ CRUD๋ฅผ ๊ณต์ง๋ก ์ฌ์ฉํ ์ ์๊ฒ๋๋ค. ์ ๋ค๋ฆญ์๋ ์ํฐํฐ ํด๋์ค์ ์ํฐํฐ ํด๋์ค๊ฐ ์ฌ์ฉํ๋ ์๋ณ์ ํ์
์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค. JpaRepository์ ๊ณ์ธต๊ตฌ์กฐ๋ ์๋์ ๊ฐ๋ค. ๋ณด๋ค์ํผ ์คํ๋ง ๋ฐ์ดํฐ ํ๋ก์ ํธ๊ฐ ๊ณตํต์ผ๋ก ์ฌ..
์์ง๋!!!!!!!!!!!!!! Calender๋ Date๋ฅผ ์ฌ์ฉํ๋ ค๋ ํน์ ์ฌ์ฉํ๊ณ ์๋ ์ ๊ฐ์๋ถ๋ค์ ์ํด ์ค๋นํ ๊ธ์
๋๋ค. Java 8 ๋ถํฐ java.time(joda.time) api ์ถ์ ๋๊ธฐ ๋๋ฌธ์, Java version 8 ์ด์๋ง ๊ฐ๋ฅํฉ๋๋ค. Java ์๊ฐ API ์๋ ํ๋ฆ์ java.util.Date > java.util.Calendar > java.time(org.joda.time) LocalDate ๊ฐ๋
๋ก์ปฌ ๋ ์ง ํด๋์ค๋ก ๋ ์ง ์ ๋ณด๋ง ํ์ํ ๋ ์ฌ์ฉ ๋ ์ง ์ ๋ณด๋ง ์ถ๋ ฅ๋ฉ๋๋ค ๋ ์ง ์ ๋ณด๋ง~ ๋ฌธ๋ฒ // ๋ก์ปฌ ์ปดํจํฐ์ ํ์ฌ ๋ ์ง ์ ๋ณด๋ฅผ ์ ์ฅํ LocalDate ๊ฐ์ฒด๋ฅผ ๋ฆฌํด LocalDate currentDate = LocalDate.now(); // result : 2019-11-13 //..

db์๋ ์ปฌ๋ ์
์ ์ ์ฅํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ jpa์ ๊ฐ ํ์
์ปฌ๋ ์
์ @ElementCollection๊ณผ @CollectionTable ์ด๋
ธํ
์ด์
์ ํตํด ๊ตฌํํ ์ ์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ด ์ด๋
ธํ
์ด์
๋ค์ ํ์ฉํ ๊ฐ ํ์
์ปฌ๋ ์
์ ๊ฐ๋
๊ณผ ํน์ง, ์์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค. ๋ชฉ์ฐจ 1. ๊ฐ ํ์
์ปฌ๋ ์
์ ๊ฐ๋
๊ณผ ํน์ง 2. ๊ฐ ํ์
์ปฌ๋ ์
์ ์์ โ๏ธ๊ฐ ํ์
์ปฌ๋ ์
์ ๊ฐ๋
๊ณผ ํน์ง 1. ๊ฐ๋
๊ฐ ํ์
์ ์ปฌ๋ ์
์ ๋ด์ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.DB์์๋ ๋ฐ๋ก ์ปฌ๋ ์
์ ์ ์ฅํ ์ ์์ผ๋ฏ๋ก, ์ปฌ๋ ์
์ ํด๋นํ๋ ํ
์ด๋ธ์ ํ๋ ์ถ๊ฐํ์ฌ ์ปฌ๋ ์
์ ๊ตฌํํฉ๋๋ค. ์ด๋ฅผ ์ํด @ElementCollection๊ณผ @CollectionTable ์ด๋
ธํ
์ด์
์ ์ฌ์ฉํฉ๋๋ค. 2. ํน์ง โ ๊ฐ ํ์
์ปฌ๋ ์
์ ๊ฐ ํ์
๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ๋ฐ..
@RequestMapping์ DefaultAnnotationHandlerMapping์์ ์ปจํธ๋กค๋ฌ๋ฅผ ์ ํํ ๋ ๋ํ์ ์ผ๋ก ์ฌ์ฉํ๋ ์ ๋
ธํ
์ด์
์ด๋ค. url๋น ํ๋์ ์ปจํธ๋กค๋ฌ์ ๋งคํ๋๋ ๋ค๋ฅธ ํธ๋ค๋ฌ ๋งคํ๊ณผ ๋ฌ๋ฆฌ ๋ฉ์๋ ๋จ์๊น์ง ์ธ๋ถํํ์ฌ ์ ์ฉํ ์ ์์ผ๋ฉฐ, url ๋ฟ ์๋๋ผ ํ๋ผ๋ฏธํฐ, ํค๋ ๋ฑ ๋์ฑ ๋์ ๋ฒ์๋ฅผ ์ ์ฉํ ์ ์๋ค. ๐ฑ์์ฑ DefaultAnnotationHandlerMapping์ ํด๋์ค์ ๋ฉ์๋์ ๋ถ์ @RequestMapping ์ ๋
ธํ
์ด์
์ ๋ณด๋ฅผ ๊ฒฐํฉํด ์ต์ข
๋งคํ์ ๋ณด๋ฅผ ์์ฑํ๋ค. ๊ธฐ๋ณธ์ ์ธ ๊ฒฐํฉ ๋ฐฉ๋ฒ์ ํด๋์ค ๋ ๋ฒจ์ @RequestMapping์ ๊ธฐ์ค์ผ๋ก ์ผ๊ณ , ๋ฉ์๋ ๋ ๋ฒจ์ @RequestMapping์ผ๋ก ์ธ๋ถํํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋๋ค. @RequestMapping์ ์ฌ์ฉํ ์ ์๋ ์์ฑ๋ค์..
์ ๋น์ฐํ ๊ฐ๋ฅํฉ๋๋ค 1!!!! ์ด๋ป๊ฒ ๊ฐ๋ฅํ๋์ ?!!! ์ ๊ฐ๋ฅํฉ๋๋ค ์ ๋ฏฟ์ผ์ธ์ [๋ฐฉ๋ฒ 1. BookRepository ์ธํฐํ์ด์ค ๋์ ๊ตฌํ์ฒด๋ฅผ 2๊ฐ ์ฃผ์
๋ฐ๋๋ค] ์๋ ์ฝ๋์ ๊ฐ์ ๋๋์
๋๋ค!! ์ด๋ ๊ฒ๋๋ฉด 1๋ฒ์์๋ A Repository, 2๋ฒ์์๋ B Repository๋ฅผ ์ฌ์ฉํ์ค ์ ์๊ฒ ๋ฉ๋๋ค!! ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ ์๋๋ฐ์!! @RestController public class BookController { private final BookMemoryRepository bookMemoryRepository; private final BookMySqlRepository bookMysqlRepository; public BookController( BookMemoryRepository bookMe..

๋ฐ์ดํฐ๋ฒ ์ด์ค๋ h2๋ฅผ ์ฌ์ฉํ์๋ค! # ํ
์ด๋ธ ์์ฝ์ด ํน์ ํค์๋๋ก ํ
์ด๋ธ์ ๋ง๋ค๋ฉด ์ค๋ฅ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค ex) ORDER๋ก ํ
์ด๋ธ ์์ฑ์ ์ค์๋ ๋์ ์ ORDERS๋ก ํ๋ฉด ๋ง๋ค์ด์ง # ๊ธฐ๋ณธํค ์๋ํ ๋น @Id @GeneratedValue private Long id; ๋ฅผ ๊ธฐ๋ณธํค๋ก ํ์๋ ์ด ๋ถ๋ถ์ ๋ํด์ getter, setter ์์ฑํ Main๋ฉ์๋์์ setId(1L)์ด๋ฐ์์ผ๋ก ๊ฐ์ ์ฃผ์
ํ์๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ํ๋๋ค ๊ธฐ๋ณธํค ์๋ํ ๋น์ผ๋ก ํ์ผ๋ฉด ๊ฐ์ ์ฃผ์
ํ์ง ๋ง์ # ๊ฐ๋์ฉ ์คํ๋ง์ผ๋ก ์ค๋ฅ ๊ทธ๋ด ๋๋ ์ ์ฒด ํ
์ด๋ธ drop ํ์ drop table orders; drop table product; drop table member; create๋ชจ๋๋ก ๋ค์ ์์ฑํ๋ค # ๋ค๋๋ค ๊ด๊ณ ์ค์ต # Member @Ent..
๋ชฉ์ฐจ @JoinColumn์ด๋? with @OneToOne with @ManyToOne 1. @JoinColumn์ด๋? @JoinColumn์ ์ํฐํฐ ์ฐ๊ด๊ด๊ณ๋ Collection ์ฐ๊ด๊ด๊ณ์์ ์กฐ์ธ ๋์์ด ๋๋ Column์ ๋ํ๋
๋๋ค. 2. with @OneToOne @OneToOne๊ณผ ํจ๊ป ์ฐ์ด๋ @JoinColumn์ ํ์ฌ ์ํฐํฐ๊ฐ ์ฐธ์กฐํ๋ refer ์ํฐํฐ์ ๊ธฐ๋ณธํค๋ฅผ ํด๋น ํ๋๋ก ๋ํ๋
๋๋ค. DB ์์ผ๋ก๋ ์ธ๋ํค๋ก ์กํ๋ ๊ฒ์ด๊ณ , JPA ์์ผ๋ก๋ ๊ฐ์ฒด๊ฐ ๋งคํ๋์ด ์์ ๊ฒ์
๋๋ค. @Entity public class Office { @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "addressId") private Address address; } 3..