![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/pHPwX/btqyfNB16wd/EPmEiVNvK7adMUOW0sXpe0/img.png)
DTO - Entity๊ฐ์ ๋ณํ์ ๋ํด Entity To DTO Conversion for a Spring REST API | Baeldung A Better Way to Project Domain Entities into DTOs ๋จผ์ ์ฒซ๋ฒ์งธ ๋งํฌ๋ ModelMapper API๋ฅผ ์ด์ฉํ Entity์ DTO๊ฐ์ ๊ธฐ๋ณธ์ ์ธ ๋ณํ ์์ ๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋ค. DTO์ ๊ธฐ๋ณธ์ ์ธ ์ฌ์ฉ๋ฐฉ์๊ณผ ๋ ์ด์ด๊ฐ์ ํ๋ฆ์ ๋ณผ์์๋ค. ์ฌ๊ธฐ์ Controller์ ModelMapper๋ฅผ ํธ์ถํด Entity~DTO๊ฐ์ ๋ณํ์ ์ํํ๋ ๋ก์ง์ด ์์นํ๋๊ฒ์ ํ์ธํ ์์์๋ค. ๋๋ฒ์งธ ๋งํฌ๋ DTO๋ก์ ๋ณํ๋ก์ง์ ์ด๋์ ์์น์์ผ์ผ ํ๋๊ฐ์ ๋ํด ๋ ผ์ํ๊ณ ์๋ค. ์ด ๊ธ์ ๊ฒฐ๋ก ์ Repository์์ ์์นํด์ ์๋๊ณ , Application Ser..
์๋์ ์๋ฃ๋ฅผ ๋ฒ์ญ ๋ฐ ์์ฝ 10 Tips to override toString() method in Java ์๋ฐ์ toString ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋ช ํํ๊ณ ๊ฐ๊ฒฐํ ์ ๋ณด๋ฅผ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํ์์ผ๋ก ์ ๊ณตํ๋๋ฐ ์ด์ฉ๋๋ค. ์ฌ๋ฐ๋ฅด๊ฒ override๋ toString ๋ฉ์๋๋ ๊ฐ์น์๊ณ ์๋ฏธ์๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ, ํ๋ก๊ทธ๋จ์ ๋ก๊น ๊ณผ ๋๋ฒ๊น ์ ๋์์ ์ค๋ค. toString์ java.lang.Object ํด๋์ค์ ์ ์๋์ด ์๊ธฐ ๋๋ฌธ์, ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ๋ฐ๋ผ์ ์๋ธํด๋์ค์์ overrideํ๋๊ฒ์ด ์ข๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก toString์ package.class@hashCode์ ํํ๋ฅผ ์ถ๋ ฅํ๋ค. ex) test.Country@18e2b22 ์๋ฅผ ๋ค์ด, ๋คํธ์ํฌ ๊ด๋ จ ํด๋์ค์ ๊ฒฝ์ฐ toString์ ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/ovQss/btqygsKF86a/wBQicuk4dCStuNi3OZrchK/img.png)
Dependency Injection (DI, ์์กด์ฑ ์ฃผ์ ) Dependency(์์กด์ฑ, ์์กด๊ด๊ณ) A ๊ฐ์ฒด๊ฐ B๊ฐ์ฒด๋ฅผ ํ์ฉํด ๋ก์ง์ ๊ตฌํํ๋ ๊ฒฝ์ฐ A ๊ฐ์ฒด๋ B ๊ฐ์ฒด์ ์์กด๊ด๊ณ๋ฅผ ๊ฐ์ง๋ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด Car๊ฐ Random ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํด ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค๋ฉด Car๋ Random์ ์์กด๊ด๊ณ๋ฅผ ๊ฐ์ง๋ค. Injection(์ฃผ์ ) ๊ฐ์ฒด ๊ฐ์ ์์กด๊ด๊ณ๋ฅผ ์์กด๊ด๊ณ๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด ๋ด๋ถ์์ ๊ฒฐ์ ํ์ง ์๊ณ ์ธ๋ถ์์ ๊ฒฐ์ ํ๋ค. ์๋ฅผ ๋ค์ด Car๊ฐ Random ๊ฐ์ฒด์ ์์กด๊ด๊ณ๋ฅผ ์์ ๊ธฐ ์ํด MoveStrategy๋ฅผ ์ถ๊ฐํ๋ค๋ฉด ์ด์ ๋ํ ์์กด๊ด๊ณ๋ฅผ ์ธ๋ถ์์ ๊ฒฐ์ ํ๋ค. Sample Code DI์ ์ ๋๋ฉ์ธ ๊ฐ์ฒด์ ๋๋ค์ฑ์ผ๋ก ํ ์คํธ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ๋์์ ์ด ํ ์คํธ ๋ถ๊ฐ์ฑ์ด ์์๊ฐ์ฒด๊น์ง ์ ์ผ๋์ด, ๋ชจ๋ ํ ์คํธ ํ๊ธฐ ํ๋ค์ด์ง๋ค...
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bYaXbR/btqyh1Far8N/BDKpw7xhoQWMqUhRs7SEkK/img.png)
์ขํ๋ฏธ์ ์ ์งํํ๋ค ํท๊ฐ๋ ค์ ๋ ธ๊ฐ๋ค๋ก ์ง์ ๊ฐ ๋ณํ๋ฅผ ํ์ธํด๋ณด๊ธฐ๋ก ํ๋ค. Shallow Copy vs Deep Copy ๋จผ์ 3๊ฐ์ง์ ๋ณต์ฌ ๋ฐฉ๋ฒ ๋น๊ต ๋งํฌ๋ฅผ ์ฐธ์กฐํ, ์์๋ณต์ฌ/๊น์๋ณต์ฌ/๋๊น์๋ณต์ฌ public static void main(String[] args) { test1(); test2(); test3(); } private static void test1() { List origin = new ArrayList(); origin.add(new Car("k5")); origin.add(new Car("k9")); List copy = origin; origin.add(new Car("sonata")); copy.add(new Car("avante")); origin.get(0).setName("s..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/3RpHG/btqyfrzcWHS/0krmDats2rgUKKxk2DIU6K/img.png)
์๋ณธ์ฝ๋ ๊ฐ ๋ณํ ์คํ : Java) Shallow Copy vs Deep Copy (์์/๊น์ ๋ณต์ฌ), unmodifiableList์ ๊ฐ ๋ณํ ๊ด์ฐฐ ์ขํ๊ณ์ฐ๊ธฐ ์ฝ๋๋ฅผ ์์ฑํ๋ค๊ฐ, Jason์ฝ์น๋์ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์๋ณธ๊ฐ์ ์์ ํ๊ฒ ๋ณดํธํ๊ธฐ ์ํด 3๊ฐ์ง ๋ฐฉ๋ฒ์ ์ ์ฉํ๊ฒ ๋์๋ค. (์ธ ๊ธฐ๋ฒ์ด ๋ชจ๋ ๊ฐ์์ ๊ด์ ์ด ๋ค๋ฅด๊ธด ํ์ง๋ง, ์ผ๋จ์) Collections.unmodifiableList Deep Copy VO(Value Object) ์ฌ์ ์ง์ : final์ ์ฌํ ๋น๋ง ๋ง์ง, ๊ฐ ์กฐ์์ ๋ง์ง๋ชปํ๋ค. ์๋์ ๊ฐ์ ์ปจํธ๋กค๋ฌ ์ฝ๋๊ฐ ์๋ค. ์๋ณธ๊ฐ์ธ List๋ฅผ ๋ฐ์๋ค์ด๊ณ , ์ด๋ฅผ ์กฐ์ํด์ figure๋ฅผ ๋ง๋ค๊ณ ์ถ๋ ฅํ๋ค. List๋ฅผ ๊ฐ๊ณ ์๋ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ค์๊ณผ ๊ฐ๋ค. ์ ํ์ ์ธ ์์ฑ์์ ์ ํ์ ์ธ getter. ๋จ์ํ ..
enum์ class๊ตฌํ๊ณผ ๊ฐ์ ๋ฌธ๋ฒ์ ๊ฐ์ง๋ฉฐ, ์ด๋ฅผ ํตํด ํด๋์ค๋ฅผ ์์์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. ์์๊ฐ์ฒ๋ผ ์ ์ผํ๊ฒ ํ๋์ ์ธ์คํด์ค๊ฐ ์์ฑ๋์ด ์ฌ์ฉ๋๋ค. (์ผ์ข ์ singleton์ ๋ณด์ฅ) ์๋ก ๊ด๋ จ์๋ ์์๊ฐ๋ค์ ๋ชจ์์ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ๊ฒ ์ฌ์ฉ ์์ Java) enum์ ํ์ฉํด if๋ฌธ ์์ ๊ธฐ (with Calculator ์์ ) ์ฐธ๊ณ ์๋ฃ Java Enum ํ์ฉ๊ธฐ - ์ฐ์ํํ์ ๋ค ๊ธฐ์ ๋ธ๋ก๊ทธ nextree/Java: enum์ ๋ฟ๋ฆฌ๋ฅผ ์ฐพ์์ opentutorials/์์์ enum - Java opentutorials/enum ํด๋์ค์ ์ฌ์ฉ๊ณผ ์ดํด - level up ๊ณผ์
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/dub2JZ/btqygtphRYT/PGl7N4dTDkh9sgy2J5jqnK/img.png)
SOLID (๊ฐ์ฒด ์งํฅ ์ค๊ณ) Single Responsibility Principle (SRP) : ๋จ์ผ ์ฑ ์์ ์์น Open Close Principle (OCP) : ๊ฐ๋ฐฉ ํ์์ ์์น The Liskov Substitution Principle (LSP) : ๋ฆฌ์ค์ฝํ ์นํ์ ์์น Interface Segregation Principle (ISP) : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ์ ์์น Dependency Inversion Principle (DIP) : ์์กด์ฑ ์ญ์ ์ ์์น ์ฐธ๊ณ ์๋ฃ nextree/๊ฐ์ฒด์งํฅ ๊ฐ๋ฐ 5๋ ์๋ฆฌ: SOLID ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ ๋ฒ์น, ์ด๋ก , ์์น, ๊ทธ๋ฆฌ๊ณ ํจํด๋ค tistory/๊ฐ์ฒด ์งํฅ ์ค๊ณ๋? (SOLID) github/๊ฐ์ฒด์งํฅ ๋์์ธ์ 5์์น(SOLID ์์น) ๊ฐ์ฒด์งํฅ 5๋ ์์น SR..
- Total
- Today
- Yesterday
- C
- Algorithm
- javascript
- Android Studio
- JPA
- ํ๊ณ
- ์นํดํน
- Vo
- socket
- Stack
- git
- webhacking.kr
- graph
- queue
- FRAGMENT
- bfs
- dfs
- ํ๋ก๊ทธ๋๋จธ์ค
- ๊ฐ๋ฐ์
- Android
- Java
- mysql
- ๋ฆฌ๋ฒ์ฑ
- brute-force
- sort
- Data Structure
- reversing
- ํด์ธ์ฌํ
- ์ฐ์ํ ํ ํฌ์ฝ์ค
- OneToMany
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |