본문 바로가기

전체 글

(85)
[Spring] 메이븐(maven) 멀티모듈(multi-module) 활용 최근 프로젝트에서 사용자용 모바일 웹앱 , 그리고 어드민용 웹 개발을 진행하게 되었다. 최종적으로 두개의 war 파일을 배포해야 하기 때문에 멀티 모듈을 사용하기로 하였다. 이번에 진행한 멀티 모듈 구조는 간략하게 아래와 같다. 사용자용 어플리케이션, 관리자용 애플리케이션인 각 서비스의 시작점인 controller를 생성한다. 각 어플리케이션 컨트롤러에서는 공통 소스(core)에 있는 서비스를 호출한다 그럼 위 기준으로 프로젝트를 생성하고 모듈을 추가해보도록 하겠다. IDE는 IntelliJ를 사용하였다. 1. TOP 프로젝트 생성 File -> New -> New Project 선택 Maven 선택후 Next 프로젝트명 입력후 Finish 아래와 같이 프로젝트가 생성된 것을 확인한다. 2. Module..
[JAVA] DB 에서 파일 경로 불러와 화면에 이미지 출력 DB에서 파일경로를 가져와 Base64 로 인코딩하여 화면에서 이미지를 출력하는 예제이다. FileUtil.java public static byte[] convertFileContentToBlob (String filePath) { byte[] result = null; try { result = FileUtils.readFileToByteArray( new File(filePath)); } catch (IOException ie) { log.error("file convert Error"); } return result; } public static String convertBlobToBase64 (byte[] blob) { return new String(Base64.getEncoder().enco..
[전자정부프레임워크] properties 설정 정보 불러오기 최근 전자정부프레임워크를 사용하여 프로젝트를 진행중이다. SpringBoot 사용할때는 .properties 파일에 설정정보를 넣어놓고 사용했는데 전자정부프레임워크에서는 xml 을 이용하여 설정정보를 저장하고 이를 사용할 수 있도록 되어있다. egovframwork 로 프로젝트를 생성하면 resource 밑에 아래와 같은 구조이다. 여기서 설정정보는 context-properties.xml 에 작성하면된다. 나의 경우에는 파일경로를 저장해두고 불러오기 위해서 사용하였다. 1. 설정정보 입력 위와 같이 fileUploadPath 라는 설정정보를 추가하였다. 2. propertiesService 호출 사용하려는 클래스에 아래 내용을 추가한다. @Resource(name="propertiesService") ..
[Babel] Babel 의 역할, 기본적인 사용법 이번에 프론트엔드 프로젝트를 진행하며 BABEL 을 사용하게 되었다. 이전 프로젝트에서 리액트를 하면서 사용해보긴 했지만 별다른 설정없이 리액트에서 생성해주는 설정그대로 사용하다보니 자세하게 알아보질 못했다. 이번 기회에 바벨에 대해서 재대로 공부해보고 싶은 마음이 들어 포스팅을 하게 되었다. 자바스크립트는 매우 빠르게 발전하고있다. 하지만 그만큼 브라우저가 따라가지를 못한다. 몇해전 큰 변화를 불러왔던 ES6(ECMAScript2015) 도 2015년 6월에 발표되었다고 한다. 하지만 국내에서 많이 사용하는 IE 와 같은 구형 브라우저는 지원하지 않는다. 따라서 최신 자바스크립트 문법을 모든 브라우저에서 사용할 수 있는 형태로 변환할 수 있는 transcomplier 가 필요하게 되었다. 그중에서 가장..
[Spring Secutiry] Invalid CSRF token found for... Spring Security 를 사용하여 개발중 Invalid CSRF token found for... 와 같은 에러가 발생하면서 로그인이 진행되지 않았다. CSRF는 Cross-site request forgery (크로스-사이트 요청 위조) 이다. 위 문제를 해결하기 위해서는 CSRF Token 추가해야한다. 서버에서는 해당 토큰을 받아 세션에 추가한후 이후에 요청 파라미터의 토큰값과 세션의 토큰값을 비교하여 일치하는지 검증해야한다. 1. maven dependency 추가 org.springframework.security spring-security-taglibs ${secutiry.version} 2. taglib 추가 3. form 태그 안에 csrf 추가
[도커]Docker 컨테이너에 vi(편집기) 설치 이번에 도커에 오라클을 설치하여 개발환경을 구축하고 있다. tnsnames.ora 를 수정하려고 하는데 vi 명령어가 동작하지 않는다. 기본적으로 설치되어있지 않은것같아서 별도로 설치해보았다. 1. 컨테이너 bash 접속 docker exec -it ‘컨테이너명’ bash 2. apt-get 업데이트 apt-get update 3. vim install apt-get install vim 4. vim 실행 vim tnsnames.ora 5. 결과
[전자정부프레임워크] Oracle log4jdbc 로 쿼리로그 출력 환경 DB : Oracle 11g XE Framework : egovFramework 3.8 ojdbc 버전 : ojdbc6 1. pom.xml 에 dependency 추가 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 2. context-datasource.xml 수정 driverClassName 과 url 이 수정된다. 변경전 변경후 3. resource 경로 밑에 log4j2.xml 이 없을 경우 추가 사용자 환경에 따라 log level 를 지정한다. 아래는 stackoverflow 에서 가져온 표이다. 로그레벨을 지정할때 참고하자. 개발할때는 DEBUG 가 유용하다.
[도커]MAC DOCKER ORACLE 설치 도커설치 https://hub.docker.com/editions/community/docker-ce-desktop-mac 맥 버전 설치 terminal 로 설치할 수 도 있지만 위 설치하는 프로그램은 GUI 환경을 제공하기 때문에 직관적으로 실행되고 있는 컨테이너를 확인할 수있다. 처음설치해보는거라 모든 기능을 현재 활용할 수 없지만 익숙해지면 좋을것같다. 오라클 컨테이너 설치 설치가능한 오라클 확인 docker search oracle 위 리스트 중에서 Start 가 제일 높고 설치하고자 하는 XE 버전인 oracleinanutshell/oracle-xe-11g 설치 오라클 설치 docker pull oracleinanutshell/oracle-xe-11g 컨테이너 실행 docker run --nam..