개발 기록장
개발 기록장
CS
[AA] Maven 순환 참조시 무한 빌드 문제
2026.06.17
1. 문제 상황 14개의 Maven 프로젝트가 서로 상호 참조하는 멀티 모듈 환경에서, 새로운 프로젝트(DS)를 추가하자 Eclipse 빌드가 끝나지 않는 현상이 발생했다. Eclipse 기반 개발 환경프로젝트 간 순환 참조가 이미 존재하고 있었으나 빌드는 정상 동작 중신규 프로젝트(DS)를 추가하고, 기존 프로젝트(CM)의 pom.xml에 DS dependency를 추가한 순간부터 Eclipse 빌드가 무한 루프에 빠져 종료되지 않음상호 순환 참조하는 구조를 바꾸는 것이 가장 좋은 해결 방법이지만, 현실적인 어려움으로 순환 그래프를 끊을 수 없음2. 왜 기존 순환 참조는 문제가 없었나 도대체...기존 14개 프로젝트의 순환 참조가 있었음에도 빌드가 정상적으로 돌아간 이유는 Eclipse의 프로젝트 레지..
카테고리 없음
[MySQL] Oracle vs MySQL Data Dictionary
2026.06.11
기존에는 오라클에서만 작업하다가 mysql도 볼 일이 생겼다. DB 배우면서 우선 딕셔너리부터 조회하는 습관이 생겼는데, mysql에도 동일한 기능이 있겠거니 해서 조사하고 정리해봄..!Data Dictionary가 뭔데?"이 DB에 테이블이 몇 개야?""저 테이블 컬럼 타입이 뭐였더라?""PK가 어떻게 걸려 있지?"이런 DB 구조 자체에 대한 정보(= 메타데이터)를 저장하고 조회할 수 있게 해주는 게 바로 Data Dictionary다.Oracle과 MySQL 모두 이 개념을 갖고 있지만, 구현 방식이 꽤 다르다.1. 구조 차이부터 보자Oracle — 3계층 뷰 시스템Oracle은 접근 범위에 따라 뷰가 3가지로 나뉜다.USER_*현재 유저 소유 객체만USER_TABLESALL_*현재 유저가 접근 가능..
CS/시스템
[AA] log4j 대신 logback을 쓰는 이유 (log4j 취약점)
2026.06.11
전자정부프레임워크 공부하려고 만지작거리던 중AA 프로님이 로그 스윽 보고 가시더니"log4j는 난 잘 안 써. logback을 주로써"라고 하셨다. 이유를 여쭤보니 취약점이 계속 나와서 그러하다고..! 헷갈리는 용어 먼저 정리JDBC — DB와 직접 연결하는 드라이버. jdbc:mysql://host:3306/db 처럼 주소를 직접 명시한다.JNDI — 이름으로 자원을 찾아주는 전화번호부. lookup("jdbc/myDB") 처럼 이름만 주면 알아서 자원을 반환한다.LDAP — 회사 계정/권한 정보를 저장하는 디렉토리 서버. 사내 VPN 로그인, Active Directory가 다 LDAP 기반이다.Log4j — Java 로그 기록 라이브러리.JNDI를 JDBC랑 비슷한 "DB 연결 방식"으로 착각하기 ..
CS/데이터베이스
[Database] 인덱스 I/O vs 테이블 I/O, Access vs Filter
2026.03.22
1. I/O의 정확한 의미 DB에서 I/O란디스크 → 메모리(Buffer Cache)로 블록을 읽어오는 것 블록 종류인덱스 블록인덱스 트리 구조테이블 블록실제 데이터 저장둘 다 I/O 발생 2. 인덱스 vs 테이블 I/O 차이 구분인덱스테이블저장디스크 (흩어져 있음)디스크 (흩어져 있음)논리 구조정렬됨 ✅정렬 없음 ❌접근 방식순차적랜덤I/O 비용상대적으로 저렴매우 비쌈3. 왜 테이블 I/O가 비싼가? 1. 랜덤 접근여기 → 저기 → 또 다른 블록디스크 이동 많음 → 느림2. 데이터 크기 큼👉 한 번 읽을 때 비용 큼4. 인덱스가 빠른 이유정렬 + 연결 구조 (B-Tree)한 번 찾으면 → 쭉 읽는다 (Range Scan)👉 Sequential I/O 가능5. 전체 실행 흐름1️⃣ 인덱스 읽기 (Ind..
CS/데이터베이스
[Database] 인덱스 스캔 범위
2026.03.22
1. 인덱스 스캔 범위 스캔 범위 = DB가 한 번에 읽어야 하는 인덱스 구간시작점 ~ 끝점까지 연속해서 읽는 범위좁을수록 빠름넓을수록 느림2. 인덱스 기본 원리예시 인덱스:(회사코드, 지역코드, 상품명) 정렬 구조:회사코드 → 지역코드 → 상품명앞에서부터 순서대로 조건이 맞아야 효율적 탐색 가능3. 조건별 인덱스 동작 조건형태스캔 범위특징=단일 값매우 좁음 ✅정확히 위치 찾음IN여러 개 =비교적 좁음여러 번 점 탐색BETWEEN, >, 범위넓어짐 ❌연속 구간 스캔LIKE '값%'prefix 범위넓어짐 ❌어디까지인지 모름LIKE '%값'전체 검색매우 넓음 ❌❌인덱스 거의 못 씀4. 인덱스 타는 조건 규칙앞 컬럼부터 순서대로 조건이 있어야 함상태결과앞 컬럼부터 = 이어짐끝까지 인덱스 탐색 가능 ✅중간 컬럼..