728x90
반응형
-
-
[DAP자격증] 과목5 - 오버헤드(Overhead)란? 오버헤드(Overhead)란?**오버헤드(Overhead)**는 어떤 작업을 수행할 때 추가적으로 발생하는 비용(자원, 시간, 메모리 등)을 의미해.즉, 실제 작업을 수행하는 데 직접적인 기여를 하지 않지만, 부가적으로 필요한 것들이야.1. 오버헤드의 종류✅ 성능(연산) 오버헤드프로그램이나 시스템이 어떤 작업을 수행하는 데 필요한 추가적인 연산 비용예시:가상화 환경에서 CPU가 가상 머신을 관리하는 데 드는 연산 비용DB에서 쿼리 실행 시 인덱스를 유지하거나 캐시를 관리하는 데 드는 연산✅ 메모리 오버헤드프로그램이 실행될 때 추가적으로 소비하는 메모리예시:Python에서 동적 메모리 할당 시 발생하는 추가적인 메모리 사용량DB에서 트랜잭션을 관리하기 위한 로그 저장 공간✅ 네트워크 오버헤드데이터를 전송할..
-
[Eclipse] 프로젝트에 라이브러리 추가 이클립스에서 라이브러리 인식 문제가 발생하면, 프로젝트에 라이브러리가 제대로 추가되었는지 확인하고, 라이브러리 경로가 유효한지 점검해야 합니다.문제 해결을 위해 해당 프로젝트의 Java Build Path를 확인하여 라이브러리를 다시 추가하거나, 메이븐(Maven) 프로젝트인 경우 mvn clean install을 실행하고 프로젝트를 클린(Clean)하여 빌드 설정을 갱신할 수 있습니다. 라이브러리 경로 문제 해결 방법Java Build Path 설정 확인 및 재추가:라이브러리를 추가하려는 프로젝트에서 마우스 오른쪽 버튼을 클릭하고 Properties > Java Build Path로 이동합니다.Libraries 탭에서 라이브러리가 추가되어 있는지 확인하고, 빨간 느낌표가 표시되어 있다면 경로가 잘못된.. -
버퍼와 캐시의 개념과 차이점 기본요약구분버퍼(Buffer)캐시(Cache)목적데이터를 안전하게 임시 저장해서 흐름을 조절나중에 또 쓸 데이터를 빠르게 꺼내기 위한 임시 저장소주요 사용목적입출력(I/O) 속도 차이 조절할 때데이터 재사용률이 높을 때특징한번 쓰고 버림 (One-time pass)여러 번 재사용 (Reuse)비유"화장실 줄 서기" 한 명씩 보내려고 줄 세우는 공간"냉장고" 자주 먹는 음식은 바로 꺼내 먹을 수 있게 저장대표 예시디스크 쓰기 버퍼, 네트워크 버퍼DB 캐시, 브라우저 캐시, CPU 캐시Buffer (버퍼): 흐름을 “일시적으로 저장”해서 속도 맞추는 중간 공간목적 : 시스템 구성요소 간에 속도 차이가 있을 때, 그걸 “완충”하기 위해 사용됨예 : 네트워크에서 한 번에 1바이트씩 받으면 비효율 → 1024바이..
-
[DAP자격증] 5과목 - B-Tree 인덱스 vs. Bitmap 인덱스 B-Tree 인덱스 vs. Bitmap 인덱스데이터베이스에서 검색 성능을 최적화하기 위해 B-Tree 인덱스와 Bitmap 인덱스가 사용돼. 두 인덱스는 각각의 특성과 용도가 다르므로, 차이점을 이해하는 것이 중요해.1. B-Tree 인덱스 (Balanced Tree Index)B-Tree 인덱스는 대부분의 데이터베이스 시스템에서 기본적으로 사용되는 인덱스 구조야.🔹 B-Tree 인덱스의 특징트리 구조를 기반으로 균형(Balanced) 유지데이터가 계속 삽입, 삭제, 수정되어도 인덱스가 균형을 유지하여 성능이 일정함각 노드가 여러 개의 키 값을 저장할 수 있어 검색, 삽입, 삭제 시 성능이 안정적범위 검색(Range Scan)에 최적화되어 있음🔹 B-Tree 인덱스의 동작 방식루트 노드에서 시작하여 ..
-
Stock Dashboard 개발기 #2 - Spring Boot 프로젝트 기획 및 아키텍처 설계 왜 이 프로젝트를 시작했나주식을 하다 보면 여러 증권사를 사용하는 경우가 많다.나 역시신한투자증권한국투자증권토스증권등 여러 계좌를 사용하고 있다.문제는 매일 포트폴리오를 확인할 때마다증권사 앱 실행보유종목 확인수익률 확인목표가 확인매매 전략 작성을 반복해야 한다는 점이었다.특히 종목 수가 많아질수록 관리가 점점 어려워졌다.그래서 직접 관리용 대시보드를 만들어 보기로 했다.프로젝트 목표이번 프로젝트의 목표는 단순하다."매일 투자 판단에 필요한 정보를 한 화면에서 보는 것" 초기 목표는 다음과 같다.V1구글 시트 연동보유종목 조회수익률 표시목표가 관리손절가 관리추매가 관리모바일 화면 지원V2PostgreSQL 저장데이터 이력 관리성능 개선V3자동 전략 생성종목 압축 추천섹터 비중 분석기술스택 선정이번 프로젝.. -
Stock Dashboard 개발기 #0 - 맥에서 Java 개발 환경 셋팅하기 (JDK 21 + VS Code) 맥에서 Java 개발 환경 셋팅하기 (JDK 21 + VS Code)들어가며Java 8 기반 금융권 레거시 환경에서 일하다 보면, 요즘 기업들이 원하는 기술 스택과 거리가 생긴다.현대적인 Java 개발 환경을 처음 셋팅하면서 겪은 과정을 그대로 정리했다.Java 버전 명칭, 헷갈리지 말자금융권에서 Java 1.8을 쓰다 보면 Java 21이 엄청난 버전 차이처럼 느껴진다.근데 사실 그렇지 않다.Java 1.6 = Java 6Java 1.7 = Java 7Java 1.8 = Java 8 ← 금융권에서 많이 쓰는 버전Java 9, 10, 11 ... 21 ← 9부터 숫자 그대로Oracle이 Java 9부터 버전 명칭 방식을 바꿨다. 1.x → 숫자.즉, Java 1.8과 Java 21은 8 → 21, 1.. -
정규표현식(Regex) 정리 정규식은 / 문자로 감싸지며 내부에 정규문자 또는 메타문자가 위치하게 된다.ex) /tomato/ 정규 표현식의 용어들정규 표현식에서 사용되는 기호를 Meta문자라고 표현한다. 표현식에서 내부적으로 특정 의미를 가지는 문자를 말하며 간단하게 정리하면 아래의 표와 같다. 표현식의미 ^x 문자열의 시작을 표현하며 x 문자로 시작됨을 의미한다.x$ 문자열의 종료를 표현하며 x 문자로 종료됨을 의미한다. .x 임의의 한 문자의 자리수를 표현하며 문자열이 x 로 끝난다는 것을 의미한다. x+ 반복을 표현하며 x 문자가 한번 이상 반복됨을 의미한다. x? 존재여부를 표현하며 x 문자가 존재할 수도, 존재하지 않을 수도 있음을 의미한다. x* 반복여부를 표현하며 x 문자가 0번 또는 그 이상 반복됨을 의미한다. .. -
[PL/SQL] 대량 데이터 삭제 쿼리 업무에서 대량 데이터를 삭제하는 DB보정 작업을 할 일이 생겼다.(프로젝트팀에서 새로운 프로세스 개발할때 파기프로세스도 잊지말고 적용해주세요... plz...) 총 7개의 테이블에 약 500만건의 데이터를 삭제하는 건데.. 삭제 쿼리 짜면서 임시 테이블로 테스트하는 쿼리도 짜서 돌려봄..! (PL/SQL 공부도 겸사겸사.. 더 하자..!) 영향범위 파악 : 해당 7개의 테이블은 카드신청시 대외기관에서 조회한 정보를 적재 후 심사진행에서 활용되는 OLTP서비스 위주의 테이블이다. 즉, 실시간으로 일평균 각 테이블별 6천~ 1.3만 건의 데이터가 적재되고 있다. 분석 내용 : 삭제 해야하는 데이터는 1년 경과한 데이터부터 최근 데이터까지 다양하며, 각 테이블별 70% 정도의 데이터를 삭제해야 하는 상황이다..
-
[DAP자격증] 과목5 - SQL 통계정보 보는법 (Parse, Execute, Fetch) SQL 성능 개선을 위해 SQL 통계 정보를 확인할 때, CALL의 Parse, Execute, Fetch 단계와 COUNT, ROWS 값이 어떤 의미를 가지는지 정확히 이해하는 것이 중요해.1. SQL Call의 3가지 단계: Parse, Execute, Fetch데이터베이스에서 SQL을 실행하면 3가지 주요 단계를 거쳐.✅ 1) Parse (파싱 단계)SQL 문을 데이터베이스가 해석하고 실행 계획을 생성하는 과정주요 작업:SQL 문법 체크객체(테이블, 인덱스 등) 유효성 검증실행 계획(Execution Plan) 생성 또는 재사용 (Hard Parse vs. Soft Parse)🔹 Hard Parse vs. Soft ParseHard Parse: 처음 실행되는 SQL이거나 실행 계획을 새로 만들어야..
-
[DAP자격증] 5과목 - Latch(래치)와 경합(Contention)에 관하여 질문 : "객체 생성 이나 변경은 Latch 경합이 발생할 수 있으므로 주의해야 한다." 는 문장에 대한 설명.Latch와 경합에 관하여 정리 : Latch(래치)와 경합(Contention)에 대한 설명객체 생성이나 변경 시 Latch 경합(Latch Contention)이 발생할 수 있으므로 주의해야 한다는 말은,여러 프로세스(스레드)가 동시에 데이터베이스 객체를 변경하려고 할 때 "Latch"라는 잠금 메커니즘이 경쟁 상태를 일으켜 성능 저하가 발생할 수 있다는 의미입니다.1. Latch(래치)란?**래치(Latch)**는 데이터베이스 내부에서 공유 자원(버퍼, 데이터 페이지, 인덱스 등)에 대한 짧은 기간 동안의 보호를 제공하는 경량 잠금(Lightweight Locking) 메커니즘입니다.데이터..
728x90