| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- nginx
- MySQL
- database
- springboot
- JavaScript
- mybatis
- nodejs
- gradle
- dbeaver
- docker
- react
- LOG4J
- NCP
- SAP
- useEffect
- tibero
- Spring
- Git
- IntelliJ
- Linux
- maven
- log4j2
- Windows
- BPMN
- Java
- JPA
- gson
- kubectl
- Kubernetes
- VSCode
- Today
- Total
목록전체 글 (269)
두 손끝의 창조자
타입이 없으면 다음과 같은 문제가 발생할 수 있음 잘못된 파라미터 함수에 전달 원하지 않은 타입 변환 코드 계층 구조 이해 불가 AddUserToGroup(string, string) 위 메소드는 파라미터가 2개 있다. 하나는 유저일 것이고 하나는 그룹일 것인데 어느 것이 유저이고 어느 것이 그룹인가? 메소드 시그니처 가지고는 알수가 없다. 만약, 타입 파라미터를 아래처럼 정의했다면 AddUserToGroup(User,Group) 순서를 생각할 필요가 없다. AddUserToGroup(new User('u1'), new Group('g1')) 쓸때는 이런 식이 아닐까?
클래스의 속성이 모두 final 일 때 자동으로 컨스트럭터의 파라미터로 만들어 줘서 편리하게 쓸 수 있다. 하지만 속성 중에 String 등 같은 타입이 여러개 잇을 때 기대한 순서가 달라 실제 사용한 클라이언트에서 사용했을 때 순서와 필드를 추가했을 때 순서가 다를 수 있다. 매우 심각한 문제를 발생시키므로 속성 타입이 모두 다를 때나 가끔 사용하고 아니면 사용하지 말자.
gson을 아무 옵션 없이 쓰면 소수점이 없는 숫자도 모두 float 타입으로 변환한다. Number 타입 변환 전략을 수정하면 Long과 Double 중 하나로 변환하게 할 수 있다. gson = new GsonBuilder() .setObjectToNumberStrategy(ToNumberPolicy.LONG_OR_DOUBLE) .create();
ObjectMapper objectMapper = new ObjectMapper(); //noinspection deprecation objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); 위 코드는 오브젝트를 컨버팅 할 때 타깃과 소스의 이름의 케이스를 무시하고 없는 경우도 오류내지 않고 가능한 것만 매핑하라는 옵션이다.