또 다시 바쁜 시기가 돌아왔습니다. 부가세 신고를 해야하니까요!자! 부가세 신고 하러 가봅시다. 부가세신고는 일반과세자라면 1~6월까지의 매출에 대해서 7월 25일까지 신고하여야 하며, 7~12월까지의 매출에 대해 그 다음해의 1월 25일까지 신고가 되어야합니다. 간이과세자는 1년에 1번 신고를 하게 되는데 1~12월분을 1월 25일까지 신고하여야 합니다. (간이과세가 편리한부분이 있습니다). 매출이 적어도 많아도 신고는 꼭 하여야합니다. 매출이 없어도 매출이 없다고 신고를 하여야 합니다. 부가세를 신고하는 방법은 홈택스에서 진행하시면 됩니다. 물론 홈택스에서 직접 입력하고 하기 귀찮다면 간편하게 앱을 이용해서 신고를할 수 있지만 어느정도의 비용을 지불해야합니다. 사업을 하고있다면 한번정도는 부가세신고를..
Mysql에서 공백과 NULL을 동시에 체크하는 방법이 있어서 정리하고자 한다.MARIADB의 경우 컬럼값이 (NULL)인경우가 있고 아무 값이 없지만 공백인 경우가 있는데, 해당 컬럼을 조회하는경우 공백인경우 값이 존재하는것으로 판단되어져 애매한 상황이 발생하는 경우가 간혹 있다. 따라서 이부분을 쿼리로 한번에 해결하려고 한다.여러가지 방법이 존재하겠으나 최근에 해결한 방법을 우선 정리하고자 한다. NULLIF(컬럼명, '') IS NULL 위와같은 형태로 사용하는 것이다. NULLIF함수를 사용하여 해당 컬럼의 값이 공백이라면 NULL로 치환하여, 해당 컬럼의 값이 NULL인지 여부를 체크하는 방법이다.실제 아래와 같이 사용하였다.SELECT * FROM TESTWHERE 1 = 1AND NULLIF..
STS에서 Maven으로 clean package를 실행하였으나 이클립스 콘솔에서 다음과 같은 오가 발생하는 경우가 있다. Perhaps you are running on a JRE rather than a JDK? 해결방법은 굉장히 간단하다. - STS → Windows → Preferences → Java → Installed JREs 이동하여 JRE가 체크되어있다면 체크 해제하고 JDK를 추가한뒤 체크해주면 해결된다. 필자는 이미 포함된 JDK이기때문에 오류가 나지만, 만약 설정되어 있지 않는 사람이라면 정상적으로 Finish 할 수 있다. 아래와같이 jdk를 체크해준다. 해결 완료 된다. 체크 한후 Maven Build 시 정상적으로 빌드할 수 있다.
이번 시간에는 SpringBoot로 프로젝트를 생성하고 HelloWorld를 출력해보자. 스프링부트로 프로젝트 생성 Create new Spring Starter Project를 선택한다. 프로젝트명을 입력한다. 자신이 원하는 프로젝트명을 입력하면 된다. Spring Web을 선택한다. 다른 종류도 많은데 하나하나 다 알필요는 없다. 혹시 필요하다면 하나씩 알아보는것도 좋은 공부가 될것 같다. 일단 우리의 목표는 SpringBoot로 HelloWorld 출력하는것이므로 빠르게 Spring Web을 체크하고 Next를 선택하자. 아래와 같은 화면이 나오는데 신경쓰지 말고 Finish 선택. 프로젝트가 생성된다. 생성한 프로젝트가 정상적으로 만들어졌는지 확인하기 위해서 프로젝트 우클릭 > Run As > S..
Spring Tool Suite를 설치하고나서 STS 에서 에러가 발생하는 경우가 있다. 에러는 아래와 같이 발생하는데... "Building UI model" has encountered a problem. An internal error occurred during: "Building UI model". STS 프로그램을 다운로드 받으면 jar파일로 다운로드 받게 된다. 이 파일을 더블클릭 혹은 단순히 실행하여 압축이 풀리면서 폴더가 만들어져야 하는데.. 그렇게 하지 아니하고 임의로 압축을 해제하여 진행하게 되면 위와 같은 문제가 발생하게 된다. 해결 다운로드받은 JAR파일을 압축해제하는것이 아니라 실행하도록 하여 진행하면 해결이 된다.
STS(Spring Tool Suite)를 다운로드 받아서 실제로 실행까지 진행해보도록 하겠다. 스프링에 최적화된 IDE이다. STS 설치 https://spring.io/tools Spring Tools 4 is the next generation of Spring tooling Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based enterprise applications, whether you prefer Eclipse, Visual Studio Code, or Theia IDE. spring.io 설치를 위해서 위 URL로 접속한다. 메인화면에서 화면의 제일 하단으로 스..
JPA는 Persistence API이다. 영속성(persistency)이란 데이터를 영구적으로 저장하는 것을 의미합니다. 따라서 영속성 컨텍스트란 직역하자면 데이터를 영구적으로 저장하는 환경정도로 해석. JAVA Persistance API(JPA)라는것은 JAVA에 있는 데이터를 영구히 기록할 수 있는 환경을 제공하는 API 이다. 특정 하드 디스크의 영역에 DBMS로 관리할 수 있도록 공간을 만들어서 저장처리 한다. 결국 JPA를 해석풀어서 쓴다면 → Java Persistence Application Programming Interface 인데... Java 프로그램을 할때 영구적으로 저장하기 위해서 필요한 인터페이스가 JPA이다. JAP는 ORM이다 Object Relational Mapping..
스프링은 FrameWork 틀에서 동작하는것을 뜻한다. 프레임워크가 왜 나왔을까? 개발할때 그 틀을 벗어나지 말라고 프레임워크를 사용하는 것. 그러면서 프레임워크에서 지원하는 기능들을 편리하게 이용하는 것이다. 여러 다양한 개발자들이 자신의 마음대로 개발을 진행하지 않도록 하며, 프레임워크라는것을 사용하여 그 틀안에서 개발을 진행할 수 있도록 한다. 틀을 벗어나지 않고 스프링프레임워크 틀안에서 개발을 진행함에 그 의미가 있다. 스프링은 IoC 컨테이너를 가진다 제어의 역전(Inversion of Control) : 주도권이 스프링한테 있다는 뜻. 개발자가 개발한 수많은 Object를 Spring에서 모두 다 스캔하여 객체들을 메모리에 띄우는 역할을 한다. 즉, 개발자가 직접 관리하는것이 아니라 Sprin..
이클립스를 다운로드하여 설치해보자. URL 접속 https://www.eclipse.org/ The Community for Open Innovation and Collaboration | The Eclipse Foundation The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks. www.eclipse.org 다운로드 위 사이트로 접속하여 아래와 같은 화면이 나오면 우측 상단에 [Download] 버튼을 선택한다. 선택한 후, 아래와 같이 [Download Packages] 를..
스프링 탄생 배경 2000년대 초반, 자바 진영 표준기술의 최고봉인 EJB(Enterprise Java Beans)라는것이 있었다. Enterprise Java Beans라는것인데 줄여서 EJB라고 불렀다. 지금으로 따지면 Spring 혹은 JPA를 모두 합쳐놓은 종합선물셋트였다. 그리고 어쨋든 Java 진영의 표준기술이였기 때문에 금융권에서 많이 사용하였다. 그래서 당시에는 기술영업을 할때 EJB라는것을 가지고 기술영업을 많이 하였다. 아무래도 Java 진영에서 표준이었기 때문에 많은 곳에서 사용하였었다. 고급 기능이 모두 포함되어있었고, 당시 EJB는 종합선물셋트라고 해도 과언이 아닐 정도로 기능이 많았다. EJB 지옥 자! 그런데 왜 EJB 지옥인가? 1. 너무 어렵다 2. 복잡하다. 3. 느리다...
티스토리 사이드바에 쿠팡 다이나믹 배너를 삽입 해보려고 합니다. 쿠팡 배너 광고를 사이드바에 넣는 방법을 찾으시는 분이 있어서 포스팅을 진행하려고 합니다. 아마도 위와 같이 좌측 사이드에 배너를 넣고 싶으실텐데요. 알아보도록 하겠습니다. 쿠팡 파트너스란? 쿠팡 파트너스는 오픈마캣 플랫폼이죠. 쿠팡에서 운영중입니다. 네이버 블로그 뿐만 아니라 티스토리 블로그 그리고 인스타 유튜브 등 어떤곳에서든 쿠팡 파트너스에서 제공하는 배너를 가지고 물건을 가지고 있지 않은 배너를 통해서 물건을 판매하고 그에 따른 수수료를 받을 수 있는 것입니다. 그렇게 생각한다면 전문적으로 특정 상품을 소개한다거나 물건 관련을 리뷰하는 블로그라면 더욱더 쿠팡 배너를 통한 유입을 늘릴 수 있을 것이라 생각됩니다. 그럼 쿠팡 파트너스 배..
안녕하세요. 오늘 쿠팡 파트너스 가입 및 블로그 적용까지 해보려고 합니다. 쿠팡 파트너스는 네이버 애드포스트, 구글 애드센스 등과 비슷하게 수익을 발생시킵니다. 블로그 등에 배너를 걸고 수수료를 받는 시스템이지요. 쉽게 이야기하자면, 쿠팡에서 판매되는 상품의 링크를 블로러가 자신의 포스팅에 포함하여 작성하고, 24시간내에 방문자가 이 링크를 타고 들어가 매출을 일으키면 최대3%가량의 수수료를 블로러가 받는 방식입니다. 24시간이라는 점이 있긴 합니다. 애드포스트나 구글 애드센스와는 조금 다른점이라고 한다면, 쿠팡의 배너는 블로그 글 작성시 마다 수동으로 입력해 줘야 하는 부분도 있지만 블로그 상단에다가 한개만 적용할 수도 있습니다. 오늘은 그 방법에 대해서 알아보도록 하겠습니다. 쿠팡 파트너스 가입 ht..
이번 지도 시각화를 진행하면서 네이버 API를 활용하여 시각화 하기로 하였다. WFS 시각화 같은 경우 GeoServer로 부터 GeoJson타입으로 받아와서 네이버 API이용하여 어렵지 않게 시각화를 진행할 수 있지만 WMS 같은 경우 약간 문제가 된다. GeoServer의 WMS Naver API 연동 네이버 클라우드의 개발자문서를 끊임없이 찾아보았다. 사용해볼만한 것이 ImageMapType이라는 함수가 있었는데 정상적으로 작동하진 않았다. GeoServer의 WMS의 경우 BBOX를 이용하는 반면에 네이버의 ImageMapType의 경우 XYZ를 이용하므로 연동하기가 쉽지 않았다. GeoServer에서 WMS로 이미지를 불러와서 ImageMapType으로 시각화하는 경우 타일형태로 시각화 되면서 ..
GeoServer를 이클립스에서 git으로 연동하자 Window > Show View > Terminal로 이동하여 Git Bash를 실행한다. GeoServer git 주소를 입력한다. git clone git://github.com/geoserver/geoserver.git geoserver 위와 같이 입력하면 파일을 내려받는다. 설치는 몇분간 진행된다. 설치가 완료되면 폴더가 생성되고 하위에 파일이 다운받아진것을 확인할 수 있다. 이제 프로젝트 파일을 생성하자. mvn 명령어 입력시 실행이 되지 않는다면 Maven이 설치되어있지 않는 경우이므로.. Maven을 설치하고 설정한 후 그 다음을 진행하자. https://pncode.tistory.com/113 이클립스 Eclipse 메이븐 사용하기 이클..
이클립스에서 메이븐을 이용해서 빌드하고자 하는데.. PC에 메이븐이 설치 되어 있지 않다. 요즘은 기본적으로 이클립스에 Maven 플러그인이 설치되어 있으니.. 아파치 Maven 홈페이지에 접속해서 Maven파일만 다운로드 받아서 설치하고 이클립스에서 연결시켜주자. Maven 파일 다운로드 https://maven.apache.org/download.cgi Maven – Download Apache Maven Downloading Apache Maven 3.8.3 Apache Maven 3.8.3 is the latest release and recommended version for all users. The currently selected download mirror is https://dlcdn...
이클립스에서 Git을 연결할일이 있었다. 설정방법은 이클립스의 설정에서 진행한다. 이클립스 Window > Show View > terminal을 선택한다. Terminal창이 실행되면 우측 상단에 위와 같은 아이콘이 있다. 선택하면 Launch terminal 창이 뜨는데 Git Bash 옵션이 없다. 이 창에서 Git Bash가 보이지 않을 수 있다. Git이 설치되어 있지 않거나 Git이 설치되어 있더라도 이클립스에 연결시키지 않았다면 보이지 않는다. Git 설치 Git이 설치되지 않았다고 가정하고 진행하자. https://git-scm.com/download/win Git - Downloading Package Downloading Git Now What? Now that you have down..
문제점 이클립스에서 GIT을 연동하여 사용하려고 GITHUB에서 사용하는 ID와 PASSWORD를 입력하였음에도 불구하고 계속 재 로그인 하라는 팝업 메시지만 뜨는 상황이다. login팝업창이 무한 반복되면서 별다른 메시지도 없다. 위 창에서 User와 Password를 계속 입력하여도 계속 반복적으로 팝업창이 뜬다. 처음에는 ID와 비밀번호가 틀렸는지 알았지만 입력한 정보는 정확했다. 기준 변경 2021년 8월 13일 기준으로 GITHUB정책상 인증방식이 변경되었다. 기존에는 패스원드로 인증을 진행하였다면 Token방식으로 인증하는것으로 변경되었다. 따라서 Token을 생성하여 주어야 한다. https://github.blog/2020-12-15-token-authentication-requiremen..
문제점 프로젝트를 진행하다보면 우리가 개발한 웹 페이지는 SSL이 적용되어 있어서 https 통신인데, 타 업체 API를 사용하기 위해서 CDN을 통해서 받아오는 스크립트 내에서는 http통신을 하고 있어서 혼합 컨텐츠 사용으로 문제가 발생하는 경우가 있다. GIS 웹 화면을 개발하면서 배경지도를 API 통해서 가지고와야 하는데 직접 개발중인 웹 페이지의 운영서버는 https통신이지만 CDN을 통해 내려받은 스크립트는 http 통신을 하고 있어서 문제가 발생한다. 결국 https에서 http 통신을 하려고 하다보니 혼합컨텐츠 발생으로 오류가 떨어지는 것이다. 그럼 어떡해? API를 제공하는 업체에서 https를 적용하던지, 직접 개발중인 운영 서버에 SSL 적용을 제외하던지 해야 하는데 SSL을 걷어낼리..
이클립스를 설치하고 자바스크립트 파일을 열었더니 하이라이트가 표시되지 않고 모두 흑백으로 나온다. 이런 경우는 처음이다. 검색해보니 전자정부 3.10.0 버전에서 Javascript 메뉴의 기능이 제대로 지원되지 않는 것이었다. 그래서 별도로 설치를 해주어야 한다. 다른 블로그를 검색해보니 Eclipse에서 Window -> Preperences 에서 적용해주면 된다고 했다. 그래서 따라 해보았다. 자바스크립트 하이라이트 적용 자바 스크립트 파일을 열었더니 위와같이 하이라이트가 적용이 안된다. Window -> Preperences -> General -> Editors -> File Associations 로 이동. Add버튼 선택 -> *.js 를 추가해준다. 추가하게 된다면 File types 에 ..
파이썬 개발을 위한 개발 환경을 구축한다. 요즘은 주로 Visual Studio Code를 많이 사용하다보니 Visual Studio Code에 환경을 구축하도록 한다. VS Code에 확장기능으로 Python을 설치하고 HelloWorld를 출력하자. VS Code에 Python 설치 Visual Studio Code가 없다면 설치하고, 실행한다. 좌측 메뉴바의 확장 버튼을 선택한다. Python을 검색한 후, install을 진행한다. 아래와 같은 물음이 뜬다면 신뢰를 선택하고 인스톨을 계속 진행한다. 설치가 완료되었다. Hello World File의 New File을 선택하여 새로운 파일을 생성한다. 그리고 이름.py로 저장한다. 정상적으로 저장하였다면 아래와 같이 생성된다. 아래와 같이 Hell..
세상 참 좋아졌다. 맥, 윈도우 등의 크로스플랫폼 데스크탑 어플리케이션을 HTML, CSS, JS를 통해 만들 수 있다니... 일렉트론(electron) 넌 도대체 뭐니? ∴ 웹개발에서 사용하는 언어(HTML5, CSS, Javascript, node.js)를 사용하여 데스크톱 앱을 제작할 수 있는 프레임 워크 이다. ∴ 화면단UI는 웹개발처럼 HTML5, CSS, Javascript로 구성하며, 코어는 Javascript를 통하여 네이티브 API를 요청할 수 있다. ∴ 단 하나의 개발로 윈도우 위에서도 구동할 수 있고, 맥에서도 구동할 수 있으며, 리눅스에서도 구동할 수 있다. 놀랍다. 설치 방법 npm install -g electron 설치 완료 아래와 같이 결과가 출력된다면 설치가 완료된 것이다...
왜 Node.js인가? 어플리케이션을 개발하려면 클라이언트 프로그램과 서버 프로그램을 모두 개발해야만 우리가 생각하는 어플리케이션을 완성할 수 있다. 그게 무엇이 됐던 간에 서버가 없는 어플리케이션은 거의 없다. 있을수도 있겠지만... 그런데 여기서 중요한것이 있다. 클라이언트 프로그램을 개발하기 위해서 사용하는 언어와 서버 프로그램을 개발하기 위한 언어가 다르다. 예를 들자면 웹 사이트를 구축하기 위해서 클라이언트에서는 javascript를 이용하여 개발하고 서버에서는 java를 이용하여 구현하는 경우가 흔하다. 이것이 의미하는게 무엇인가? 최소한 2가지 이상의 프로그래밍 언어를 알고있어야 최소한의 어플리케이션을 개발할 수 있다는 이야기이다. 개발을 이제 처음 시작한다거나 시작한지 얼마되지 않았다면 혹..
Node.js 설치 Node.js 설치는 어렵지 않다. 매우 간단하고 금방진행할 수 있다. 아래 첨부된 URL을 선택하여 Node.js 사이트에 접속하도록 한다. https://nodejs.org/ko/download/ LTS라고해서 대다수 사용자에게 추천하는것과 현재 버전(최신 기능)이 있다. 최신 버전은 안정성 측면에서 다듬어져있지 않아서 안정성이 확보된 그 전버전을 설치해보겠다. 윈도우에 설치할 예정이니 node-v14.17.5-x64.msi를 받도록 한다. 다운로드받은 파일을 더블클릭하여 실행하면 위와같은 창이 나타난다. Next버튼을 클릭한다. Node.js 라이센스의 대한 내용이다. 체크박스에 체크하고 Next를 선택한다. 어디에 설치할것인지를 묻는것이다. 디폴트로 하고 Next를 선택한다. ..
GeoServer(지오서버) 설치 GeoServer를 설치하기전에 확인해야할것이 있다. java(jdk 혹은 jre)가 설치되어 있어야 한다. jdk 혹은 jre는 설치되어있다고 가정하고 GeoServer(지오서버)를 다운로드 받아서 tomcat에 구동하는것을 목표로 한다. GeoServer 다운로드 GeoServer 다운로드는 굉장히 간단하게 진행할 수 있다. 우리가 개발을 하면서 자주 사용하는 google 검색창에 GeoServer로 검색을 한다면 상단에 사이트를 만나볼 수 있다. 검색이 완료되면 아래와 같이 GeoServer를 클릭하여 홈페이지로 이동하자. GeoServer 메인 페이지가 뜨면 GeoServer를 다운로드 받기 위해서 Stable 버튼을 선택한다. 선택하여 상세 페이지로 접속하면 P..
AJAX란 무엇인가? AJAX는 XMLHttpRequest(XHR)과 Javascript와 DOM을 이용하여 서버에서 추가 정보를 비동기적으로 가져올 수 있게 해주는 포괄적인 기술을 나타내는 용어다. 하지만 만들어진지 꽤 오래되기도 했고, 이보다 사용하기 쉬운 표준 API가 등장했다. fetch API 별도의 라이브러리는 필요 없고 최신 브라우저에 내장되어 있다. 사용이 아주 쉽고 Primise타입의 객체를 반환한다. 반환된 객체는, API 호출이 성공했을 경우에는 응답(response) 객체를 resolve하고, 실패했을 경우에는 예외(error) 객체를 reject한다. fetch API는 다양한 주문 전송, 사용자 정보 읽기, 서버에서 최신 변경분 가져오기 등등 다양한 일을 페이지 새로고침 없이 수..
소유권 확인 ls -al 위와 같이 명령어를 입력하면 아래의 그림처럼 결과가 출력된다. 현재 소유권자도 root이고, 그룹식별자도 root이다. 왼쪽이 소유권자, 오른쪽이 그룹식별자이다. 파일 소유권 변경 root계정으로 접속하여 아래와 같이 명령어를 입력한다. 명령어 chown {소유권자}:{그룹식별자} {변경을 원하는 파일명} 예를 들어 test.python 이라는 파일의 소유권을 test1, 그룹식별자를 test2로 변경하자면 다음과 같다. 예제 chown test1:test2 test.python 디렉토리 소유권 변경 파일 소유권 변경과 크게 다르지 않다. root계정으로 접속하여 아래와 같이 명령어를 입력한다. 명령어 chown {소유권자}:{그룹식별자} {변경을 원하는 디렉토리 명} /test..
이클립스에 github를 연동할 일이 있어서 연동하게 되었다. 어려운부분은 아니지만 기록으로 남겨야 하므로 남겨둔다. 이클립스(Eclipse) 깃허브(GITHUB)연동 1. 우선, 이클립스 Window → Other → Git Repositories를 선택하여 창을 활성화한다. 2. 창을 활성화 하고나면 다음과 같은 Git Repositories View가표시된다. 3. Git Repositories View에서 Clone a Git repository를 클릭한다. GitHub 정보를 입력하는 창이 뜨는데 여기서 정보를 입력한다. URI는 연동하고싶은 Git 소스 주소를 입력하면 아래쪽의 Host와 Repository path는 자동으로 입력된다. 다음으로 GitHub 사이트에서 가입한 본인의 아이디와 ..
롬복 Lombok이란 Java의 라이브러리로 반복되는 함수를 Annotation을 사용하여 자동으로 작성해주는 라이브러리이다. 통상적으로 DTO를 만들면 각 변수에 대해서 getter, setter를 엄청나게 만들어야 한다. 아주 반복적인 작업이다. 물론 이클립스(Eclipse)에 getter, setter생성을 지원해주고 있지만 DTO를 만들때마다 해당 기능을 실행해서 getter, setter를 만들어줘야 한다는것이 개발자 입장에서는 여간 불편한것이 아니다. 롬복이 없다면? 롬복이 없다면 각 선언된 변수에 대해서 setter/getter를 선언해주어야 한다. class Test { private String name; private String phoneNumber; private String age..
문제점 자바스크립트에서 replaceAll을 하면 존재하지 않는 함수라고 오류를 뱉어낸다. Internet Explorer에서 문제가 되는 것으로 보인다. 예를 들자면 다음과 같다. "aaa aaa aaa aaa".replaceAll(" ", ".") replaceAll함수를 이용하여 결과가 aaa.aaa.aaa.aaa 출력되기를 기대하였다. 하지만 오류를 뱉어내었다. 두둥.... 개체가 replaceAll 속성이나 메소드를 지원하지 않습니다. Explorer 정말 놀랍다. 해결 그래서 자바스크립트에서 replace를 replaceAll처럼 사용해야 하는데 간단히 정규식으로 해결이 된다. [정규식 이용해서 gi 로 감싸기] // #를 감싼 따옴표를 슬래시로 대체하고 뒤에 gi 를 붙이면 // replac..
데이타베이스에서 다음과 같이 쿼리를 통하여 목록을 조회한다. xml select '2015' as stdr_year union all select '2014' as stdr_year 그러면 다음과 같이 결과가 출력된다. ServiceImpl 쿼리르 통하여 조회한 데이타를 Service를 통하여 Controller로 리턴한다. 리턴할때는 resultMap에 담아서 리턴하여주었다. 리턴타입은 여러가지로 잡아줄 수 있을 것이다. @SuppressWarnings("unchecked") public Map getStdrYearList(CommonVO vo) throws Exception{ List getStdrYearList = new ArrayList(); Map resultMap = new HashMap();..