인텔리제이 스프링 부트 배포 WAR JAR 외부 톰캣 404 에러 처리

이미지
인텔리제이를 이용해 개발한 스프링 부트 프로젝트 배포와 외부 톰캣 구동시 404 에러 확인 결과 포스팅 솔루션 이 포스팅은 인텔리제이 스프링 부트 배포를 하는데, 자체 서버 WAS의 톰캣에 배포하는 과정에서 발생하는 404에러 처리를 하면서 느낀 부분을 정리하였습니다. 구글에서 이미 관련 검색으로 나온 솔루션을 했는데도 안됐거나 JAR와 WAR 구분 등 기본적인 것들에 대해 제가 느끼고 해결한 부분에 대해 정리하였습니다. 인텔리제이 스프링 부트 배포 이클립스에서 스프링으로 개발하다 스프링 시큐리티를 사용하지 못해 급하게 스프링 부트로 마이그레이션 작업을 진행하게 되었습니다. 그와 더불어 개발툴도 인텔리제이로 바꿨는데, 처음부터 다시 시작하는 느낌이 들었으나 금새 적응하고 이클립스보다 편한 부분들이 보여 잘 바꿨구나 싶었습니다. 어느정도 마이그레이션 작업이 끝나고, 이제 배포를 해볼 차례가 되었는데요. 배포 방법에는 몇가지가 있는 것 같은데 내가 한 방법에 내가 실패하고 성공한 방법을 정리하려고 한다. 배포 파일 확장자 JAR WAR 자바 어플리케이션을 배포할 때 나오는 JAR와 WAR 파일 확장자 이며, 압축파일의 형식으로 보입니다. 스프링 부트 기준 JAR의 경우에는 WAS인 톰캣이 내장되어 별도의 WAS에 얹거나 할 필요 없이 실행시 바로 접속할 수 있습니다. WAR의 경우에는 별도의 톰캣 서비스의 webapps 폴더 등에 올려서 사용하는 방식으로 사용합니다. 인텔리제이 스프링 부트 배포 인텔리제이를 처음 사용해 배포 방법조차 낯설고 어렵게 느껴져 검색으로 취득한 정보들을 토대로 정리해보겠습니다. 의존성 주입 방법으로 build.gradle.kts로 코틀린 방식의 의존성 주입이라고 하는데, 같은 듯 달라 보입니다. 그리고 스프링 부트...

제브라 라벨 프린터 웹 브라우저 출력 기능 구현 정리

이미지
 제브라 라벨 프린터를 웹 브라우저를 이용한 웹 어플리케이션에서 출력하는 기능을 구현하는 개발 방법에 대해 정리하는 시간 가져볼게요. 제브라 라벨 프린터 웹 출력 라벨 프린터는 제조업 또는 물류에서는 거의 필수로 사용하는 제품 중 하나일텐데요. 저희는 제브라 라벨 프린터를 기본으로 많이 사용하고 있습니다. 기존 C# 등 윈도우 프로그래밍에서는 윈도우 프린터 디바이스에 쉽게 접근하고 프린팅 명령도 날릴 수 있는데요. 웹 브라우저를 통해서 출력하게 되면 이야기가 조금 달라집니다. 기본적으로 브라우저의 보안 정책상 클라이언트의 장치에 접근하기가 쉽지 않고, 일반적인 프린팅은 웹 브라우저 프린트 대화상자가 나와 ZPL을 이용한 출력은 불가능에 가깝습니다. 이번에 웹 어플리케이션에서 제브라 라벨 프린터를 ZPL을 이용해 바코드 및 라벨 출력하는 기능을 구현한 내용을 정리해보도록 하겠습니다. Zebra Browser Print 설치 우선 제브라 라벨 프린터를 웹에서 출력하기 위해서는 Zebra Browser Print 프로그램을 설치해야 합니다. Windows용 Zebra Browser Print 공식 사이트 Zebra Browser Print는 라벨 프린트를 사용할 클라이언트에도 설치를 해야 라벨 출력이 가능합니다. 윈도우 하단의 백그라운드 프로그램 목록에 실행되어 있으며, Setting 메뉴에 들어가보면 제브라 프린터 목록이 보입니다. settins 부분의 Device 및 Accepted는 코드 구현되면 채워지게 됩니다. 이외에도 Accepted Hosts 목록이 보이게 되는데요. 이 목록에 포함이 되어야 제브라 라벨 프린터에 프린터 명령을 보낼 수 있습니다. Localhost의 경우에는 문제 없이 가능하지만, 현재 설치된 시스템외에 타 서버에서 구동하는 웹사이트의 경우에는 CO...

https 사용을 위한 SSL 사설 인증서 발급 및 톰캣 적용 방법

이미지
https 프로토콜을 사용하기 위해 유료로 구매하는 SSL인증서가 아닌 openssl을 이용해 자체 서명 발급한 인증서를 이용해 WAS 톰캣에 적용해 https 프로토콜을 사용하는 웹 사이트를 구현해봤습니다. https 프로토콜 https 프로토콜을 말하기 전에 우선 http 프로토콜에 먼저 알아야겠습니다. 우리가 웹브라우저를 통해 네이버나 구글에 접속해서 콘텐츠를 보는 이러한 행동들은 모두 하나의 웹문서(html)을 바탕으로 합니다. 이런 웹문서를 클라이언트에게 보여주고 상호작용을 하기 위한 통신 규약을 http프로토콜이라고 하는데요. 이런 http에 보안 기능을 더한것이 https 프로토콜입니다. https 프로토콜은 SSL인증서를 발급받아 웹서버에 설치해서 사용할 수 있습니다. 대게 공인 인증된 SSL인증서는 유료로 구매해야 합니다.  저는 비용 발생없이 https 프로토콜을 사용할 일이 있어 자체 서명 인증서를 생성하고 그 인증서를 톰캣에 적용해보는 작업을 해봤습니다. 자체 서명 인증서 발급 과정 openSSL 프로그램 설치 자체 서명 인증서 발급 톰캣 적용 개인 사설 인증서 발급 프로세스 우선 자체 서명 인증서를 발급하기 위해 openSSL 프로그램 을 다운로드하고 설치해 줍니다. openSSL 자체 서명 인증서 발급 설치 후 cmd를 관리자 권한으로 실행 시켜 준 후 설치 경로의 bin 폴더로 이동합니다. 기본 설치 경로 - C:\Program Files\OpenSSL-Win64\bin 1. 개인키 발급 openssl genrsa ...

시놀로지 NAS 활용 DNS 서버 설정 도메인 구매 없이 도메인 사용 설정

이미지
 시놀로지 나스를 이용해서 DNS서버를 설정하는 방법과 함께 도메인 구입 없이 내부망 폐쇄망에서만 사용할 도메인 설정 방법까지 정리하는 시간 가져볼게요. DNS 서버란 DNS서버란 인터넷에 연결된 기기는 모두 숫자로 된 IP주소를 가지게 됩니다. 우리가 흔히 브라우저에 입력하는 naver.com google.com 등 인터넷 주소도 사실은 다 ip주소로 되어 있습니다. naver.com google.com으로 입력하게 되면 DNS 서버에서 naver.com google.com에 포함된 IP주소로 변환하여 접속하게 되는 구조로 되어 있죠. www.naver.com 과 같은 주소를 가지고 서버에 접속하게끔 IP주소로 변환해주는 역할을 하는 DNS 서버 여기서 DNS서버는 우리가 흔히 알고 있는 문자주소와 그에 해당하는 IP주소의 연결고리를 기억하고 요청이 오면 해당되는 주소를 찾거나 이를 변환해서 제대로된 목적지로 안내하는 역할을 합니다. DNS 서버 구축 목적 DNS 서버는 특별한 이유가 없다면, 통신사에서 운영하는 DNS서버 주소를 설정하게 됩니다. 대표적으로 168.126.63.1로 통하는 KT 코넷 DNS주소를 설정하게 되는데요. 그 이유는 IP주소와 인터넷 주소의 맵핑 정보를 사설 주소보다는 빠르게 갱신되기 때문입니다. 저의 경우는 DNS 서버를 직접 구축했어야 하는 이유 중 하나는 내부망 즉 회사 네트워크안에서만 사용되는 도메인 주소를 이용하기 위해서입니다. 도메인 구매 없이 특정 주소를 입력했을 때, 지정한 내부 네트워크의 서버로 연결되게 하기 위함입니다. 시놀로지 나스 활용 DNS 서버 설정 시놀로지 나스는 ...

포티게이트 방화벽 DNS 설정 내부망 폐쇄망 도메인 사용 방법

이미지
포티게이트 방화벽 장비를 사용해서 내부망에서만 사용하는 도메인 주소를 설정하는 DNS 세팅 방법에 대해 공유해보고자 합니다. 내부망 도메인 사용 사내 내부망에서만 사용하는 웹 페이지를 이클립스를 통해 개발하였습니다.  매번 C#만 만졌었는데 이번에 HTML, CSS, 자바스크립트를 이용해 모듈을 하나 완성했는데요. 서버 하나에 톰캣으로 웹 서비스를 올리기까지 완료했습니다. 이제 직원들 업무에 사용할 수 있게 해야 하는데, IP주소로 접속하라고 하기에는 뭔가 없어 보여 회사명으로 된 도메인으로 접속하게끔 하고 싶은 욕구가 생겼습니다. 도메인을 구입하면 되겠지만, 어차피 사내 폐쇄망에서만 사용할 예정이고 보안적인 부분도 있엇 외부접속이 안되게끔 해야 하는 상황이었습니다. 윈도우 hosts 파일 수정 가장 간단한 방법입니다. 윈도우 hosts 파일에 서버측 IP주소와 함께 도메인을 적어주면 되는데요. 클라이언트에서 요청시 도메인보다 먼저 hosts 파일을 확인해 IP주소와 도메인 주소를 맵핑해줍니다. 간단하지만 모든 클라이언트에 설정해줘야 의미가 있습니다. 윈도우 hosts 파일은 windows\system32\drivers\etc 에 위치해 있습니다. 제일 간단하지만, 이 hosts 파일을 각 클라언트 즉 직원들 PC마다 설정을 해줘야 하는 번거로움이 있고, 각 개인 PC를 중앙에서 관리하는 관제 솔루션이 없는 우리로써는 너무 비합리적인 방법으로 보입니다. 포티게이트 방화벽 DNS 설정 포티게이트 방화벽을 사용중이라면, 관리자 콘솔에 접속시 DNS 설정 메뉴들이 보입니다. 포티게이트 방화벽 장비가 DNS로써의 역할은 하지 않는다고 하는데, DN...

https를 쓰는 이유 SSL 인증서 구매 가격 설치 방법 카페24 인증서 구매 후 https 적용 방법

이미지
https를 쓰는 이유 웹페이지에 접속하다 보면 http와 https로 시작하는 것을 볼 수 있습니다. 이 둘의 차이와 https를 사용하기 위해 SSL 인증서 구매 가격 카페24 인증서 구매 후 https 적용 방법 정리해 보는 시간 가져보겠습니다. https를 쓰는 이유 https를 쓰는 이유 알아보기 전에 http와 https의 차이에 대해 먼저 알아봐야겠습니다. http는 인터넷을 사용하기 위한 프로토콜입니다. 프로토콜이란 사전에 정의된 규칙으로써, 인터넷 브라우저와 사용자 간의 통신 규약입니다. http 뒤에 s가 붙은 https는 기본적인 http 프로토콜에 보안을 위한 내용이 추가된 프로토콜입니다. https를 쓰는 이유는 사이트의 신뢰성 평가에 있습니다. 일반적으로 http에서보다 https는 보안 인증서가 있는 경우에만 https 주소를 사용할 수 있기에 사이트 평판에서 http만 사용되는 사이트보다는 우수합니다. 그러기에 일반적인 기업 사이트나 널리 알려진 사이트에서는 https 주소가 활성화되어 있습니다. http 단점 및 http 보안 취약점 http 단점으로는 기본적으로 사이트가 보안에 취약하다는 겁니다.  요즘같이 무엇보다 개인정보가 중요한 시대에 http로만 운영되는 사이트는 개인정보 및 악성코드의 공격이 의심된다고 판단하게 되는 것이죠. http 프로토콜을 사용하는 사이트는 신뢰할 수 없는 웹사이트로 규정하고 있습니다. 그리고 SEO 적으로도 각 포털사이트의 크롤링 봇(웹페이지를 검색하고 색인하는 프로그램 포털사이트에서 대개 사용)에게 http로만 운영되는 사이트는 그만큼 신뢰성이 크지 않다고 생각하여 낮은 점수로 랭크 되게 됩니다. 또 한 가지 문제점은 사이트 접속에서도 사용자가 http 프로토콜을 사용하는 사이트이니 보안에 취약할 수 있다는 경고성 문구가 나온다는 것이죠. 이는 사이트에 방문자가 급감할 수 있는 요인으로 매우 마이너스적인 요소라고 볼 수 있습니다. https 주소 사용을 위한 SSL 인증...

tortoiseSVN AnkhSVN 사용법 체크아웃 사용 비주얼 스튜디오 C# 프로젝트 가져오기

이미지
tortoisesvn 사용법 이번에 노트북을 새로 바꾸면서 기존에 사용하던 소스를 tortoisesvn 사용해 비주얼 스튜디오 C# 프로젝트 가져오기 방법에 공유해 보겠습니다. tortoiseSVN 사용법 버전 관리를 git으로 하는 게 대세로 자리 잡았으나, 회사에서는 아직 SVN을 사용하는 곳이 많이 있습니다.  SVN 사용에 있어 크게 SVN 서버와 SVN 클라이언트 프로그램이 있는데 tortoiseSVN은 클라이언트 프로그램에 속하게 됩니다. SVN 서버에서 소스를 가져오고 버전 관리를 가능하게 해주는 프로그램에 속합니다. 프로그램 설치는 구글이나 포털사이트에서 검색하면 상단에 공식 홈페이지가 나오고 접속 후 인스톨 파일과 한국어 언어팩을 사용하려면 하단의 한국어 언어팩까지 받아서 같이 설치해 주면 되겠습니다. tortoiseSVN 공식사이트 다운로드 링크 tortoiseSVN 한국어 언어팩 설정 다운 받은 한국어 언어팩을 설치 후 마우스 우클릭하여 SVN 메뉴에 진입합니다. TotoiseSVN -> 설정 일반 탭의 언어에서 한국어 설정 SVN 프로젝트 가져오기 SVN 클라이언트 프로그램을 설치하고 나면, 마우스 우클릭 시 SVN 메뉴가 추가된 것을 확인할 수 있습니다. 서버에서 저장소의 URL을 가져올 수 있습니다. 프로젝트를 가져오기 위해서는 아래의 일련의 과정을 거치면 됩니다. SVN Checkout... 클릭 URL or repository입력란에 SVN Server URL 기입 Checkout Depth의 경우에는 전체 프로젝트를 받기 위해서는 Fully recursive를 선택 특정 Revision 번호를 기입할 경우에는 Revision 번호를 기입하고 마지막 버전을 받고 싶다면 HEAD revision을 클릭 후 OK CheckOut을 통해 프로젝트를 가져올 수 있으며, 선택된 폴더안에 그대로 복사됩니다. 여기서 저장소의 URL의 경우에는 SVN Server에서 주소를 받아올 수 있습니다.  tortoiseS...

이클립스 Maven 프로젝트 가져오기 후 절대 uri인 [http://java.sun.com/jsp/jstl/core]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 jar 파일 내에서 찾을 수 없습니다. 오류 해결

이미지
이클립스 Maven 프로젝트를 가져온 후 디버깅 Run On Server 할 때 절대 uri인 [http://java.sun.com/jsp/jstl/core]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 jar 파일 내에서 찾을 수 없습니다. 오류 발생 해결 방법에 대해 공유해 보도록 하겠습니다. Maven 프로젝트 내보내기 가져오기 이클립스를 사용하다 보면서 매번 느끼는 점은 소스 작성보다 설정에 더 시간이 걸리는 것 같다. 아직 실력이 부족하다 자책하면 더 노력하고 있네요. 이클립스를 노트북에서 진행하고 있던 프로젝트를 데스크탑에서도 동일하게 작업하고 싶은 마음에 git을 이용하려 했지만, 아직 사용법을 몰라 포기하고 원시적인 방법으로 프로젝트를 내보내고, 가져와서 이클립스에 프로젝트를 불러오는 것 까지는 이상없이 진행하였습니다. 이클립스 프로젝트 내보내기 이클립스 프로젝트 탐색기에서 프로젝트 선택 후 우클릭 Export 선택 General -> Archive File 선택 내보낼 프로젝트 전체 선택 To archive file에 저장될 경로 및 파일명 지정 이렇게 하면 프로젝트를 압축파일로 해서 내보낼 수 있습니다.  이때, 프로젝트가 아닌 Eclipse의 설정만 내보내고 싶을 때는 General에서 Preferences를 선택 후 내보내면 JRE 및 Code Style 등 설정 부부만 내보낼 수 있습니다. Export -> General -> Preferences를 선택하면 이클립스 설정을 내보낼 수 있습니다. 이클립스 프로젝트 가져오기 내보내진 프로젝트 압축파일을 데스크탑으로 복사 후 압축 해제하였습니다. 이렇게 하니 프로젝트 폴더가 보이네요.  그냥 윈도 탐색기에서 폴더 복사를 해도 될 것 같지만 해보지는 않았습니다.  이클립스 실행 File -> Import 클릭 Existing Projects into Workspace 선택 후 Next Select root dire...

방화벽 기능 Fortigate 정책 설정 방법 인터넷 차단 방법 포티넷 사용법

이미지
방화벽 기능 방화벽 기능 가장 기본적인 의미로 이야기하자면, 보안 관리의 기본으로 네트워크로 들어오고 나가는 데이터를 통제하는데 그 기능이 있습니다.  개인 기기 단위에서는 윈도우에서 제공하는 기본 방화벽부터 네트워크 상단에 붙어 있는 방화벽 장치까지 있으며, 최근에는 방화벽 개념을 포함한 UTM(통합 보안 솔루션) 장비로 관리를 많이 하고 있습니다. Fortigate 방화벽 정책 설정 방법 이번에 네트워크에 특정 PC들에 대해 외부로 나가는 인터넷을 전부 차단하고, 일부 사이트에 대해서만 사용이 가능하도록 조치해야 하는 일이 생겼습니다. 현재 사용중인 방화벽 장비는 Fortigate 100D 장비를 사용중이며, 해당 장비를 기준으로 설명해보겠습니다. 차단 대상 PC 정보 수집 차단 대상이 되는 PC 및 기기들에 대한 IP주소 및 MAC Address 수집이 필요합니다. 방화벽 장비에서 지원하는 DHCP 기능을 이용해 유동IP를 사용중이라면, Fortigate 관리자 페이지내에서 LAN 안에서 사용중인 기기들을 확인할 수 있습니다. FortiGate 장비에는 방화벽 기능외에 DHCP 및 VPN 기능이 더해져 있습니다. DHCP 사용중인 기기목록 확인 FortiGate 관리페이지 접속 모니터 메뉴 클릭 DHCP 모니터 클릭 DHCP 유동IP 부여 예외 처리 DHCP로 유동IP를 부여 받고 있다면, 인터넷 차단 정책 대상 PC들을 IP주소로 등록할 경우 IP주소가 변경될 경우 인터넷 차단이 해제될 수 있는 상황이 발생할 수 있기 때문에, MAC Address로 등록하려고 했는데 현재 보유중인 장비에서는 정책 대상 주소지정에서 MAC Address로는 등록이 되지 않습니다. MAC 예약에 등록된 기기들은 임대갱신 되지 않고 고유IP처럼 사용할 수 있습니다. 그렇다고, 일일히 기기에서 수동IP로 변경하는 번거로움을 덜기 위해 MAC 예약 + 기능을 이용하면 인터넷 차단 대상이 되는 PC들을 등록해두면 IP 갱신되지 않고, 해당IP로 계속 지정...

이클립스 메이븐 프로젝트 자바 컴파일러 버전 자동으로 변경 되는 문제 해결

이미지
메이븐 프로젝트 자바 컴파일러 버전 설정 메이븐 프로젝트는 라이브러리를 자동으로 설치해 주고, 의존성 문제를 해결 주는 등 여러 이점이 있지만, 처음 사용할 때 설정에서 애를 먹는 경우가 간혹 있습니다. 라이브러리 및 컴파일러 버전 설정은 pom.xml 파일에서 선언해 주어 사용을 하게 됩니다.우선적으로 프로젝트 관련 모듈의 버전을 확인하는 방법은 아래와 같습니다. 이클립스 프로젝트 project feacts에서 사용되는 버전을 확인할 수 있습니다. 프로젝트 우클릭 Properties 진입 Project Faccets 진입 후 버전 확인 메이븐 업데이트 프로젝트 후 자바 컴파일러 버전 자동 변경 문제 프로젝트의 .settings 폴더 하위에 org.eclipse.wst.common.project.facet.core.xml에서 Dynamic Web Module 버전 및 자바 컴파일러 버전을 수정 후 정상적인 적용을 위해 메이븐 프로젝트 업데이트를 하게 됩니다. 이클립스 프로젝트 익스플로러와 네비게이터탭 org.eclipse.wst.common.project.facet.core.xml 파일이 프로젝트 익스플로러에서 보이지 않는다면 네비게이터 탭에서 보시면 됩니다. 이때, xml파일에 1.8로 작성을 했지만, 프로젝트 업데이트 이후에 자동으로 자바 컴파일러 버전이 1.7로 자동으로 변경되는 문제가 발생 하였습니다. 이 문제는 프로젝트 Properties의 Project Faccets에서 명시적으로 1.8로 변경해도 프로젝트 업데이트 이후에는 1.7로 변경 이 됩니다. 메이븐 프로젝트 업데이트 후 자동으로 변경되는 자바 컴파일러 버전 .settings 폴더가 안보이거나 네비게이터 탭 활성화 방법 이클립스 .settings 폴더 안보이는 문제 해결방법 자바 컴파일러 버전 자동 변경 문제 해결방법 위에서 말씀드렸듯이 이클립스 메이븐 프로젝트의 라이브러리 및 컴파일러 버전들은 pom.xml 파일에서 설정 및 수정이 가능합니다.  메이븐 프로젝트 업데이트 후 ...