• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

회사 비지니스 공통업무처리 관련 유용한 라이브러리 들이 있는지 여쭤봅니다

23.03.30 11:11 작성 조회수 308

0

안녕하세요 토비님~

이번에도 강의 내용과 상관 없는 질문 드립니다

회사에서 타임리프 + JPA + 마이바티스 + 스프링/스프링부트 + 오라클 환경에서 개발하고 있습니다

 

MVC CRUD, API 송수신, 특이업무를 제외하고는

 

보통 회사에서 일어나는 공통업무는 아래와 같은 부분이 있다고 생각 합니다

*.엑셀다운

*.엑셀업로드

*.이메일전송(첨부파일포함)

*.PDF다운

*.FAX전송

*.출력

 

다른 분들이 먼저 개발해 놓은 소스를 참고해 가며

개발 수정 운영을 하고 있는데요

 

제가 느끼기에는 뭔가 불필요한 소스 코드가 많고 긴 건 아닐까?..

누군가 잘 만들어 놓은 라이브러리 메서드에 파라미터만 담아주고

호출 하면 되진 않을까 생각이 들었습니다

 

혹시, 아래와 같은 공통 업무 사항들에 대해서 스프링 진영에서

Util 성격으로 잘 만들어 미리 만들어 놓은 좋은 라이브러리가 있지는 않 을까 생각이 듭니다

(엑셀업로드,다운로드/이메일송수신/PDF/FAX/출력 .. )

회사마다 환경이나 요구 상황에 따라서 다르겠지만,

토비님은 이런 공통 비지니스 업무 관련

엑셀업로드,다운로드/이메일송수신/PDF/FAX/출력 관련 공통 비지니스 업무 관련해서

스프링 진영에서 혹시 이미 만들어 놓은 라이브러리 의존 관계를 추가해서

사용하고 계시는 부분이 있나 여쭤봅니다

 

만약 사용하고 계신다면 어떠 어떠한 것들이 있는지 소개 부탁 드립니다

 

급한 질문 아닙니 시간 나 실 때

알려주시면 감사하겠습니다. 수고하세요.

--█●●--------------------------------------------

#엑셀

#이메일

#PDF

#FAX

#출력

#스프링

#스프링부트

#부트

#spring

#sping-boot

#springboot

#토비

#공통

#라이브러리

--█●●--------------------------------------------

답변 1

답변을 작성해보세요.

1

언급하신 "엑셀업로드,다운로드/이메일송수신/PDF/FAX/출력" 등은 업무에서 많이 쓰이죠.

각각 자바의 표준 기술 또는 오픈소스, 상용 서비스 중에서 필요한 라이브러리나 API를 이용하시면 됩니다.

스프링은 이런 기능을 따로 지원하지 않습니다. 스프링은 애플리케이션의 근간을 만드는 책임을 담당하고, 구체적인 기능은 스프링 외의 기술을 이용하셔야 합니다.

이메일의 경우는 SMTP 프로토콜을 직접 사용한다면, 자바 표준에서 지원하는 기능이 있는데 스프링이 이를 조금 편하게 사용하도록 추상화해놓은 방식이 있습니다. 그 이상의 기능이 필요한 경우, 혹은 클라우드 이메일 발송 서비스 등을 이용하는 경우라면 스프링에서 지원하는 기능은 따로 없으니 각각 기술을 검색해서 사용방법을 찾아 적용하셔야 합니다. 발송 외에 수신도 한다고 하면 풀 이메일 서비스를 만들 것인가에 따라서 여러 선택지가 갈라질 수 있습니다.

다운로드는 자바 표준 웹 기술을 이용해서 간단히 구현할 수 있는 것이므로 참고할만한 샘플을 찾아서 스프링 MVC에 적용하시면 됩니다. 다운로드 자체가 문제가 아니라, 파일을 어디에 저장을 하고 어떻게 내려줄 것인지가 핵심인데, 이것 역시 스프링이 따로 지원하지 않습니다. 수많은 방법들이 있으니 검색해서 찾아보시고 활용할 기술을 선택하시면 됩니다. 클라우드 스토리지 서비스를 이용하시면 간편하기는한데 보안이나 비용 등등의 문제가 있을 수 있고, 또 그 기술을 사용하기 위한 SDK나 API를 학습하셔야 합니다. 스프링에서 다 쓸 수 있으나 스프링이 직접 지원하지 않습니다.

PDF는 자바 오픈소스로 나온 기술이 많이 있습니다. HTML로 만든 뒤에 변환하는 것도 있고, PDF 문서를 자바 코드로 직접 만드는 방법도 있습니다. 혹은 프린팅 기술을 쓸 수도 있겠죠. 역시 스프링이 직접 제공하는 기능은 없으니 기술을 검토하시고, 테스트 해보고 사용할 기술을 선택하셔야 합니다.

FAX는 대부분 클라우드 서비스 등을 활용하는 것으로 알고 있습니다. FAX 기능은 안 써본지 20년이 넘어서 최근엔 뭘 이용하는지는 잘 모르겠네요.

출력은 자바 표준 기술을 이용하면 됩니다. 역시 여러가지 방법이 있고, 라이브러리도 있습니다.

엑셀도 유명한 자바 오픈소스 기술을 사용하시면 됩니다. 검색해보시면 여러 개 발견하실 수 있습니다. 엑셀을 직접 만드는 것도 가능하고, csv형식으로 다운하는 방법도 많이 쓰입니다. 엑셀 다운로드 말고 업로드도 많이 사용될 겁니다. 최근엔 엑셀 대신 api를 이용해서 구글 스프레트시트를 활용하는 경우도 있습니다.

이런 공통적으로 보이는 기술들을 어디서 간편하게 정리해서 지원해주면 좋겠다 싶습니다. 하지만 실제 현장의 요구에 맞는 방식이라고 하면, 어디에서나 잘 들어맞는 방법은 존재할 수가 없습니다. 그래서 그때그때 최신, 최선의 기술을 찾아서 개발팀 또는 자신만의 기술 툴박스와 샘플 등을 만들고 활용하는 수 밖에 없습니다.

저도 매번 프로젝트를 할 때마다 더 나은 방법이 있는지 찾아보고, 특별한게 없으면 기존 방식을 재사용하거나, 더 적합한 게 보이면 최신 기술을 선택하기도 합니다. 그래서 프로젝트 할 때마다 매번 달라집니다. 그래서 이런 걸 할 때는 딱 이걸 쓰면 된다는 안내를 드릴 수가 없고, 제가 쓰는 걸 알려드려도 적용하시려는 환경에 맞는다는 보장도 전혀 없습니다. 간단한 메일 발송 하나를 한다고 해도, 요구조건과 비용 예산, 각종 부가 기능 필요 등에 따라서 다른 선택을 해야 합니다.

이런 요구를 해결하기 위해서 기술을 찾고, 검토하고, 선택해서 사용하는 훈련을 하는 것이 개발자로서 중요한 실력일 것입니다.

김동희님의 프로필

김동희

질문자

2023.03.30

토비님 친절하고 자세한 설명 감사드립니다 .

감사합니다. 수고하세요~