일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SAP
- springboot
- gradle
- Kubernetes
- BPMN
- Windows
- JavaScript
- react
- nodejs
- Spring
- log4j2
- JPA
- useEffect
- nginx
- LOG4J
- dbeaver
- tibero
- NCP
- mybatis
- Linux
- IntelliJ
- Git
- gson
- MySQL
- database
- VSCode
- maven
- sapfiorielements
- docker
- Java
- Today
- Total
목록전체 글 (263)
두 손끝의 창조자
클래스의 속성이 모두 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); 위 코드는 오브젝트를 컨버팅 할 때 타깃과 소스의 이름의 케이스를 무시하고 없는 경우도 오류내지 않고 가능한 것만 매핑하라는 옵션이다.
서버에 쉘 스크립트를 만들어 넣고 스크립트를 실행할 때 유의해야 할 점이 있다. 쉘 스크립트가 실행되는 위치가 쉘 스크립츠 위치와 상관없이 홈 디렉토리이다. 따라서 스크립트에 스크립트의 상대경로로 무언가 파일을 읽거나 쓰도록 했다면 서버에서 직접 실행했을 때는 잘 되지만 hidetake 같은 원격 쉘 실행도구로는 정확하게 실행되지 않는다. 경로에 유의하라
gradle 플러그인 hidetake 로 원격지에 있는 서버에 쉘 명령을 수행할 수 있다. ssh 로 최초 접속을 하면 알 수 업는 서버인데 계속 하겠냐고 물어보고 알았다고 하면 ~/.ssh/known_hosts 파일에 호스트 정보를 기록한다. 그 뒤는 안물어보게 되는데 hidetake로 ssh 명령 스크립트를 만들고 배포를 하고 사용하도록 했는데 해당 사용자는 해당 호스트 접속 이력이 없어 권한이 없다고 뜨거나 ssh 접속을 아얘 한적이 없다면 known_hosts 파일을 찾을 수 없다고 한다. 이럴때 간단하게 known_hosts 에 호스트 정보를 넣어주면 된다. ssh-keyscan -t rsa server.com >> ~/.ssh/known_hosts 윈도우즈에서는 git-scm에서 git을 설치..