본문 바로가기

Category64

SQL 파싱과 최적화 옵티마이저가 SQL을 어떻게 처리하는지 서버 프로세스는 데이터를 어떻게 읽고 저장하는지 SQL : Structured Query Language 구조적 질의 언어 (↔ 절차적 프로그래밍) SQL 최적화 : DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정 SQL 실행 전 최적화 과정 SQL 파싱 수행 주체 : SQL 파서 (Parser) 파싱 트리 생성 : SQL문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 Syntax 체크 : 문법적 오류가 없는지 확인 (ex. 사용할 수 없는 키워드를 사용했거나 순서가 바르지 않거나 누락된 키워드가 있는지 확인) Semantic 체크 : 의미상 오류가 없는지 확인 (ex. 존재하지 않는 테이블 또는 컬럼을 사용했는지, 사용한 .. 2022. 4. 26.
[모던자바인액션] Chapter 1 - 자바 8, 9, 10, 11 : 무슨 일이 일어나고 있는가 1.1 역사의 흐름은 무엇인가? Java8의 특징 간결한 코드 멀티코어 프로세서의 쉬운 활용 //java8 이전 Collections.sort(inventory, new Comparator() { public int compare(Apple a1, Apple a2){ return a1.getWeight().compareTo(a2.getWeight()); } }); //java8 inventory.sort(comparing(Apple::getWeight)); 지금까지의 자바 프로그램은 코어 중 하나만을 사용 (그 외의 코어를 사용하려면 스레드를 사용) 자바8에서는 병렬 실행을 단순하게 할 수 있는 방법 제공 ⇒ 리액티브 프로그래밍 스트림API SQL 쿼리문에서 처리하는 것처럼 병렬 연산을 지원 최적의 저수.. 2022. 4. 25.
[백준] [Python] #14503 로봇청소기 https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 가장 기본적인 구현 문제에 해당한다. 1차 시도 시키는 대로 코드로 옮기는게 장땡이란 생각으로 옮긴 코드인데 청소를 하지 못하는 경우를 처리하는게 복잡해졌다. import sys sys.stdin = open("input.txt", "r") n,m = map(int, input().split()) r,c,d = map(int, input().split()) #0북,1동,2남,3서 graph = .. 2022. 4. 16.
[백준] [Python] #1062 가르침 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 풀어보려고 보니, 이전에 실패를 했다가 해결 못했던 문제였다. 처음에는 아 파이썬이면 string처리 어렵지않지~이러고 얕보고 풀기 시작했는데, 과거의 내가 실패로 놔두었던 이유가 있었다. 1차 시도 1. alphabet 리스트를 만들어서 2. 주어진 단어를 순회하면서 각 알파벳이 몇번째 단어에서 등장하는지 확인 2-1. 한 단어에서 중복해서 등장하는 것 처리가 필요할것 같았지만 그러면 시.. 2022. 4. 16.
IntelliJ 자주쓰는 단축키 모음 (Mac) 코드 라인 복사 : Cmd + D 라인 이동 : Option + Shift + 방향키 라인 삭제 : Cmd + Backspace 자동완성 : Ctrl + Space 생성자/Getter/Setter 만들기 : Ctrl + Enter 변수 추출 : Cmd + Option + V import 추가 : Option + Enter 쓰지않는 import 정리 : Ctrl + Option + O 메서드 실행 : Ctrl + Shift + R 전체에서 검색 : Cmd + Shift + F 파일에서 검색 : Cmd + F 전체에서 교체 : Cmd + Shift + R 파일에서 교체 : Cmd + r 파일 검색 : Cmd + Shift + O 참고 https://gmlwjd9405.github.io/2019/05/21/i.. 2022. 4. 16.
[Trouble Shooting] JPA - 중복된 Data만 select 됨 문제 상황 JPA로 DB 데이터를 select하는 중 같은 id를 가진 값만 select 되었다. H2에 있는 data가 이상한 것인가 확인해보니, 저장된 값이 이상하진 않았다. 아래는 같은 select 문을 날렸음에도 동일 id값만 중복되게 데이터가 return 되었다. 해결 방안 아래는 해당 entity의 java class 코드인데, id 어노테이션을 잘못 붙인게 원인이었다. @Entity @Getter @Setter @Table(name = "ACCOUNT") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Account { @Id private String accountNumber; private String userId; } 애.. 2022. 4. 16.