전체 글

전체 글

    multipartForm 415 에러..

    이미지 파일 전송을 위하여 multipartForm을 사용하였고, 이미지와 관련된 데이터들을 json 데이터와 함께 서버로 post 요청 하였다. 하지만 .. HttpMediaTypeNotSupportedException 발생.. 뭐지?? 컨텐트 타입과 관련된 415 에러였다.. 왜 발생한것일까..? 알아보니 byte값을 역직렬화 하는 MultipartResolver에서 스트링 값이 오니 오류가 난 것으로 추측된다. 스프링에서 @RequestPart의 역직렬화는 MultipartResolver로 진행된다. 하지만 나는 서버단에서는 @RequestPart를 사용하고, 클라이언트 단에서는 기존 http 통신을 하듯이 json을 스트링 값으로 보내서 해당 에러가 발생한 것이다. 따라서 @RequestPart ..

    JPA nativeQuery interface 리턴

    당근 마켓 클론코딩중 거리 계산을 위해 ST_Distance_Sphere()를 사용하기로 했다. ST_Distance_Sphere()는 jqpl에서는 동작하지 않으므로 nativeQuery를 사용해야 했다. 뭐 평소에 사용하던 jqpl문에서 실제 쿼리문으로만 약간만 변경 한 뒤, nativeQuery 옵션만 true를 넣어주면 실행될 꺼라 생각했다. 하지만 오늘도 여지없이 오류가 발생.. native쿼리 구현 후 dto로 리턴받으려고 하니 문제가 발생하였다. 아차.. jpql에서 사용하는 방법인 new 패키지.dto생성자 전략을 사용하니 당연히 문제가 될 수 밖에 없었다.. 허허 이후에 검색해 보니 nativeQuery에서는 인터페이스로 가져오는 방법이 존재하였다. 따라서 아래와 같이 구현! @Query..

    Java CallByValue vs CallByReference

    Call-By-Value, Call-By-Reference란? CallByValue: 메소드 호출시 변수의 ‘값’을 전달하는 방식 (메소드 호출시에, 피호출자 메서드의 매개변수에 (본래) 호출자 변수의 복제값을 전달 하는방식) CallByReference: 메소드 호출시 변수의 주소값을 전달하는 방식 (피호출자 메서드의 매개변수에 (본래)호출자 변수의 주소(고유 식별자)를 메서드로 전달하는 방식) JVM 메모리에 변수가 저장되는 위치 먼저 Java에서 변수 생성 시 메모리에 어떤 식으로 저장되는지 알아보자. Java에서 변수를 선언하면 Stack 영역에 할당된다. 여기서 변수가 원시 타입(Primitive Type)이라면 Stack 영역에 변수와 함께 저장된다. 반면에 참조 타입(Reference Typ..