📌 Study Tip
-
정보처리기사
[정보처리기사 실기] 프로그래밍 언어 활용 (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)오버로딩- 같은 클래스 내에서 같은 메소드명 중복 정의(매개변수의 자료형, 개수, 순서 상이)- 메..
-
정보처리기사
페이지 교체 알고리즘 - FIFO, LRU, LFU
FIFO(First in First out, 먼저 들어온 것을 먼저 교체)1. 3개의 페이지 프레임을 갖는 시스템에서 페이지 참조 순서가 1, 2, 1, 0, 4, 1, 3일 경우 FIFO 알고리즘에 의한 페이지 교체의 경우 프레임의 최종 상태는?FIFO공간 3개1: 페이지 부재 발생1 2: 페이지 부재 발생1 21 2 0: 페이지 부재 발생4 2 0: 페이지 부재 발생FIFO: 먼저 들어온 것을 먼저 빼냄1 → 44 1 0: 페이지 부재 발생2 → 14 1 3: 페이지 부재 발생0 → 3프레임의 최종 상태4, 1, 3 2. 3개의 페이지 프레임을 가진 기억장치에서 페이지 요청을 다음과 같은 페이지 번호 순으로 요청했을 때 교체 알고리즘으로 FIFO방법을 사용한다면 몇 번의 페이지 부재가 발생하는가? (..
-
정보처리기사
[정보처리기사 실기] 2022년 3회 실기(1~20번)
01. 다음 중 형상관리 도구에 해당하는 것을 모두 고르시오.보기: Ant, CVS, OLAP, Maven, SVN, Jenkins, OLTP, Git, Graddle형상 관리(SW 전반적인 것을 통제하고 관리) > 버전 관리(이전 버전으로 되돌린다던지) > 변경 관리(소스코드 변경)형상 관리: SW 개발 도중에 발생하는 변경사항을 통제하고 관리하는 도구(역할)Ant: 배포 도구CVS: 형상 관리 도구 -> 중앙 집중식(중앙에 레파지토리 만들어놓고 소스코드 업로드/다운로드)OLAP: 데이터에서 무언가를 분석할 수 있도록 함수 제공Maven: 배포 도구SVN: 형상 관리 도구 -> 중앙 집중식Jenkins: 배포도구OLTP: 온라인 트랜잭션 처리Git: 형상 관리 도구 -> 분산 환경 처리Graddle: ..
-
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..
-
SQL 튜닝
[SQL튜닝/인덱스와 조인] Nested Loop 조인 (Prefetch, Batch I/O)
🖥️ 들어가며📌 Prefetch, Batch I/O: 모두 Disk I/O 횟수를 감소시키기 위해 사용합니다.다만 Prefetch는 미세한 Block Read량이 증가하게 되고, Batch I/O는 Disk I/O 발생 시 정렬 순서가 상이해집니다. ✏️ 1. Nested Loop 조인기본 매커니즘for문(Java의 중첩 루프문)과 동일한 원리입니다.반복문의 외부에 있는 테이블 = 선행 테이블 = 외부 테이블 = Outer Table반복문의 내부에 있는 테이블 = 후행 테이블 = 내부 테이블 = Inner Table선행 테이블 조건에 만족하는 첫번째 행 추출 → 후행 테이블 읽으면서 조인 → 선행 테이블 조건을 만족하는 모든 행의 수만큼 반복수행=> 선행 테이블 조건에 만족하는 행의 수가 많으면 그만..
-
SQL 튜닝
[SQL튜닝/인덱스와 조인] 인덱스 종류 및 설계 (B-Tree 인덱스, 비트맵 인덱스, 함수기반 인덱스, 리버스 인덱스, Clustered Index, IOT)
🖥️ 들어가며📌 인덱스 종류- B-Tree 인덱스, 비트맵 인덱스, 함수기반 인덱스, 리버스 인덱스, Clustered Index, IOT📌 결합 인덱스 설계시 고려사항- 조건절에 자주 사용되는 컬럼, 등치 조건으로 사용되는지, 카디널리티가 좋은지, 소트 연산을 대체할 수 있는지 ✏️ 1. B-Tree 인덱스Unbalanced IndexB-Tree에서 B는 Balanced이므로, Unbalanced Index는 없습니다.Index Skew 현상Index 정렬 순으로 특정 방향의 데이터가 대량으로 Delete되어 Leaf Block이 빈 상태를 말합니다.Leaf Block은 완전히 비어있을 때만 Freelist(Free Block)로 반환됩니다.(부분적으로 비어있는 블록은 인덱스 구조에 남아있습니다...
-
SQL 튜닝
[SQL튜닝/인덱스와 조인] 인덱스의 구조, 기본 원리
🖥️ 들어가며📌 튜닝에서 가장 중요한 점: 즉, 디스크 I/O 횟수를 절감해야하고, 이를 위해 튜너는 블록을 적게 읽는 방법을 찾아야 합니다.✏️ 1. 인덱스의 구조인덱스: 키 순서대로 정렬한다는 점이 가장 중요합니다.인덱스는 Index Key + RowID만 저장하면 되기 때문에 한 블록에 테이블보다 더 많은 데이터를 저장할 수 있습니다.RowID: Oracle에서 데이터의 물리적 위치를 나타내는 포인터입니다. (Data Object + File + Block + Row)Node: key 범위 + 블록 주소를 갖고 있습니다.Root Node: 가장 상위 노드, 하위의 Branch Node 수 만큼의 RowBranch Node: Root와 Leaf의 연결 고리, 자기 하위의 Leaf Node 수 만큼..
-
팀 개발일지
[Spring Boot/Toy Project] Quostomize - @Scheduled 이용한 스케줄러 구현하기
들어가며ℹ️ Spring Boot 스케줄러카드혜택 변경 예약 서비스 로직은 다음과 같습니다. 1. 카드혜택 변경 가능일자를 확인합니다. 2. 변경일로부터 30일 이내라면 '예약하기' 로직으로 안내합니다. 3. 예약된 혜택은 '혜택적용일'에 자동으로 적용됩니다.이 과정에서 3번 '혜택적용일 자정'에 예약된 혜택이 자동으로 적용되게 하기 위해 Spring Boot의 스케줄러를 활용했습니다.자동화된 처리를 위해 스케줄러가 특정 시간에 예약된 작업을 정확히 실행할 수 있도록 구현해야 했습니다.1. 스케줄러 구현하기✏️ Application 설정 @EnableScheduling @Scheduled를 사용하기 위한 선행 작업입니다. 애플리케이션의 진입점인 메인 클래스에 추가합니다. @SpringBootApplica..
-
알고리즘
[알고리즘/해쉬(Hash)] 개념, 해시 충돌(Hash Collision), Python-Dictionary 문법
Hash 개념Key : Value 형태를 갖는 자료구조Key: 이름 - Value: 전화번호모든 데이터 타입으로 접근 가능Hash Table💡 Key - ValueHashing: Hash FunctionKey: 고유한 값, 해시 함수의 input(저장 시 값을 해시 함수로 바꾸어 저장함)Value: bucket(저장소)에 최종적으로 저장되는 값, key와 매칭되어 저장, 검색, 접근, 삭제 가능Hash Function: key 값을 Hash로 변경해 주는 함수⇒ Hash Table에서 key 값은 해시 함수를 통해 해시로 변경(index 매핑)되며, 이 Hash 값은 key와 매칭되어 bucket(저장소)에 저장됨 해시 충돌(Hash Collision)필연적 문제Hash를 이용한 자료구조 방식에서 필연..
-
Python
Python Lv.0 코딩 기초 트레이닝 - 이어 붙인 수, 원소들의 곱과 합, 주사위 게임 2
코딩 기초 트레이닝1. 이어 붙인 수짝수만 순서대로 이어붙인 수짝수라면if num_list[i] % 2 == 0:이어붙인 수aSum = in(str(aSum) + str(num_list[i]))홀수만 순서대로 이어붙인 수홀수라면else:이어붙인 수bSum = int(str(bSum) + str(num_list[i]))두 수의 합을 returnanswer = aSum + bSumdef solution(num_list): answer = 0 aSum = 0 bSum = 0 for i in range(len(num_list)): if num_list[i] % 2 == 0: aSum = int(str(aSum) + str(num_list[i])) ..