전체 글 61

[JavaScript] 브라우저 동작 방식

* 브라우저 동작 방식1. DOM 트리 구축, CSSOM 트리 구축: HTML 파싱하여 DOM(Document Object Model) 트리를 만든다.   브라우저는 "위"에서 "밑"으로 HTML 태그들을 읽어나간다.    * 여기서 index "hellooooooooooooooooooo"어떤 차례대로 실행될것 같은가?위에서 부터 내려올거라고 계쏙 설명했으니 차례대로라고 생각할 수 있지만 제이쿼리 펑션은 DOM이 완성되면 실행되기에 아래의 결과가 나온다.위에서부터 첫번째: 태그 안에서 스크립트가 실행됩니다. 안에 있는 스크립트는 HTML 파싱 과정 중 가장 먼저 실행됩니다. 위에서부터 세번째: 태그 안에서 스크립트가 실행되기 때문에 두번째로 출력됩니다.위에서부터 다섯번째..

컴파일 언어 VS 인터프리터 언어

컴파일 언어 인터프리터 언어 * 정의 : 컴파일러 언어는 컴파일러를 통해 컴파일 타임에 전체 소스 코드를 한번에 기계어로 변환 후 실행파일을 만든다. *특징 1. 컴파일러 언어는 컴파일 단계와 실행단계가 분리되어 있고 컴파일을 단 한번만 수행. 2. 실행은 실행파일을 실행시키면 되며 실행시에는 컴파일 과정을 거치지 않고 실행만 하면 되므로 코드 실행 속도 빠름 3. 단, 프로젝트의 규모가 클 경우 컴파일 시간이 오래 걸리는 단점이 있음. EX > C, C++,JAVA 등 *정의 :인터프리터는 프로그래밍 언어 소스 코드를 바로 실행하는 컴퓨터 프로그램을 말한다. *특징 1. 컴파일 하지 않고 소스 코드를 한 줄씩 읽어들여 실행. 2. 컴파일 하는 과정이 없기에 컴파일 하는 시간 소요 X 3. 단, 실행파일..

언어/자바 2023.05.10

[SQL] DB 옵티마이저(Optimizer)란?

* 옵티마이저(Optimizer)란? : 가장 효율적인 방법으로 SQL 을 수행할 최적의 처리 경로를 생성해주는 DBMS의 핵심 엔진! 사용자 쿼리 작성 -> SQL 파서 -> 옵티마이저(규칙기반/비용기반) -> 실행계획 수립 -> SQL 실행 엔진 -> 결과리턴 : 개발자가 SQL을 작성하고 실행하면 옵티마이저에서 "이 쿼리를 어떻게 실행하겠다" 라는 여러가지 실행계획 수립하고 각 예상 비용을 산정 및 최고의 효율을 가지는 실행계획 판별 & 쿼리 수행 * 옵티마이저 종류 항목 규칙기반 옵티마이저 비용기반 옵티마이저 개념 사전에 정의된 규칙 기반 최소비용 계산 실행계획 수립 기준 실행우선 순위(Ranking) 액세스 비용(Cost) 인덱스 인덱스 존재 시 가장 우선시 사용 cost에 의한 결정 성능 서용..

DB/SQL 2023.05.10

[SQL] INDEX 가공

* 인덱스 컬럼은 가공하지 않아야 인덱스를 정상적으로 사용할 수 있다!! * 인덱스 사용이 불가능하거나 범위 스캔이 불가능한 예 1. 인덱스 컬럼을 조건절에사 가공하는 경우 SELECT * FROM USER WHERE SUBSTR(NAME,1,1)="이"; --SUBSTR(컬럼, 시작위치,길이) 2. 부정형을 사용하는 경우 SELECT * FROM USER WHERE F_NAME '김'; 3. IS NOT NULL을 사용하는 경우 SELECT * FROM USER WHERE F_NAME IS NOT NULL; * 인덱스 가공 예 위 1번을 인덱스가 타게끔 수정한 것. SELECT * FROM USER WHERE NAME LIKE '%이%';

DB/SQL 2023.05.10

[Oracle] SQL SELECT 쿼리 실행 순서

* SELECT 쿼리 실행 순서 : SQL 쿼리 실행 시, WHERE / GROUP BY / ORDER BY 절 등 구문을 실행하는데 순서가 존재한다. 실행 순서 FROM / JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY 1. FROM / JOIN 절 : 쿼리에서 첫번째 실행 순서는 FROM ! , 테이블 전체를 가져옴. 2. WHERE 절 : FROM절에서 읽어온 테이블에서 조건에 맞는 결과만 필터링 3. GROUP BY 절 : 필터링된 데이터들을 선택한 컬럼으로 그룹핑 4. HAVING 절 : 그룹핑 후 각 그룹에 사용되는 조건절. HAVING절은 각 그룹엥 조건을 걸기 때문에 퍼포먼스가 떨어지므로 주의해서 사용할 것. 5. SELECT 절 :..

DB/SQL 2023.05.10

[Design pattern] 디자인 패턴

* 디자인 패턴이란? : 개발 시 , 문제가 발생되고 그 해결방법들을 개발자들끼리 서로 어떤 방식이 좋은지 후기를 남겼을 것이다. 그 후기에서 자주 사용되는 공통된 패턴들이 보이는데 이 패턴들을 모은 것을 디자인 패턴이라고 한다. * 디자인 패턴의 사용 목적 1. 재사용성을 높이고 변경을 쉽게 하도록 하는 구조 2. 커뮤니케이션 비용 절약 3. 설계 과정의 속도를 높일 수 있다 * 용도에 따른 디자인 패턴 패턴 설명 종류 생성패턴 객체 인스턴스를 생성하는 패턴, 클라이언트와 그 클라이언트가 생성해야 하는 객체 인스턴스 사이의 연결을 끊어주는 패턴 싱글톤, 추상팩토리, 팩토리 메소드 등 행동패턴 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴 템플릿 메소드, 싱클톤, 옵저버, 상태..

자료구조/자바 2023.05.08

[Oracle] 데이터 복구 쿼리(TIMESTAMP)

* 데이터를 실수로 변경 OR 삭제하고 COMMIT 했을 시, 데이터 복구하는 방법 * 기존 데이터 ( SELECT * FROM TEST) NAME AGE ID 홍길동 26 HONG@TEST.COM 기존데이터 이름을 실수로 고길동이라고 변경했다고 가정할 경우 테이블을 조회해보면 아래와 같다. * 변경된 데이터 (SELECT * FROM TEST) NAME AGE ID 고길동 26 HONG@TEST.COM 기존데이터 데이터를 확인하고 싶다면 아래와 같이 쿼리를 날리면된다. //10분전 NAME=홍길동인 데이터 SELECT SELECT * FROM test AS OF TIMESTAMP(SYSTIMESTAMP - INTERVAL '10' MINUTE) WHERE name = '홍길동' 결과 NAME AGE I..

DB/SQL 2023.05.04

[Oracle] 날짜 및 형식 변환(TO_CHAR)

* T0_CHAR(날짜 데이터 타입, '지정형식') : 날짜, 숫자 , 문자 값을 지정한 형식의 VARCHAR2 타입 문자열로 반환하는 함수. SYSDATE = 2023-05-03(수) 지정형식 설명 EX 결과 CC 세기 SELECT TO_CHAR(SYSDATE, 'CC') FROM DUAL; 21 YYYY or YYY or YY or Y 연도 SELECT TO_CHAR(SYSDATE, 'YYYY') FROM DUAL; 2023 YEAR 문자로 표혐된 연도 SELECT TO_CHAR(SYSDATE, 'YEAR') FROM DUAL; TWENTY TWENTY-THREE Q 분기 SELECT TO_CHAR(SYSDATE, 'Q') FROM DUAL; 2 MM 두 자리 값 월 SELECT TO_CHAR(SYS..

DB/SQL 2023.05.03

[MSSQL]사용자 정의 함수Function 만들기

* Function 생성 : 아래는 점수값에 대한 텍스트를 리턴하는 FUNCTION이다. 매개변수 : INT(점수) USE [ICERT] GO /****** Object: UserDefinedFunction [dbo].[f_gwt_jumsu] Script Date: 04/27/2023 16:28:26 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER function [dbo].[f_jumsu_exchange]( @VALUE INT ) RETURNS VARCHAR(50) AS BEGIN DECLARE @RESULT_VALUE VARCHAR(50); IF(@VALUE>=95) SET @RESULT_VALUE = '텍스트'; ELSE IF(@VAL..

DB/SQL 2023.04.27