본문 바로가기
반응형

슬기로운 자바 개발자 생활/스프링 및 자바웹 서비스34

spring boot soap wsdl 서비스 만들기 목표1. SPRING-WS 기반 WSDL 파일을 제공해서 SOAP 통신을 하고자 한다.2. 서버(WAS) 구성을 해보고 이후, war로 묶어서 톰캣에 올려 놓는다.3. 이후 클라이언트를 만들어서 통신을 해본다. Apache Axis, Apache CXF 등의 프레임워크들도 존재하며 Spring ws보다 더 간단할 수도 있다. 구현spring-ws로 서버가 되어 서비스를 만들려면 xsd 파일을 만들어서 자바 파일로 변환하는 과정을 거쳐야 한다.cxf나 axis 프레임워크의 경우 자바객체에 어노테이션만 붙여주고 몇가지 설정만 한다면, 손쉽게 wsdl를 만들어준다. 1. Rest-api가 나오기 전 xml 기반의 SOAP Simple Object Access ProtocolOAP는 HTTP, HTTPS, SM.. 2024. 6. 9.
스프링 프레임워크 기본 다지기 스프링프레임워크 기본 다지기 일을 하다가 가끔씩 명확하게 개념을 정리를 해둬야겠다고 마음먹었는데... 드디어 오늘 짧게나마 정리를 해보려 한다. 스프링 컨테이너와 빈 내 생각에는 용어와 개념이 꽤 중요하다고 생각하기는 하지만 활용하는 능력이 없다면 의미 없다고 본다. 결국 프로그래밍 100가지를 할 줄 알아도 사람들이 사용하는 서비스가 아니라면 의미가 없지 않을까 싶다. 스프링 프레임워크를 접하게 되면 자주 나오는 용어가 컨테이너, 빈, Ioc, DI 다. 최대한 간단하게 알아보자Ioc (Inversion of Control)대부분 제어의 역전 이라는 이해하기 힘든 말로 설명한다. Ioc를 제대로 이해하기 위해서는 디자인패턴에 대해 약간의 공부가 필요하다. 또는 프로그래머로써 일을 해왔다면 더욱 쉽게 이.. 2023. 6. 24.
Java map object value to integer Casting Java map object value to integer Casting 프로젝트를 하고 있는데 이곳은 패턴을 Map을 사용해 데이터베이스에서 값을 가져온다. 한때 Vo객체와 Map객체 패턴을 놓고 뭐가 더 좋네 말들이 많았던 기억이 있는데 내 입장에서는 뭐든 관계없다. 다만, 숫자로 계산을 하는 서비스를 만든다고 한다면 두 패턴의 장단점을 잘 이해하고 사용해야 한다. 데이터베이스에서 Map형태로 값을 가져오게 되면 Number 타입들은 BigDecimal 형태로 Map Object에 담기는 것으로 보인다. 자바로 가져와 Number 값들을 비교나 연산을 하게 되는 어떤 로직들이 들어가게 되면 꼭 숙지해야 된다. 뭐든 캐스팅이 될줄 알았는데 int 캐스팅은 먹질을 않고 to_String을 사용하지 않고 .. 2023. 6. 15.
스프링부트 WebFlux 스트리밍 스프링부트 WebFlux 스트리밍 간단하게 스프링 부트 Reactive 예제를 만들어 보고 어떤 느낌? 서비스? 인지 알아보도록 한다. 스프링부트에 리액티브 방식(기술)이 추가된 것을 설명하려면 많은 사전지식과 근 10년 내외의 IT서비스 상황을 이해해야 하므로 글이 너무 길어질 수 있으므로 우선은 모노리틱 아키텍처의 한계를 극복하고 MSA(마이크로 분산서비스)에 적합한 대안? 또는 기술 정도로만 이해하고 있자. 솔직히 내 생각에는 리액티브 프로그램을 제대로 이해하려면 IT전반의 배경지식도 필요하지만, 블럭킹과 논블럭킹, 동기와 비동기, 스레드와 프로세스까지 어느 정도 깊이 있게 이해를 해야만 제대로 된 이 기술을 익힐 수 있고 왜 익혀야 하는지 동기까지 가질 수 있다. 모두들 러닝 곡선이 가파르다고 하.. 2023. 6. 11.
Mybatis에서 Oracle Procedure 사용 요즘 추세가 DB 프로시져를 사용하지 않고 자바에서 비즈니스 로직을 처리한다. 복잡한 테이블 관계가 얽혀 있는 업무라면 많은 제약이 따른다. 헤더와 라인 테이블이 있다. 헤더 테이블 1,000개의 row 데이터를 조회하면서, 실시간으로 어떤 집계 작업을 row 단위로 해서 금액을 만들어 보여줘야 한다. 라인테이블에 금액이 존재하는데 약간의 계산이 필요하다. 기준정보 테이블 3~4개 정도 뒤진다. 자바 메모리 자체에 데이터를 들고 있지 않는 이상. database와 통신을 여러 번 하면서 1,000번을 돌려야 하기에 이런 경우는 DB 프로시져나 펑션을 가미해서 만든 로직의 속도를 자바로 만든 프로그램이 이길 수가 없다. 어떤 작은 프로젝트에 참여하게 됐는데, ASIS 서비스에서는 DB프로시져로 되어 있는 .. 2023. 6. 4.
스프링에서 oracle declare 문 사용해보기 스프링에서 oracle declare 문 사용해 보기 절차지향 언어인 PL/SQL 과 객체지향 언어인 JAVA 스프링 프레임워크가 일반화되면서 많은 프로젝트에서 DB 프로시져나 DB Function 사용을 자제하고 자바서비스 부분으로 비즈니스 또는 복잡한 계산 프로그래밍을 넣는 방식으로 바뀌고 있다. 추세가 그렇게 변하는 이유는 꽤 많다. DataBase는 비싸고 웹서비스 쪽은 가격이 그에 비해 저렴하기도 하며, 비즈니스 로직을 데이터베이스에 되도록 의존적이지 않게 만들게 되면 스케일업이나 확장 및 이관도 용이한 면이 존재한다. 또한 개발자들이 객체지향과 데이터베이스의 절차지향 프로그래밍 방법으로 인해, 프로그래밍 패러다임이 엇갈려 많은 고뇌를 할 수밖에 없던 상황을 벗어날 수 있게 도와주는 JPA도 일.. 2023. 5. 14.
반응형