📌 Study Tip
-
Python
[Python/level 0] 특정 문자 제거하기 - 120826, replace()
문제 설명문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요. replace()The replace() method replaces a specified phrase with another specified phrase.지정된 구문을 다른 구문으로 대체합니다.string.replace(oldvalue, newvalue, count)ParameterDescriptionoldvalueRequired. The string to search fornewvalueRequired. The string to replace the old value withcountOptional. A number..
-
정보처리기사
[정보처리기사 실기] 프로그래밍 언어 활용 (C언어, JAVA, Python)
✏️ C언어, JAVA기본 데이터 타입 및 크기C언어JAVA자료형예약어(크기, byte)예약어(크기, byte)정수형short(2)int(4)long(4)unsignedbyte(1)short(2)int(4)long(8)실수형float(4)double(8)long doublefloat(4)double(8)문자형char(1)unsigned charchar(2)형 없음voidvoid논리형-boolean(1) C언어 연산자 우선순위비트연산자: 정수형 변수만을 대상으로 합니다. JAVA 연산자 우선순위 JAVA의 다형성: 오버로딩(Overloading), 오버라이딩(Overriding), 업캐스팅(UpCasting)오버로딩- 같은 클래스 내에서 같은 메소드명 중복 정의(매개변수의 자료형, 개수, 순서 상이)- 메..
-
SQL 튜닝
[SQL튜닝/옵티마이저 원리] 쿼리 변환 2 (조건절 Pushing, 조건절 이행, 불필요한 조인 제거, OR 조건을 Union으로 변환, 기타)
🖥️ 들어가며📌 쿼리 변환 종합- 서브쿼리 Unnesting (+ push_subq)- 뷰 Merging (불가한 경우: 집CR 함수는 불가, Group By는 가능)- 조건절 Pushing (조인절 Pushdown, 조인절 Pullup, 조인조건 Pushdown)- 조건절 이행- 불필요한 조인 제거- OR 조건을 Union으로 변환 (OR-Expansion)- 기타 ✏️ 1. 조건절 Pushing옵티마이저의 뷰 처리1차적으로 뷰 Merging을 수행하지만뷰 Merging 실패 시 옵티마이저는 조건절(Predicate) Pushing을 시도합니다.조건절 Pushing뷰를 참조하는 메인쿼리 블록의 조건절을 → 뷰 쿼리 블록 안으로 Pushing하는 기능입니다.조건절 Pushing 종류1. 조건절 Pus..
-
개인 개발일지
[FE/Next.js/Storybook] 25.08.04 - 스토리북 적용 및 PostCSS 오류 해결
✏️ 25.08.04 - 주요 TaskFE Storybook 도입Storybook 실행 중 PostCSS 관련 오류 해결package.json 내 "type":"module" 및 Tailwind CSS 📌 프론트엔드✅ FE Storybook 도입도입 목적UI 컴포넌트 문서화와 개발 편의성 향상컴포넌트별 독립적인 테스트 및 시각화 가능(+ 팀 프로젝트였다면 디자이너/기획자/개발자 간 커뮤니케이션 효율화)개발 중 Storybook 도입한 이유기존 UI 컴포넌트 테스트가 번거로웠음Storyboo은 각 컴포넌트를 따로 렌더링/테스트/프리뷰할 수 있기에 생산성 향상 기대실제 서비스 반영 전, 각 컴포넌트의 상태와 조합을 테스트하기 용이사용자 시나리오별 다양한 UI 케이스를 시각적으로 확인 가능이점컴포넌트 단위 ..
-
문법
[Java/문법] ArrayLIst 주요 메서드 정리 (add, get, contains, indexOf, lastIndexOf, set, remove, clear, size, isEmpty, toArray, forEach, sort(Comparator.naturalorder()/.reverseOrder()))
✏️ 추가: add메서드설명add(E e)리스트 끝에 요소 추가add(int index, E e)특정 인덱스에 요소 삽입ArrayList list = new ArrayList();list.add("Apple"); // ["Apple"]list.add("Banana"); // ["Apple", "Banana"]list.add(1, "Cherry"); // ["Apple", "Cherry", "Banana"] ✏️ 조회: get, contains메서드설명get(int index)특정 인덱스의 요소 가져오기contains(Object o)리스트에 특정 요소가 있는지 확인 (반환: true / false)indexOf(Object o)특정 요소의 인덱스 반환 (없으면 -1)lastIndexOf(Object..
-
SQL 튜닝
[SQL튜닝/아키텍처 기반 튜닝 원리] SQL 파싱 부하 (SQL 처리과정, 캐싱된 SQL 공유, Bind 변수 사용, Static/Dynamic SQL, Application Cursor Caching)
🖥️ 들어가며📌 SQL 파싱 부하의 핵심: 파싱 최소화, 쿼리 최적화, 인덱스 관리를 통해 시스템 자원 효율성을 극대화하는 것입니다.(Hard Parsing, Soft Parsing, Bind 변수, Application Cursor Caching)✏️ 1. SQL 처리과정처리과정 1: SQL 파싱(Parsing)(1) Syntax 검사: SQL 문장에 문법적 오류가 없는지(2) Semantic 검사: 의미상 오류가 없는지(3) SQL 실행 계획이 Library Cache(SQL Server: Procedure Cache)에 존재하는지, 존재 여부 점검=> ⭐⭐⭐ 캐싱 O: Soft Parsing, 캐싱 X: Hard Parsing파싱 종류설명소프트 파싱 (Soft Parsing)SQL과 실행계획을 ..
-
SQL 튜닝
[SQL 튜닝/인덱스와 조인] 다양한 인덱스 스캔 방식 (Index Range Scan, Index Full Scan, Index Unique Scan, Index Skip Scan, Index Fast Full Scan, Index Range Scan Descending, In-List Iterator, Index Combine)
🖥️ 들어가며📌 인덱스 스캔 방식: 여러가지가 있지만, Index Unique Scan을 제외하면 Index Range Scan의 성능이 가장 좋습니다.✏️ 1. Index Range Scan항상 빠른 속도를 보장하지는 않습니다.(인덱스 스캔의 손익분기점: Index Rage Scan에 의한 테이블 액세스가 Full Table Scan보다 느려지는 지점)SQL 튜닝: Key Point인덱스 스캔하는 범위를 얼마나 줄일 수 있는가?테이블로 액세스하는 횟수를 얼마나 줄일 수 있는가? (즉, R.A를 얼마나 줄일 수 있는가)힌트: Range Scan을 유도하는 인트는 없으며, Index 힌트*를 활용합니다. 👉🏻 *힌트힌트는 사용자의 명령어로 인식됩니다.따라서 힌트가 적용되지 않는 경우그 힌트가 논리적..
-
코딩테스트
[백준/Silver II] 부분수열의 합 - 1182
문제 링크: https://www.acmicpc.net/problem/1182 시간: 112ms메모리: 14216KBDFS공집합 제외: if (S == 0) count--;package BOJ;import java.util.*;import java.io.*;public class B1182 { static int N, S, count; static int[] arr; public static void dfs(int depth, int sum) { if (depth == N) { if (sum == S) count++; return; } dfs(depth+1, sum+arr[depth]); dfs(de..
-
SQL 튜닝
[SQL튜닝/고급SQL튜닝] 파티션 활용 (파티션의 장점, 파티셔닝 인덱스 유형, 파티션 유형, 파티션 Pruning)
🖥️ 들어가며📌 파티션이란?- 테이블 또는 인덱스를 파티션 단위로 나누어 저장하는 것입니다.- 파티션 키에 따라 물리적으로 별도의 세그먼트에 데이터를 저장합니다. ✏️ 1. 파티션 장점관리적 측면: 파티션 단위 백업, 추가, 삭제, 변경성능적 측면: 파티션 단위 조회 및 DML 수행, 경합 및 부하 분산보관 주기가 지난 데이터를 별도 장치에 백업하고 삭제하는 작업 시 높은 효율을 보여줍니다.특정 파티션만 Full Scan으로 높은 효율이 가능합니다. ✏️ 2. 파티셔닝 인덱스 유형종류Local Partitoned Index, Global Partitioned IndexPrefied 파티션 인덱스, Non-prefixed 파티션 인덱스Non Partitioned Index Local Partitio..
-
SQL 튜닝
[SQL튜닝/옵티마이저 원리] 쿼리 변환1 (서브쿼리 Unnesting, push_subq, 뷰 Merging, 뷰 Merging이 불가한 경우)
🖥️ 들어가며📌 쿼리 변환이란?1. 휴리스틱 쿼리 변환- 결과만 보장된다면 무조건 쿼리 변환을 수행합니다.- 일종의 규칙기반 최적화 기법입니다.- 경험적으로 항상 더 나은 성능을 보일 것이라는 옵티마이저 개발팀의 판단이 반영되어 있습니다.2. 비용 기반 쿼리 변환- 변환된 쿼리의 비용이 더 낮을 때만 활용합니다.- 낮지 않을 경우, 원본 쿼리를 이용 최적화합니다.3. 오라클 버전에 따른 쿼리 변환의 변화- 8i: 복합 뷰(Complex View) Merging 을 사용자 힌트에 의해서만 수행- 9i: 결과가 보장될 수 있는 형태라면 무조건 변환 시도- 10g: CBO 모드로 동작하기 시작 (쿼리 변환의 결과가 더 나은 성능을 낼 것으로 판단될 때만 수행) ✏️ 1. 서브쿼리 Unnestingnest:..