![](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
- mysql
- graph
- C
- Java
- Algorithm
- 리버싱
- git
- Stack
- webhacking.kr
- dfs
- socket
- bfs
- 웹해킹
- sort
- JPA
- FRAGMENT
- OneToMany
- Android
- Data Structure
- Vo
- 우아한 테크코스
- reversing
- 해외여행
- Android Studio
- 회고
- queue
- 개발자
- 프로그래머스
- javascript
- 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 |