์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ธ๋ผ์ฐ์ ์คํ
- ์ด์ง์ ๋ณํ
- matplotlib
- np.zeros_like
- ์ต์
- sql
- ํฉํ ๋ฆฌ์ผ ์ง๋ฒ
- ๋ฐฑ์ค
- MacOS
- DFS
- ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ
- dacon
- Do it
- 2BPerfect
- java
- ์ง ๊ฐ ์์ธก ๋ถ์
- Extended Slices
- ์ฐธ์กฐ ๋ณ์
- mysql
- ์ด๊ฒ์ด ์ทจ์ ์ ์ํ ์ฝ๋ฉํ ์คํธ๋ค
- PYTHON
- ์๋ฐ
- BFS
- Do_it
- ํ์ ๋ณ์
- ์ ํ ํฌ ํ์ด์ฌ
- jdbc
- ๋ฐ์ค๊ทธ๋ํ
- ์์ด
- Today
- Total
๐ฆ ๊ณต๋ฃก์ด ๋์!
Spring boot Study...1 ๋ณธ๋ฌธ
JPA
๊ฐ์ฒด - ํ ์ด๋ธ ๋งตํ : @Entity, @Table
ํ๋ - ์ปฌ๋ผ์ ํนํ : @Column
๊ธฐ๋ณธํค์ ๋งตํ : @Id
์กฐ์ธ ๋งตํ : @ManyToOne, @JoinColumn
@Entity
@Entity ์ด๋ ธํ ์ด์ ์ ํด๋์ค์ ์ ์ธํ๋ฉด ๊ทธ ํด๋์ค๋ JPA๊ฐ ๊ด๋ฆฌํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก DB์ ํ ์ด๋ธ๊ณผ Class(VO, DTO)์ ๋งตํํ๋ค๋ฉด ๋ฐ๋์ @Entity๋ฅผ ๋ถ์ฌ์ฃผ์ด์ผ ํ๋ค.
@Entity๊ฐ ๋ถ์ ํด๋์ค์๋ ๋ค์ ์ ์ฝ์ฌํญ์ด ํ์ํ๋ค.
- ํ๋์ final, enum, interface, class๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
- ์์ฑ์์ค ๊ธฐ๋ณธ ์์ฑ์๊ฐ ๋ฐ๋์ ํ์ํ๋ค.
@Entity์ ์์ฑ1. name : ์ํฐํฐ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ผ๋ก ํด๋์ค ์ด๋ฆ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
@Table
@Table ์ด๋ ธํ ์ด์ ์ ๋งตํํ ํ ์ด๋ธ์ ์ง์ ํ๋ค.
@Table์ ์์ฑ1. name : ๋งคํํ ํ ์ด๋ธ์ ์ด๋ฆ์ ์ง์ 2. catalog : DB์ catalog๋ฅผ ๋งตํ3. schema : DB ์คํค๋ง์ ๋งตํ4. uniqueConstraint : DDL ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ ๋ ์ ์ฝ ์กฐ๊ฑด์ ์์ฑ
@Column
@Column ์ด๋ ธํ ์ด์ ์ ๊ฐ์ฒด ํ๋์ DB ํ ์ด๋ธ ์ปฌ๋ผ์ ๋งตํํ๋ค.
@Column์ ์์ฑ1. name : ๋งตํํ ํ ์ด๋ธ์ ์ปฌ๋ผ ์ด๋ฆ์ ์ง์ 2. insertable : ์ํฐํฐ ์ ์ฅ์ ์ ์ธ๋ ํ๋๋ ๊ฐ์ด ์ ์ฅ3. updateable : ์ํฐํฐ ์์ ์ ์ด ํ๋๋ฅผ ํจ๊ป ์์ 4. table : ์ง์ ํ ํ๋๋ฅผ ๋ค๋ฅธ ํ ์ด๋ธ์ ๋งตํ5. nullable : NULL์ ํ์ฉํ ์ง, ํ์ฉํ์ง ์์์ง ๊ฒฐ์ 6. unique : ์ ์ฝ์กฐ๊ฑด์ ๊ฑธ ๋ ์ฌ์ฉ7. columnDefinition : DB ์ปฌ๋ผ ์ ๋ณด๋ฅผ ์ง์ ์ ์ผ๋ก ์ง์ ํ ๋ ์ฌ์ฉ8. length : varchar์ ๊ธธ์ด๋ฅผ ์กฐ์ ํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ผ๋ก 255๊ฐ ์ ๋ ฅ9. precsion, scale : BigInteger, BigDecimal ํ์ ์์ ์ฌ์ฉ, ๊ฐ๊ฐ ์์์ ํฌํจ ์๋ฆฌ์, ์์์ ์๋ฆฌ์๋ฅผ ์๋ฏธ
@Id
JPA๊ฐ ๊ฐ์ฒด๋ฅผ ๊ด๋ฆฌํ ๋ ์๋ณํ ๊ธฐ๋ณธํค๋ฅผ ์ง์ ํ๋ค.
Lombok
๊ธฐ๋ณธ์ ์ผ๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉํ๋ VO ๊ฐ์ฒด๋ , DB ํ ์ด๋ธ์ column ๊ณผ ๊ฐ์ ์ด๋ฆ์ private ๋ณ์๋ฅผ ๊ฐ์ง๊ณ , getter setter ๋ฉ์๋๋ฅผ ์ ์ ํ ํ toString ๋ฉ์๋๋ฅผ ์ ์ํ๋ค. ํ์ง๋ง ํ๋ก์ ํธ๊ฐ ์ปค์ง๋ฉด ์ปค์ง์๋ก ์์ ๋งํ ๋ณ์ , ๋ฉ์๋๋ค์ด ๊ธฐํ๊ธ์์ ์ผ๋ก ๋์ด๋ ๊ฒ์ด๊ณ , ๋์ด๋๋ฉด ๋์ด๋ ์๋ก ์ถ๊ฐ๋ ๊ท์ฐฎ์ ๋ฟ๋๋ฌ ๊ด๋ฆฌ๋ ํ๋ค์ด์ ธ ๊ฒฐ๊ตญ์๋ ์ ์ง๋ณด์๊ฐ ํ๋ค์ด์ง๋ค.์์ ๋ฌธ์ ๋ฅผ ํํํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ Lombok์ด๋ค.
- @ToString
- toString() ๋ฉ์๋๋ฅผ ์์ฑํ๋ค. @ToString(exclude={“์ ์ธ๊ฐ”})์ผ๋ก ์ ์ธ์ํค๊ณ ์ถ์ ๊ฐ์ ์ค์ ํ ์ ์๋ค.
- @Getter , @Settergetter()
- setter() ๋ฉ์๋๋ฅผ ์์ฑํ๋ค.
- @EqualsAndHashCodeequals(), hashCode() ๋ฉ์๋๋ฅผ ์์ฑํ๋ค.
- @RequiredArgsConstructor๋ชจ๋ ๋ฉค๋ฒ ๋ณ์๋ฅผ ์ด๊ธฐํ์ํค๋ ์์ฑ์๋ฅผ ์์ฑํ๋ค.
- @Data์์ ์ธ๊ธํ 5๊ฐ์ง ์ด๋ ธํ ์ด์ ์ค์ ์ ๋ชจ๋ ํฌํจํ๋ค.
์ฐ์ , @Getter ์ @Setter๋ ๊ฐ๊ฐ ์ ๊ทผ์์ ์ค์ ์ ๋ฉ์๋๋ฅผ ์์ฑํด์ฃผ๋ Lombok ์ด๋ ธํ ์ด์ ์ผ๋ก ์ ๋ช ํ๋ค. ๋ํ ์์ฑ์๋ฅผ ์๋ ์์ฑํด์ฃผ๋ Lombok ์ด๋ ธํ ์ด์ ์๋
- @NorgsConstructor : ํ๋ผ๋ฏธํฐ๊ฐ ์๋ ๊ธฐ๋ณธ ์์ฑ์ ์์ฑ
- @AllArgsConstructor : ๋ชจ๋ ํ๋ ๊ฐ์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋ ์์ฑ์๋ฅผ ๋ง๋ค์ด ์ค๋ค.
- @RequiredArgsConstructor : final์ด๋ @NonNull ์ธ ํ๋ ๊ฐ๋ง ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋ ์์ฑ์๋ฅผ ๋ง๋ค์ด ์ค๋ค.
@EqualsAndHashCodeequals, hashCode ์๋ ์์ฑ
- equals : ๋ ๊ฐ์ฒด์ ๋ด์ฉ์ด ๊ฐ์์ง, ๋๋ฑ์ฑ(equality) ๋ฅผ ๋น๊ตํ๋ ์ฐ์ฐ์
- hashCode : ๋ ๊ฐ์ฒด๊ฐ ๊ฐ์ ๊ฐ์ฒด์ธ์ง, ๋์ผ์ฑ(identity) ๋ฅผ ๋น๊ตํ๋ ์ฐ์ฐ์
์๋ฐ bean์์ ๋๋ฑ์ฑ ๋น๊ต๋ฅผ ์ํด equals์ hashcode ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํด์ ์ฌ์ฉํ๋๋ฐ,
@EqualsAndHashCode์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด ์๋์ผ๋ก ์ด ๋ฉ์๋๋ฅผ ์์ฑํ ์ ์๋ค. callSuper ์์ฑ์ ํตํด eqauls์ hashCode ๋ฉ์๋ ์๋ ์์ฑ ์ ๋ถ๋ชจ ํด๋์ค์ ํ๋๊น์ง ๊ฐ์ํ ์ง์ ์ฌ๋ถ๋ฅผ ์ค์ ํ ์ ์๋ค. @EqualsAndHashCode(callSuper = true)๋ก ์ค์ ์ ๋ถ๋ชจ ํด๋์ค ํ๋ ๊ฐ๋ค๋ ๋์ผํ์ง ์ฒดํฌํ๋ฉฐ, false(๊ธฐ๋ณธ๊ฐ)์ผ ๊ฒฝ์ฐ ์์ ํด๋์ค์ ํ๋ ๊ฐ๋ง ๊ณ ๋ คํ๋ค.
์ถ์ฒ:
https://deveric.tistory.com/54
https://medium.com/@dlaudtjr07/spring-boot-lombok-%EA%B0%9C%EB%85%90-%EB%B0%8F-%EC%84%A4%EC%B9%98-71f9dbbc2f42
https://n1tjrgns.tistory.com/164
@Data, @EqualsAndHashCode ์ด๋ ธํ ์ด์
Spring @Data , @EqualsAndHashCode ์ด๋ฒ์ ํ์ธํด๋ณผ ๋ถ๋ถ์ Lombok ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ ์ด๋ ธํ ์ด์ ์ด๋ค. @Data, @EqualsAndHashCode๋ฅผ ๋ณด๊ธฐ์ ์ ์ฐ์ , @Getter ์ @Setter๋ ๊ฐ๊ฐ ์ ๊ทผ์์ ์ค์ ์ ๋ฉ์๋๋ฅผ..
n1tjrgns.tistory.com
[Spring-boot JPA] ๋งตํ ์ด๋ ธํ ์ด์ @Entity, @Table, @Column, @Id ์์ฑ๊ณผ ๊ฐ๋ ์ ๋ฆฌ
๊ฐ์ฒด - ํ ์ด๋ธ ๋งตํ : @Entity, @Table ํ๋ - ์ปฌ๋ผ์ ํนํ : @Column ๊ธฐ๋ณธํค์ ๋งตํ : @Id ์กฐ์ธ ๋งตํ : @ManyToOne, @JoinColumn @Entity @Entity ์ด๋ ธํ ์ด์ ์ ํด๋์ค์ ์ ์ธํ๋ฉด ๊ทธ ํด๋์ค๋ JPA๊ฐ ๊ด๋ฆฌํฉ๋๋ค...
deveric.tistory.com