본문 바로가기
반응형

프로그래밍/Spring71

Springboot 3.0 Maven, QueryDSL설정 자료. 오늘, 책을 보며 따라하기 중, QueryDSL설정 부분이 제대로 되지 않아 몇 시간 휭~ 하고 날렸다. 덕분에 시간은 아주 잘 갔고 즐거운 금요일이 되긴했지만 참 요상한 일이었다. 알고 보니, 스프링부트의 버전에 따른 QueryDSL설정의 방법이 달라진 것 같다. 검색 자료들의 대부분이 같은 오류를 내뱉지만 해결은 수월했다. gradle프로젝트에서는 다양한 해결책이 검색 결과로 많았지만, maven 설정에 대한 자료는 많지 않았다. 아마도 그만큼 메이븐을 이제는 많이 사용하지 않는것인가? 하여튼, 누군가도 나와 똑같은 현상을 겪었고 해결했다는 내용을 올렸지만 그대로 따라 했을 때 나는 되지 않았다. 차이점을 찾기 위해 이런 저런 버전들을 계속 바꿔가면서 시도를 했는데... 3시간만에 감잡고 원인을 해결.. 2023. 4. 28.
@Transient 사용 예, - Entity클래스에 임시 프로퍼티 정의할 때 지난번 MSA관련 책을 읽을 때 JPA파트에서 얼핏 읽었던 것 같아 기억을 더듬어 검색을 해보니 기억이 맞았다. 이번에 1.0서비스의 데이터베이스 중 일부 테이블의 데이터를 2.0으로 마이그레이션을 해야하는 일이 있는데, SQL에서 하는 것이 아니라 사용자별 마이그레이션이고 어플리케이션 단에서 처리를 해서 마이그레이션을 해야 하는 상황이다. Legacy 테이블의 Entity에서 2.0 테이블로 마이그레이션을 위해 로직을 구현하다 보니, 건당 repository조회를 해야할 상황이 너무 많아, 최초로 조회해 리스트를 순환하면서 해당 Entity클래스에 필요하는 관계를 맺은 객체(Entity)를 담아, 최종적으로 save()를 하면 좋겠다는 생각이 들었다. Legacy 테이블의 Entity에 정형화 되지 않.. 2023. 4. 12.
Java/Spring 클라이언트 IP 구하는 함수 아련하지만, 몇 년 전 스프링부트 프로젝트를 할 때 신입사원이 아이피를 구해 테이블에 저장한 것을 보고 이상하다며 이의를 제기했던 일이 생각났다. 오늘 프로젝트 검색 API를 외부에 열어주어야 하는데, 원격 호출하는 IP에 대해서 예외처리를 하고자 클라이언트 IP를 구하는 함수를 보면서 정리해두면 좋겠다는 생각이 들어 간단하게 요약, 정리를 한다. public static String getClientIP(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if (ip == null) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null) { ip = req.. 2023. 2. 9.
스프링 웹 플로의 데이터 범위의 유형 흐름을 따라 이동하는 데이터는 변수의 범위(scope)에 따라 다양한 수명과 가시성을 갖는다. *가시성이란? 눈에 띄는 정도를 말하며, 관련된 부분을 눈에 보이게 하고 비가시적인 것을 가시적으로 만들어 의도된 행위와 실제의 조작이 대응하도록 한다. 2020. 9. 24.
스프링 웹 플로의 상태 유형 일을 하다보면 참 다양한 기술을 다루게 된다. 이번에는 스프링 웹 플로다. 상당히 예전(?) 기술 같은 느낌인데 서비스의 유형에 따라 적절하게 채용하고 응용한다면 효율적으로 서비스를 구축할 수있을 것 같다. 그래서 공부를 시작한다. webFlow에서 상태의 중요성에 대해 앞으로 계속 찾아보게 될 것 같은 이론인데 표로 정리된 내용을 올려두고 지속적으로 읽어보면 좋을 것 같다. 2020. 9. 24.
ObjectMapper Map to JSON String JSON String to Map 변환 매번 하나 하나 할 때마다 새롭다. ^^; 좋은건가? 특정 URL을 크롤링하기 위해서 파라미터를 생성하는 작업만 하는데 수십분이 소요되고 있어서 시간을 줄여보고자 최초 1회에 한하여 수집되는 파라미터 정보를 csv파일에 적재시키고 그 다음부터는 csv파일을 읽어서 처리를 할려고 한다. csv파일 생성/읽기는 메이븐 의존성을 추가해서 해결을 했다. com.opencsv opencsv 4.1 다음은 Map으로 만들어진 ArrayList에 있는 정보를 JSON스트링으로 변환을 해서 저장을 하려고 한다. try { ArrayList parameters = data.getParameterList(); ObjectMapper mapper = new ObjectMapper(); String json = ""; Str.. 2020. 2. 28.
반응형