# cat /etc/centos-release 
- CentOS Linux release 7.3.1611

 

# /var/tomcat 
- apache-tomcat-8.5.37

저의 경우 톰캣 두개 실행중이라 아래 제타 위키 참조

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%ED%86%B0%EC%BA%A3_%EB%B2%84%EC%A0%84_%ED%99%95%EC%9D%B8

 

리눅스 톰캣 버전 확인 - 제타위키

다음 문자열 포함...

zetawiki.com

 


# java -version
- java version "1.8.0_161"

 


# mysql -u root -p -> select version();
10.2.12-MariaDB

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

개발과 운영을 분리하는 방법 입니다.

 

기본적으로 스프링 부트의 설정파일은

 

src/main/resources/application.properties 의 설정 파일을 통해서 하게 되는데요

 

먼저 개발과 운영 데이터 베이스가 다르기 때문에 데이터 베이스와 로그 수준만 분리해 주도록 하겠습니다.

 

 

개발 / 운영 분리 구조

위의 사진처럼 application-dev.properties , application-prod.properties 각 파일을 생성을해서

개발시에는 첫번째파일을 운영시에는 두번째 파일을 읽어서 데이터 베이스를 연결하도록 구성하였습니다.

 

application-dev.properties
application-prod.properties

각 설정 파일은 디비 정보와 로그 레벨을 담고 있습니다. 

 

마지막으로 해당 파일들을 실행해줄 설정을 해줘야 합니다.

 

Run < Run Configurations 에 들어가서 Spring boot Profile 을 dev로 설정해 줍니다.

 

프로젝트를 실행할때 dev를 실행하기때문에 dev 설정파일을 자동으로 읽어 dev 디비를 연결하게 됩니다.

 

그럼 운영의 경우를 설명 하겠습니다.

 

운영의 경우 톰캣을 사용하고 있는데 톰캣의 경우

 

tomcat/bin 경로로 이동하여 setenv.sh 파일을 수정해 줍니다.

 

> vi setenv.sh

i를 눌러 편집

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod"

esc 누른 후 wq 엔터로 저장 

 

이렇게 되면 톰캣 실행시 prod 가 활성화 되어 운영 디비와 연결됩니다.

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

사용자로부터 입력을 받아 해당 데이터의 아이디값으로 변환하는 방법 입니다.

 

그룹 테이블
유저 테이블
사용자 입력 값

입력값을 보면 어떤 유저가 어떤 그룹에 속해 있는지를 나타내는 테이블 입니다.

 

엑셀 함수 VLOOKUP을 이용하여 변환하도록 하겠습니다.

 

첫번째 인자 선택

 

첫번째는 입력 받은 데이터를 선택 (자동 완성 사용할 시에는 범위 선택 후 f4를 눌러서 셀을 고정시켜 줘야 합니다)

 

두번째 인자 선택

 

두번째는 기분이 되는 테이블을 선택 

 

 

3번째는 2번째 선택 범위중에서 2번째열에 아이디값이 있으므로 2번째 열을 선택하고

 

4번째는 정확히 일치하는 값만 갖도록 false 를 선택하였습니다.

 

VLOOKUP(입력값, 찾을 테이블 데이터, 찾을 테이블 데이터에서 사용할 열, 정확히 일치 할지 선택)

 

이렇게 해서 완성 됐습니다.

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

1. login (remember me)

curl -i -X POST -d id=id -d password-1234 -c cookies.txt http://localhost:8080/login/loginProcessing

 

curl -i -X POST -d id="아이디" -d password-비번 -c cookies.txt http://localhost:8080/"스프링시큐리티 로그인처리 설정한 url 입력"

 

2. curl -i -X GET -b cookes.txt localhost:8080/file/1

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

스프링부트에서 정적자원 버저닝 방법은 두가지가 있다.

application.properties 파일을 통해서 간단히 설정할 수 있는데 그건 thymeleaf만 해당하는거 같다.. 

나는 jsp를 사용하는데 jsp의 경우는 추가로 bean을 등록해줘야 사용가능하다(이거땜에 3주는 허비한듯)

 

1. application.properties

# 1. ex) /css/spring-2a2d595e6ed9a0b24f027f2b63b134d6.css
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
# 2. ex) /v12/js/lib/mymodule.js
spring.resources.chain.strategy.fixed.enabled=true
spring.resources.chain.strategy.fixed.version=v12
spring.resources.chain.strategy.fixed.paths=/**

2-1. jsp (jstl)

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" type="text/css" href="<c:url value='/static/images/test.css'/>"></link>
<link rel="stylesheet" type="text/css" href="<spring:url value='/static/images/test.css'/>"></link>
</head>
<body>
	<h2>static resources caching test</h2>
	<input type="text" value="${message}">
</body>
</html>

2-2.html (thymeleaf)

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="stylesheet" th:href="@{/static/images/test.css}"></link>
</head>
<body>
	<h2>test html</h2>
	<span th:text="${message}"></span>
</body>
</html>

 

3. bean 등록( thymeleaf의 경우 생략 해도 동작 가능 확인)

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.resource.ResourceUrlEncodingFilter;

@Configuration
public class WebConfig{
	
	@Bean
    public ResourceUrlEncodingFilter resourceUrlEncodingFilter() {
        return new ResourceUrlEncodingFilter();
    } 

}

 

결과

1번 설정

 

2번 설정

 

 

 

 

 

 

 

 

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

대량의 데이터를 사용자들로부터 입력 받아 개발자가 입력해야 할 경우 사용 했습니다.

그룹 테이블 데이터
유저 테이블 데이터

이렇게 각 테이블의 데이터 있고 각 그룹별로 어떤 유저가 있는지를 유저들에게 입력을 받은 데이터를 dbunit으로 데이터를 넣기 위한 방법입니다.

 

현재는 5개씩 밖에 데이터를 존재 하지 않지만 천단위가 넘어가면 개발자가 직접 넣기는 힘드니 엑셀에서 자동화 하는 작업이 필요하게 됩니다.

 

입력 받아야할 시트

셀렉트 박스를 만들어서 원하는 데이터만 선택 가능하도록 구성

셀렉트박스 만들기

위의 방법으로 그룹과 유저를 그룹, 유저 시트에서 원하는 값만 선택하도록 만들도록 합니다.

아래 셀까지 모두 동일하게 하기 위해서는 =그룹!B$2:B$6 와 같이 셀번호를 고정시켜줘야 합니다.

\
입력 데이터

입력된 데이터를 인덱스 값으로 변환해서 그룹에 어떤유저들이 속해있는지를 데이터로 삽입해야 하는 작업이 필요합니다.

이렇게 입력 데이터를 원하는 인덱스 값으로 ..

Ctrl+f 로 값을 변경하는 방법도 있지만 대량의 데이터 기준으로는 마찬가지로 노가다 작업이 되므로 엑셀 함수 INDEX() 함수와 MATCH()함수를 이용하여 변환하도록 합니다.

=INDEX(그룹!A$2:A$6, MATCH(입력!A2,그룹!B$2:B$6,0),1)

=INDEX(그룹아이디 , MATCH(입력받은 값, 그룹이름, 0), 1) => 0은 정확히 일치할경우, 1은 열

이렇게 입력하게 되면 IF문과 같이 입력받은 값이 일치할 경우 인덱스 값으로 변경하여 자동채우기가 가능하다

이렇게 유저데이터까지 변경하면 해당 데이터가 테이블로 삽입될 수 있도록 변환 완료 됐습니다.

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

한 서버에 톰캣을 여러개 올리다가 하나의 톰캣이 실행이 안됐다.

 

우선 문제의 진단은 톰캣 폴더의 log 확인

/log/catalina.out 을 확인해 보니

문제는 $JAVA_OPTS 인데... 구글링 결과 웹서비스를 올릴때 설정했던 문제

/bin/setenv.sh 이거 설정 문제였다..

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev -Dfile.encoding=UTF8 -Duser.timezone=GMT+09:00"

 

이렇게 고져주고 실행하니 실행 잘된다.. 위 코드는 스프링 실행시 dev설정을 실행한다는 뜻!

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

 

저의 경우 로그인 처리를 /login/loginProcessing 에서 처리하게 해줬으므로 해당 url과 아이디 패스워드의 경우

hrId, passwrod 값을 넣어주면 됩니다.

 

curl -i -X POST -d hrId=아이디 -d password=비밀번호 -c cookies.txt http://localhost:8080/login/loginProcessing

 

다음 저장한 쿠키를 이용하여 원하는 페이지에 접근하면 됩니다

 

curl -i -X GET -b cookies.txt localhost:8080/hr/481

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

개발 운영 분리

2019. 7. 3. 10:44 from 웹개발

스프링 프로파일 실행 

 

리눅스 : tomcat/bin 폴더에

 

 

setenv.sh 파일 생성 하여

...더보기

vi setenv.sh

JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod" 코드 입력(prod profile 실행)

 

vi 명령어

i (삽입) - 코드 붙여넣기 - esc - !wq - enter

 

톰캣 재 실행하면 완료

'웹개발' 카테고리의 다른 글

개발 운영 분리  (0) 2019.07.03
Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요

큰 단위의 숫자나 위와 같은 값일 경우 xml로 컨버팅시 다른 값으로 나와

db에 넣을때 오류가 날때

전체 열을 선택하고

 

데이터 > 텍스트 나누기 > 다음

 

다음

 

 

텍스트를 선택하고 마침

 

데이트 컬럼이 왼쪽으로 정렬되고 xml로 컨버팅시 해당 값이 그대로 출력

Posted by 건강코더 트랙백 0 : 댓글 0

댓글을 달아 주세요