2020년 9월 24일 목요일

SOAP 통신 주의할점. 아무리 봐도 왜 오류나는지 모른다면

SOAP 통신을 Postman 혹은 curl 로 테스트를 해보고자 하였으나

오류가 발생 하였다.

Http header 와 body 를 아무리 보고 또 봐도 틀린게 없는데 왜 안되는걸까?

왜지? 2일 정도를 보고 또 보다가 

성공한 사람의 request 를 raw 데이터로 비교 해봐도 모르겠다 뭐지??

이때 SOAP UI 테스트 툴로 테스트 하니 성공 함.

기존 request 와 SOAP UI 를 사용한 request 의 다른점을 확인하기 위해 

로컬에 네트워크 scanner 를 키고 캡쳐를 했다.

postman 과 SOAP UI.

결과는 환장 함.


header 에 SOAPAction key 로

Endpoint 에서 사용할 function 을 정의 하는데 

- Postman  : FN_TEST

- SOAP UI : "FN_TEST"

맞다. 큰따움표다 ㅋ

SOAPAction : "FN_TEST" 여야 하는것이었다.


이게 SOAP 의 규약 인지 

아니면 내가 진행 하는 프로젝트의 룰인지는 더 찾아봐야 하겠으나

뭐니 이게...

2020년 8월 3일 월요일

JPA 메서드로 쿼리 생성시 주의 사항

메서드로 쿼리를 만들다 보면 분명 정확하게 했는데 
Unable to locate Attribute  with the the given name [] on this ManagedType []
이런 오류를 뱉으면서 안될때가 있다.

뭐 당연히 변수 명은 camelcase 로 정의 했을것이고
method 에서는 대문자로 시작했지.

Entity
private String aTest;

Repository
private findByATest(String aTest);

이렇게 하면 문제 없는거 아냐?

문제 없을것 같지만 안된다

문제의 원인은 
위 Entity 에서 정의한 변수명 룰에 있다.
첫 시작 소문자가 1자리면 안된다.

예를 들어 
Entity
private String aaTest;

Repository
private findByAaTest(String aTest);

로 수정 후 테스트 시 문제 없는것을 확인 했다.

문제를 알았으니 왜 인지를 알아야 하는데
아직 모르겠다.
왜일까..

이런 저런 정보를 보았을때 Java Bean naming conventions 에 영향을 받는것이 아닌가 싶다..


-- 정리 --
해당 문제를 피해갈수 있는 방법
1. 변수의 시작을 무조건 소문자 한자리로 시작 하지 않는다.
    aTest => aaTest
2. 룰에 맞지 않는 변태 같은 짓이지만 변수의 시작을 대문자로 바꾼다.
    aTest => ATest

해당 문제가 발생 한 이유는
Entity 에 테이블의 접두사 T 를 항상 붙였다.
예를 들어 code 관련 테이블은 TCode
이럴때 당연히 camelcase 로 변경 하면 tCode 인데 
이것때문에 문제가 생겼다.

우선 근본적인 원인을 찾기 전까지는 접두사 T 를 붙이는 짓은 피하자.

2020년 3월 21일 토요일

git submodule 사용시 참조

project 를 git 에 등록해서 관리하는데
해당 project 하위에 타 git project 를 등록해서 사용할 경우
이를 지원 하기 위해 git submodule 을 쓴다.

설명은 아래 블로그에.

https://pinedance.github.io/blog/2019/05/28/Git-Submodule

2020년 3월 17일 화요일

docker 한글

docker 이미지로 tomcat 을 구동하는데 파일 작성시 파일의 한글이 깨지는 문제가 발생 했다.
문제는 docker image 의 charset 을 설정 하지 않아서 발생 한 문제.

-e LC_ALL=C.UTF-8

옵션 추가 후 해결.

ko_KR.UTF-8 로 변경 하기 위해서는 image 에 언어셋을 설치 해 주어야 하는데
Dockerfile 에 아래 내용을 추가 해야 한다.

RUN apt-get update && apt-get install -y locales RUN locale-gen ko_KR.UTF-8 ENV LC_ALL ko_KR.UTF-8


아래의 블로그 사용자 님의 내용을 참고 하였다.

https://www.44bits.io/ko/post/setup_linux_locale_on_ubuntu_and_debian_container

2020년 3월 1일 일요일

react-native plugins 정리

React-Native 의
자주 사용하는 혹은 사용하려고 고려중인 플러그인 목록 정리

마지막 수정일 20.03.02


  • react-native-calendars
    • 달력
  • react-native-device-info
    • 하드웨어 정보
  • react-native-dropdownalert
    • status bar 에서 내려오는 alert
  • react-native-exit-app
    • App 종료
  • react-native-firebase
    • firebase
  • react-native-i18n
    • multi language
  • react-native-linear-gradient
    • linear gradient
  • react-native-modalbox
    • 웹의 모달 그것
  • react-native-navigation-bar-color
    • status bar 색상
  • react-native-permissions
    • 권한 허용
  • react-native-simple-toast
    • toat
  • react-native-swipe-list-view
    • 스와이프 가능한 list view
  • react-native-vector-icons
    • vector icons
  • react-navigation
    • navigation
  • rn-fetch-blob
    • blob 으로 fetch
    • 이게 종종 필요함. raw 타임으로 데이터 받아와야 할때
  • tfjs-react-native
    • google 의 tensorflow
  • react-native-image-picker
    • image picker