인파

You Can Become A

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

공부한 내용을 정리합니다
DBMS/데이터베이스 이론

📋 관계 대수 & 관계 해석 표현법 💯 총정리

관계 대수 (Relation Algebra) 관계 대수식이란 기존 릴레이션(테이블)들로부터 새로운 릴레이션을 생성하는 절차적 언어 문법이라고 보면 된다. 릴레이션에 대해 기본적인 연산자들을 적용하여 보다 복잡한 관계 대수식을 점차적으로 만들 수 있다. 쉽게 생각해 우리가 숫자를 더하거나 나누어 원하는 수를 도출하듯이, 릴레이션을 관계 대수라는 전용 연산자를 통해 더하거나 곱해 원하는 릴레이션을 도출하는 것으로 생각하면 된다. 관계 연산자들은 릴레이션의 특성에 따라 일반 집합 연산과 순수 관계 연산으로 나뉘며, 각각의 연산 결과는 또 다른 관계 대수식의 입력으로 사용될 수 있다. 이렇게 관계 대수식은 사용자가 원하는 데이터를 얻기 위한 절차를 시스템에 명세하는 데이터 언어로서 관계 데이터 모델에서의 릴레이..

category_image
인파_
2023.04.21
(0)
DBMS/Redis

[REDIS] 📚 캐시(Cache) 설계 전략 지침 💯 총정리

Redis - 캐시(Cache) 전략 캐싱 전략은 웹 서비스 환경에서 시스템 성능 향상을 기대할 수 있는 중요한 기술이다. 일반적으로 캐시(cache)는 메모리(RAM)를 사용하기 때문에 데이터베이스 보다 훨씬 빠르게 데이터를 응답할 수 있어 이용자에게 빠르게 서비스를 제공할 수 있다. 하지만 기본적으로 RAM의 용량은 커봐야 16 ~ 32G 정도라, 데이터를 모두 캐시에 저장해버리면 용량 부족 현상이 일어나 시스템이 다운 될 수 있다. 따라서 어느 종류의 데이터를 캐시에 저장할지, 얼만큼 데이터를 캐시에 저장할지, 얼마동안 오래된 데이터를 캐시에서 제거하는지에 대한 '지침 전략' 을 숙지할 필요가 있다. 캐시를 효율적으로 이용하기위해서는 캐시에 저장할 데이터 특성도 고려해야 한다. 예를들어 자주 조회되..

category_image
인파_
2022.11.10
(0)
DBMS/MongoDB

[MONGO] 📚 몽고디비의 데이터 관계 모델링 💯 정리

몽고디비 관계 데이터 방식 몽고디비의 컬렉션간의 관계(조인) 데이터를 가져올때 대표적으로 2가지 방식 종류가 있다. Document - Embedded Embedded 저장 방법은 2가지 종류의 Document가 있을 때, 1개의 Document 데이터를 Document key의 value에 통짜로 저장하는 방법이다. 예를 들어, 여기 2가지 종류의 Person Document 와 Address Document가 있다고 하자. // Person { _id: "joe", name: "Joe Bookreader" } // Address { pataron_id: "joe", street: "123 Fake Street", city: "Faketon", state: "MA", zip: "12345" } 위의 D..

category_image
인파_
2022.07.17
(0)
DBMS/MongoDB

[MONGO] 📚 사용자 계정 관리 하기 (추가/삭제)

몽고디비 계정 관리 다음은 몽고디비에서 계정 관리할때 사용되는 명령어이다. 명령어 설명 db.auth() 데이터베이스에 사용자 인증 db.createUser() Creates a new user. db.updateUser() Updates user data. db.changeUserPassword() 사용자 패스워드 변경 db.dropAllUsers() 데이터베이스에 관련된 모든 사용자를 삭제한다. db.dropUser() 한 사용자를 삭제한다 db.grantRolesToUser() 롤과 권한을 사용자에 허용한다 db.revokeRolesFromUser() 사용자에 부여한 롤을 삭제한다 db.getUser() 지정한 사용자의 정보를 반환한다 db.getUsers() 데이터베이스에 관련된 모든 사용자의 정..

category_image
인파_
2022.07.15
(0)
DBMS/Redis

[REDIS] 📚 Node.js 에서 Pub/Sub 기능 구현하기

Node-Redis Publish / Subscribe 구현 (v4 ) Node.js에서 Redis 모듈을 이용하여 publish/subscribe 하는 방법에 대해 포스팅 해본다. 우선 redis의 pub/sub 기본 기능과 더불어 노드에 redis 모듈 설치와 사용법에 대해서 모르면 다음 글을 먼저 정독하고 오길 권한다. [REDIS] 📚 PUB/SUB 기능 (채팅 / 구독 알림) Redis Publish / Subscribe Publish / Subscribe 란 특정한 주제(topic)에 대하여 해당 topic을 구독한 모두에게 메시지를 발행하는 통신 방법으로 채널을 구독한 수신자(클라이언트) 모두에게 메세지를 전송 하. inpa.tistory.com Pub/Sub 클래스 구현 구독자(객체) 구조..

category_image
인파_
2022.07.13
(0)
DBMS/Redis

[REDIS] 📚 Node.js 에서 redis 모듈 사용법 (캐싱 & 세션 스토어)

Node 프로젝트에서 pm2로 다중 클러스터 인프라를 구축했다면 세션 불일치 문제가 생기게 마련이다. 만일 서버가 종료되어 메모리가 날라가면 접속자들의 로그인이 모두 풀려버리게 된다. 따라서 이를 방지하기 위해 세션 아이디와 실제 사용자 정보를 외부 데이터베이스에 저장하는 편이다. 이때 개발자들이 많이 사용하는 것이 Redis db이다. 다른 데이터베이스를 사용해도 되지만, 세션은 빠릿빠릿하게 응답을 해야되기 떄문에 메모리 기반의 데이터베이스인 레디스를 사용한다. 지금부터 Node 프로젝트에서 Redis와 연결하고 사용하는 법을 알아보자. Redis Database 설치 레디스를 로컬에 설치해도 되고, 클라우드로도 사용할 수가 있다. 마음에 드는 것을 골라 설치하자. 개인적으로 로컬 보다는 클라우드로 하..

category_image
인파_
2022.07.12
(0)
DBMS/Redis

🗃️ REDIS의 PUB/SUB 기능 (채팅 / 구독 알림)

Redis Publish / Subscribe Publish / Subscribe 란 특정한 주제(topic)에 대하여 해당 topic을 구독한 모두에게 메시지를 발행하는 통신 방법으로 채널을 구독한 수신자(클라이언트) 모두에게 메세지를 전송 하는것을 의미한다. 하나의 Client가 메세지를 Publish하면, 이 Topic에 연결되어 있는 다수의 클라이언트가 메세지를 받을 수 있는 구조이다. 쉽게 생각하면, Youtube 채널 구독과 비슷하다. 구독과 좋아요(Subscribe )를 누르면, 나중에 크리에이터가 새로운 글을 발행(Publish)하면 구독자 한테만 알림(notification)이 오게 되는 원리라고 보면 된다. Publish / Subscribe 구조에서 사용되는 Queue를 일반적으로 T..

category_image
인파_
2022.07.07
(0)
DBMS/Redis

[REDIS] 📚 캐시 데이터 영구 저장하는 방법 (RDB / AOF)

Redis 데이터의 영속성 (Redis Persistence) Redis는 In-memory DB 임에도 불구하고, 메모리 데이터를 disk에 저장할 수 있는 특징이 있다. 그래서 서버가 꺼진 후 restart되더라도, disk에 저장해놓은 데이타를 다시 읽어서 메모리에 로딩하기 때문에 데이타 유실되지 않는다. 이런 Persistent(영속성) 기능은 휘발성 메모리 DB를 데이터 스토어로서 활용한다는 장점이 있지만 이 기능 때문에 장애의 주 원인이 되기도 한다. 그러므로 이 기능을 잘 알아보고 사용하는게 중요하다. redis에서는 데이타를 저장하는 방법이 RDB (snapshotting) 방식과 AOF (Append only file) 두가지가 있다. RDB 방식은 특정한 각격마다 메모리에 있는 레디스 ..

category_image
인파_
2022.07.06
(0)
DBMS/Redis

[REDIS] 📚 자료구조 명령어 종류 & 활용 사례 💯 총정리

Redis 데이터 타입 (Collection) Redis의 장점 중 하나는 Key-Value 스토리지에서 Value는 단순한 Object가 아니라 다양한 자료구조를 갖기 때문이다. String, Set, Sorted Set, Hash, List 등 다양한 타입을 지원한다. 이번 시간에는 각 레디스의 자료구조를 알아보고 자료구조를 이용하는 명령어(command)를 정리해보는 시간을 가져보겟다. Redis Collections 를 사용할 때 주의점 하나의 컬렉션에 너무 많은 아이템을 담으면 좋지 않다. 가능하면 10000개 이하의, 몇천개 수준의 데이터 셋을 유지하는게 Redis 성능에 영향주지 않는다. Redis - Strings 일반적인 문자열 값은 최대 512 MB이며, String으로 될 수 있는 b..

category_image
인파_
2022.07.04
(0)
DBMS/Redis

[REDIS] 📚 전역 키 명령어(Common Keys) 종류 💯 정리

Redis Common Keys Common에 있은 명령어들은 5가지 Data type(자료구조)에 관계없이 모든 Key 적용되는 명령을 뜻한다. Common Keys 명령어 리스트 Key 확인, 조회: EXISTS, KEYS, SCAN, SORT Key 이름 변경: RENAME, RENAMENX Key 삭제: UNLINK, RM Key 자동 소멸 관련: EXPIRE, EXPIREAT, TTL, PEXPIRE, EXPIREAT, PTTL, PERSIST 정보 확인: TYPE, OBJECT 샘플링: RANDOMKEY Data 이동: MOVE, DUMP, RESTORE, MIGRATE Commands Syntax Description EXISTS key Key가 존재하는지 확인 UNLINK key Key를 ..

category_image
인파_
2022.07.04
(0)
DBMS/Redis

[Redislabs] 📚 Redis를 클라우드로 사용하자

Redis 클라우드 MySQL을 사용하기 위해서 워크벤치를 설치했던 것 처럼, 레디스를 사용하려면 레디스 데이터베이스를 설치해야 한다. 직접 서버 컴퓨터에 직접 설치할 수도 있지만, 레디스를 호스팅 해주는 서비스를 쓰는 것이 협업할때 편리하다. (요즘은 클라우드 시대 니까!) 레디스를 사용하려면 클라우드 대표격인 aws 에서 제공하는 elastic cache 를 사용해도 되지만, 과금이 되므로 대신 무료로 사용할 수 있는 Redislabs를 사용해보자. Redislabs는 1개의 레디스 DB를 30MB 무료 공간을 제공해준다. 기가, 테라 시대에서 30 메가바이트는 너무 보일수도 있지만 ram영역에서의 30mb는 결코 작은 수치가 아니다. Redislabs 등록하기 우선 Redislabs 웹 사이트(ht..

category_image
인파_
2022.07.01
(0)
DBMS/Redis

[REDIS] 📚 Window10 환경에 Redis 설치 & 설정

Redis 윈도우 설치 Redis 다운로드 페이지로 이동하여 설치 프로그램을 다운로드하고 설치를 진행한다. Releases · microsoftarchive/redis Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes - microsoftarchive/redis github.com Redis의 기본포트는 6379 이다. Redis 실행하기 설치가 완료되면 서비스에 자동으로 등록되어 실행되며, 작업관리자 서비스 탭에서 확인이 가능하다. 만일 윈도우 ..

category_image
인파_
2022.06.30
(0)