Commit Graph

1277 Commits

Author SHA1 Message Date
itms-merge-dev
efc3e66635 feat(itms): 모바일 앱 신규 (Expo, 12화면, OAuth password grant)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:10:46 +09:00
itms-merge-dev
53b8f42c76 fix(itms): 고객 수정요청 40건 처리 — 로그인 잠금·서비스데스크 권한/검증·용어 통일·브랜딩 관리(F12) (SR_20260708)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 17:10:04 +09:00
itms-merge-dev
feffb37021 ci(itms): Stage B nginx — /oauth(:11000)+업무REST(:11010) Authorization 헤더 분기
모바일(Bearer JWT)→api·브라우저(세션)→front 공존. front/api 동일 prefix 충돌을
$http_authorization map 으로 해소. 모바일은 루트 업무 prefix 사용(Config.ts 권위).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 16:40:18 +09:00
itms-merge-dev
4fae61105c ci(itms): 운영 nginx vhost(itms.wise.ai.kr) + 통합앱 QR 페이지(/mobile-app) 아티팩트
- 운영 리버스 프록시 템플릿(RHEL conf.d, certbot 개별 발급 안내)
- dev/prod 공용 /mobile-app QR 페이지(중앙 ITSM APK 저장소 읽기전용 재사용)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:50:21 +09:00
itms-merge-dev
c93f916959 ci(itms): dev->prod front 자동 승격 스크립트 추가 (deploy_itms_prod.sh)
deploy_server.py itms 블록의 dev health 게이트 통과 후 호출.
front war tar-over-ssh → prod(itms.wise.ai.kr) 재기동 → prod health.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 15:39:43 +09:00
itms-merge-dev
d85b47fa08 ci(itms): 개발서버 도메인(itms.zioinfo.co.kr) 리버스 프록시 vhost 추가 (적용 대기)
실측: itms.zioinfo.co.kr DNS→서버(101.79.17.164) 해석되나 nginx itms vhost 부재·앱 미기동(11020 등)·https 미구성.
- deploy/nginx/itms.zioinfo.co.kr.conf: front(:11020) 진입점 리버스 프록시(80→443 리다이렉트, TLS·auth/api 선택 블록).
  라이브 조건 명시: Tier2 앱 기동 + TLS 인증서 발급(certbot). 미충족 시 502/인증서 오류.
- README: 접속 도메인·nginx 적용 절차 섹션 추가.
기존 vhost(zioinfo/app/jenkins) 무영향(신규 vhost만). 서버 미적용(산출물 준비형).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 23:24:36 +09:00
itms-merge-dev
8adec35979 docs(itms): 지침서 4종(docx) + 설치 패키지 구성
- docs/ITMS_사용자지침서.docx: 접속·로그인(OTP)·주요 업무화면·FAQ
- docs/ITMS_운영자지침서.docx: 4포트 스택 구성·기관 프로파일·CI/CD·systemd 기동·헬스체크·트러블슈팅
- docs/ITMS_개발자지침서.docx: 멀티모듈 아키텍처·common 추출(키스토어 파라미터화)·빌드·기여 워크플로우·백로그
- docs/ITMS_서버설치가이드.docx: 사전요구사항·설치절차·CI연동·검증 체크리스트·제거

- install/ 설치 패키지 소스: preflight.sh·install.sh(멱등, 서비스 start 안 함)·uninstall.sh·README·make_package.sh
- make_package.sh → dist/itms-install-v1.0.tar.gz(152K): install+systemd+env+ci+docs 번들(재생성 가능, dist/ gitignore)

시크릿(접속정보·keystore 비번·연동 키) 문서·스크립트에 미포함(env/서버 로컬 관리 안내만). Tier2 기동은 DB/시크릿/JDK17 확보 환경 전제.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 22:55:12 +09:00
itms-merge-dev
08e634c3a5 ci(itms): CI/CD 배포 아티팩트 추가 (적용 대기·산출물 준비형)
zioinfo.co.kr 피저빌리티 게이트 결과 ITMS 실기동(Tier2)은 이 환경 불가
(런타임 DB MariaDB/Oracle 도달 불가 + JDK17 부재 + Boot2.6.2 Java21 미지원)
→ 서버 미변경, 배포 대상 환경에서 적용할 준비된 산출물만 생성.

- deploy/deploy_server_itms_block.py: deploy_server.py 에 붙일 itms 블록
  (Tier1 빌드+커밋별 아카이브; Tier2 재기동은 주석 처리, 기존 블록 불변, 자격증명 env 주입)
- deploy/build.sh: common 선행 → 5모듈 bootWar (JDK17)
- deploy/systemd/itms-{auth,api,front,batch,datatrans}.service: 4포트 WAR+데몬 유닛 템플릿
- deploy/env/itms.env.example: SPRING_PROFILES_ACTIVE 등 (실 시크릿 미포함)
- deploy/gitea-webhook.md: webhook 3대 함정(url·secret·ALLOWED_HOST_LIST) 반영 생성 가이드(미실행)
- deploy/README.md: 특수성·적용 절차·피저빌리티 근거

보안: AES 암호문·DB 접속정보·NCP 키·Gitea 비번 하드코딩 0(env 주입). 기존 단일-jar 배포 무영향.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 21:08:59 +09:00
itms-merge-dev
53a7891aee fix(itms): 결함 정리 — datatrans 개발용 하드코딩 제거 + 백업파일 삭제 (R3·R4)
- R3: datatrans ncmsDataMapper.xml selectMultimediaAssets 의 개발용 하드코딩
      `and id='132041'` + `limit 1` 제거 → 운영 시 전 대상 자산 전송(누락 원인 해소).
      XML well-formed 검증 통과. 실 로직 SQL(iams_tran_yn/deleted_at 필터)만 유지.
- R4: 날짜 접미사 백업 파일 14종 삭제(MailKaTalkSendKiccJob.java.20250703,
      KicGroupwareMapper.xml.20250701, layout.css.2025*, MainView.jsp.2025*, 이미지 백업 등).
      실 파일(.java/.jsp/.css/.png 원본) 전부 잔존 확인. 커밋된 bin/ 은 이미 조립 단계 정리됨(0건).
- .gitignore: 날짜 접미사 백업(*.20xxxxxx) 패턴 추가로 재유입 차단.
동작 등가: 소스/리소스 실 파일 불변, 제거 대상은 미사용 백업뿐. R3은 운영 정합성 회복(의도된 개선).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:48:30 +09:00
itms-merge-dev
1ef71899ee build(itms): 버전 통일 — oauth2 2.3.8 단일화 + Java 17 source (R1, INTEGRATION_DESIGN §3-3)
- R1: auth spring-security-oauth2 2.3.4.RELEASE → 2.3.8.RELEASE (api·datatrans 와 일치, 드리프트 해소).
- sourceCompatibility 혼재(api·datatrans=11 / auth·batch·front=16) → 17 통일 + common=17.
  로컬 JDK17 로 6모듈 compileJava 전부 SUCCESS(--rerun-tasks) — 언어레벨 상향에 따른 예약어/구문 충돌 0.
- lombok(1.18.20)·mybatis-spring-boot-starter(2.2.2)·spring-security-jwt(1.0.9)는 이미 전 모듈 동일
  (드리프트 없음) → 불필요한 루트 승격 churn 회피, 현행 유지.
동작 등가: 산출 bytecode 타깃만 17로 상향, 의존성 좌표는 최신본으로 정합.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:45:00 +09:00
itms-merge-dev
5006ba6ad9 refactor(itms): common 모듈 추출 — 중복 클래스 단일화 (INTEGRATION_DESIGN §3-2)
behavior-identical 확인된 4개 플레인 클래스를 com.urpsys.common 으로 단일화하고
5개 모듈이 implementation project(':common') 으로 참조하도록 전환.

추출(사본 대조 후 동작 등가 확정):
- crypto/Aes256Cipher     (5벌→1): 암호로직 전 사본 동일. front 키스토어 상이(UrpSysKeyMng)
                                    → 생성자 파라미터화(무인자=UrpSystem 기본, front EncryptConfig 만 명시).
                                    미사용 dead 변수(activeProfile) 제거로 CommonUtil 의존 인라인.
- exception/CustomException (5벌→1): 전 사본 로직 동일(주석·brace 스타일 차이만).
- util/ConvertUtils        (api·front→1): 동일. batch 는 LinkedHashMap 분기(기능 상이) → batch 로컬 유지.
- util/DataSourceUtil      (api·auth·batch·datatrans→1): 로직 동일(미사용 import 차이만).

모듈 잔류(특화·안전상 미추출, 사유 기록):
- config/EncryptConfig·PasswordEncoderConfig(@Configuration): 모듈별 @ComponentScan 이
  자기 패키지 한정(api·auth·datatrans·front) → common 이관 시 빈 미등록. EncryptConfig 는
  front 키스토어 특화도 겸함. 각 모듈 로컬 유지하되 common Aes256Cipher 참조로 전환.
- CommonUtil·RestApiCallUtil·HtmlEmailUtil: 사본 간 실기능 분기 大(73~293라인) → 강제 초집합 시
  동작 변경 위험 → 모듈 로컬 유지.

빌드: common·auth·api·batch·datatrans·front compileJava 전부 SUCCESS(--rerun-tasks).
인코딩: 소스 UTF-8, 루트 subprojects JavaCompile encoding=UTF-8 명시(플랫폼 CP949 회귀 방지).
Bean 이름(aes256Cipher)·프로파일·포트 불변. 시크릿 미기재.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:42:45 +09:00
itms-merge-dev
0218388c31 build(itms): front 의존성 해소 — egov spring-modules-validation:0.9 group 메타 불일치 우회 (R2)
egov 저장소가 org.springmodules:spring-modules-validation:0.9 를 잘못된 groupId(org.egovframe.rte)로
게시하여 Gradle 엄격 메타데이터 검증이 'bad group' 으로 거부(front compileClasspath FAILED).
- Maven Central 미보유(404), egov JAR 은 org/springmodules 경로에 정상 게시(200).
- 해당 모듈 한정 POM 무시(metadataSources artifact) + content includeModule 로 동일 JAR 취득.
- 다른 모듈은 org.springmodules 미요청 → 무영향. front compileJava SUCCESS.
동작 등가: 원본과 동일 JAR, 좌표/버전 불변.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:20:46 +09:00
itms-merge-dev
9da312bc21 build(itms): 루트 Gradle 컴포짓 배선 — settings/build.gradle·래퍼 7.4.2·.gitignore, Eclipse 잔재 제거, 모듈 플러그인 버전·저장소 루트 승격 (기능 변경 0) 2026-07-17 17:04:06 +09:00
itms-merge-dev
32dd03f775 feat(itms): iams.nlib → legacy/nlib subtree 이식 (히스토리 보존)
git-subtree-dir: legacy/nlib
git-subtree-mainline: c057b0feb5
git-subtree-split: 6ee2c7265e
2026-07-17 17:01:27 +09:00
itms-merge-dev
c057b0feb5 feat(itms): ncmsToIamsDataTrans → datatrans subtree 이식 (히스토리 보존)
git-subtree-dir: datatrans
git-subtree-mainline: b60fd84fb9
git-subtree-split: 7c9701e4e5
2026-07-17 17:01:15 +09:00
itms-merge-dev
b60fd84fb9 feat(itms): urpItms_30_Batch → batch subtree 이식 (히스토리 보존)
git-subtree-dir: batch
git-subtree-mainline: 6338602337
git-subtree-split: 83e2529302
2026-07-17 17:01:12 +09:00
itms-merge-dev
6338602337 feat(itms): urpItms_20_Front → front subtree 이식 (히스토리 보존)
git-subtree-dir: front
git-subtree-mainline: 7dfc836507
git-subtree-split: 7f0282be53
2026-07-17 17:01:09 +09:00
itms-merge-dev
7dfc836507 feat(itms): urpItms_10_Api → api subtree 이식 (히스토리 보존)
git-subtree-dir: api
git-subtree-mainline: 5518b245e6
git-subtree-split: 4a0ce4fa40
2026-07-17 17:00:59 +09:00
itms-merge-dev
5518b245e6 feat(itms): urpItms_00_Auth → auth subtree 이식 (히스토리 보존)
git-subtree-dir: auth
git-subtree-mainline: 77b1d883a6
git-subtree-split: f3c12f4558
2026-07-17 17:00:55 +09:00
itms-merge-dev
77b1d883a6 chore(itms): 모노레포 초기화 — 설계서/docs 첫 커밋 2026-07-17 17:00:42 +09:00
urp
6ee2c7265e 소장자료 목록에서 원문보기·방문열람신청 둘 다 불가한 자료 제외
isAbleOnline() 및 isAbleReadNow() 모두 false인 항목(디지털 파일 없음 또는
BOOKCASE_ID 미설정 등 이용 불가 자료)을 검색 결과 목록에서 필터링한다.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-30 11:22:28 +09:00
urp
0e32218347 이미지 원문보기 URL 경로 수정
- 이미지 원문보기 URL을 cmm/nImageView.do 경로로 변경 (파라미터 nimage)
- 개발/운영 properties 동일하게 반영

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 10:27:46 +09:00
urp
83e2529302 통일부 추가 2026-05-27 10:47:41 +09:00
urp
7f0282be53 통일부 추가 2026-05-27 10:47:16 +09:00
urp
4a0ce4fa40 통일부 추가 2026-05-27 10:46:55 +09:00
urp
f3c12f4558 통일부 추가 2026-05-27 10:46:27 +09:00
urp
7c9701e4e5 반영테스트 2026-05-26 11:04:50 +09:00
urp
a41cb6722f 최초반경 2026-05-26 11:03:41 +09:00
urp
027ff44c7d 환경파일변경 2026-05-15 16:16:25 +09:00
urp
d02fc6ac0f 환경파일 변경 2026-05-15 16:16:00 +09:00
urp
3ebcaf228e 환경파일 변경 2026-05-15 16:15:41 +09:00
urp
e715d6fa37 환경파일 변경 2026-05-15 16:15:20 +09:00
urp
3b51386d44 소스정리 2026-05-08 16:15:34 +09:00
urp
f9431842e7 헌법재판소,문화원연합회,성신여대,생물자원관 설치 반영 2026-04-30 09:00:20 +09:00
urp
7da3a46dbe 헌법재판소,문화원연합회,성신여대,생물자원관 설치 반영 2026-04-30 09:00:00 +09:00
urp
1ea2b6db42 헌법재판소,성신여대,문화원연합회,생물자원관 설치 반영 2026-04-30 08:58:50 +09:00
urp
9f1b5a4572 생물자원관,문화원연합회,성신여대 설치 반영 2026-04-30 08:56:33 +09:00
urp
66869fe444 vmware 환경추가 2026-04-14 13:44:08 +09:00
urp
ee5aa9fee4 vmware 환경추가 2026-04-14 13:43:34 +09:00
urp
ec3452ed87 vmware 환경변경 2026-04-14 08:31:37 +09:00
urp
c41fe264c5 한국환경산업기술원 SSL 키변경 2026-04-08 10:08:55 +09:00
nhj
761bae140f ssl 인증테스트 2026-04-07 10:58:23 +09:00
nhj
65bd3cb8a9 환경값 추가 2026-04-07 10:51:33 +09:00
nhj
b9d2bedc85 2단계 인증 환경값 추가 2026-04-07 10:50:48 +09:00
urp
4953c90feb SSO 인증처리 및 구글 2단계 인증처리 기능확대 2026-04-06 13:41:50 +09:00
urp
c0a632137c SSO 인증처리 및 2단계 인증처리 부분 기능 확대 2026-04-06 13:41:00 +09:00
urp
6d941f5436 SSO 인증처리 부분 추가 2026-04-06 13:40:20 +09:00
urp
bb2871d629 노인인력개발원 설치환경 추가 2026-03-23 09:48:31 +09:00
urp
224ed4bd63 노인인력개발원 설치환경 추가 2026-03-23 09:48:00 +09:00
urp
b6cac9cd9f 노인인력개발원 설치환경 추가 2026-03-23 09:47:25 +09:00