전체 글 104

AWS 계정 초기 세팅 (IAM 사용자 생성, 요금 알림)

계정관리배경처음 사용자 계정을 만든상태는 루트 사용자 계정으로 되어 있다. 일상 업무에서 루트사용자로 쓰는것은 좋지 않아 IAM 사용자를 만들어서 사용해야한다. AWS Console로그인 화면 Root user- AWS계정 처음 생성시 만든 계정으로 모든 리소스, 서비스에 대한 권한을 가진다. 보안상 일상적 업무를 하는데 사용하는것은 옳지 않고 계정 설정이나 보안정책등 반드시 루트권한이 필요한 경우에만 쓰는게 좋다. IAM user- 루트 사용자가 생성한 개별 사용자 계정이다. IAM(Identity and Access Management) 서비스를 통해 생성하고 일상적인 업무수행에 사용된다.특정 권한만 제한하여 보안성이 높다. IAM 사용자 생성- 사용자가 안전하게 aws 서비스를 관리 할수 있도록 관..

AWS 2026.07.01

2. AWS SageMaker AI란?

Amazon SageMaker AI- 완전 관리형 머신러닝 워크플로우 플랫폼 (데이터 라벨, 모델 빌딩, 학습, 배)- ML모델을 빠르게 구축, 학습, 배포 가능 SageMaker Marketplace- 이미 훈련된 모델을 실행시킬수 있다. 일반적인 머신러닝 모델 생성하는 과정1. 학습데이터 생성- 모델을 학습시키기 위한 데이터로 비즈니스 목적에 맞는 데이터가 필요 2. 모델학습- 알고리즘 또는 사전에 학습된 기본 모델로 학습을 진행- 컴퓨팅 리소스 필 3. 모델 평가- 학습 후에 추론 정확도가 허용가능 수준인지 확인 하기 위한 평가 4. 모델 배포 AWS에서의 머신러닝 요소1. DATA 스토리지 - 데이터 저장요소 (S3)데이터 DB - 데이터 관리 2. MODEL- SageMaker, comprend..

AWS/SageMaker 2026.07.01

5. 인덱스 기본 사용법

인덱스를 Range Scan 할수 없는 경우- Range는 범위의 뜻으로 시작점과 끝나는 지점을 찾을수 없는 경우 (수직적 탐색 불가)- 색인이 정렬되어 있어도 가공한 값이나 중간값(like같은)으로는 스캔 시작점을 못찾음 => 흩어져 있음=> 즉, 인덱스 컬럼을 가공하지 않아야 인덱스를 정상적으로 사용가능함 sql 예시- substr(컬럼명, 3, 2) = '85'- nvl(컬럼명, 0) - 컬럼명 like %하나%'- where 컬럼명1 = '45' or 컬럼명2 = '사' OR Expansion- OR문의 경우 각각 조건을 나눠서 union all하여 Index Range Scan 가능하다.- use_concat 힌트로 유도가능- in 조건절도 동일하게 sql옵티마이저가 IN list iterato..

4. 인덱스 기본

인덱스 구조, 탐색- 인덱스의 탐색 과정은 수직적 탐색과 수평적 탐색으로 두단계로 이루어져 있음 db에서 데이터를 찾는 방법1) 테이블 전체를 스캔한다.2) 인덱스를 이용한다. 인덱스 튜닝의 핵심요소1) 인덱스 스캔효율화 튜닝 : 인덱스 스캔의 과정에 비효율을 줄인다. 2) 랜덤 엑세스 최소화 튜닝 : 테이블 엑세스 횟수를 줄임 SQL 튜닝은 랜덤 IO를 줄이는게 핵심! 인덱스란- 대용량 테이블에서 필요한 데이터만 빠르게 효율적으로 액세스 하기 위해 사용하는 오브젝트- 인덱스가 없다면 테이블을 풀스캔해서 데이터를 찾아야한다.- 인덱스는 정렬되어 있기 때문에 범위 스캔이 가능하다. DBMS는 일반적으로 B*Tree인덱스를 사용함- 구성요소 : Root, Branch, Leaf- Root, Branch 블록..

3. 데이터 저장 구조 및 I/O 메커니즘

DB의 저장구조데이터 파일 : 디스크 상의 물리적인 os파일테이블 스페이스 : 세그먼트를 담는 콘데이너세그먼트 : 테이블, 인젝스 파티션 등 데이터 저장공간이 필요한 오브젝트, 익스텐트로 구성됨익스텐트 : 공간을 확장하는 단위, 연속된 블록의 집합 (한 익스텐트에 담긴 블록은 모두 같은 테이블 블록이다.)데이터 블록 : 데이터를 읽고 쓰는 단위, 사용자가 입력한 레코드를 실제 저장하는 공간 (한블록은 하나의 테이블이 독점한다.) - 세그먼트에 할당된 익스텐트가 같은 파일에 없을수 도 있음 (파일경합을 줄이기 위해 분산저장한다.)*파일경합 (File Contention) : 둘이상의 프로세스가 동일한 파일에 동시에 접근하려고 시도할때 발생하는 상황 DBMS의 데이터 읽고 쓰는 단위- 블록- 오라클에서 ..

카테고리 없음 2026.01.19

2. SQL 공유 및 재사용

소프트 파싱 vs 하드 파싱사용자가 SQL을 실행하면 DBMS는 파싱 후에 해당 SQL이 라이브러리 캐시에 존재하는지 확인한다.소프트파싱 : 캐시에서 찾아 바로 실행단계로 진행하드파싱 : 캐시를 찾지 못하고 sql최적화, 로우소스 생성까지 모두 거치는 것 *라이브러리 캐시 : 내부 프로시저를 반복 재사용 할수 있게 캐싱해두는 메모리 공간 (SQL파싱, 최적화, 로우 소스 생성을 거친 대상)*SGA (System Global Area) : 서버 프로세스와 백그라운드 프로세스가 공통으로 액세스 하는 데이터와 제어구조를 캐싱하는 메모리 공간 옵티마이저가 SQL 최적화시 사용하는 정보기본정보 : 테이블, 컬럼, 인덱스 구조오브젝트 통계 : 테이블, 인덱스시스템 통계 : CPU, SingleBlock IO속도, ..

1. SQL 파싱과 최적화

SQL(Structured Query Language) : 구조적(structured)이고 집합적(set-base)이고 선언적인(declarative) 질의 언어 SQL 옵티마이저 : 사용자가 원하는 작업을 가장 효율적으로 수행할 수 있는 최적의 데이터 엑세스 경로를 선택해주는 DBMS핵심 엔진서버 프로세스 : SQL 최적화 : DBMS에서 프로시저를 작성하고 컴파일해서 실행가능한 상태로 만드는 과정 SQL 최적화 과정 1. SQL 파싱 : 파싱트리생성 > Syntax체크 > Semantic체크(의미상 오류)2. SQL최적화 : 옵티마이저가 미리 수집한 시스템 및 통계정보를 바탕으로 다양한 실행경로를 생성해 가장 효율적인 하나를 선택3. 로우소스 생성 : 선택한 실행경로를 실제 실행 가능한 코드 또는 ..

[2025] SQLD 취득 후기

취득동기- 이직을 준비하면서 자격증이 부족한것 같아서 기본적인 IT자격증을 알아보던 중 sqld를 알게되었다. 응시자격- 제한없음 합격기준- 총점 60점 이상 (과목별 40%미만 취득시 불합격) 준비내용- 기간 : 1주- 교재 : SQL 자격검정 실전문제 (https://product.kyobobook.co.kr/detail/S000212021705)- 내용 : 준비할 수 있는 기간이 짧아서 기출문제를 중심으로 공부를 했다. 보통 노랭이라고 불리는 책을 구입했는데 sqld는 해당 책에서 1,2 과목만 풀면 되서 98문제를 2회정도 전반적으로 풀었다. 기본적으로 업무를 oracle sql을 사용했지만 평소에 잘 사용하지 않는 함수들이 많아 사용법을 알아보는데 시간을 많이 쓴것 같다. 2과목 문제들은 어려운..

자격증 2025.12.27

[2025] 정보처리 기사 필기/실기 자격증 합격 후기

취득동기- 전문대학을 졸업하면서 정보처리 산업기사를 취득하고 개발자로 일을 하고 있었다. 이후 기사 응시자격이 되었지만 준비를 안하고 있다가 25년도에 취득을 하게 되었다.응시자격 준비내용1. 필기- 준비기간 : 3주- 교제 : 2025 시나공 정보처리기사 필기 기출문제집 (https://product.kyobobook.co.kr/detail/S000214718930)- 내용 : 20년 6월부터 24년7월까지 총 15회 문제가 있다. 따로 이론공부는 하지 않고 하루에 1회 씩 풀었다. 정답은 노트에 쓰면서 채점을 했다. 문제 밑에 "전문가의 조언"이라고 해서 해설이 함께 있고 병행학습 코너가 같이 있어 비슷한 주제의 이론 지식을 알수 있었다. 한과목씩 풀고 채점을 하면서 틀린 문제는 해설을 열심히 읽었..

자격증 2025.12.27

[JAVA] 백준 1157번 자바 문제풀이

문제내용 풀이- 알파벳 수는 26개- 대문자 변환은 toUpperCase사용- 알파벳의 아스키 코드를 이용 (A-65 ~ Z- 90)=> 26개의 int 배열을 선언해서 알파벳 처음 진행한 코드package org.example;import java.io.*;public class Q1157 { public static void main (String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String input = br.readLine(); input = input.toUpperCase(); int[] c..