Git Product home page Git Product logo

egovframe-common-components's People

Contributors

chris-cw-yoon avatar chris-yoon avatar comghost avatar danheean avatar egovframesupport avatar ericseokgon avatar imooyoni avatar in-seo avatar jei007 avatar kjh214 avatar kyuheon-lee-94 avatar lecielpourlamer avatar lee-kyuhwun avatar leebaekhaeng avatar ohorange21 avatar overpassion avatar repia-jhgong avatar repia-kimmk avatar rukegithub avatar selim-jo avatar sgjang11 avatar smile-jeong 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  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  avatar

egovframe-common-components's Issues

Default 브랜치명 변경 요청 (master → main)

20년 10월 이후로 Repository 생성 시 Default 브랜치명이 master에서 main으로 변경되었다고 합니다.

사유는 "미국에서는 Black lives matter 운동이 큰 이슈가 되고 있다. 이러한 움직임의 연장으로 미국의 IT업계에는 이전부터 논란이 된 master/slave, blacklist/whitelist 와 같은 언어적인 문제들을 개선하려는 움직임이 많아지고 있다고 한다." 라고 합니다.

eGovFramework도 이러한 사회적 흐름에 발맞춰 움직여 브랜치명을 변경하면 좋겠습니다.

메이븐 빌드 에러

[ERROR] Failed to execute goal on project common: Could not resolve dependencies for project 

egovframework:common:war:3.10.0: The following artifacts could not be resolved: ojdbc:ojdbc:jar:6-11, altibase:altibase-jdbc-

driver:jar:7.1.0, com.tmax.tibero:tibero-jdbc:jar:5.0: Could not find artifact ojdbc:ojdbc:jar:6-11 at specified path 

/home/gon/workspace/egovframe-common-components/src/main/webapp/WEB-INF/lib/ojdbc6-11.2.0.3.jar -> [Help 1]

공통모듈 통계/리포팅 개선 진행 요청

전자정부표준프레임워크 공통컴포넌트에서
통계/리포팅 부분에서 그래프로 표현시 막대그래프로만 적용하고 있습니다.
계속적으로 시스템사용자들의 요구사항이 다양해지고 요구사항이 많아 지고 있는 현황입니다.
하여. 시스템 개발시 별도의 차트 패키지를 구매하는 등
개발자들이 차트 적용이 어려움을 많이 느끼고 있는 부분입니다.
저도 이런 부분을 고민하고 다양한 차트를 적용한 노하우가 있습니다.
제가 그동안 고민하고 적용 노하우를 바탕으로 프리웨어 차트라이브러리를 적용하여 개선하는 방향으로
컨티리뷰트하는 방향으로 개선을 진행하고자 하오니 검토 부탁드립니다.
전자정부표준프레임워크 개발자들에게 더 좋은 도구가 될 수 있도록 신속히 진행되었으면 합니다.
감사합니다.

[Bug]: Maven > Update Project... 할때

연락처 Contact

No response

오류 내용 Error Description

오류

이렇게 오류가 발생하는데 이유가 있을까요?

오류 재현 방법 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: windows 11
  • 표준프레임워크 버전 eGovFrame Version: 4.2
  • JDK(JRE) 정보: JDK 17
  • WAS 정보: tomcat 9.0
  • DB 정보:
  • 기타 환경 정보 Other environmental information:

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

No response

에러 로그 Error Logs

No response

pom.xml 수정 요청

  1. test 에 사용할 junit dependency 가 빠져있습니다.
  2. oracle, altibase, tibero dependency 설정항목
    필요하다면 /src/main/webapp/WEB-INF/lib 에 해당 lib 를 포함하거나,
    불필요한 부분이면, pom.xml 에서 해당 dependency 를 빼면 좋을 것 같습니다.

프로젝트 빌드가 안 됩니다.

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.430 s
[INFO] Finished at: 2022-07-11T22:09:21+09:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project common: Execution default-war of goal org.apache.maven.plugins:maven-war-plugin:2.2:war failed: Unable to load the mojo 'war' in the plugin 'org.apache.maven.plugins:maven-war-plugin:2.2' due to an API incompatibility: org.codehaus.plexus.component.repository.exception.ComponentLookupException: Cannot access defaults field of Properties

[Guide]: 캡쳐 => 캡처로 수정

개발가이드 URL Dev Guide URL

#208

수정 대상 내용 What to fix

image

PR 템플릿에서
마지막
"테스트 스크린샷 또는 캡쳐 영상 Test screenshots or captured video" 의 "캡쳐" 문구

Issues에 올리니 너무 거창한데요, 소소한 내용입니다. ^^;;

수정 문구 Corrective Wording

image

캡쳐 -> 캡처 또는 장면갈무리

[Bug]: 600. 설문조사 > 설문참여 등록 오류

연락처 Contact

[email protected]

오류 내용 Error Description

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

Mysql jdbc driver 8.0.x를 사용할 경우 설문조사 > 설문참여 등록 화면에서 데이터처리 에러 발생

이전 버전 5.1.49를 사용하면 정상으로 구동합니다.

오류 재현 방법 How to reproduce the error

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

  1. 업무담당자 TEST1로 로그인한다.
    image
  2. 600.설문조사 메뉴를 클릭한다. (설문 및 설문템플릿이 미리 등록되어 있어야 합니다.)
    image
  3. 제목을 클릭하면 오류 발생
    image
  4. 이클립스 오류 내용
    image

환경정보 Environmental Information

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

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

Chrome

에러 로그 Error Logs

오류내용

Caused by: java.sql.SQLFeatureNotSupportedException: resultSet=net.sf.log4jdbc.ResultSetSpy@4a610edc, columnLabel=SBSCRB_DE, type=class java.time.LocalDateTime
	at org.apache.commons.dbcp2.Jdbc41Bridge.getObject(Jdbc41Bridge.java:336) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.commons.dbcp2.DelegatingResultSet.getObject(DelegatingResultSet.java:773) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.commons.dbcp2.Jdbc41Bridge.getObject(Jdbc41Bridge.java:266) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.commons.dbcp2.DelegatingResultSet.getObject(DelegatingResultSet.java:773) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.ibatis.type.LocalDateTimeTypeHandler.getNullableResult(LocalDateTimeTypeHandler.java:38) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.type.LocalDateTimeTypeHandler.getNullableResult(LocalDateTimeTypeHandler.java:28) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.type.BaseTypeHandler.getResult(BaseTypeHandler.java:85) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.applyAutomaticMappings(DefaultResultSetHandler.java:572) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.getRowValue(DefaultResultSetHandler.java:409) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValuesForSimpleResultMap(DefaultResultSetHandler.java:361) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleRowValues(DefaultResultSetHandler.java:335) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSet(DefaultResultSetHandler.java:308) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.resultset.DefaultResultSetHandler.handleResultSets(DefaultResultSetHandler.java:201) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:65) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:76) ~[mybatis-3.5.10.jar:3.5.10]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_302]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_302]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_302]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_302]

데이터처리를 ORM 기반으로 공통 컴포넌트가 나오면 좋겠습니다.

공통 컴포넌트 데이터처리를 SQL매퍼인 mybatis로 되어 있습니다. 한국의 SI에서는 유독 mybatis를 사용하는데 전세적 추세는 JPA로 가고 있습니다. 전자정부 프레임워크도 좀더 세계적인 오픈소스로 가려고 한다면 ORM 기반으로 데이터 처리를 가는것이 좋을않을까 생각합니다. 그러면 좀더 많은 개발자들이 전자정부 프레임워크 오픈소스에 참여 할것이라 생각합니다.

전자정부프레임워크 위키 OAuth 내용 업데이트 개선

공통컴포넌트에서 제공하는 소스내용과 위키의 내용이 현행화가 안되어 있습니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:oauth

  1. Maven 설정
    위키 내용
org.springframework.social spring-social-facebook-web 1.1.1.RELEASE org.springframework.social spring-social-twitter 1.1.0.RELEASE org.apache.httpcomponents httpclient 4.3.4 commons-logging commons-logging com.h2database h2 1.4.180

공통컴포넌트 내용

    <dependency>
          <groupId>com.github.scribejava</groupId>
          <artifactId>scribejava-apis</artifactId>
          <version>5.6.0</version>
    </dependency>

    <dependency>
          <groupId>com.github.scribejava</groupId>
          <artifactId>scribejava-core</artifactId>
          <version>5.6.0</version>
    </dependency>
    
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.3.6</version>
        <exclusions>
            <exclusion>
                <artifactId>commons-logging</artifactId>
                <groupId>commons-logging</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.4.180</version>
    </dependency>

OAuth 로그인 버튼 구현(EgovLoginUsr.jsp)
위키 내용

<table width="700">
<tr>
<td class="title_left"><img src="<c:url value='/images/egovframework/com/cmm/icon/tit_icon.gif'/>" width="16" height="16" hspace="3" align="middle" alt=""> OAuth 로그인</td>
</tr>
</table>

<form id="tw_signin" action="<c:url value="/signin/twitter"/>" method="POST" target="_blank">
<button type="submit" style="width:151px; height:26px; background-image: url('<c:url value="/images/egovframework/com/ext/oauth/twitter/sign-in-with-twitter-d.png"/>');"/>
</form>
<form id="disconnect" action="/connect/twitter" method="post">
<button type="submit">Disconnect from Twitter</button>
<input type="hidden" name="_method" value="delete" />
</form>

<form name="fb_signin" id="fb_signin" action="<c:url value="/signin/facebook"/>" method="POST" target="_blank">
<input type="hidden" name="scope" value="publish_stream,email,offline_access" />
<button type="submit" style="width:151px; height:26px; background-image: url('<c:url value="/images/egovframework/com/ext/oauth/facebook/sign-in-with-facebook.png"/>');"/>
</form>
<form id="disconnect" action="/connect/facebook" method="post">
<button type="submit">Disconnect from Facebook</button>
<input type="hidden" name="_method" value="delete" />
</form>

공통폼퍼넌트
Naver Login



Google Login



Kakao Login

  • 전자정부 프레임워크 위키에는 OAuth 예전 버전으로 페이스북, 트위터에 대한 내용이고
  • 공통컴포넌트 소스상의 내용은 OAuth2 버전으로 페이스북, 네이버, 카카오톡 내용으로 소스상과 위키의 설명이 다릅니다.
  • 위키의 현행화가 되면 좋겠습니다.

기능추가 제안

빅데이터 분석을 위한 오픈소스 R-studio 연계 기능을 추가해 보았으면 합니다.
R-studio 및 R-engine 은 강력한 빅데이터 분석도구이며 이를 활용할 경우
고가의 상용 통계 패키지를 도입하지 않아도 각종 통계 분석이 가능하여
비용 절감과 업무 효율 향상에 기여할 수 있을 것으로 생각합니다.

이와 더불어 데이터 시각화를 위한 표준 템플릿 프로젝트가 만들어졌으면 좋겠습니다.
감사합니다.

배포시 DB 설정에 관한 건

현재 MySQL이 기본 DB 로 제공되고 있습니다.
그러다 보니 일단 개발 환경에 MySql 서버가 설치되어 있어야 하고, Connection 정보를 설정해 주어야 합니다.

표준프레임워크 교육을 이수한 사용자나, 경험이 있는 사용자들은 금방 DB 설정을 찾아가 문제를 해결할 것입니다.
그러나 처음 전자정부 프레임워크를 접하는 사용자들이 빠르게 데모를 실행 시키려다보니 DB 설정 부분을 놓쳐 또하나의 진입 장벽이 되는 것 같습니다.

처음 접하는 사용자도 한번에 바로 실행 할 수 있는 Hsql 환경으로 설정 해 주면
전자정부 표준프레임워크를 처음 접하는 사용자들의 첫인상이나 인식 또한 개선되지 않을까 생각됩니다.

감사합니다.

코딩 컨벤션을 정의했으면 좋겠습니다.

공통컴포넌트 같이 규모가 있는은 소스의 규모가 큰 만큼 소스별 다양한 개발 스타일들이 적용되어 있습니다.
이에 가독성도 떨어 질 뿐더러 유지보수 개발자들의 업무를 가중시키는 문제가 있는바
이에 코딩 컨벤션을 정의하고 통일된 규칙을 적용하므로써 효율성을 높이도록 하면 좋겠습니다.

공통으로 사용하는 변수들의 관리가 필요해 보입니다.

현재 egovframework.com.cmm.service.Globals 에서 공통으로 사용하는 프로퍼티 변수, 혹은 글로벌 변수들을 관리하고 있는데
개별 소스에서는 개별 프로퍼티의 호출이 이루어 지고 있는것 같습니다.
EgovProperties.getProperty()
아무래도 꼭 필요한 경우가 아니라면 static final의 전역변수로 관리하는 비용이 EgovProperties.getProperty() 메소드 호출 비용보다 경제적으로 사용 할 수 있을 것같습니다.
꼭 필요한 경우가 아니라면, 공통 혹은 전역으로 사용되고 있는 변수값들은 한곳에서 관리하는것이 관리 비용이 줄어들 것으로 보입니다.

NoSQL 을 이용한 공통 컴포넌트들이 있으면 좋겠습니다

현재는 대부분 RDBMS를 이용하는 컴포넌트만 있는걸로 보이는데,
요즘은 RDBMS 이외에도 NoSQL (예를 들어 MongoDB, Redis, Cassandra, ...) 도 꽤 사용합니다.
용도에 맞도록 사용한다면 기존의 RDBMS 보다 더 좋은 서비스가 가능할거라 봅니다.

  • 예를 들어 모니터링 데이터 같은 경우는 트랜잭션이나 테이블 간의 조인이 거의 필요 없으므로
    NoSQL 에 저장 하기에 적당해 보입니다.

[기능요구(Feature)]: 주석 작성을 위한 정의된 템플릿이 있는지 문의드립니다.

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

주석 관리를 위한 표준 주석 템플릿

기능 상세 설명 Feature Description

안녕하세요.

이번에 처음 컨트리뷰션으로 참여하게 됐습니다.

현재 1차적으로는 주석을 전체적으로 통일 또는 보완하는 것을 생각중입니다.
2차적으로 이백행 리더님이 알려주신 부분들을 조금씩 적용 하려고 합니다.

아직 표준프레임워크에대한 적응(?) 또는 익숙함이 없어서 가급적이면 로직이나 소스에 문제 없는 범위로 우선
저의 역할 잡아 보았습니다.

쉽게 생각하고(?) 주석을 정리하려고 보니.. 생각보다 주석에 대한 문서표준이나 내용이 소스별로 파일별로 조금씩 상이하고
제각각인거 같습니다.

1차적으로...
이클립스 메뉴 : Window -> Preferences -> Java -> Code Style -> Code Templates -> Comments -> Types
와 같은 이클립스 설정을 통해서 누구나 동일한 주석으로의 패턴을 정의해서 진행하게 하면 조금은 효율적이고
빠른 가독성이 가능하지 않을까 생각을합니다.

2차적으로는 현재 표준프레임워크에서 사용하는 주석에 대한 정확한 표준화가 없는 부분에 대하여 표준화를 요청드립니다.

솔루션 상세 Solution Details

아래는 예시입니다.

/**

  • EgovComIndexController 클래스

  • 컴포넌트 설치 후 설치된 컴포넌트들을 IncludedInfo annotation을 통해 찾아낸 후

  • 화면에 표시할 정보를 처리하는 Controller 클래스

  • notice :

  • 개발시 메뉴 구조가 잡히기 전에 배포파일들에 포함된 공통 컴포넌트들의 목록성 화면에

  • URL을 제공하여 개발자가 편하게 활용하도록 하기 위해 작성된 것으로,

  • 실제 운영되는 시스템에서는 적용해서는 안 됨

  • 실 운영 시에는 삭제해서 배포해도 좋음

  • disclaimer :

  • 운영시에 본 컨트롤을 사용하여 메뉴를 구성하는 경우 성능 문제를 일으키거나

  • 사용자별 메뉴 구성에 오류를 발생할 수 있음

  • @author 공통컴포넌트 정**

  • @SInCE 2011.08.26

  • @Version 2.0.0

  • @see

  • << 개정이력(Modification Information) >>

  • 수정일 수정자 수정내용


  • 2011.08.26 정## 최초 생성

  • 2011.09.16 서## 컨텐츠 페이지 생성

  • 2011.09.26 이## header, footer 페이지 생성

  • 2019.12.04 신## KISA 보안코드 점검 : Map<Integer, IncludedCompInfoVO> map를 지역변수로 수정

  • 2020.07.08 신## 비밀번호를 수정한후 경과한 날짜 조회

  • 2020.08.28 정## 표준프레임워크 v3.10 개선

*/

@controller
public class EgovComIndexController {

위와 같은 내용으로 제 개인적인 표준을 잡고 몇가지 파일에 대하여 통일된 내용으로 진행중입니다.

위에 내용에 대하여 추가/변경에 대하여 정의해 주시면 해당내용으로 진행하고자 합니다. 감사합니다.

이클립스에서 표현되는 내용 전달드립니다.(참고 부탁드립니다)

image

image

솔루션 관련 URL Solution-related URLs

No response

README.md 에 좀 더 자세한 내용이 있으면 좋겠습니다

모든 프로젝트들이 문서가 별도로 있긴 하겠지만,
README.md 만 보더라도 대충 어떻게 사용할지 내용을 보완하면 좋겠습니다.
프로젝트와 패키지들에 어떤 내용들이 있고, 어떻게 빌드하고 배포 하는 등의 내용도 있으면 더 좋겠지요.
이미 자세한 문서가 별도로 있다면 해당 링크라도 걸어주시기 바랍니다.

문의사항

  1. 게시판 목록페이지와 상세페이지 조회시의 기준이 되는 작성자 컬럼이 조금 다른것 같습니다
  2. '바로가기' 메뉴에 링크되는 URL 주소가 잘못된 것 같습니다

추후 확인 후 커밋하겠습니다

감사합니다!

[Bug]: 내 명함 정보 목록 조회 쿼리문에서 ',' 누락

연락처 Contact

[email protected]

오류 내용 Error Description

오류를 발견했어요. I found an error.
resources
egovframework
mapper
com
cop
ncm
EgovQustnrRespondInfo_SQL_*.xml

OTHBC_AT 다음의 ','가 누락되어 회사명이 OTHBC_AT값으로 매핑됨

	<select id="selectMyNcrdItemList" parameterType="egovframework.com.cop.ncm.service.NameCardVO" resultMap="ncrdList">
		
		SELECT * FROM ( SELECT rownum rn, TB.* FROM (
			SELECT 
				NCRD_ID, NM, NCRD_TRGTER_ID, OTHBC_AT, EXTRL_USER_AT, OTHBC_AT
				CMPNY_NM, DEPT_NM, IDNTFC_NO, MIDDLE_MBTLNUM, END_MBTLNUM, 
				FRST_REGIST_PNTTM, FRST_REGISTER_ID
			FROM
				COMTNNCRD
			WHERE 
				FRST_REGISTER_ID = #{frstRegisterId}			
			
			<if test="searchCnd == 0">AND
					NM LIKE '%' || #{searchWrd} || '%' 		
			</if>
			<if test="searchCnd == 1">AND
					CMPNY_NM LIKE '%' || #{searchWrd} || '%' 		
			</if>	
			<if test="searchCnd == 2">AND
					DEPT_NM LIKE '%' || #{searchWrd} || '%' 		
			</if>				
					
			ORDER BY NM 
			) TB ) WHERE rn BETWEEN #{firstIndex} + 1 AND #{firstIndex} + #{recordCountPerPage}
					
	</select>	

image

오류 재현 방법 How to reproduce the error

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

  1. NcrdManageDAOTest.testSelectMyNcrdItemList 테스트를 실행한다.
  2. Console 로그에서 오류를 확인한다.

환경정보 Environmental Information

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

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

Others

에러 로그 Error Logs

테스트를 실행하면 다음과 같이 CMPNY_NM에 'Y'값이 매핑됨

[log4j]2023-08-25 11:00:10,423  INFO [jdbc.resultset] 2. ResultSet.getType() returned 1003
[log4j]2023-08-25 11:00:10,423  INFO [jdbc.resultset] 2. ResultSet.isClosed() returned false
[log4j]2023-08-25 11:00:10,423  INFO [jdbc.resultset] 2. ResultSet.next() returned true
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(NCRD_ID) returned TEST_NCRD_9999999000
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(NM) returned 테스터
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(NCRD_TRGTER_ID) returned USRCNFRM_00000000000
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(OTHBC_AT) returned Y
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(EXTRL_USER_AT) returned N

@@@@@@@@
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(CMPNY_NM) returned Y
@@@@@@@@

[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(DEPT_NM) returned 연구개발
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(IDNTFC_NO) returned 070
[log4j]2023-08-25 11:00:10,424  INFO [jdbc.resultset] 2. ResultSet.getString(MIDDLE_MBTLNUM) returned 4448
[log4j]2023-08-25 11:00:10,425  INFO [jdbc.resultset] 2. ResultSet.getString(END_MBTLNUM) returned 2678
[log4j]2023-08-25 11:00:10,425  INFO [jdbc.resultset] 2. ResultSet.getString(FRST_REGIST_PNTTM) returned 2023-08-25
[log4j]2023-08-25 11:00:10,425  INFO [jdbc.resultset] 2. ResultSet.getString(FRST_REGISTER_ID) returned USRCNFRM_00000000000
[log4j]2023-08-25 11:00:10,425  INFO [jdbc.resultset] 2. ResultSet.isClosed() returned false
[log4j]2023-08-25 11:00:10,425  INFO [jdbc.resultset] 2. ResultSet.next() returned false
[log4j]2023-08-25 11:00:10,425  INFO [jdbc.resultset] 2. ResultSet.close() returned 
[log4j]2023-08-25 11:00:10,426  INFO [jdbc.audit] 2. Connection.getMetaData() returned com.mysql.jdbc.JDBC4DatabaseMetaData@6944e53e
[log4j]2023-08-25 11:00:10,426  INFO [jdbc.audit] 2. PreparedStatement.getMoreResults() returned false
[log4j]2023-08-25 11:00:10,426  INFO [jdbc.audit] 2. PreparedStatement.getUpdateCount() returned -1
[log4j]2023-08-25 11:00:10,426  INFO [jdbc.audit] 2. PreparedStatement.close() returned

[Bug]: 개인정보보호정책확인 등록화면에서 저장 버튼

연락처 Contact

[email protected]

오류 내용 Error Description

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

개인정보보호정책확인 등록페이지에서 등록이 안됨

image
image

validation이 textarea로 지정되어 있는데, ckeditor로 에디터가 변경이 되면서 textarea의 내용은 계속 비어 있어
오류가 발생하는 것으로 생각됩니다.

오류 재현 방법 How to reproduce the error

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

  1. 510. 개인정보보호정책확인 메뉴를 클릭한다.
  2. 개인정보보호정책 목록에서 등록 버튼을 클릭한다.
  3. 제목과 내용을 입력한다.
  4. 오류를 확인한다.
  5. 확인 과정에 아래 2건의 자바스크립트 오류가 발견되었습니다.

환경정보 Environmental Information

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

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

Chrome

에러 로그 Error Logs

EgovIndvdlInfoPolicyList.jsp
아래 onclick 부분도 확인 필요합니다.

  • onclick="fn_userChk('USRCNFRM_00000000000')"
	<div class="search_box" title="<spring:message code="common.searchCondition.msg" />"><!-- 이 레이아웃은 하단 정보를 대한 검색 정보로 구성되어 있습니다 -->
		<ul>
			<li>
				<select title="<spring:message code="select.searchCondition"/>" name="searchCondition" class="select"><!-- 개인정보보호정책조회 조건 -->
					<option value=''>--<spring:message code="input.select"/>--</option><!-- 선택하세요 -->
					<option value='INDVDL_INFO_POLICY_NM' <c:if test="${searchCondition == 'INDVDL_INFO_POLICY_NM'}">selected</c:if>><spring:message code="ussSamIpm.indvdlInfoPolicyList.indvdlInfoPolicyNm"/></option><!-- 개인정보보호정책명 -->
					<option value='INDVDL_INFO_POLICY_CN' <c:if test="${searchCondition == 'INDVDL_INF_POLICY_CN'}">selected</c:if>><spring:message code="ussSamIpm.indvdlInfoPolicyList.indvdlInfoPolicyCn"/></option><!-- 개인정보보호정책내용 -->
				</select>
				<input class="s_input2 vat" type="text" name="searchKeyword" value="${searchVO.searchKeyword}" size="25" title="<spring:message code="title.search"/>" /><!-- 검색어 -->
				
				<input class="s_btn" type="submit" value="<spring:message code="button.inquire" />" title="<spring:message code="button.inquire" />" onclick="fn_egov_search_IndvdlInfoPolicy(); return false;" />
				<span class="btn_b"><a href="<c:url value='/uss/sam/ipm/registIndvdlInfoPolicy.do' />" onclick="fn_userChk('USRCNFRM_00000000000')"><spring:message code="button.create" /></a></span>
			</li>
		</ul>
	</div>

EgovIndvdlInfoPolicyRegist.jsp
아래 주석 부분 확인 부탁드립니다.

  • varFrom.onsubmit();
 ******************************************************** */
function fn_egov_save_IndvdlInfoPolicy(){
	var varFrom = document.indvdlInfoPolicy;
	// varFrom.onsubmit();
	if(confirm("<spring:message code="common.save.msg" />")){
		varFrom.action =  "<c:url value='/uss/sam/ipm/registIndvdlInfoPolicy.do' />";
		if(!validateIndvdlInfoPolicy(varFrom)){
			return;
		}else{
			varFrom.submit();
		}
	}
}

spring-boot 의 구성과 철학에 맞는 공통컴포넌트 구조 개선

단순히 jar dependency 만을 제공하는 방식보다는
egovframe-spring-boot-starter 형태로 제공하는 것이 프레임워크 구성에도 적합하고 현업에서 사용하기 편리 할 것으로 생각됩니다.

autoconfiguration 방식의 구성이었으면 egovframework 발전에 큰 도움이 될 것 같습니다.

"HTTP서비스모니터링"에서 의심 가는 코드가 있습니다

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v3.10:utl:sys:htm:http%EC%84%9C%EB%B9%84%EC%8A%A4%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81

코드를 수정하면 전체적으로 수정할 부분이 너무 많아져서 이슈로 남깁니다.

egovframework.com.utl.sys.htm.service 패키지에 보면
HttpMntrngScheduling 클래스의 monitorHttp 메소드에서 등록된 사이트들이 정상인지
체크하는 부분이 있습니다. httpSttusCd = HttpMntrngChecker.getPrductStatus(siteUrl);

https://docs.oracle.com/javase/8/docs/technotes/guides/net/properties.html

위 링크에서
sun.net.client.defaultConnectTimeout (default: -1)
sun.net.client.defaultReadTimeout (default: -1)
두 프로퍼티를 보면 기본값이 -1 로 되어 있는데 이것은 서버가 응답을 준비하는데 오래 걸릴 경우 경우,
응답이 올때까지 계속 대기 상태에 빠질 위험이 있습니다.
따라서 현재의 체크 방식 보다는 적절한 타임아웃 설정을 하고, 서버의 HTTP 응답 코드 또는 예외 발생 여부로
판별하도록 전체 수정하는 것이 좋아 보입니다. 아래 링크를 참고하시면 좋습니다.

https://www.baeldung.com/httpclient-timeout

위의 문제는 실제로 타임아웃 설정이 없는 HTTP Client 코드로 연동 하는 사이트에서,
A->B->C 이런 식의 연쇄 장애로 이어져 결국 모든 시스템이 문제가 생기는 대형 장애로 되었던 사례입니다.

공통컴퍼넌트 테이블명 명명법 개선 문의

안녕 하세요~

공통컴퍼넌트를 사용할 때 처음에 가장 힘든점이 테이블명이 너무 약어로 되어 있어서 알아보기가 힘들었습니다.
이제는 어느정도 익숙해져서 괜찮은데 테이블 이름을 컬럼명 처럼 스네이크 표기법 혹은 좀더 사용자가 식별하기 쉽게 해주시면 좋겠습니다.

표준프레임워크 spring.profiles.active 사용에 대한 고려가 필요해 보입니다.

현재 표준프레임워크의 초기화 과정에서 EgovWebServletContextListener.setEgovProfileSetting()이 사용되고 있습니다.

그런데 내부 로직을 뜻어보면 컨텍스트의 설정과정에서 시스템의 spring.profiles.active 를 식별 항목으로 사용하고 있는 듯 합니다.

System.setProperty("spring.profiles.active", EgovProperties.getProperty("Globals.DbType")+","+EgovProperties.getProperty("Globals.Auth"));

그러나 이는 Spring 자체에서 사용하는 profile 또한 이와 같은 key 값을 사용하고 있는바,
build 시에 spring.profiles.active 항목을 사용하고 있다면 예기치 못한 결과들이 발생 할 것 같습니다.
참고

표준프레임워크의 컨텍스트 식별을 위해서라면, 기존 표준프레임워크에서 내에서 사용하는 spring.profiles.active 프로퍼티를 확인 후 영향도를 확인하여 key의 명칭을 변경 해야 할 것 같습니다.

[Bug]: 온라인POLL관리 상세조회 데이터 처리 에러

연락처 Contact

[email protected]

오류 내용 Error Description

오류를 발견했어요. I found an error.
온라인POLL 관리목록에서 등록된 온라인POLL 을 클릭시에 데이터 처리 에러 오류 출력

오류 재현 방법 How to reproduce the error

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

  1. 661.온라인POLL 관리 목록을 클릭한다.

image

  1. 등록 버튼을 눌러 온라인 POLL을 등록한다.

image

  1. 등록 후 등록된 온라인 POLL 제목을 클릭한다,

image

  1. 이클립스 오류 내용

image

  1. 오류 수정 방법
	<select id="selectOnlinePollItem" resultType="egovMap">
	 
		SELECT 
		POLL_ID,
		POLL_IEM_ID,
		POLL_IEM_NM,
		FRST_REGISTER_ID,
		DATE_FORMAT(FRST_REGIST_PNTTM,'%Y-%m-%d') AS FRST_REGIST_PNTTM,
		LAST_UPDUSR_ID,
		LAST_UPDT_PNTTM <-- 해당 라인 삭제
		DATE_FORMAT(LAST_UPDT_PNTTM,'%Y-%m-%d') AS LAST_UPDT_PNTTM
		FROM COMTNONLINEPOLLIEM
		WHERE 1=1
		AND POLL_ID = #{pollId} 
		ORDER BY POLL_IEM_NM DESC
	 
	</select>

환경정보 Environmental Information

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

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

Chrome

에러 로그 Error Logs

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(LAST_UPDT_PNTTM,'%Y-%m-%d') AS LAST_UPDT_PNTTM
		FROM COMTNONLINEPOLLIEM
		WHER' at line 9
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_202]
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_202]
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_202]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_202]
	at com.mysql.jdbc.Util.handleNewInstance(Util.java:403) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.Util.getInstance(Util.java:386) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3933) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3869) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2524) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2675) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1915) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1254) ~[mysql-connector-java-5.1.49.jar:5.1.49]
	at net.sf.log4jdbc.PreparedStatementSpy.execute(PreparedStatementSpy.java:417) ~[log4jdbc-1.2.jar:?]
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.commons.dbcp2.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:94) ~[commons-dbcp2-2.9.0.jar:2.9.0]
	at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:63) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:89) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:151) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:145) ~[mybatis-3.5.10.jar:3.5.10]
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140) ~[mybatis-3.5.10.jar:3.5.10]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_202]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_202]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_202]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_202]
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:427) ~[mybatis-spring-2.0.7.jar:2.0.7]
	... 139 more

[기능요구(Feature)]: 동영상 업로드 및 보기 기능이 있으면 좋겠습니다

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

동영상 업로드 및 보기 기능이 있으면 좋겠습니다

기능 상세 설명 Feature Description

요즘은 동영상 미디어를 많이 사용하는 추세인데 동영상 업로드 및 보기 기능이 없어보입니다.
예를 들어 '안전신문고' 라는 앱이 있는데 불법주차나 생활 속 안전 사고의 위험이 있는 것을 사진이나 영상으로 찍어서 올릴 수 있습니다.
그런데 공통 컴포넌트에는 동영상 업로드 및 보기 기능이 없어보여서 의견 드립니다.
표준프레임워크 오픈 커뮤니티 게시판(https://open.egovframe.org/oc/support/bbs.do) 에서도
마찬가지로 동영상 업로드 및 보기를 할 수 없어 많이 불편합니다.
힘드시겠지만 개선 되면 좋겠습니다. 감사합니다.

솔루션 상세 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.