Git Product home page Git Product logo

egovframe-development's People

Contributors

dependabot[bot] avatar egovframesupport avatar ohorange21 avatar rukegithub avatar win777 avatar yongfire38 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

egovframe-development's Issues

설명과 문서가 필요해 보입니다.

해당 프로젝트에 대한 설명과 문서가 너무 없어서 아쉽네요.
저 같은 초보자가 어떻게 시작해야 하는지 알려주시면 좋을 것 같습니다.

다른 프로젝트에는 README.md 파일이 작성되어 있어서, 프로젝트의 개요나 시작 방법에 대해서 자세히 나와 있습니다.
부디 이 프로젝트에서도 작성되어 있으면 좋겠습니다.

[기능요구(Feature)]: 큐 관련 컴포넌트 추가

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

공통컴포넌트 kafka, active mq ,rabbit mq API 추가

기능 상세 설명 Feature Description

API 코레오그레피 패턴적용을 위한 kafka등의 메시지 큐 사용가능한 공통 컴포넌트 기능 추가

[컨트리부션 참가자 지원합니다.)

솔루션 상세 Solution Details

카프카, 액티브MQ, 래빗MQ 등 주요 오픈소스 메시지 큐

솔루션 관련 URL Solution-related URLs

No response

[Bug]: eGovCI-4.2.0.tar.xz 에 jdk 추가 요청

연락처 Contact

No response

오류 내용 Error Description

오류를 발견했어요. I found an error.

eGovCI-4.2.0.tar.xz 에 jdk 추가 요청

윈도우에는 jdk 가 있어서 리눅스에도 추가할 수 있을까요?

리눅스
eGovCI-4.2.0/bin/jdk8u242-b08
eGovCI-4.2.0/bin/jdk-11.0.5
eGovCI-4.2.0/bin/jdk-17.0.10+7

윈도우
eGovCI-4.2.0_64bit/bin/jdk8u242-b08
eGovCI-4.2.0_64bit/bin/jdk-11.0.5
eGovCI-4.2.0_64bit/bin/jdk-17.0.10+7

https://www.egovframe.go.kr/home/sub.do?menuNo=94

서버용 개발환경(Development Tool - Unix,Linux,Win64bit) 4.2.0

오류 재현 방법 How to reproduce the error

(다음은 예시이며, 내용을 덮어 써 주세요. The following is an example, please overwrite the content.)

  1. 다음 메뉴를 선택한다. Select the following menu '...'
  2. 다음 버튼을 클릭한다. Click the Next button. '....'
  3. 다음 문구까지 스크롤 다운한다. Scroll down to the following phrase '....'
  4. 오류를 확인한다. Check for errors.

환경정보 Environmental Information

  • OS정보 Operating System:
  • 표준프레임워크 버전 eGovFrame Version:
  • JDK(JRE) 정보:
  • WAS 정보:
  • DB 정보:
  • 기타 환경 정보 Other environmental information:

어느 브라우저를 사용했나요? Which browser did you use?

No response

에러 로그 Error Logs

No response

Hello Issue

빌드 잘 되게 설정해 주세요.
#컨트리뷰션

[Bug]: nexus console 을 백그라운드로 실행으로 수정 요청

연락처 Contact

No response

오류 내용 Error Description

오류를 발견했어요. I found an error.

nexus console 을 백그라운드로 실행으로 수정 요청

eGovCI-4.2.0/start-nexus.sh

$NEXUS_HOME/bin/nexus console

$NEXUS_HOME/bin/nexus console &

로 수정

https://www.egovframe.go.kr/home/sub.do?menuNo=94

서버용 개발환경(Development Tool - Unix,Linux,Win64bit) 4.2.0

오류 재현 방법 How to reproduce the error

(다음은 예시이며, 내용을 덮어 써 주세요. The following is an example, please overwrite the content.)

  1. 다음 메뉴를 선택한다. Select the following menu '...'
  2. 다음 버튼을 클릭한다. Click the Next button. '....'
  3. 다음 문구까지 스크롤 다운한다. Scroll down to the following phrase '....'
  4. 오류를 확인한다. Check for errors.

환경정보 Environmental Information

  • OS정보 Operating System:
  • 표준프레임워크 버전 eGovFrame Version:
  • JDK(JRE) 정보:
  • WAS 정보:
  • DB 정보:
  • 기타 환경 정보 Other environmental information:

어느 브라우저를 사용했나요? Which browser did you use?

No response

에러 로그 Error Logs

No response

[Bug]: Nexus - JDK 1.8 필요 JVM 실행 파일 설정 내용 추가

연락처 Contact

No response

오류 내용 Error Description

오류를 발견했어요. I found an error.

Nexus - JDK 1.8 필요 JVM 실행 파일 설정 내용 추가

==================================================
* Nexus - JDK 1.8 필요,Jenkins - JDK 11 이상 svn은 별도로 설치 필요
JAVA_HOME 설정이 필요한 경우 : setEnv.sh(환경설정)파일에서 export JAVA_HOME을 강제로 지정할 것
TOMCAT 메모리 설정이 필요한 경우 : setEnv.sh(환경설정)파일에서 CI_OPTS 설정을 변경
실행파일 start-xxx.sh
==================================================

==================================================
* Nexus - JDK 1.8 필요,Jenkins - JDK 11 이상 svn은 별도로 설치 필요
Nexus - JDK 1.8 필요: eGovCI-4.2.0/bin/nexus-2.15.1-02-bundle/nexus-2.15.1-02/bin/jsw/conf/wrapper.conf
wrapper.java.command=/eGovCI-4.2.0/bin/jdk8u242-b08/bin/java
JAVA_HOME 설정이 필요한 경우 : setEnv.sh(환경설정)파일에서 export JAVA_HOME을 강제로 지정할 것
TOMCAT 메모리 설정이 필요한 경우 : setEnv.sh(환경설정)파일에서 CI_OPTS 설정을 변경
실행파일 start-xxx.sh
==================================================

로 수정

오류 재현 방법 How to reproduce the error

(다음은 예시이며, 내용을 덮어 써 주세요. The following is an example, please overwrite the content.)

  1. 다음 메뉴를 선택한다. Select the following menu '...'
  2. 다음 버튼을 클릭한다. Click the Next button. '....'
  3. 다음 문구까지 스크롤 다운한다. Scroll down to the following phrase '....'
  4. 오류를 확인한다. Check for errors.

환경정보 Environmental Information

  • OS정보 Operating System:
  • 표준프레임워크 버전 eGovFrame Version:
  • JDK(JRE) 정보:
  • WAS 정보:
  • DB 정보:
  • 기타 환경 정보 Other environmental information:

어느 브라우저를 사용했나요? Which browser did you use?

No response

에러 로그 Error Logs

No response

[Bug]: nexus 포트 9090 을 8081 로 수정 요청

연락처 Contact

No response

오류 내용 Error Description

오류를 발견했어요. I found an error.

nexus 포트 9090 을 8081 로 수정 요청

서버용 개발환경(Development Tool - Unix,Linux,Win64bit) 4.2.0 게시판 내용 수정 요청

https://www.egovframe.go.kr/home/sub.do?menuNo=94

서버용 개발환경(Development Tool - Unix,Linux,Win64bit) 4.2.0

* http://localhost:9090/nexus
* 사용포트 변경시(eGovCI-4.2.0/bin/apache-tomcat-nexus/conf/server.xml) 파일수정

* http://localhost:8081/nexus
* 사용포트 변경시(eGovCI-4.2.0/bin/nexus-2.15.1-02-bundle/nexus-2.15.1-02/conf/nexus.properties) 파일수정

로 수정

오류 재현 방법 How to reproduce the error

(다음은 예시이며, 내용을 덮어 써 주세요. The following is an example, please overwrite the content.)

  1. 다음 메뉴를 선택한다. Select the following menu '...'
  2. 다음 버튼을 클릭한다. Click the Next button. '....'
  3. 다음 문구까지 스크롤 다운한다. Scroll down to the following phrase '....'
  4. 오류를 확인한다. Check for errors.

환경정보 Environmental Information

  • OS정보 Operating System:
  • 표준프레임워크 버전 eGovFrame Version:
  • JDK(JRE) 정보:
  • WAS 정보:
  • DB 정보:
  • 기타 환경 정보 Other environmental information:

어느 브라우저를 사용했나요? Which browser did you use?

No response

에러 로그 Error Logs

No response

[Bug]: 모든 리소스들이 커밋 된게 맞나요?

연락처 Contact

[email protected]

오류 내용 Error Description

jdom, commons-lang, commons-io 등 외부 라이브러리 들이 프로젝트/lib 폴더에 아예 존재 하지도 않고
특히 egovframework.dev.imp.codegen.template 프로젝트에서 참조하는 eclipsework.jar, abstractplugin.jar 는 구글링해도 검색이 안되네요.

하단 설명으로는 개발환경을 구성할 수가 없습니다.

Spring boot 지원

egovframework으로도 간단한 개발을 쉽게 할 수 있도록 spring boot를 지원하면 좋겠습니다~

FindBugs 사용법 문서 컨트리뷰션

1. FindBugs란?
FindBugs는 Maryland 대학 연구 프로젝트 결과물로 자바 소스의 컴파일 된 클래스 파일을 검사하는 오픈 소스 정적 분석 도구다. 정적 분석 도구이므로 프로그램을 실행하지 않고도 프로그램 소스(정확히는 자바 바이트 코드)를 검사할 수 있다.
정적 분석을 통해 찾아내고자 하는 것은 프로그램 내에 존재하는 잠재적인 결함이다.
결함을 찾아 내는 과정은 FindBugs내에 있는 결함 패턴과 클래스 파일을 비교하여 잠재적인 자바 코드 결함을 찾아낸다.
FindBugs가 찾아낸 잠재적인 결함은 실제 결함일 수도 있고 아닐 수도 있다. 따라서 찾아낸 결함들은 코드 리뷰를 통해 실제 결함인지 아닌지 판별하는 과정을 거쳐야 하다. 프로젝트에서는 해당 모듈 개발자가 이 업무를 수행하게 된다.
그리고 FindBugs가 찾아낸 결함은 코딩 스타일이나 포맷 등과 관련이 없다. 잠재적인 결함, 성능 문제 등을 찾아낸다.

2. FindBugs 실행하기
FindBugs는 GUI, Command Line 형태, Ant Task, 이클립스 플러그인 형태로 실행할 수 있다. FindBugs에서 공식적으로 지원하지 않지만 Maven플러그 인을 이용하여 실행할 수도 있다. GUI 형태로 실행하는 것보다 이클립스 플러그인을 설치하여 이클립스 안에서 사용하는 것이 가장 사용하기 편하다.
FindBugs 이클립스 플러그인은 아래 공식 업데이트 사이트를 통해 설치하면 된다.
http://findbugs.cs.umd.edu/eclipse/
설치 후 실행은 패키지 익스플로러에서 검사하고 싶은 프로젝트를 선택하고 오른쪽 마우스 버튼을 누른 뒤 나타내는 메뉴에서 FindBugs를 선택하면 된다.
FindBugs가 자동으로 실행되게 설정하면 이클립스내에서 클래스 파일이 수정될 때 마다 FindBugs가 자동으로 실행된다.
아래 화면과 같이 이클립스내 자바 프로젝트 등록정보 -> 프로젝트 프로퍼티 설정 윈도우 -> Findbugs -> Run automatically를 체크하면 된다.
image
[그림1]FindBugs 자동 실행 설정

프로젝트를 진행할 경우 개발자들 자율에 맡기는 것보다 CI(Continuous Integration)를 구성하여 자동화된 빌드 프로세스(Daily Build 등)내에서 FindBugs를 실행하여 강제로 정적 코드 검사를 수행하는 것이 바람직하다. 이 경우 소나큐브(FindBugs 플러그인)와 젠킨스를 사용하여 CI를 구성하는 것이 좋다.
CI 구성을 하지 않는 경우에도 FindBugs 플러그인을 포함한 상태에서 소나큐브를 실행하는 것이 좋다. 이 경우 소나큐브의 웹포탈 대시보드 화면을 통해 FindBugs가 발견한 결함, 결함의 의미, 해당 결함이 발생한 소스들을 살펴볼 수 있다.

소나큐브에서 사용하는 소나큐브-FindBugs 플러그인은 FindBugs, FindSecurityBugs, fp-contrib 등을 모두 포함하고 있어서 설치/사용이 간편하다.( FindSecurityBugs, fp-contrib에 대한 내용은 아래에 설명되어 있다.)

어떤 형태로 FindBugs를 실행하던지 FindBugs의 사용법은 어렵지 않다.
중요한 부분은 사용법이 아니라 FindBugs가 발견하여 리포팅한 잠재적 결함이 무엇인지 결함의 내용과 의미를 정확히 이해하는 것이다. 해당 결함의 내용이 무엇인지 이해하고 자신이 개발한 코드가 해당 결함을 가지고 있는지 판단을 해야 한다. 오탐의 경우도 있으므로 실제 결함인지 여부의 최종 결정은 사람이 해야 한다.

3. Findbugs로 탐지 가능한 결함 유형
2015년 3월 이후 오랫동안 업그레이드가 되지 않고 있지만 FindBugs 최신 버전인 3.0.1에서 탐지할 수 있는 결함 패턴은 400개가 넘는다. 이 결함 패턴들은 아래와 같은 9 가지 이상의 카테고리로 분류된다.

<style> </style>
탐지 유형 탐지 내용
Bad Practice 발생된 예외 무시, null 처리 실수 등 개발자의 나쁜 습관을 탐지
Correctness 무한재귀호출, write된 적이 없는 field 참조 등 문제의 소지가 있는 코드를 탐지
Dodgy code 사용되지 않는 로컬 변수, 형 변환 체크 오류 등 부정확하거나 오류를 발생시킬 수 있는 코드를 탐지
Experimental 메서드에서 생성된 stream이나 리소스가 해제되지 못한 코드를 탐지
Internationalization Default 인코딩을 지정하지 않은 경우 등 지역특성을 고려하지 않은 코드 탐지
Malicious code vulnerability 보안 코드에 취약한 가변적인 배열이나 컬렉션, Hashtable 탐지
Multithreaded correctness 멀티 쓰레드에 안전하지 않은 객체 사용 등을 탐지
Performance 미사용 필드, 비효율적 객체생성 등 성능에 영향을 주는 코드를 탐지
Security CSS, DB 패스워드 누락 등 보안에 취약한 코드를 탐지

그리고 보안과 관련하여 추가로 121개의 보안 관련 결함 패턴을 탐지할 수 있는 FindSecurityBugs가 있다. FindSecurityBugs는 FindBugs 플러그인으로 http://find-sec-bugs.github.io/ 사이트에서 다운로드하여 FindBugs에 설치하면 된다. FindSecurityBugs는 FindBugs와 달리 최근까지 업데이트가 이루어지고 있다.

4. FindBugs 추가 결함 탐지기
http://fb-contrib.sourceforge.net/ 사이트에서 FindBugs의 추가 결함 탐지기를 다운로드 할 수 있다. 이클립스에서 FindBugs 플러그인을 사용하고 있다면 위 사이트에서 다운로드 받은 추가 결함 탐지기 플러그인 파일(예, fb-contrib-7.0.3.sb.jar)을 하기 폴더에 복사한 뒤 이클립스를 재시작하면 된다. fp-contrib를 사용하면 좀 더 많은 결함을 탐지할 수 있다.

\이클립스 설치 폴더\plugins\edu.umd.cs.findbugs.plugin.eclipse_3.0.1.xxx\plugin

5. 잠재적 자바 코드 결함 탐지
이후부터는FindBugs가 찾아내는 잠재적 자바 코드 결함 몇 가지를 살펴보자.

결함 패턴 #1)

  • Method ignores return value

아래 코드는 컴파일 에러가 나지 않지만 잘못된 곳이 있다. 어느 부분이 잘못되었을까?
String name = "bob";
name.replaceAll(“b”, “p”);
if(name.equals("pop"))

개발자는 두번째 라인을 통해 name String 변수내의 b가 p로 모두 치환될 것으로 생각한다.
그렇지만 String은 변하지 않는(immutable) 객체이다. replaceAll 메소드를 통해 변수의 값을 바꾸려고 해도 name 변수의 값은 변하지 않는다. 값이 바뀐 새로운 String 객체를 만들어낸다. replaceAll 메서드의 리턴값을 사용해서 위 코드는 아래와 같이 바꾸어야 한다.

String name = "bob";
String newname = "";
newname = name.replaceAll(“b”, “p”);
if(newname.equals("pop"))

String의 trim() 메서드도 위와 동일하다. trim() 메서드의 리턴값을 사용해야 원하는 결과를 얻을 수 있다.

결함 패턴 #2)

  • Infinite recursive loop
    하기 코드를 살펴 보자.

public String sendMessage(User user, String body, Date time) {
return sendMessage(user, body, null);
}
개발자의 의도는 여러 메서드 오버로드에서 공통된 함수를 호출하는 것으로 보인다.
그렇지만 결과는 자기 자신을 무한 호출하게 된다.
자기 자신을 무한 호출하는 코드는 스택 오버플로우를 발생시키게 된다.
아래 코드를 살펴 보자.
public String foundType() {
return this.foundType();
}
위 코드도 FindBugs를 돌려보면 Infinite recursive loop 결함이 탐지된다. 원래 개발자의 의도는 foundType이라는 프로퍼티 값을 리턴하는 것으로 보인다. 그렇지만 foundType()로 인해 결과적으로 자기 자신을 계속 호출하게 된다.

6. 맺음말
릴리즈가 중단된 FindBugs를 계승한 SpotBugs를 사용하자.
https://spotbugs.github.io/index.html

[문의]: Git LFS 파일 다운로드 방법

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

Git LFS 파일 다운로드 방법

기능 상세 설명 Feature Description

안녕하세요.

git lfs pull
git lfs fetch --all
위 두 명령어로 lfs 파일 다운로드를 시도해 봤는데 아래와 같은 메시지가 표시되고 다운로드가 안되네요.

git lfs fetch --all
fetch: 102 objects found, done.                                                                                                                          
fetch: Fetching all references...
[b786d72eb6e2778ef83afb96212de54f2e5ee7ae1268bc7f637d44950c6e6038] Object does not exist on the server: [404] Object does not exist on the server        
[e21b4ae2d47e94299f18f87d156753cb2d67e93ba2c5a63bab2b46415e5d5cb7] Object does not exist on the server: [404] Object does not exist on the server
.....

SourceTree GUI 툴로 Clone을 시도해도 다음 같은 내용이 표시됩니다.
SourceTree_lfs

※ 기존 이슈에 Comment로 달면 알림이 안 가는 것 같네요.
이런 문의를 이슈에 계속 등록하면 되는지 아니면 질문/답변을 위한 게시판이 별도로 있는지 알려주세요.

솔루션 상세 Solution Details

No response

솔루션 관련 URL Solution-related URLs

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.