728x90
반응형

2025년 3월에 전자정부프레임워크(eGovFrame) 4.3 버전이 공개되었습니다.

이와 관련하여 살짝 알아보았습니다

🔹구조 및 설명

📦 my-egov-project  <-- 프로젝트 루트
 ┣ 📂 src
 ┃ ┣ 📂 main
 ┃ ┃ ┣ 📂 java  <-- Java 소스 코드 (Controller, Service, DAO 등)
 ┃ ┃ ┃ ┣ 📂 egovframework
 ┃ ┃ ┃ ┃ ┣ 📂 config        <-- 설정 관련 (DB, Spring 설정 등)
 ┃ ┃ ┃ ┃ ┣ 📂 sample        <-- 샘플 컨트롤러 및 서비스 코드
 ┃ ┃ ┃ ┃ ┣ 📂 com           <-- 실제 개발 패키지 (Controller, Service, DAO)
 ┃ ┃ ┃ ┃ ┗ 📂 util          <-- 유틸리티 클래스
 ┃ ┃ ┣ 📂 resources  <-- 설정 파일 (log, DB, Spring 등)
 ┃ ┃ ┃ ┣ 📜 log4j.xml       <-- 로그 설정
 ┃ ┃ ┃ ┣ 📜 egovframework.properties  <-- eGovFrame 설정
 ┃ ┃ ┃ ┣ 📜 jdbc.properties <-- DB 연결 정보
 ┃ ┃ ┃ ┣ 📂 egovframework  <-- 스프링 관련 설정
 ┃ ┃ ┃ ┃ ┣ 📜 springmvc  <-- DispatcherServlet 설정
 ┃ ┃ ┃ ┃ ┣ 📜 spring-security.xml <-- Spring Security 설정 (선택 사항)
 ┃ ┃ ┃ ┃ ┣ 📜 context-datasource.xml <-- DB 설정
 ┃ ┃ ┃ ┃ ┗ 📜 context-*.xml <-- 기타 스프링 설정
 ┃ ┃ ┣ 📂 webapp  <-- 웹 루트 (HTML, JSP, 정적 리소스)
 ┃ ┃ ┃ ┣ 📜 favicon.ico  <-- 파비콘 파일
 ┃ ┃ ┃ ┣ 📜 index.jsp  <-- 메인 페이지
 ┃ ┃ ┃ ┣ 📂 resources  <-- 정적 파일(css, js, images)
 ┃ ┃ ┃ ┃ ┣ 📂 css  <-- CSS 파일
 ┃ ┃ ┃ ┃ ┣ 📂 js  <-- JavaScript 파일
 ┃ ┃ ┃ ┃ ┗ 📂 images  <-- 이미지 파일
 ┃ ┃ ┃ ┣ 📂 WEB-INF  <-- 보안이 필요한 파일 (외부 접근 불가)
 ┃ ┃ ┃ ┃ ┣ 📜 web.xml  <-- 서블릿 설정 파일
 ┃ ┃ ┃ ┃ ┣ 📂 views  <-- JSP 파일 (View)
 ┃ ┃ ┃ ┃ ┗ 📂 config  <-- XML 설정 파일 (MyBatis, Spring 등)
 ┃ ┃ ┃ ┗ 📂 templates  <-- Thymeleaf 템플릿(사용 시)
 ┃ ┣ 📂 test  <-- 테스트 코드
 ┣ 📂 target  <-- 빌드된 파일(WAR, 클래스 파일 등) (Maven 사용 시)
 ┣ 📜 pom.xml  <-- Maven 설정 파일 (의존성 관리)
 ┣ 📜 README.md  <-- 프로젝트 설명 파일

🔹 전자정부프레임워크 4.3 주요 특징

1️⃣ 최신 기술 스택 적용

  • Spring 5.x 및 Java 11 이상 지원
    최신 기술을 적용하여 보안 강화 및 성능 개선
  • MyBatis, Hibernate 최신 버전 지원
    데이터 접근 성능 및 유지보수성 개선
  • Gradle 지원 추가
    기존 Maven 외에도 Gradle 빌드 시스템 사용 가능

2️⃣ 보안 및 성능 강화

  • Spring Security 최신 버전 적용
    OAuth 2.0 지원 및 보안성 강화
  • XSS, SQL Injection 방어 기능 강화
    웹 애플리케이션 보안 취약점 대응
  • JSON Web Token(JWT) 지원
    토큰 기반 인증 방식 도입 가능

3️⃣ 개발 생산성 향상

  • 전자정부 공통 컴포넌트 개선
    기존 기능을 보강하고 불필요한 부분 정리
  • RESTful API 지원 강화
    API 개발 시 표준화된 방식으로 구현 가능
  • Vue.js, React와의 연동 강화
    프론트엔드 기술과의 호환성 향상

.

728x90
반응형

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

이클립스 단축키 모음  (1) 2024.01.27
Node.js 란?  (0) 2024.01.17
웹스퀘어(WebSquare)란?  (2) 2023.12.30
728x90
반응형

오랫만에 이클립스를 사용하다보니 단축키가 많이 생소하다.

일단 내가 사용하기 위해서라도 정리해본다.

 

- 주석
Ctrl + Shift + / : 블록을 주석으로 처리 (/* */)
Ctrl + Shift + \ : 블록 주석을 해제
Ctrl + / : 한줄 or 블록 주석 처리 / 해제 (//)

- 검색
Ctrl + F : 키워드 검색 (해당 소스에서만)
Ctrl + H : 키워드 검색 (프로젝트 전체에서)
Ctrl + Shift + R : 전체 리소스에서 파일 찾기
Ctrl + Shift + T : Jar 포함 클래스 찾기
Ctrl + Alt + H : 특정 클래스 호출 위치 찾기
Ctrl + K : 찾을 문자열을 블럭으로 지정하고 검색
Ctrl + Shift + K : 밑에서 문자열 검색

- 위치 이동
Ctrl + 특정 클래스 마우스 왼쪽 클릭(F3) : 특정 클래스로 이동
Ctrl + O : 소스의 메소드 리스트 확인
Ctrl + L : 지정한 소스 줄로 이동
Alt + 방향키(←) : 이전 작업 위치로 이동
Alt + 방향키(→) : 다음 작업 위치로 이동
F4 : 클래스명을 선택하고 F4를 누르면 해당 클래스의 상속 계층 확인

- 소스 편집
Ctrl + Z : 소스 수정 취소
Ctrl + Y : 소스 수정 취소의 취소
Ctrl + S : 소스코드 저장 (현재 파일만)
Ctrl + Shift + S : 모든 소스코드 저장
Ctrl + Shift +X : 대문자로 변환
Ctrl + Shift + Y : 소문자로 변환
Ctrl + Space : 입력 중에 완성 기능 호출 
Ctrl + D : 한 줄 삭제
Ctrl + Shift + F : 소스 정렬
Ctrl + I : 들여쓰기 자동 수정
Ctrl + Shift + Space : 메소드 파라미터 목록
Ctrl + Shift + O : 자동 import, 안쓰는 import 삭제
Ctrl + Alt + Up(Down) : 한 줄(블럭) 복사
Ctrl + , 또는 Ctrl + . : 다음 annotation(에러, 워닝, 북마크) 점프
Ctrl + T : 상속 계층 팝업 창
Ctrl + F6 : 창 전환
Alt + 방향키(↑,↓) :  위(아래) 줄과 바꾸기
Alt + Shift + R : 같은 변수명 네이밍 전체 변경
F3 : 선언된 변수나  메소드 정의로 이동
F2 : 컴파일 에러 줄에 커서를 놓고 이 키를 누르면 에러 힌트 제공

- 실행
F11 : 소스 실행 (에러가 났을 때 디버깅 함)
Ctrl + F11 : 소스 실행 (에러가 났을 때 디버깅 하지않음)

- 블록 설정
Shift + End : 현재 커서부터 끝까지 블록 설정
Shift + Home : 현재 커서부터 처음까지 블록 설정
Ctrl + A : 전체 블록 설정
Alt + Shift + 방향키(←,↑,→,↓) : 이미 선택되어 있는 블록을 방향키로 늘림
Alt + Shift + Z : 구문 블록을 감싸는 메뉴 제공

- 템플릿 사용
sysout 입력 후 Ctrl + Space :  System.out.println(); 자동 입력됨
try 입력 후 Ctrl + Space : try-catch 문이 자동 완성
for 입력 후 Ctrl + Space : for 문 자동 완성
switch 입력 후 Ctrl + Space : switch 문 자동완성

( Windows > Preferences > JAVA > Editor > Templates에 추가 가능 )

- 기타
Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버 상세 검색
Ctrl + N : 새 파일/프로젝트 생성
Ctrl + 1 : 빠른 교정 구문에 맞게 소스 교정 지원
Ctrl + 0 : 클래스 구조 트리
Ctrl + Shift + Space : 메소드 괄호에 커서를 놓고 이 키를 누르면 파라미터 힌트 보여줌
Ctrl + W : 파일 닫기
Ctrl + Shift + F4 : 열린 파일을 모두 닫음
Ctrl + M : 전체 화면 전환
Ctrl + PageUp , Ctrl + PageDown : Edit 창 이동
Ctrl + Shift + Down : 클래스 내에서 다음 멤버로 이동
Ctrl + Shift + M : 해당 객체에 커서롤 놓고 키를 누르면 Import 구문 자동 생성
Ctrl + Shift + G : 해당 메서드/필드 쓰이는 곳 표시
Ctrl + Alt + 방향키(↓) : 한 줄 복사 후 그 아래에 붙여넣음
Ctrl + Shift + B : 커서 줄에 중단점 설정
Alt + Shift + R : 이름 변경 (소스 내에서 영향받는 참조 정보까지 변경)
Alt + Shift + S :  소스 메뉴 출력(Import 추가 , Comment 추가 , Generator 메뉴)
Alt + Shift + J :  해당 메서드/클래스에 대한 주석 템플릿 생성
F1 : 도움말(Help)
F2 : 파일 이름 변경
F11 : 디버깅 시작
F8 : 디버깅 계속
F6 : 한 줄씩 디버깅 
F5 : 한 줄씩 디버깅할 때 함수인 경우 함수 내부까지 디버깅
F12 : Editor 창으로 이동 

- 모든 단축키 정보
Ctrl + Shift + L : 이클립스 모든 단축키 안내

이클립스 모든 단축키 정보

 

참고) https://coding-factory.tistory.com/833

728x90
반응형

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

전자정부 프레임워크(eGovFrame 4.3)  (3) 2025.03.25
Node.js 란?  (0) 2024.01.17
웹스퀘어(WebSquare)란?  (2) 2023.12.30
728x90
반응형

 

Node.js

 

개발을 하다보면 여러가지 개발환경을 맞닥뜨리게 된다. 오늘 아침에 개발자들하고 얘기하다가 우연히 Node.js 얘기가 나왔고 정체가 궁금해졌다. 자바스크립트의 변신은 어디까지 일까? Node.js에 대해 파헤쳐보자. 

먼저 Node.js란 무엇인가? 우리들의 위키백과를 찾아봤다.

- 위키백과사전
Node.js는 크로스플랫폼 오픈소스 자바스크립트 런타임 환경으로 윈도우, 리눅스, macOS 등을 지원한다. Node.js는 V8 자바스크립트 엔진으로 구동되며, 웹 브라우저 바깥에서 자바스크립트 코드를 실행할 수 있다. 주로 확장성 있는 네트워크 애플리케이션과 서버 사이드 개발에 사용되는 소프트웨어 플랫폼이며, 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며, 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

자바언어의 경우, 각 OS 마다 JVM(Java Virture Machine)이 따로 있어서 각 OS에 맞게 설치해줘야 한다. 이걸 기준으로 자바로 작성되면 어느 환경에서나 돌이가는 것이다.
Node.js는 어떻게 처리될까?
각 OS 별로 설치파일이 있을거라고 생각한 나의 기대는 무너졌다. [node-v20.11.0-x64.msi] 하나만 다운로드 된다.

백문이 불여일타! 설치를 해보자.

먼저 아래 사이트에서 다운로드를 받는다. 최신 버전 보다는 안정화된 버전을 받는게 나아 좌측의 [node-v20.11.0-x64.msi]를 다운로드 받았다.

 

https://nodejs.org/en

 

특별한 경우가 아니라면 default로 설치하는 걸 권장한다. 아래와 같이 따라가보자.

 

설치 완료 후, 윈도우 메뉴에서 찾아보면 'N'에서 설치 완료된 사항을 찾아볼 수 있다.

 

자, 설치가 완료되었다. 이제 무엇을 할 수 있을까?

아래 사이트를 가보면 Node.js 관련 예제 소스들을 볼 수 있다.

 

https://nodejs.org/en/learn/getting-started/introduction-to-nodejs

 

const http = require('node:http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

server.js 파일이름으로 저장한다.

아래와 같이 Node.js command prompt를 연다.

 

 

Node.js command prompt에서 node server.js 를 날리면 아래와 같이 3000포트에서 응답을 기다리게 된다.

 

브라우저에서 http://127.0.0.1:3000 으로 아래와 같이 확인이 가능하다.

 

자, 이제 시작했으니 반 이상 왔다.

 

빠르게 사이트를 구축할 필요가 있을 때, 매우 유용할 것 같아 나도 더 깊이 공부해봐야 할 것 같다.

더 좋은 소스가 준비되면 2차를 올리도록 하겠다.

728x90
반응형

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

전자정부 프레임워크(eGovFrame 4.3)  (3) 2025.03.25
이클립스 단축키 모음  (1) 2024.01.27
웹스퀘어(WebSquare)란?  (2) 2023.12.30
728x90
반응형

인스웨이브사의 웹스퀘어는 웹표준을 따르는 UI/UX 개발툴이다. 웹 표준을 준수한 UI프레임워크로 UI컴포넌트와 Util API, 통합 개발 도구 제공하는 솔루션이라고 한다. 쉽게 말해 프론트 화면 개발 툴이다.

 

함께 언급되는 툴로는 투비소프트의 Nexacro, xPlatform과 토마토시스템의 eXbuilder등이 있다.

옆 개발자분들에게 물어보니 웹스퀘어 보다 넥사크로가 100배는 좋다고 한다. 참고로 넥사크로를 써본 경험이 없어 패스~

 

1. 구성 및 설정

웹 표준 준수로 설치과정에 별도의 Installer 및 Active-x등이 존재하지 않는다.

별도 설치과정 없이 Web Resource와 함께 포함되어 구성되며, 이때 WebSquare를 구동하기 위한 Servlet, 즉 웹 스퀘어 엔진을 등록하고 서버 설정 디렉토리를 지정해주면 된다.

2. 화면 호출 방식

웹스퀘어로 개발 된 화면파일은 단독으로 브라우저에서 실행할 수 없다.

화면 파일은 웹스퀘어 JavaScript 엔진을 통해 실시간 해석되어 브라우저에 표시된다.

웹스퀘어 엔진은 서버에 배포된 websquare.html 파일을 통해 호출되고 엔진 로딩이 끝나면 실행된다. 즉, 모든 웹스퀘어 화면 파일은 websquare.html을 통해 실행된다.

일반적으로 화면 파일의 정보는 Get 방식의 파라미터를 통해 웹스퀘어 엔진에 전달된다.

http://domain.com : 서버 도메인

/websquare/websquare.html : 웹스퀘어 엔진 로딩 및 실행파일

HTML의 DocType, Meta등 정의

파일명 변경 가능하여 용도에 따라 파일 여러개 사용 가능

파일 확장자를 jsp로 변경할 수 있다.

?w2xPath=/MA/MA01M01.xml :웹 스퀘어 화면 파일 경로.

웹 스퀘어 엔진이 xml(UI grid)파일을 해석하여 HTML과 JavaScript를 생성하고 실행.

 

3. Service Architecture

서버 통신 플로우는 아래와 같다.

4. 구성

4.1. Design 탭

컴포넌트를 선택하여 배치할 수 있다. 만약 시스템 브라우저 외에 다른 브라우저를 등록하려면, 'Execute external program'을 클릭하여 브라우저를 등록할 수 있다. 컴포넌트는 속성(P), 이벤트(E), API로 제어된다. 컴포넌트에 id를 부여하면, 해당 id가 페이지 내에서 자동으로 전역 변수로 등록되므로, Script 탭에서 사용 가능하다.

 

4.2. Script 탭

JavaScript 로직을 작성한다. 파일을 생성하면 아래의 이벤트가 자동으로 등록된다.

  • onPageLoading : 페이지 로딩 후 실행(모든 컴포넌트를 그려준 이후에 반영됨)
  • onPageunload : 페이지 종료 후 실행

참고로 WebSquare는 기본 namespace 기반의 코딩을 하며, 디폴트로 사용하는 객체명은 scwin이다. 페이지를 닫을 때 해당 자원을 자동으로 삭제하는 기능을 이용할 수 있다고 한다.

 

4.3. DataCollection 탭

data 객체를 생성하고 관리한다.

  • DataMap : 단건 data 관리
  • DataList : 다건 data 관리
  • LinkedDataList : 생성된 dataList에서 별도의 조건을 주어 filter된 data를 확인한다.(뷰어용으로 제한적으로 사용됨)
  • AlliasDataMap : Page Coding에서 자식이 부모의 dataMap 객체를 참조할 때 사용
  • AlliasMataList : Page Coding에서 자식이 부모의 dataList 객체를 참조할 때 사용

 

4.4. Submission 탭

웹스퀘어의 통신 객체를 생성 및 관리한다. 웹스퀘어에서는 <form>을 이용한 전송 방식으로 통신하지 않고, Submission 객체를 생성하여 통신한다.

 

4.5. Source 탭

각 탭에서 정의한 내용을 xml 파일로 확인할 수 있다. 직접 코딩도 가능하지만, 실수 방지를 위해 코딩은 Script탭에서 하는 것을 권장 한다. 실제로 Source 탭에서 변경 후, 재기동 했을 때 알 수 없는 에러가 많이 발생한 경험이 있다.

 

5. WebSquare XML 도식화 구조

 

[웹개발] 웹스퀘어란?

이직한 회사의 시스템을 하나씩 파악중인데, 큰 기업이고 업력이 아주 오래된 기업이라 시스템도 최첨단일수도 있겠다? 라는 안일한 생각을 했다... 정보기술팀에서 근무하게 되었는데, 우선 가장 큰 두개의 시스템이 있는데, 한개의 시스템만 이중화되어 있다고 한다. 이중화를 안하고 운영하는 시스템이라 그럴수도 있겠다 싶었는데, 서버 장비도 모두 노후되지 않았을까 하는 생각을 하게 되었다. 그리고 문제는, 외계인코드가 아주 많다. 시스템도 다 흩어져 있었기 때문에, 팀장님이 웹스퀘어를 적용해서 하나의 시스템으로 묶는것을 구상중인것 같다. 그...

metaverse-cloud.tistory.com

728x90
반응형

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

전자정부 프레임워크(eGovFrame 4.3)  (3) 2025.03.25
이클립스 단축키 모음  (1) 2024.01.27
Node.js 란?  (0) 2024.01.17

+ Recent posts