인파

You Can Become A

늦게 시작해도 누구든지 노력하면 개발자가 될수 있어요 !

공부한 내용을 정리합니다
DBMS/MongoDB

[MONGO] 📚 몽고디비 한방 설치 & 설정법 정리 👊

MongoDB 설치하기 MongoDB는 수년간 대표적인 NoSQL 제품으로 자리 잡았다. 특히, 전통적인 RDBMS 대비 우월한 샤드 및 스케일 아웃 능력으로 대량 트래픽, 대량 데이터가 발생하는 모던 웹 시대에 걸맞는 저장소로 널리 쓰이고 있다. 이번 포스팅에서는 몽고디비를 설치하고 실행 및 애로사항을 해결해보는 시간을 가져보겠다. MongoDB Community Download Download the Community version of MongoDB's non-relational database server from MongoDB's download center. www.mongodb.com community 버전 다운로드하여 설치 진행, 설치 시 complete 클릭 후 Install MongD ..

category_image
인파_
2021.11.12
(0)
DBMS/MongoDB

[MONGO] 📚 몽고디비 특징 & 비교 & 구조 (NoSQL)

MongoDB 란? MongoDB는 문서 지향 데이터 모델(Document DB)을 사용하는 데이터베이스 이다. 이러한 유형의 모델을 사용하면 정형 및 비정형 데이터를 보다 쉽고 빠르게 통합할 수 있다는 장점이 있다. RDBMS는 MySQL이 많이 쓰이듯이, NoSQL 데이터베이스중 대표격이라고 말할 정도로 가장 많이 쓰인다. [NoSQL DB vs 관계형 DB 비교] 항목 NoSQL RDBMS 적합업무 - 오프라인에서 정형 및 비정형 데이터 분석 업무 - 초당 동시 처리가 중요한 업무 - 로그 및 이력 등의 단순 기록형 업무 - 데이터 무결성 및 일관성이 중요한 트랜잭션 업무 - 온라인에서 다양한 집계 및 통계를 분석하는 업무 - 복잡한 계산 및 실시간 데이터 정합성이 필요한 업무 데이터 모델 - 서비..

category_image
인파_
2021.11.12
(0)
DBMS/MySQL

[MYSQL] 📚 테이블 생성 시 engine / character 설정하기

테이블 engine / character 설정 테이블 생성할때 추가 옵션으로 engine과 character를 설정할 수 있습니다. 이 옵션들은 엔진을 변경한다거나 인코딩 포맷을 변경할때 사용할 수 있습니다. MySQL의 기본 엔진이 InnoDB이기 때문에 별다른 설정을 하지 않아도 디폴트로 적용이 되기는 하지만, 이 디폴트 설정이 어느 상황에서나 작용한다는 조건이 아니므로 테이블을 생성할 때 확실히 명시해주는 것이 좋습니다. create table nodejs.comments ( id int not null primary key auto_increment, commenter int not null, comment varchar(100) not null, -- 댓글 created_at datetime n..

category_image
인파_
2021.11.09
(0)
DBMS/MySQL

[MYSQL] 📚 LIMIT / OFFSET 쿼리

limit 결과 중 처음부터 몇개만 가져오기 SELECT * FROM 테이블명 LIMIT 10; -- 처음 부터 10개만 출력하기 (1 ~ 10) SELECT * FROM 테이블명 LIMIT 100, 10; -- 100번째부터 그 후 10개 출력하기 (101 ~ 110) offest 어디서 부터 가져올지 SELECT * FROM 테이블명 ORDERS LIMIT 20 OFFSET 5; -- 5번째 행 부터 25행 까지 출력 (6 ~ 25) -- limit 5, 20 과 같다고 보면 된다. SELECT * FROM 테이블명 ORDERS LIMIT 5, 20 페이징 처리하기 사이트를 만들다보면 무조건 최소 한번은 Paging 을 처리해야하는 화면이 있다. Mysql 에서는 Limit 과 offset 을 제공하..

category_image
인파_
2021.11.09
(0)
DBMS/데이터베이스 이론

📋 제 1-2-3 정규화 & 역정규화 기법 💯 정리

정규화란? ERD내에서 중복요소를 찾아 제거해 나가는 과정 - 중복된 데이터는 많은 문제를 일으킨다. ​ 3차 정규화 정도만 알면 설계하는데 무리가 없다. - 중복을 최소화 -> 완전히 없애는게 아니라 어느정도는 인정하겠다 - 시간을 줄이기 위해 (데이터베이스 안에 1억개의 튜플이 들어있다고생각해봐라) ​ 몇가지 원칙만 지키면 정규화가 필요 없는 ERD를 설계할 수 있다. 데이터베이스 정규화 절차 ​함수 종속성을 이용해 릴레이션을 연관성이 있는 속성들로만 구성되 도록 분해해서 이상현상이 발생하지 않도록 Step By Step Approach 로 수행 기본 정규형으로는 제 1‧2‧3‧보이스/코드 정규형이 있으며, 제 4‧5 정규형 은 고급 정규형으로 분류 ​ 제 1 정규화 -> 제1차 정규화는 같은 성격과..

category_image
인파_
2021.11.08
(0)
DBMS/데이터베이스 이론

📋 데이터 모델링 개념 & ERD 다이어그램 작성 💯 총정리

데이터 모델링 이란? 데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 그리고 이렇게 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용된다. 특히 데이터를 추상화한 데이터 모델은 데이터베이스의 골격을 이해하고 그 이해를 바탕으로 SQL문장을 기능과 성능적인 측면에서 효율적으로 작성할 수 있기 때문에, 데이터 모델링은 데이터베이스 설계의 핵심 과정이기도 하다. 데이터 모델링 순서 절차 1. 업무 파악 (요구사항 수집 및 분석) 업무 파악은 어떠한 업무를 시작하기 전에 해당하는 업무에 대해서 파악하는 단계 이다. 모델링에 앞서 가장 먼저 해야 할 것은 어떠한 업무를 데이터화하여 모델링 할 것인지에 대한 요구사..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 상수 select 하는법

상수 select mysql 쿼리문에서 상수를 출력결과용으로 임시로 띄우고 싶을때 사용한다. select 1 as 'one' ,2 as 'two', 3 as 'three'

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 AS 연산자의 두 가지 사용처

AS 연산자 쿼리를 하면서 자주보는 as 연산자 지만, 특수한 경우 사용처가 약간 달라 정리 해본다. 1. 열에 대한 별명(alias) 붙이기 별명을 사용하면 쿼리 결과에 표시되는 열의 이름은 변경된다. 하지만 원래 열의 이름은 변하지 않는다. 하지만 굳이 AS 를 쓰지 않아도 별명을 붙일 수 있다. (그냥 생략하면 된다.) select profession AS mc_prof -- 원래 열의 이름 뒤에 별명을 선언하고 from my_contacts group by mc_prof -- 그 이후로는 별명으로 호출한다. order by mc_prof; select profession mc_prof -- as 생략 가능 from my_contacts group by mc_prof group by mc_prof;..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 타입 강제 변환 (cast / convert)

타입 강제 변환 MySQL은 비교나 검색을 수행할 때 데이터의 타입이 서로 다를 경우, 내부적으로 타입이 같아지도록 자동 변환하여 처리합니다. 하지만 사용자가 명시적으로 타입을 변환할 수 있도록 다양한 연산자와 함수도 같이 제공하고 있습니다. ​ 암시적인 형변환 문자열이어도 합치면 숫자로 변환 select '100' + '200'; select concat('100','200'); select concat(100,'200'); select 1 > '2mega'; select 3> '2mega'; select 0 = 'mega2'; BINARY BINARY 연산자는 뒤에 오는 문자열을 바이너리 문자열로 변환합니다. BINARY 연산자를 이용하면 문자가 아닌 바이트를 기준으로 하여 비교나 검색 작업을 수행할..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 패턴 매칭 (LIKE / REGEXP)

LIKE 연산자 문자열 패턴 일치를 검사 기호 설명 % 0개 이상의 문자를 대체함. _ 1개의 문자를 대체함. select * from table where 필드명 like "_영_" # 가운데 글자가 영 인 사람, where 필드명 like "이%" # 성이 이씨인 사람 where 필드명 like "_종신" # 종신 성씨 아무거나 where 필드명 like "20__" # 2000,2002 같은 네자리 숫자만. 20000 안됨. REGEXP mysql에서도 정규표현식을 사용 가능. 패턴 설명 . 줄 바꿈 문자(\n)를 제외한 임의의 한 문자를 의미함. * 해당 문자 패턴이 0번 이상 반복됨. + 해당 문자 패턴이 1번 이상 반복됨. ^ 문자열의 처음을 의미함. $ 문자열의 끝을 의미함. | 선택을 의미..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 WITH ROLLUP & Grouping 함수

WITH ROLLUP RollUp은 그룹 항목 총합(총계)이나, 각 그룹 별 중간합계(소계)가 필요할 경우 사용된다. 예를들어 그냥 ​GROUP BY를 사용하면 GROUP BY 뒤에 나오는 컬럼별로 합계를 구해준다. 이때, 아쉬운 점이 있다면 항목별 합계에 전체 합계가 같이 나오게 하는 것이다. 이럴 때에 사용하는 것이 WITH ROLLUP 이다. WITH ROLLUP는 그룹별로 합계를 한번에 구할때 사용한다. 이때 합계값만 추가하는거라, 나머지 필드 이름 자리에는 당연히 NULL값이 들어가게 되는데, 쿼리를 통해서 이름을 명명해줄수 있다. ​ 웹 서버단에서 사용할 쿼리에는 사용하지 않고 데이터베이스 내에서 데이터를 조회할때만 사용된다. 서버단에서 동일한 기능을 사용하고 싶다면, GROUP BY로 조회해..

category_image
인파_
2021.11.08
(0)
DBMS/MySQL

[MYSQL] 📚 파티션(Partition) 개념 & 사용법

파티션(partition) ​대량의 데이터를 테이블에 저장할 때, 물리적으로 별도의 테이블로 분리해서 저장시키는 기법을 말한다. 단, mysql내부적으로 분리되어 처리되기 때문에, 파티션이 얼마나 있든 사용자는 하나의 테이블로 보인다. 특정 DML과 Query의 성능을 향상시키고, 주로 데이터가 실시간으로 쌓이는 데이터베이스 환경에서 효율적이다. 특히 Full Scan에서 데이터의 접근 범위를 줄여 성능 향상을 가져올 수 있습니다. 물리적인 파티셔닝으로 인해 전체 데이터의 훼손 가능성이 줄어들며, 각 파티션 별로 독립적으로 백업하고 복구할 수 있다. 다만, 테이블 간 Join이 일어날 경우 비용이 증가하며 테이블과 인덱스를 별도로 파티셔닝 할 수는 없다. 파티션 종류 기본적으로 파티셔닝은 수평 분할과 수..

category_image
인파_
2021.11.08
(0)