728x90
반응형
728x90
반응형

인프런 김영한님의 강의를 기반으로 스프링 부트를 공부하기로 했습니다.

sts에서 gradle 프로젝트 import하는 방법에 대해 알아보겠습니다.
1. spring-initializr 활용하여 프로젝트 다운받기 https://start.spring.io/

● Project : Spring Boot를 빌드하고 배포하는 방식으로 Maven, Gradle 중 선호하는 프로젝트를 선택 (Gradle을 많이 사용하는 추세라고 함)
Group : 보통 회사명을 적는데 jpabook으로 작성
Artifact : build 된 결과물 (프로젝트명)
Dependencies : 라이브러리 추가(Spring Web, thymeleaf(html 템플릿 엔진 -jsp대신 사용), Spring Data JPA, H2 Database, Lombok)
GENERATE : 프로젝트를 생성


2. STS실행하여 다운받은 프로젝트 import

Gradle -> Existring Gradle Project

Next 클릭

Browse... 를 클릭하여 다운받은 프로젝트 경로 지정 후 Next

Override workspace settings 체크 후 Next

1번 Dependencies 에서 추가한 라이브러리를 다운받는 화면

프로젝트가 정상적으로 생성됨

내장된 톰캣을 활용하여 서버 시작

방화벽 허용

localhost:8080 실행시 정상적으로 기동되었음

728x90
반응형

'프로그래밍 > Spring Boot' 카테고리의 다른 글

STS Gradle 라이브러리 추가하기  (1) 2022.01.02
STS Lombok 적용하기  (1) 2022.01.02
728x90
반응형

SQLD 자격증 유효기간 영구 갱신하기

이직으로 인해 자격증 출력이 필요하여 SQLD 자격증을 확인해보니 유효기간이 만료일이 다가오고 있었습니다.

취득일은 19.12.31
취득일로 1년 6개월 이후부터 2년 이내에 보수 교육을 받아야 2년으로 되어있던 유효기간을 영구로 갱신할 수 있습니다.

유효기간 영구로 변경하는 법에 대해 알아보겠습니다.

1. 데이터 자격검정 홈페이지로 이동하여 로그인
 - https://www.dataq.or.kr/www/main.do
 
2. 마이페이지>보수교육 클릭


3. 보수교육신청 클릭하여 동영상 시청(3~4시간)
 * 중간에 출석체크 하는 것은 없으니 틀어놓고 볼일을 보면 됩니다.

4. 완료


 1) 수강전 

2) 수강후

728x90
반응형
728x90
반응형

EAI(Enterprise Architecture Integration)는 기업의 애플리케이션을 통합을 하는 것입니다.

 

기업  필요한 여러 애플리케이션이 있을텐데, 이런 각종 애플리케이션 간에 상호 연동이 가능하도록 통합하는 솔루션입니다.

 

기업 내의 ERP(전사적자원관리), CRM(고객관계관리), SCM(공급망관리), 그룹웨어 시스템이나 인트라넷 등의 시스템 간에는 서로 데이터를 주고 받아야할 필요성이 존재할 것입니다.

 

데이터를 주고받기 위해  시스템 간에 개별적으로 서로 통신을 한다면 시스템 간에 개별적인 연결이 상당히 많이 생성되게 됩니다.

 

이로 인해 유지 보수의 어려움이 생깁니다.

운영체제가 다르다거나 하는 이유로 시스템  통신을 위해 시스템을 고쳐야하는 상황이 발생할  있습니다.

 

또한 제가 경험해본 바로 기업 내 노후화된 시스템과 신규 구축된 시스템간 연동이 필요한 경우가 있었습니다.

노후화된 시스템을 업그레이드를 해야하는 상황이었지만, 기업 내 예산 부족으로 노후화 시스템의 연동을 위한 업그레이드를 요청하였고, 해당 업체에선 연동만을 위한 업그레이드는 진행하지 않으며, 시스템 업그레이드를 해야했습니다.

이때 EAI를 사용하여 필요한 연동을 조치한 적이 있었습니다.

 

이런 문제점을 해결하기 위해서 EAI라는 솔루션을 적용하는 것이며,

적용 전과 후를 비교하면 다음 그림과 같습니다.

 

EAI 단점으로,

소규모 시스템에서는 적용을 위한 필요 이상의 개발 비용이 발생할  있다는 것과 관리되지 않는 시스템들이 생길  있다는 점입니다.

 

 


* 출처: https://sheerheart.tistory.com/entry/EAI-란-무엇인가 

728x90
반응형
728x90
반응형

javac를 이용해 class파일 생성도중 아래와 같은 오류가 발생하였는데요.

unmappable character for encoding MS949

구글링해보니 컴파일시 오류로 인코딩을 지정해줘야 한다고 하네요.

또는 해당 파일의 인코딩을 UTF-8로 변경하는 것도 방법일 수 있겠네요.

 

1. 윈도우

javac extract.java -encoding UTF-8

2. 리눅스

/자바 설치경로/bin/javac -encoding UTF-8 ./extract.java

 

728x90
반응형
728x90
반응형

티베로 버전 확인 쿼리

 

SELECT * FROM vt_version;

 

결과

728x90
반응형
728x90
반응형

윈도우 팝업을 이용해 개발하던 도중 아래와 같은 오류가 발생했습니다.

SCRIPT87: 잘못된 인수입니다.

 

크롬에서는 문제없지만 IE에서만 발생하는 오류.

[수정방법]
var a = "123-456";
a = a.replace('-', '_');

window.open(urlStr,a,popOption);

 

728x90
반응형
728x90
반응형

프로그램을 개발하다 보면 자바 OOME(OutOfMemory)를 겪어 본적이 있을 것 같은데요.

OOME(Out Of Memory Error)는 JVM의 메모리가 부족하여 발생한 에러 입니다.

OOME는 자바의 일반적은 오류와 달리 대응이 쉽지가 않습니다.

오류를 해결하기 위해 JVM Option으로 덤프 파일을 생성한 후 덤프 파일을 분석하여 해결을 해야 합니다.

짧은 시간으로 오류를 찾기는 쉽지 않습니다.

그래서 OOME발생시 JVM옵션을 이용하여 톰캣 자동으로 시작할 수 있는데요.

JVM의 OnOutOfMemoryError 옵션을 사용하여 OutOfMemroy 발생 이후에 특정 동작을 지정하면 됩니다.

 

1) 톰캣의 catalina.sh 실헹

 : CATALINA_OPTS의 아래 옵션을 추가합니다.

CATALINA_OPTS="-Djava.awt.headless=true -server -Xms2048m -Xm2048m -XX:MaxPermSize=256m -XX:+HeapDumpOnOutOfMemoryError -XX:OnOutOfMemoryError=/app/serviceRestart.sh

 

2) 재시작 쉘 스크립트 생성

#!/bin/sh
 
export JAVA_HOME=/usr/local/java
export PATH="$PATH:$JAVA_HOME/bin"
export CATALINA_HOME=/usr/local/tomcat8
 
 
# 톰캣 서비스 다운
/app/tomcat8/bin/shutdown.sh
#시간은 서비스 기동 시간에 따라 조절.
sleep 60

# 톰캣 서비스 시작
/app/tomcat7/bin/startup.sh

shutdwon.sh로 서비스가 중단이 안되는 경우 force 옵션을 추가하면 강제로 중지할 수 있습니다.

 

 

 

728x90
반응형
728x90
반응형

개발 하다보면 특정 날짜에 요일을 알아내야 하는 경우가 생깁니다.

자바에서 특정 날짜에서 요일 구하는 메소드 알아보겠습니다.

/**
 * 특정 날짜 요일 구하기
 * @param date
 * @param dateType
 * @return
 * @throws Exception
 */
public String getDateDay(String date, String dateType) throws Exception {
    String day = "" ;
     
    //SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
    //SimpleDateFormat date1 = new SimpleDateFormat("yyyyMMdd");
    //SimpleDateFormat date2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
    SimpleDateFormat dateFormat = new SimpleDateFormat(dateType) ;
    Date nDate = dateFormat.parse(date) ;
     
    Calendar cal = Calendar.getInstance() ;
    cal.setTime(nDate);
     
    int dayNum = cal.get(Calendar.DAY_OF_WEEK) ;
    
    switch(dayNum){
        case 1:
            day = "일";
            break ;
        case 2:
            day = "월";
            break ;
        case 3:
            day = "화";
            break ;
        case 4:
            day = "수";
            break ;
        case 5:
            day = "목";
            break ;
        case 6:
            day = "금";
            break ;
        case 7:
            day = "토";
            break ;
             
    }
    return day ;
}
728x90
반응형
728x90
반응형

+ Recent posts