본문 바로가기

프로그래밍/Spring

Xplatform과 Spring Framework 연동 템플릿으로 보는 HandlerMethodArgumentResolver와 ViewResolver (6) - HandlerMethodArgumentResolver 분석(2) 저번 글에서는 HandlerMethodArgumentResolver 인터페이스에서 구현해야 하는 메소드에 대한 설명과 Xplatform 연동 템플릿에서 이 인터페이스를 구현한 클래스에 대한 설명을 진행했다. 저번 글로 설명이 모두 완료가 된것은 아니다. 이 템플릿에서 사용하는 어노테이션 3개 중 @RequestDataSetList 어노테이션에 대한 부분만 설명이 왼료되었다. 이번 글에서는 HandlerMethodArgumentResolver 인터페이스를 구현한 클래스에서 @RequestDataSet 어노테이션에 대한 처리를 설명하고자 한다. 예전 글에서도 언급했듯이 @RequestDataSet 어노테이션은 Xplatform Client가 서버에 전송한 DataSet 중에서 이 어노테이션에 설정한 Da..
Xplatform과 Spring Framework 연동 템플릿으로 보는 HandlerMethodArgumentResolver와 ViewResolver (5) - HandlerMethodArgumentResolver 분석(1) 저번 글에서는 Spring Controller의 메소드 예시를 통해 HandlerMethodArgumentResolver가 하게 되는 역할을 보게 되었다. 이전 글 예시를 보면 Spring Controller의 메소드 파라미터에 특정 어노테이션을 사용하는것만으로도 우리가 기존에 사용하던 방법을 그대로 사용할 수 있다. 저번글이 이번 글에서 하고자 하는 최종적인 목표를 얘기한거라면 이번 글에서는 그 목표를 이루기 위한 과정에 대해 알아보는 시간을 가져보도록 하겠다. 이번 연재글에서 하고자 하는 말들의 시작이라 보면 되겠다. 지금부터 시작하도록 하겠다. 먼저 HandlerMethodArgumentResovler가 하는 역할에 대한 얘기를 잠깐 해보도록 하겠다. 눈치 빠른 사람이면 이전 글을 통해 이 클래스가..
Xplatform과 Spring Framework 연동 템플릿으로 보는 HandlerMethodArgumentResolver와 ViewResolver (4) - Spring Controller에서 하려는 것 저번 글에서는 HttpServeletRequest 클래스의 Wrapper 클래스인 HttpRequestWrapper 클래스의 필요성과 제작 및 설정에 대한 설명을 했다. 이번에는 HttpRequestWrapper 클래스를 통해 전달된 Xplatform의 데이터를 Spring에서 어떻게 사용할 수 있는지에 대해 살펴보도록 하자. Spring MVC 에서는 Web Client가 전달한 데이터를 서버측에서 받아들일때 서버측에서 사용하기 좋은 형태의 타입으로 변환할 수 있다. 이때 사용되는 방법으로 2가지가 있다. HttpMessageConverter HandlerMethodArgumentResolver HttpMessageConverter 와 HandlerMethodArgumentResolver 모두 Spri..
Xplatform과 Spring Framework 연동 템플릿으로 보는 HandlerMethodArgumentResolver와 ViewResolver (3) - HttpServletRequestWrapper 이번 글에서는 이번 템플릿에서 사용하게 될 HttpServletRequestWrapper 클래스에 대해 얘길 해볼까 한다. 이것도 연재하는 내용을 알기 위한 선제지식 성격이 강하긴 한데 이전 글에서 언급하기에는 내용이 긴데다가 이 내용은 이번 템플릿에서뿐만 아니라 다른 상황에서도 쓰일 성격이 다분히 존재하기 때문에 글을 별도로 할당해서 쓰도록 하겠다. Xplatform 같은 Ria Tool 뿐문 아니라 웹브라우저와 같은 웹 클라이언트는 WAS에 접속해서 데이터를전송하게 되면 HttpServletRequest 객체가 생성이 된다. 엄밀하게 말하면 통신이기 때문에 header 정보와 body가 있게 된다. HttpServletRequest 객체에서 header 정보는 언제든 읽어올 수 있지만 body는 일단..
Xplatform과 Spring Framework 연동 템플릿으로 보는 HandlerMethodArgumentResolver와 ViewResolver (2) - 사전지식 이번 글에서는 Xplatform과 Spring 연동 템플릿에 대한 본격적인 설명에 앞서서 알아두어야 할 사전지식(?)에 대한 설명을 하고자 한다. 이 글에서 설명하는 내용을 미리 알아두면 앞으로의 글들을 이해하는데 조금은 도움이 될 것이라 생각한다. 우리가 웹프로그래밍을 하면서 서버와 클라이언트가 주고받는 데이터의 위치는 Request 및 Response의 header와 body를 모두 사용하지만 XPlatform과 서버로 데이터를 주고받을때는 body만 사용한다. 그렇기 때문에 Spring에서 사용하는 @RequestParam 어노테이션등을 이용해서 데이터를 받을 수가 없다(굳이 따지면 서버의 URL에 GET 방식으로 구성하면 받을수는 있지만 Xplatform의 VariableList가 더 사용하기에 ..
Xplatform과 Spring Framework 연동 템플릿으로 보는 HandlerMethodArgumentResolver와 ViewResolver (1) - 개요 적어도 우리나라에서 Web 개발에 참여를 해본 경험이 있는 사람이라면 Xplatform, Miplatform, Nexacro, Gauce, TrustForm, WebSquare 란 단어들 중 하나 정도는 들어본 경험이 있을것이다. 이 프로그램들은 흔히 X-Internet Tool로 통칭되는 Ria Tool들이다. 과거 Adobe에서 Flex를 출시하면서 이러한 Ria Tool의 유행을 불러일으켰지만 지금은 특정 분야를 제외하고는 사장되고 있다. 그 이유는 이런저런 업체들이 여러 프로그램들을 내놓았지만 이들 프로그램들이 전세계의 표준에 채택되지도 그렇다고 표준을 만족하지도 않기 때문이라 본다. 표준이 없이 이런저런 회사에서 만든 프로그램들로 줄구난방이 되면 개발자 입장에서도 모든 개발툴들의 문법및 동작 원..
Jenkins를 통한 Wildfly Deploy 정리 전자정부 프레임워크를 이용하든, Spring 또는 Spring Boot를 이용하든 Maven 기반으로 war파일이 나오도록 했다면 Jenkins에 작업을 만들어서 이를 Maven을 통해 빌드한뒤 결과물인 war 파일을 Jenkins에 배포할 수 있다. 배포 방법 자체도 여러개가 있는데 여기서는 Jenkins가 배포용 pom.xml을 만들어서 Wildfly에 배포하는 방법을 이야기하도록 하겠다. 기본적인 내용은 여기에서 참조했다. 설명하는 내용은 내가 참조한 사이트에서 설명이 없어서 언급이 안되어 있는 부분에 대해 좀더 디테일하게 설명하도록 하려 한다. 내가 참조한 사이트에서 사용한 방법의 핵심은 Jenkins의 build step에서 배포용 pom.xml을 만드는 shell script를 실행한뒤 mav..
Spring Boot, IntelliJ, Docker Wildfly 연동과 관련된 정리 IntelliJ를 이용해서 Spring Boot와 Docker에서 실행중인 Wildfly를 연동해서 개발하는 방법에 대한 내용을 적어보기로 한다 먼저 IntelliJ에 Docker에서 실행중인 Wildfly container를 연동하는 개발방법에 대해서는 여기에 언급이 되어 있어서 별도의 설명은 하지 않도록 한다. 다만 링크되어 있는 글에 대한 방법을 따라 하면서 내가 시행착오(?)를 겪어본 일들에 대해서만 설명하도록 하겠다. 위의 링크를 읽어보면 wildfly를 자신의 PC에 설치되어 있는 wildfly를 이용하는 것이 아니라 docker wildfly 이미지를 별도로 만들어서 하고 있다. 이 부분때문에 docker에 대한 이해가 필요한 부분이 있다. 나의 경우는 docker hub에 올린 내가 만든 ..