전체 글

멈추지 않고 꾸준히 배우는 이들에게 도움이 되고픈 블로그입니다.
java/java 기본

14. 람다와 스트림

1. 람다식 1.1. 람다식 사용 조건 Java 8 이상 버전 함수형 인터페이스(Functional Interface) 일 때 사용 가능 이름이 거창할 뿐이지 익명 클래스 중 아래의 조건일 때 람다식으로 변경이 가능하는 뜻 함수형 인터페이스: 하나의 추상 메서드만을 가지고 있는 인터페이스 default 메서드는 제외 Object 메서드 제외 @functionalInterface : 애노테이션을 이용해서 조건에 부합한 인터페이스인지 체크 가능 익명클래스 함수형 인터페이스 ⊂ 익명클래스 익명클래스 : 인터페이스, class 상관 없이 기준이 되는 class나 interface 를 가지고 익명 객체를 생성할 수 있다. 물론 부모의 method의 개수도 제약이 없다. 함수형 인터페이스 : lambda 식을 위한..

프로그램셋업 & 명령어/NVM

Node.js 설치, yarn 설치, react project 설치

1. nvm 이란 nvm은 "Node Version Manager"의 약어 Node Version Manager는 다양한 Node.js 버전을 관리하고 전환하는 도구 nvm 설치 시, npm이 자동으로 등록 2. npm, yarn 이란 패키지 관리자 (homebrew 같은 역할 수행) 둘다 같은 역할이지만 여러블로그 분위기상 yarn이 조금더 보안과 속도 면에서 우위에 있다. npm은 nvm 설치시 자동으로 설치가 된다. node.js라는 환경에서 js라는 언어로 작업을 수행할 것인데 npm을 이용해서 이미 만들어진 package를 다운 받아서 조금 더 수월하게 작업을 하려는 목적 3. nvm 설치 및 관련 명령어 nvm 설치 brew install nvm 모든 version nvm nvm ls-remo..

프로그램셋업 & 명령어/git & github

local git , remote git 연결하기

1. 일반적인 방법 - lisence 제외 github repository 생성 - 라이센스는 넣지 말기 terminal에서 해당 remote git에 push하고 싶은 프로젝트 폴더 경로로 이동 local git 생성 $ git init 해당 local git에 원격(remote git) 경로 연결 $ git remote add origin # url은 github repository의 code 부분을 클릭시 보여줌 원래 하던 반복 작업 add-commit-push 수행 참고. 현재 remote repository는 아무 commit도 존재하지 않아서 branch 조차 없는 상태이다. 따라서 현재 local의 branch 명으로 $git push origin [브랜치명] 하면 해당 브랜치명이 곧 def..

프로그램셋업 & 명령어/git & github

github page 만들기

사전 조건 local git과 remote git이 서로 연결되었음을 가정하고 수행 주의 html, css, js 와 같은 정적인 page에서만 수행가능 git hub에서 제공해주는 무료 호스팅 기능으로 branch 명이 무조건 gh-pages여야함 해당 branch를 remote에 push 할 시, 자동으로 hosting 수행 iterm2 터미널 환경 $ git branch gh-pages $ git switch gh-pages $ git push origin gh-pages

sql 튜닝/친절한 SQL 튜닝

3. 인덱스 튜닝

3.1 테이블 액세스 최소화 sql 튜닝은 랜덤 I/O와의 전쟁이다. 그만큼 랜덤 I/O 줄이는 것이 중요 테이블 랜덤 액세스 최소화 하는 구체적인 방법을 소개 3.1.1 테이블 랜덤 액세스 인덱스로 검색하는데 왜 느릴까? 인덱스로 검색해도 빠른데, 왜 굳이 파티셔닝을할까? 인덱스 ROWID는 물리적 주소? 논리적 주소? sql이 참조하는 컬럼을 인덱스가 모두 포함하는 경우가 아니면, 인덱스를 스캔한 후에 반드시 테이블을 액세스한다. TABLE ACCESS BY INDEX ROWID 인덱스를 스캔하는 이유 : 검색 조건을 만족하는 소량의 데이터를 인덱스에서 빨리 찾고 테이블 레코드를 팢아기기 위한 주소값, ROWID를 얻으러고 하는데 있다. rowId는 물리적 주소일까, 논리적 주소일까? 논리적 주소에 ..

sql 튜닝/친절한 SQL 튜닝

2. 인덱스 기본

2.1 인덱스 구조 및 탐색 인덱스 구조와 탐색 원리를 설명 인덱스의 기본 구조와 탐색 원리조차 모르는 개발자가 많다. 강조하고 싶은 내용 : 인덱스 참색 과정이 수직적 탐색과 수평적 탐색 단 2개로 이뤄진다. 이것을 이해하면 막연한 인덱스 구조에 대해 그림이 명확해진다. 2.1.1 미리 보는 인덱스 튜닝 데이터를 찾는 2 가지 방법 full scan index scan 정렬 data 위치를 알려줌 데이터베이스 테이블에서 데이터를 찾는 방법 테이블 전체를 스캔한다. 인덱스를 이용한다. 인덱스와 관련해서 튜닝 요소가 매우 많고 기법도 다양하다. 인덱스 튜닝의 2가지 핵심요소 2가지 이지만 실제로는 컬럼이 여러개 일 경우 index가 된 column 순서가 중요 (성능이 달라짐) 인덱스 스캔 과정에서 발생하..

sql 튜닝/친절한 SQL 튜닝

1. SQL 처리과정과 I/O

1.1 SQL 파싱과 최적화 1.1.1 구조적 집합적 선언적 질의 언어 용어 sql: structured Query Language (구조적 질의 언어) 사용자 → 옵티마이저 → 프로시저 sql 옵티마이저 : 프로시저를 만들어내는 dmbs 내부 엔진 == 프로그래밍을 대신해 주는 역할 SQL 최적화 : DBMS 내부에서 프로시저를 작성하고 컴파일해서 실행 가능한 상태로 만드는 전 과정 1.1.2 SQL 최적화 sql 최적화 과정 세분화 SQL 파싱 (sql 파서) 파싱 트리 생성 : sql문을 이루는 개별 구성요소를 분석해서 파싱 트리 생성 syntax 체크 : 문법적 오류가 없는지 확인 semantic 체크 : 의미상 오류가 없는지 확인 SQL 최적화 (옵티마이저) - 1.1.3 자세한 설명 옵티마이저..

Project/ezMeal

JS 여러 요소중 1가지 선택하는 방식

delete btn이 여러개 있을 경우 내가 click한거 인지하는 방식 querySelector()는 동일 document 여러개 존재시 1st것만 가지고 오는 문제점을 가짐

wooweee
코아일체