반응형

개발 기록 39

Springboot Gradle Project 복사 후 할일들

기존에 만들어 두었던 프로젝트를 통채로 로컬에서 복사 하게 되면 변경된 이름 때문에 몇 군데 손을 봐야 할 필요가 있습니다. 1. settings.gradle 파일의 rootProject.name을 변경 2. build.gradle 파일의 archiveBaseName 과 archiveFileName 변경 (필요 시) 3. git, svn 등 기존 프로젝트 소스관리 히스토리 삭제이클립스의 경우 프로젝트 우클릭 --> Team --> Disconnect 4. 전체 프로젝트의 패키지 명 변경이클립스의 경우 Ctrl + H 를 눌러서 기존 패키지명을 모두 찾은 다음 한번에 바꿀 수도 있다 5. Refresh Gradle Project 를 하면 빨간 에러들이 쓱 사라지게 된다. 여기까지 하면 에러는 잡았기 때문에..

개발 기록/Java 2023.07.24

HTML/CSS 고동치는 효과 - CSS keyframes 애니메이션

버튼이 고동치는 것 같은 효과를 HTML과 CSS를 이용해서 구현해 봤다. 이런 게 대체 어디에 쓰일까 싶지만 예전에 HTML로 시연하는 프로그램을 만들다가 버튼을 강조할 필요가 있었는데, 이렇게라도 강조를 해볼까 하고 만들었던 애니메이션이다. HTML 삽입 미리보기할 수 없는 소스 CSS - 애니메이션과 스타일 CSS에서는 keyframes 가 핵심이다. 시간이 지남에 따라 투명도가 낮아지고 마지막에 scale을 크게 해서 고동치는 것 같은 효과를 주면 된다. webkit과 moz 둘 다 작성. @-webkit-keyframes pulse { 0% {-webkit-transform: scale(0); opacity: 0;} 8% {-webkit-transform: scale(0); opacity: 0;..

Javascript/jQuery - Access Token 자동 갱신 소스코드

JWT Access Token을 사용한 웹 어플리케이션에서 서버로 API를 요청할 때마다 Access Token을 담아서 보내야 하는데, 이때 Access Token이 만료된 경우 Refresh Token을 이용한 Access Token의 갱신이 필요하다. 처음 화면 로딩 시 메뉴에 로그인 정보를 표시해준다거나, 화면을 새로고침 하거나, 사용자가 특정 화면을 열어 놓고 한참 지나서 데이터를 조회하려고 하는 경우 등을 고려해서 언제든 서버로 API 요청 시 항상 Access Token의 유효성을 체크해서 만료 시 Refresh Token을 이용해서 자동으로 Access Token을 갱신하는 스크립트를 작성 해 봤다. 특별한 아니고 Javascript/jQuery Ajax를 이용해서 API를 서버에 요청해 ..

[Spring Framework] RestTemplate을 이용한 서버간 API 통신과 예외처리

배경 위의 흐름도와 같이 Application 2는 순수 REST 서비스만 제공하고 있는 상태이며, 브라우저에서 Application 2의 endpoint를 직접 엑세스를 시도하면 CORS 정책 위반 에러가 발생한다. (CORS란 Cross-Origin Resource Sharing의 약자로, 브라우저에서 다른 출처의 리소스를 공유하는 것인데 기본은 공유 불가이며 별도 설정을 통해 공유를 할 수 있게 만들 수도 있다. 하지만, 위 상황에서는 공유가 불가능한 상태다) 어쨋든 브라우저는 Application 2에서 제공하는 서비스들을 이용할 수 없기 때문에 서버 간 REST API 통신환경이 필요했고, Application 2와 통신이 가능한 Application 1을 별도로 구축해서 사용자는 Applica..

개발 기록/Java 2023.06.08

SVG 움직이는 화살표 with yarrow.js - 예제 소스코드

yarrow는 HTML5 기반의 SVG 화살표 애니메이션 자바스크립트 라이브러리다. 업데이트가 된 지 7년이 된 것으로 봐서 더 이상 개선은 없는 것 같지만, Source와 Target까지 애니메이션으로 움직이는 화살표를 그려준다는 점 때문에 필요에 의해 사용해 보게 되었다. 설치 방법 npm install yarrow 또는 아래 소스코드를 다운받아서 HTML 사이에 넣으면 된다. 기본 사용방법 var arrow = yarrow.arrow({ x1: 0, // source x coordinate y1: 0, // source y coordinate x2: 100, // target x coordinate y2: 100, // target y coordinate text: "I'm arrow!" // ar..

[Springboot] 기본작업 #4 - applicaion.yml 설정과 서버 환경분리

Springboot 프로젝트의 Resources 디렉토리에보면 application.properties 또는 application.yml 파일이 있는데, 이 파일이 각종 환경 변수들을 정의하는 파일이다. 특히, application.yml 파일 하나로 로컬, 개발 및 운영서버 각각의 환경 설정이 가능하다. 여기서는 한개의 yml 파일과 각 서버에서 기동중인 Tomcat의 setenv.sh 파일을 이용해서 로컬/개발/운영을 분리 구성하는 방법을 사용했다. 공부차원에서 로컬에서만 개발하고 끝낸다면 굳이 필요 없는 설정이겠으나 어차피 결국은 운영환경에 Deploy 해서 서비스를 오픈할 때까지 개발을 하는 것이 최종 목표이니 본격적인 개발을 진행하기에 앞서 미리 환경을 구성해 놓는 것도 괜찮은 방법이다. 분리 ..

개발 기록/Java 2023.05.30

[Springboot] 기본작업 #3 - WebSecurityConfig 구성과 접속 확인

Springboot 프로젝트 생성을 마쳤다면 가장 먼저 하고 싶은 일은 아마도 내가 만든 앱이 일단 접속이 되는지 확인하는 것일 것 같다. 브라우저에 localhost:8080을 쳐서 뭐라도 떠야 안심이 되지 않을까? 접속이 잘 되는지 확인이 되기 전에 전체적인 어플리케이션의 구조가 만들어지고 Framework 환경 안에서 잘 돌아가려면 몇 가지 작업은 필요하다. 그중에 가장 처음 할 일은 WebSecurityConfig를 설정하는 것이다. Spring Framework의 security에 해당하며, 이 설정 파일 하나로 모든 보안 통제를 다 설정할 수 있어서 Spring Security는 Spring Framework 의 수많은 클래스 중에서도 Spring이 추구하고자 하는 방향이 가장 매력적으로 나타..

개발 기록/Java 2023.05.25

[Javascript] 정규식 공백 제거, 사업자 번호 검증, 숫자를 한글 금액으로

자주 쓰이지만 한동안 안 쓰다 보면 쉽게 잊게 되는 자바스크립트 함수. 공통 javascript 함수 (예: comon.js) 같은 곳 에서 사용하면 스크립트질(?)을 줄일 수 있다. 정규식을 통해 문자열의 모든 공백을 제거하는 함수 String.prototype.trim = function(){ return this.replace(/(^\s*)|(\s*$)/g,""); } 사업자 등록 번호 검증 함수 이전 블로그에 있던 모듈인데, 외부 인터페이스 없이 그냥 입력값만 가지고 확인하는 방법. 이게 지금도 유효한 로직인지는 아직 테스트를 해보지 못했지만, 나중을 위해 우선 저장 해 두자. function isValidOffNum(input){ tmpStr = input.value; tmpSum = new N..

Javascript 키코드 특정 키 입력 방지

자바스크립트 키코드(event.keyCode)를 이용한 입력 제한하는 방법을 몇 가지 예제를 통해 알아보자 1. 한글 입력 방지 스크립트 - submit 에서 Form Validation 시 for(i=0;i 128) { alert('영문으로만 입력해주세요!'); mainform.FRM_BID.value = ""; mainform.FRM_BID.focus(); return; } } 2. 특수문자(Special Character) 입력 방지 스크립트 - key down 시 사용 if ((event.keyCode > 32 && event.keyCode 57 && event.keyCode 90 && event.keyC..

반응형