분류 전체보기 67

자바스크립트에서의 Variable, Attribute, Property 차이

자바스크립트를 공부하다 보면 프로퍼티(Property)라는 개념이 등장하는데, 대충 넘겨짚고만 있었다가 상황마다 불리는 용어가 구분되는 등 미묘한 차이가 있음을 깨닫고 이번에 정리해봤습니다. 변수와 속성 두 개념과 각각 비교되는데, 어떠한 차이가 있는지 보겠습니다. 실행 컨텍스트와 변수객체(VariableObject) 우선 자바스크립트에서 코드는 크게 Global Context(전역)와 Function Context(함수 영역)에서 실행된다. Global Context란 브라우저의 window 객체와 같이 전체 코드에서 1개만 생성되며, Function Context는 각각의 함수 호출마다 생성된다. 이렇게 실행된 컨텍스트들은 각각 변수객체(VariableObject, VO)를 가지는데, 여기에 우리가 ..

javascript 2021.02.19

serialize()사용 시 checkbox값 전송 안되는 문제해결방법

보통 form내의 input태그 값들을 Ajax를 이용해 서버로 보내기 위한 과정에서 serialize() 함수를 이용해왔다. 근데 이번에 checkbox가 무수히 많이 필요한 화면 개발을 하면서 serialize()는 checkbox의 체크된 값만 적용되며, 체크되지 않은 값은 무시한다는 것을 알게 됐다. 아래는 serialize() 함수에 대한 jQuery API 공식문서의 일부이다. 여기서 우리의 문제를 해결해 줄 포인트로, jQuery serialize는 ① 오직 form태그에 포함되어 있는 요소들만을 취급한다는 것과 ② input태그의 "radio"와 "checkbox"타입에서 체크 표시가 된 값만 포함한다고 나와있다. 즉, serialize()는 checkbox에서 체크되지 않은 값은 제외한다..

javascript 2021.02.01

인덱스 스캔(Index Scan)과 전체 테이블 스캔(Full Table Scan)

전체 테이블 스캔(Full Table Scan)1) 테이블에 존재하는 모든 데이터를 읽어 가면서 조건에 맞으면 결과로서 추출하고 조건에 맞지 않으면 버리는 방식이다. 2) Oracle의 경우, 테이블의 고수위 마크(HWM, High Water Mark) 아래의 모든 블록을 읽는다.※고수위 마크(HWM): 테이블에 데이터가 쓰여졌던 블록 상의 최상위 위치(현재는 지워져서 데이터가 존재하지 않을 수도 있음)를 의미. 3) 위 그림과 같이 일반적으로 블록들은 서로 인접되어 있기 때문에, Full Table Scan는 한 번의 I/O에 여러 블록을 옮겨온다. 즉, 한 번의 I/O에 데이터를 다중 블록 단위로 메모리에 가져오기 때문에, Row 당 소요되는 입출력 비용이 인덱스 스캔에 비해 적다. 메모리에 옮겨진 ..

Database 2020.12.14

Oracle 인덱스(Index)와 B트리 인덱스(트리 기반 인덱스)

인덱스(Index) 정의 및 특징1) 원하는 데이터를 쉽게 찾을 수 있도록 돕는 책의 ‘찾아보기’와 유사한 개념으로, 기본적인 목적은 검색 성능의 최적화이다. 즉, 조건을 만족하는 데이터를 인덱스를 통해 효과적으로 찾을 수 있도록 돕는다. 추가적으로 이 부분은 DBA분에게 물어보니 인덱스를 활용한 데이터 조회는 전체 데이터의 15% 이내의 데이터를 조회할 때가 인덱스 효율이 가장 좋으며, 그 이상의 건수에 대한 조회가 필요할 때부터는 효율이 떨어진다고 한다.2) 테이블에 인덱스를 생성하지 않아도 되고 여러 개를 생성해도 된다. → 선택적으로 생성할 수 있는 구조.3) DML 작업(Insert, Update, Delete 등)은 테이블과 인덱스를 함께 변경해야 하기 때문에 오히려 느려질 수 있다는 단점이 ..

Database 2020.12.11

iPhone 12 Pro Max 언박싱 및 iPhone 12, mini 비교

Phone 12 Pro Max, Silver가 도착했다. 기다리고 기다렸던. 그리고 애플의 디자인 공개 때부터 많은 사람들의 관심이 쏟아졌던 iPhone 12 Pro Max가 도착했다. 아이폰 11에서 12로 넘어오면서 바뀐 점이라고 하면 5G 통신, A14 바이오닉 칩, OLED 디스플레이, 세라믹 쉴드, MagSafe 기능, LiDAR 스캐너 탑재 등이 있지만 사실 이런 건 그렇게 중요한 것이 아니었습니다 구매 결정에 있어 중요했던 것은 바로 디자인!아이폰 12 프로 시리즈(Pro, Pro Max)는 4가지 색상(실버, 그래파이트, 골드, 퍼시픽 블루)으로 출시했는데, 저는 아무래도 실버가 느낌상 제일 깔끔하고 무엇보다 안 질릴 것 같더라고요. 그리고 무광 글라스 소재의 뒤태도 마음에 들었어요. 별거..

일상 2020.12.09

옵티마이저(Optimizer)와 실행계획(Execution Plan)

옵티마이저란? 1) 옵티마이저(Optimizer)는 SQL문의 요구사항을 처리하기 위한 최적의 실행 방법을 결정하는 역할을 한다.→ 여기서 최적의 실행방법이란 것은 한 마디로 '실행계획'이라고 할 수 있다.2) 옵티마이저는 두가지 방식(규칙기반, 비용기반)에 따라 구분된다.3) 현재 대부분의 관계형 데이터베이스는 비용기반 옵티마이저(Cost Based Optimizer)만을 제공한다. 비록 규칙기반 옵티마이저를 제공하더라도 신규 기능들에 대해서는 더 이상 지원하지 않는다. 다만 하위 버전 호환성을 위해서만 규칙기반 옵티마이저가 남아 있을 뿐이다. 하지만 규칙기반 옵티마이저의 규칙은 보편 타당성에 근거한 것들이기 때문에, 이러한 규칙을 알고 있는 것은 옵티마이저의 최적화 작업을 이해하는데 도움이 된다.  ..

Database 2020.11.19

KREAM(크림) 이용법 및 구매&판매 후기

한정판 스니커즈 중개 서비스로 유명한 KREAM에서의 실제 사용 후기에 대해 블로깅해보려고 합니다.한정판 신발 거래 플랫폼 KREAM(크림)신발에 관심도 없던 부모님이 처음으로 이쁘다고 한 신발이 있어, 효도 느낌으로 선물을 해드리고자 알아보던 중에 KREAM을 알게 됐다. 가장 솔깃했던 말은 1:1거래에 있어 KREAM의 전문 검수팀(?)이 철저하게 검수를 진행하고, 합격한 상품만 구매자에게 배송한다는 문구였습니다.실제로 저는 신발을 좋아하는 편이라 여러 중고거래 사이트 및 카페, 블로그 등의 커뮤니티를 가까이하는데, 특히나 중고거래 사이트를 찾아보면 가품들을 당연하듯이 팔고 있는 업체들이 많은 게 사실이더라고요...뿐만 아니라 믿을 만하다고 느껴지는 판매자와 컨택을 하더라도 진품을 구별해내는 건 오로..

일상 2020.11.08

도커 컨테이너(Container)와 이미지(Image)란?

도커(Docker)는 Immutable Infrastructure Paradigm 이라는 개념을 기반으로 하기 때문에,서비스 환경(서비스 인프라) 부분을 이미지화(실행파일화)하여 배포한 뒤 가급적 변경하지 않고 사용한다고 이전 포스팅에서 말했었습니다.이번에는 그것을 가능하게 하는 이미지(Image)와 컨테이너에 대해 정리해보겠습니다. Docker Image(이미지)도커에서 서비스 운영에 필요한 서버 프로그램, 소스코드 및 라이브러리, 컴파일된 실행 파일을 묶는 형태를 Docker Image라 한다. 다시 말해, 특정 프로세스를 실행하기 위한(즉, 컨테이너 생성(실행)에 필요한) 모든 파일과 설정값(환경)을 지닌 것으로, 더 이상의 의존성 파일을 컴파일하거나 이것저것 실치 할 필요 없는 상태의 파일을 의미..

Docker & VM 2020.11.02

Adobe(어도비) 프로그램 완전 삭제하기

Adobe(어도비) 프로그램 완전 삭제 방법어느 날 PC 바탕화면을 딱 보니 예전에 작업할 때 사용했던 어도비 프로그램들과 포토샵, 일러스트 파일들이 너저분하게 널려있더라고요. 앞으로도 사용할 일은 없을 것 같은데.. 그래서 깔끔하게 지우는 방법을 알아봤습니다. 원래 제가 일반 프로그램을 지울 때는 위 사진과 같이 [제어판] - [프로그램 제거] 로 들어가서 삭제하곤 했는데, 찾아보니 Photoshop과 같은 어도비(Adobe) 프로그램은 프로그램을 삭제했다고 하더라도 라이센스가 PC에 남아 있는다고 하더라고요. 저는 완벽한 삭제를 원했습니다. 그래서 Adobe 공식 홈페이지를 찾아보니 Adobe(어도비)에서 관련 프로그램들을 깨끗하게 지울 수 있는 소프트웨어를 제공하고 있더라고요. → 관련 URL은 여..

개발도구 2020.10.20

오라클 NL Join, Sort Merge Join, Hash Join 특징 총정리

NL Join(Nested Loops Join) 수행 원리1) 다음은 NL Join의 수행 방식을 단계별로 나타낸 것입니다.① 선행 테이블에서 조건을 만족하는 첫 번째 행을 찾음 → 이때 선행 테이블에 주어진 조건을 만족하지 않는 경우 해당 데이터는 필터링 된다.② 선행 테이블의 조인 키를 가지고 후행 테이블에 조인 키가 존재하는지 찾으러 감 → 조인 시도③ 후행 테이블의 인덱스에 선행 테이블의 조인 키가 존재하는지 확인 → 선행 테이블의 조인 값이 후행 테이블에 존재하지 않으면 선행 테이블 데이터는 필터링 됨 (더 이상 조인 작업을 진행할 필요 없음)④ 인덱스에서 추출한 레코드 식별자를 이용하여 후행 테이블을 액세스 → 후행 테이블에 주어진 조건까지 모두 만족하면 해당 행을 추출버퍼에 넣음. ⑤ ~ ⑪..

Database 2020.10.18