programming (118) 썸네일형 리스트형 [DB] INDEX 1. Index 란 색인, 빨리 찾기 위한 자료구조, 추가적인 작업공간과 저장공간을 할당한다. 데이터와 데이터의 위치를 저장 2. 장점 select update delete 성능이 향상된다 인덱스를 사용하지 않는 컬럼을 조건절에 검색시, 해당 테이블을 full scan 한다 시스템 부하를 줄일 수 있다 3. 단점 인덱스를 관리하기 위한 추가적인 공간 (약 10%) 이 필요하다 추가 작업이 필요하다 인덱스를 잘못 사용하는 경우 오히려 성능이 저하된다 -> 테이블 rows가 적은 경우는 인덱스를 타고 찾는게 오히려 느려짐 -> update, delete의 경우 데이터를 삭제해도 기존의 인덱스는 삭제하지 않고, '사용하지 않음' 처리를 해주기 때문에, 만약 update, delete가 빈번하게 발생하는 테이블.. [DB] 문자형 컬럼을 탐색하는 방법 1. LIKE 연산자 컬럼에 저장된 문자열 중에서 비슷한거 찾아줘 2. 부분 문자열 검색에 사용되는 패턴 % : *(아스타) 역할하는 와일드카드, 아무나 길이 제한 없이 다 _ : 한자리 모두 같은 결과를 뱉는다. ESCAPE : 검색하고 싶은 문자 자체가 '%' 이거나 '_' 일때 특수문자를 스트링 취급하라고 알려주기 substr 연산을 사용하여 맨 첫글자가 뭐인것, 이런식으로도 검색가능 단, 해당 컬럼에 인덱스를 걸어둔 경우 그 컬럼에 대해서 연산을 한 결과로 검색을하면, 인덱스를 타지 못한다(성능저하) [DB] 집계함수 종류와 각각의 역할 집계함수는 여러행으로부터 하나의 결과값을 반환하는 함수이다. 주로 통계적인 데이터 (총합, 평균, 최대, 최소 등)을 구할 때 사용한다 1. COUNT select count(*) from tb_member where gender = 'female'; 남자들 중에서 member_name 중복을 제거한(동명이인 제거) 카운트 수 select count(distinct member_name) from tb_member where gender = 'male'; 2. MIN/MAX select MAX(member_age) from tb_member; string 값이 저장되는 컬럼에도 사용 가능 -> 사용시 알파벳 사전순서 select MIN(country) from tb_member; 3. AVG(평균), S.. [DB] CREATE 로 테이블 만들고 INSERT 해보기 create database playground; use playground; CREATE TABLE swimming_pool ( idx int NOT NULL AUTO_INCREMENT COMMENT '수영장 고유번호', title varchar(20) NOT NULL COMMENT '수영장 이름', type tinyint unsigned DEFAULT 0 COMMENT '수영장 타입 0:국공립, 1:사설', sido varchar(30) DEFAULT NULL COMMENT '주소 시/도', gugun varchar(30) DEFAULT NULL COMMENT '주소 구/군', road_name varchar(30) DEFAULT NULL COMMENT '주소 도로명', deatil_juso varc.. AWS - EC2(EBS/AZ/ELB) Elastic Compute Cloud ECC -> EC2 유동적인(탄력적인) 컴퓨터 클라우드 EC2 사용시 지불방법 1. on-demand : 시간단위로 가격이 고정되어 있음. 개발 초기단계, 유연한 크기 설정 가능 개발 시작 시간, 개발 끝나는 시간을 알수 없는 경우, 단기간에 개발을 할 수 있는경우, 개발 초기단계에서 EC2인스턴스에 테스트를 해볼때 적합함 2. reserved : 한정된 EC2 용량 사용가능, 지정석, 크기를 늘이고 줄이는 기능 없음, on-demand 보다 가격이 저렴함. 개발의 시작과 끝을 미리 알 수 있는 경우에 적합. 예상가능한 워크로드시 지정해두고 할인받아 사용가능 3. spot : 입찰 가격 적용, 가장 큰 할인률을 적용받을 수 있음. EC2는 어떻게 작동되는가? 무엇으.. [AWS] IAM 이란? (개념과 실습) IAM 이란? 클라우드 사용자(유저)를 관리(권한 등) 1. 유저별로 다른 권한 부여기능(A: 데이터베이스 읽기 권한만 부여/ B: 데이터베이스 테이블 생성 권한만 부여) 2. 모든 유저들에게 비밀번호를 강제로 변경하도록 기한 설정 가능 3. MFA 다중인증 기능 : 루트유저는 필수 루트 유저로 생성할 수 있는 것 1) 그룹 : 유저 묶음 2) 유저 3) 역할 4) 정책 : json 형태로 되어있는 document를 가리킨다. 세밀한 접근권한을 일일히 설정하여 하나의 정책 document 생성 IAM 은 universal 하다 universal (전역적) regional (지역적) IAM 정책 시뮬레이터(IAM과 관련 문제 디버깅하기 위한 툴) 1. 개발환경(Staging or Develop)에서 실제환.. 리액트 빌드시 환경(개발/테스트/상용)에 따라 API 주소 설정하기 1. 명령어로 구분 package.json에 script : start/build/test 각각의 스크립트가 있음 -> 배포시 build.gradle에 npm build 명령어가 들어있음 2. .env 파일에서 환경변수 사용 두개의 분리된 dotEnv 파일 생성 .env.development : 개발용 환경변수 .env.production : 상용 환경변수 원리) Creact-React-App으로 리액트를 만들고 npm 스크립트를 실행할 때 스크립트 명령어별로 env 파일의 적용 우선순위가 있다. script 명령어 별 env 파일 우선순위 npm start : .env.development.local, .env.local, .env.development, .env npm build : .env.prod.. 얕은복사 & 깊은복사 데이터타입 원시값 String, Number, Boolean, Null, Undefined -> 자동 깊은 복사, 다른 메모리에 값 자체를 할당 참조값 Object, Symbol -> 얕은 복사, 가리키는 주소를 복사 얕은 복사 객체를 가리키는 주소를 같이쓰는것 바꾸면 같이 따라서 바뀌어 버린다 깊은 복사 spread 연산자 사용 (1 depth 까지만) Object.assign() 메소드 사용 (1 depth 까지만) 완벽한 깊은 복사 방법 재귀적으로 깊은 복사 수행 Lodash의 cloneDeep 함수 사용 (라이브러리) JSON.parse()와 JSON.Stringify() 함수 사용 JSON.stringify()는 객체를 json문자열로 변환한다. 이 과정에서 원본객체와 참조가 모두 끊어진다. J.. 자바스크립트 프로토타입 Javascript 에서는 객체를 상속하기 위해 프로토타입이라는 방식을 사용한다. 이미 존재하는 생성자에게 메소드를 추가하기 위해 프로토타입 속성을 사용하는 법을 알아보자 자바스크립트는 프로토타입기반 언어라고도 불리운다 모든 객체들이 그들의 프로토타입으로 부터 메소드와 속성들을 상속받는다. 모든 객체들은 최소한 하나 이상의 다른 객체로부터 상속을 받는데, 이때 상속되는 정보를 제공하는 객체를 프로토타입이라고 한다. 동작 순서 : 프로토타입 체인 person 객체가 자체적으로 valueOf() 메소드를 가지고 있는지 체크 person의 프로토타입 객체 Person()의 생성자의 프로토타입에 valueOf() 메소드가 있는지 체크 여전히 없으므로 Person()의 생성자의 프로토타입 객체의 프로토타입 Obj.. 자바스크립트의 형 변환(+ null & undefined 차이) 자바스크립트는 느슨한 타입언어, 동적 타입언어, 변수의 타입을 미리 선언할 필요가 없다. 프로그램이 처리되는 과정에서 자동으로 파악되고, 같은 변수라도 상황에 따라 타입이 바뀔 수도 있다. 자바스크립트는 컴파일 과정 없이 실행과 동시에 해석을 하는 인터프리터 언어 자바스크립트의 형변환은 2가지로 일어난다 (명시적형변환/암시적 형변환) 1. 명시적 형변환 string, number, boolean 타입으로 이루어진다 의도적으로 형태를 변형해서 사용하겠다는 것 String(123) String(NaN) Number('') //0 Number('123') //123 ParseInt('123a') //123 Boolean("") //false 2. 암시적 형변환 연산할 때 일어난다. 문자열이 하나라도 포함되면 .. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음