Steady Mind For My Life

https://github.com/jongseok3910/Spring-Study

728x90
728x90

전자정부프레임워크&Spring Project 10

HTTPS통신과 SSL, 인증서(공개키,개인키)

현재 프로젝트의 개발/수정 작업이 거의 다 끝나면서새로 설치된 WEB/WAS서버에 기존 서비스를 옮겨서Cubrid와 연결하여 서비스가 정상 작동하는지 확인하는마지막 작업만 남게되었다. 새로운 WEB/WAS는 apache/Jboss로 구성되어 있기에서버기동 명령어도 다를 수 있고, 새롭게 구성된 인프라기 때문에아이피나 포트도 다를 수 있다. 그래서 서비스를 옮기고 server.xml 등 설정파일을 수정해야 하기 때문에기존 서비스의 설정 파일들을 확인하고 있었다. 그러던 중 server.xml파일의 SSL설정 부분을 발견했다. 지금까지는 이미 구성완료 된 인프라와 세팅완료된 환경에서개발코드만 작성해 왔기에 server설정에 대해 자세히 본 적이 없었다. SSL이라는 게 있다는 것만 알았지 자세한 동작원리를 ..

DB마이그레이션(Tibero -> Cubrid)

현재 프로젝트에서 조만간 DB마이그레이션이 진행된다.Tibero에서 Cubrid로 변경되는데이렇게 되면 내가 그동안 개발/수정해온 코드들이 정상동작을 안 할 수도 있기에 직접 개발서버에서 Cubrid를 설치 마이그레이션을진행했다. 마이그레이션을 진행하면서 현재 소스가 Cubrid에서 정상동작할지 파악하기 위해 분석을 진행했고 아래와 같이 유의사항들을 정리했다. 1. Procedure/Function 여부11 버전 기준 큐브리드는 procedure를 지원하지 않는다.현재 소스에서는 procedure를 사용한 코드들이 있는데이를 자바코드로 변환해서 정상 동작하도록 수정했다. 2. 데이터타입 비교DB별로 데이터타입이 다를 수도 있기 때문에 Tibero와 Cubrid간의 데이터타입을 비교해 봤다. 위 정리한..

Session만료 시 메시지 띄우기

현재 진행되고 있는 프로젝트에서 미사용시 Session 아웃되는시간을 늘리고 로그아웃 될때 메시지를 띄우는 로직을 추가하게 되었다. 현재 프로젝트를 살펴보니 Spring Security를 사용하고 있었고세션만료 시 저절로 로그아웃 되고 있었다. 그래서 아래와 같이web.xml, context-security.xml을 수정해서구현했더니 문제가 하나 발생했다. 로그인 하지 않은 상태에서도 특정시간이 지나면로그인화면으로 이동하면서 alert창이 뜨는것이었다. 로그인하지 않아도 홈페이지에 접속하는 순간Session은 생성되기 때문에 자꾸 로그인페이지로이동되는것이었다. 실패한 세션만료 alert 구현1. web.xml 수정 web.xml을 살펴보면 부분에세션만료시간을 설정하는 부분이 있다. 기존 60에서 120으..

톰캣서버에 다수의 프로젝트 배포하기(War파일)

현재 맡고 있는 프로젝트에서 크라우닉스 리포트라는 리포트 툴을 사용하고 있다. 이 리포트는 개발서버에 설치되어 있고, 개발서버와 연동해서 web상에서 리포트를 보여주기 위해서는프로젝트를 개발서버에 올려서 배포를 해야 했다. 개발의 톰캣서버에는 이미 다른 프로젝트가 하나 올라가 있었고나는 프로젝트를 한 개 더 톰캣서버에 배포해야 하는 상황이었다. 한 개의 톰캣 서버에 여러 프로젝트를 배포하기 위해서는 server.xml을 설정해야 했고xml설정부터 실행까지 모든 과정을 정리하고자 한다. 1. 개발서버 shutdown 톰캣서버의 start, shutdown은 bin폴더에 있다.server.xml을 설정하기에 앞서 좀 더 안정적으로 진행하기 위해서버를 sh shutdown.sh 명령어서 서버를 내린다. 2. ..

Interceptor로 외부IP 접근 차단

본사에 개발서버를 구축해 놓고 개발하던 중 고객사의 담당자로 부터 연락이 왔다. 개발서버에 있는 프로젝트에 신규기능 추가 및 수정을 하면담당자가 개발서버에 붙어서 내용을 확인하는 식으로 업무를 진행하고 있었는데보안이슈도 발생 할 수도 있으니 고객사 이외의 외부IP는 접근을 못하게 해달라는 요청이었다. 외부IP접근을 막는 방식은 두 가지가 있다.1. IP TIME(공유기)단에서 외부IP를 막는방식2. 스프링 프로젝트에서 Filter / Interceptor로 외부IP를 막는방식 공유기에서 보안설정을 통해 고객사를 제외한 IP는 차단하는 방식을사용하고 있었는데, 문득 이런생각이 들었다. ' 지금은 본사에서 개발을 하니까 공유기 설정이 가능하지만공유기 설정이 불가능한 외부에서 프로젝트를 진행한다면? ' 어떤 ..

Google 2차인증 구현(구글 OTP)

최근 맡고 있는 프로젝트에서 로그인 보안을 강화해 달라는 요청이 들어왔다.한 개의 아이디로 여러 사람이 로그인하는 경우가 많은데, 현재 업무를 하지 않는 사람들도해당 아이디로 로그인 할 수 있어 보안이 취약하다는 점이었다.(비밀번호를 자주 바꾸지 않는 기관인듯싶다.) 그래서 어떤 방법으로 로그인 보안을 강화시킬 수 있을까 고민했고Google aouth2.0 방법의 2차 인증을 도입하기로 했다.Google 인증 방식도 여러 방법이 있었으나 Google Authenticator앱을 사용한OTP인증 방식을 채택했다. 1. 의존성 주입 구글에서 제공해 주는 라이브러리가 있었고pom.xml에 위와 같이 의존성을 주입했다. 2. OTP 인증 화면(JSP)$("#LoginSubmit").on("click", func..

전자정부프레임워크 - 수료증

전자정부프레임워크 온라인 정기교육 수강이유 그동안 솔루션 회사의 프로젝트를 많이 해왔다. 솔루션 회사만의 툴, Frame Work로 개발을 해 왔기에 이클립스, 스프링 등 범용적인 기술스택과는 거리가 먼 프로젝트를 많이 해왔다. 앞으로는 범용적인 기술 스택을 사용하며 일을 하고, 더 나아가 전자정부프레임워크를 사용하는 프로젝트를 하게 될 것 같아서 이참에 제대로 배워보자는 마음이 생겼다. 찾아보니 표준프레임워크에서 전자정부 표준프레임워크 온라인 정기교육을 해준 다는 것을 알게 되었고 온오프믹스라는 사이트를 통해 24년 1차 정기교육을 신청했다. 수강기록(2.19 ~ 2.25) 수강신청 후 표준프레임워크 포털에서 EgovFrame을 받아 기본환경 세팅을 한 후 각 패키지별 강의를 들으면서 각 파트별의 실습..

전자정부프레임워크 - JWT(Json Web Token)인증방식 구현, 세션아웃 처리

전자정부프레임워크4.1버전으로(스프링+리액트) 프로젝트 중 로그인 로직을 구현하게 되었다. AS-IS 소스와 달리 전자정부프레임워크의 로그인 인증방식은 JWT인증 방식을 채택해 사용하고 있었다. 토큰방식의 로그인 인증 구현 방식과 세션아웃 처리에 대해 적어본다. 1. 클라이언트에서의 아이디/패스워드 로그인 API 호출 시 넘겨줄 객체를 선언해 놓는다. ID/PW input 값이 변경될 때마다 userInfo가 세팅되도록 onChange 함수 구현 로그인 버튼 클릭 함수 정의를 했다. 로그인 버튼을 클릭하면 formValidator()라는 유효성 검사를 하고(개인적으로 만든 함수) 이상이 없을 시 submitLogin함수에 userInfo객체를 argument로 넣어 API를 호출한다. submitLogi..

전자정부프레임워크 - 마이바티스(MyBatis) 설정 및 사용

1. Configuration 구성 1. 상단의 eGovFrame 클릭 2. Implementaion 3. New Mapper Configuration 1. 대상 프로젝트 클릭(ex: lab106선택) 2. File name 작성(ex: sample_config.xml) 결과: config.xml 생성 완료 2. GUI 형식으로 변환(configuration) 1. 왼쪽에 만들어진 xml파일 오른쪽 클릭 2. Open With 클릭 3. Other... 클릭 4. mapperConfiguraion Editor 선택 결과: GUI 방식으로 변경 완료(아래 sample_config.xml 클릭 시 변경 전 형식 확인 가능) 3. Mapper파일 생성 1. 오른쪽 New 클릭 2. 패키지 선택(ex: test..

전자정부 프레임워크 - 메이븐설정(m.2 저장소 변경하기)

기존 전자정부 프레임워크로 개발된 프로젝트를 리액트로 변경/개선하기 위해 open 해보니 구동하면서 과거 소스가 돌아가지 않는 현상이 발생했다. ( org.apache.catalina.LifecycleException관련 에러 ) Maven - Udate Project... 처리까지 했지만 계속해서 오류가 발생했다. Maven 저장소 위치변경 maven은 저장소인 .m2 - repogitory를 가지고 있는데 내가 기존 전자정부 프로젝트를 구동하면서 여러 오류를 잡는다고 이것저것 하면서 .m2 - repogitory가 꼬인 것이 원인이었다. 그래서 해당 전자정부프레임워크는 다른곳을 바라보도록 했다. 일반적으로 아래 경로를 바라보고 있을텐데, C:\Users\사용자명\.m2\repository .m2 re..

728x90
728x90