개요 Spring을 사용을 하든 안하든 우리는 프로그램을 만들어가면서 Entity → Dto, Dto → Entity 변환을 많이 사용하게 되는데 다음과 같은 행위를 객체 Mapping이라 한다. 이러한 객체 Mapping 행위를 손쉽게 할 수 있도록 이미 많은 객체 Mapping라이브러리가 존재하며, 종류는 Jackson의 ObjectMapper, ObjectUtils, JMapper등 여러개가 존재한다. 그렇다면 이 많은 것들 중에서 어떤 것을 써야할까?? 개발의 편의성을 고려한다면 ObjectMapper, ObjectUtils등 별도의 설정이나 코딩이 없는 것을 사용하는게 편할 것이다. 하지만 다음 링크를 보면 알 수 있듯이 MapStruct와 JMapper 두개의 퍼포먼스가 빠른 것을 확인 할 수..
얼마전 회사에서 개발한 Spring으로 구현 된 REST API, Apache web server에서 php로 돌아가는 서비스, expressJS로 돌아가는 서비스, Netty로 동작하고 있는 실시간 Push 서버에 동일한 보안 로직을 적용하기 위한 프로젝트를 진행하였다. 기존에는 각각의 보안 정책을 가지고 있어서 관리하기가 힘들고 또 여러개의 보안 프레임워크와 독자적으로 개발된 보안 로직을 관리 해야 했다. 서비스 되는 서비스들의 크기가 크지 않을 때는 이러한 방법이 편리할 수도 (?) 있겠지만, 이미 우리는 상당히 꽤 많은 프로젝트 들이 생겨 버려서 더 이상은 프로젝트 별 보안 로직을 관리하기가 힘들어 졌다. 그래서 프로젝트 별로 동일하게 적용되는 보안 정책과 개별 정책들을 모아서 하나의 보안 서버를..
[서론] 이번에는 두 개 영상의 시간 정보를 가지고 두 영상을 하나의 영상으로 합쳐주는 프로그램을 만들어보고 싶었다. 하나의 단일 프로그램이 아니라 서버에서 클라이언트로 부터 전달 받은 영상의 시간 정보를 가지고 새로운 영상을 생성하고 사용자는 그것을 클라이언트가 다운로드 받는 형태로 만들어보고자 했다. 영상을 직접 자르고 붙여서 하나의 파일로 만들어주는 것을 직접 구현하기 전에 사용할 수 있는 라이브러리 및 프로그램을 찾아 보았다. 그렇게 해서 찾은 프로그램이 FFMPEG이라는 영상 관련 프로그램이였는데 FFMPEG은 상당히 유명한 프로그램 이였다. FFMPEG에 대한 설명은 링크를 타고 가서 볼 수 있다. FFMPEG은 서버에 별도로 설치를 하고 터미널을 통해서 명령어를 받아서 동작을 하는데 서버에서..
[서론]프로그램 만들다 보면 보면 데이터베이스로 부터 데이터를 읽고 쓰는 작업은 필수적이라고 해도 무방할 정도로 데이터베이스에 값을 쓰고 읽는 작업을 많이 한다. 저번 포스팅에서는 Google Guice(이하 주스)를 이용한 의존성 주입을 하는 법에 대해서 알아보았다면 이번 포스팅에서는 주스를 이용해서 MyBatis와 연동하는 법에 대해서 알아보도록 한다. 해당 연동 부분은 내가 참여하고 있는 프로젝트에서 직접 사용하고자 하여 자료를 조사하고 만들었는데 자료가 충분하지 않아 고생을 한 부분이다. (혹은 내가 자료들을 잘못 이해 해서 ...) [MyBatis와의 연동]저번 시간에 의존성 주입 모듈을 만들기 위해서 InjetConfig라는 클래스가 AbstractModule을 상속한 클래스에 주입될 클래스들..
[서론]이번 프로젝트 개발 중 모듈 별로 나눠져있는 API(Application Programming Interface)에 사용자의 접근을 권한별로 처리 해달라는 요구사항을 받았다. 처음에는 스프링 시큐리티를 사용하여 API에 보안을 적용하려고 하였지만 모듈 별로 스프링 시큐리티의 설정을 하면서 개발 하기에는 비효율적이라고 판단하였다. 그래서 나는 기존 스프링 설정에 구애를 받지 않고 단일 모듈로 동작 할 수 있는 필터를 만들어서 배포하고자 하였다. 이 때 의존 주입을 구글 주스를 사용하여 스프링으로 만들어져 있는 API의 설정과 혼동되지 않도록 하였다. 이번 포스팅에서는 먼저 간단하게 구글 주스를 사용하는 방법에 대해서 설명한다. [구글 주스란?]구글 주스는 스프링이 해주는 역할 중에 하나인 의존성 주..