오래된 프로젝트 복원 -2-

※ 본 블로그 글은 가상의 레거시 프로젝트 학습을 위한 가상의 시나리오 입니다. 레거시 프로젝트 로컬 구축: DDL 스크립트부터 Tomcat 구동까지> 작성일: 2026-06-16 > 프로젝트: 옛날시스템> DB: Oracle 11g SE → SID: 옛날 > WAS: Tomcat 고대 버전 + Java 고대 버전1. DB에 DDL 스크립트 설치-옛날변종 테이블 생성 SQL\*Plus에서 DDL 파일 실행: ```sql CREATE USER 옛날변종 IDENTIFIED BY 옛날변종 DEFAULT TABLESPACE 신옛날변종; GRANT CONNECT, RESOURCE, DBA TO 옛날변종; @D:\레거시\kkk\옛날변종\옛날변종_Tables_singlefile.sql @D:\레거시\kkk\옛..

레거시 2026.06.16

오래된 프로젝트 복원 -1-

※본 블로그의 내용은 프로젝트 복원 학습을 위한 가상의 시나리오 입니다. 코더 k는 10여 년 전에 자신이 안 친한 동생들과 진행하던 낡은 프로젝트를 떠올렸다. "그래도 낭만이 있었지. 그 프로젝트......." 그 생각으로 시작된 해당 프로젝트 복원하기 작업. 일단 k는 해당 프로젝트의 데이터베이스를 복원하기로 했다. 1.Oracle 11g SE 로컬 DB 구축 삽질기 + 시스템 프로젝트 분석> 작성일: 2026-06-15 > 프로젝트: 추억의 관리시스템 > DB 환경: Oracle 11g XE (기존) → Oracle 11g SE (신규 설치) 서론: 왜 이런 일을 시작했나? "낭만." 프로젝트는 관리시스템으로, 크게 세 가지로 나뉜다: | 프로젝트 | 설명 ..

레거시 2026.06.16

실행파일(.exe) 소스 코드 추출 하기 -3-

이번 편은 이제 본격적으로 기드라를 이용해 qwer.exe(학습을 위한 가상의 프로그램)의 소스를 분석해 보자. 기드라(Ghidra)의 1Symbol Tree -> Imports 목록은 이 프로그램이 윈도우 운영체제에서 어떤 ‘도구 박스(API)’들을 빌려 쓰고 있는지를 보여주는 지도와 같다.현재 나열된 DLL들을 통해 qwer.exe가 기술적으로 어떤 공력을 들였는지 분석해 보자. (2Listing 창은 해당 프로그램의 어셈블리 코드, 3Decomplier 창은 C언어 스타일로 번역된 소스 코드가 출력된다.) 1. 보안 및 기술 유출 방지 관련BCRYPT.DLL / BCRYPTPRIMITIVES.DLL (핵심 발견!)이것은 윈도우의 차세대 암호화 표준(Cryptography Next Generat..

기타 개발 2026.05.24

실행파일(.exe) 소스 코드 추출 하기 -2-

1. exe 내의 소스 코드를 본다? 실행 파일(.exe)은 이미 컴파일되어 기계어로 변환된 상태이기 때문에, 작성자가 처음에 쓴 원본 소스 코드(C++, Rust, Go 등)를 100% 그대로 완벽하게 복구하는 것은 불가능에 가깝다.하지만 역공학(Reverse Engineering) 도구를 사용하여 코드를 분석하거나 비슷한 수준의 소스 코드로 복원할 수는 있다. 프로그램이 어떤 언어/프레임워크로 제작되었느냐에 따라 방법이 달라진다.1. 프로그램 종류 파악 (블로그 -1- 글 참조)먼저 해당 .exe 파일이 무엇으로 만들어졌는지 확인.도구: Detect It Easy (DIE) 또는 Exeinfo PE이 도구들을 사용하면 해당 파일이 .NET(C#), C++, Python, Delphi 등 무엇으로 만..

기타 개발 2026.05.23

실행파일(.exe) 소스 코드 추출 하기 -1-

실행 파일(.exe) 하나만 달랑 있는 경우,이는 보통 '리소스 통합 빌드(Single File Publish)' 방식을 사용한 것.사실 그 파일 안에 실제 로직과 다양한 라이브러리들이 압축되어 들어있다. 이 파일이 어떤 스택으로 만들어졌는지 분석하는 '역공학의 기초'를 알아보자. 가령, qwer.exe 라는 가상의 프로그램을 분석한다고 해보자. 1. Detect It Easy (DIE)DIE라는 무료 도구를 사용하면 해당 파일이 어떤 언어로 작성되었는지 바로 알 수 있다.분석 가능 항목: 작성 언어(C++, Rust, C#, Go 등), 사용된 라이브러리, 패커(Packer, 코드를 숨기기 위한 압축 도구) 정보.만약 여기서 "Rust"가 뜬다면 Tauri일 가능성이 높고, "DirectUI"나 "..

기타 개발 2026.05.21

(레거시) iBATIS sql맵파일 (1) iBatis란?

요즘 개발자들은 MyBatis도 혀를 차는데, 이건 그것보다도 전의 기술인 iBATIS 입니다.그래도 알아둬서 나쁠 건 없겠죠? 저는 다년간 iBATIS를 사용하는 프로젝트를 한 적도 있고요. 알아두면 써먹을 데가 있을 거라고 생각합니다. 1. iBatis (아이바티스)란 무엇인가? iBatis는 SQL Mapper 프레임워크입니다. SQL: 개발자가 데이터베이스와 통신하기 위해 사용하는 SQL 구문을 의미.Mapper: '매핑(Mapping)해주는 도구', 뭔가를 다른 뭔가로 연결하고 짝을 지어주는 역할. 따라서 iBatis는 개발자가 직접 작성한 SQL 쿼리문과 Java의 객체(주로 VO, DTO)를 서로 연결(매핑)해주는 기능에 집중한 프레임워크입니다. 복잡한 JDBC(Java Database ..

DBA 2025.08.26

휴이온 KAMVAS 22 plus '커서중첩' 근본 원인 및 '간편해결책'

전에도 게시글을 올린 적 있지만. 일전에 필자의 kamvas 22 plus 타블렛이 포인터가 여러 모니터에 중첩되는 이상현상이 발생 했었다. 일전에는 드라이버를 삭제하고 재설치 하는 것으로 해결 했다. 그러나, 그 후 해당 이상은 일회성이 아니라 고질적으로 계속하여 타블렛을 켤때마다 발생 했다. 매번 드라이버를 재설치 해주는 것도 상당히 번거로운 일이고, 심지어 매번 드라이버 삭제 자체에 문제가 발생하기 까지 하니 근본적인 원인을 파악하여 다른 방안을 찾아 볼 수 밖에 없었다. 해당 문제는 윈도우 계정 여러개를 사용할 시에(필자가 그렇다.) 여러 사용자 세션에서 중복으로 드라이버 프로세스가 실행되면서 나타나는 문제이다. 해결법1.리소스 모니터 켜기 ㅡ'Windows 키 + R'을 누름(실행창 열기)ㅡ'r..

기타 개발 2025.08.14

(DAUM 검색 등록) DAUM에 내 티스토리블로그 검색 되게 하기

"포탈 사이트 DAUM의 검색 결과에 내 블로그가 노출 되도록 합시다" 1.'DAUM 검색 등록' 접속 https://register.search.daum.net/index.daum Daum - 검색등록Daum 검색등록 사이트 검색을 무료로 등록할 수 있는 서비스입니다. 언제든 정보보완 수정이 가능하며, 등록 후에는 Daum 검색결과에 노출되어 수많은 네티즌들이 방문하게 됩니다. 신규등록하기register.search.daum.net 2.검색 등록 신청서 제출ㅡDAUM은 신청서를 제출하여 검색 등록을 하는 방식입니다.ㅡ로그인을 하세요. ㅡ메인 화면에서 '신규 등록하기' 버튼을 클릭. ㅡ본인의 블로그 풀주소를 입력합니다. 앞에 http://가 미리 써져 있는 것은 신경쓰지말고 그냥 풀주소 붙여..

웹 마스터 2025.07.30

(네이버 서치어드바이저) 티스토리 블로그 네이버검색에 등록하기.

"가령, 내 블로그에 중고차에 대한 정보를 올렸으면, 사람들이 중고차가 궁금하여 네이버에 검색을 했을시에 내 글이 검색결과에 나타났으면 참 좋겠지요?" 이하는 그렇게 되도록 하는 작업입니다. 단순하게 말하면 '네이버 검색 엔진이 내 페이지들을 수집하도록 하는' 것입니다. 1. 네이버 서치어드바이저 접속네이버 서치 어드바이저 사이트로 접속해 주세요. https://searchadvisor.naver.com/ 네이버 서치어드바이저네이버 서치어드바이저와 함께 당신의 웹사이트를 성장시켜보세요searchadvisor.naver.com ㅡ사용하시던 네이버 계정으로 로그인을 하면 됩니다. 2.등록할 사이트 입력ㅡ이런 화면이 나옵니다. 붉은 네모를 친 것과 같이 등록할 사이트 주소를 풀주소로 입력합니다. ㅡ그냥 본인..

웹 마스터 2025.07.28

(레거시) StackOverflowError, 순환 참조 오류

1. "자식 컨테이너를 시작 중 실패했습니다." 심각: 자식 컨테이너를 시작 중 실패했습니다.java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 구성요소 [StandardEngine[Catalina].StandardHost[localhost]... ]을(를) 시작하지 못했습니다....Caused by: java.lang.IllegalStateException: StackOverflowError로 인하여, 웹 애플리케이션에서 annotation 스캔을 완료하지 못했습니다. ... 불허된 순환 상속 의존관계들일 수 있습니다. 처리되는 클래스의 상속 계층구조는 [java.s..

레거시 2025.07.22