DataBase
-
Redis 활용 패턴 및 예시DataBase/Redis 2025. 8. 18. 14:32
🚀 Redis 활용 예시 정리 (좋아요, 재고 관리, 캐싱)1. 좋아요(Like) 기능 구현기존 RDB 방식에서는 동시성 문제가 발생할 수 있음예: 동시에 0값을 select → 동시에 update → 실제로는 +2여야 하지만 +1만 반영되는 문제Redis는 싱글 스레드 기반이라 이런 동시성 문제를 해결할 수 있음# 초기값 세팅set likes:posting:1 0# 값 증가 (좋아요 +1)incr likes:posting:1# 값 감소 (좋아요 -1)decr likes:posting:1# 현재 값 조회get likes:posting:1 👉 Java 등 주요 언어 라이브러리에서 incr/decr 기능을 기본적으로 제공하기 때문에,실무에서는 메서드 호출만으로 쉽게 구현 가능. 2. 재고 관리 (Stoc..
-
Docker로 Redis 설치 및 기본 사용법 정리DataBase/Redis 2025. 8. 17. 22:48
🐳 Docker로 Redis 설치 및 기본 사용법 정리1. Redis 컨테이너 실행# 컨테이너 상태 확인docker ps# Redis 컨테이너 실행docker run --name redis-container -d -p 6379:6379 redis# 실행 상태 확인docker ps 2. Redis 접속 # 이름으로 접속docker exec -it redis-container redis-cli# ID로 접속 (앞 3~4자리만 유니크하면 OK)docker exec -it e7ea redis-cli 3. Redis 기본 구조Redis는 0 ~ 15번까지 총 16개 DB를 제공 (기본 DB는 0)DB 전환:select 10 # 10번 DB로 전환select 9 # 9번 DB로 전환4. Key 조회key..
-
MySQL NTILE 함수 완벽 정리 + 예제DataBase/MySql 2025. 7. 11. 11:56
✅ NTILE 함수란?NTILE(n) 함수는 **전체 데이터를 n개의 그룹(=분위)**으로 균등하게 나누는 윈도우 함수입니다.예를 들어 NTILE(4)는 데이터를 **상위 25%, 하위 25%**로 나누는 데 사용할 수 있습니다.💡 주로 순위(등급)를 나눌 때 사용하며, OVER(ORDER BY ...)와 함께 사용됩니다. 📌 기본 문법sqlNTILE(n) OVER (ORDER BY column_name [ASC|DESC]) 구성 요소설명n나눌 그룹의 개수 (예: 4이면 사분위)OVER윈도우 함수 시작ORDER BY기준 열 – 이 열을 기준으로 순서를 정하고 분위 분할 🧪 예제예시 테이블 students:idnamescore1Alice952Bob853Carol704David605Emma506Fr..
-
MySql - Join 총집합 파헤치기(INNER, LEFT, RIGHT, FULL OUTER)DataBase/MySql 2025. 5. 20. 10:39
✅ 1. JOIN 기본 개념JOIN 종류설명INNER JOIN양쪽 테이블에서 일치하는 데이터만 가져옴LEFT JOIN왼쪽 테이블은 모두, 오른쪽 테이블은 일치하는 데이터만 가져옴RIGHT JOIN오른쪽 테이블은 모두, 왼쪽 테이블은 일치하는 데이터만 가져옴FULL OUTER JOIN (X)SQLD에서는 직접 사용하지 않음 (MySQL에서 기본 미지원)✅ 2. 샘플 테이블 ▶ Employee 테이블emp_idemp_name 1Kim2Lee3Park4Choi ▶ Department 테이블dept_idemp_iddept_name1011Sales1022HR1035Marketing✅ 3. INNER JOINSELECT e.emp_id, e.emp_name, d.dept_nameFROM Employee eINNER..
-
MySql - GroupBy 및 ONLY_FULL_GROUP_BY 파헤치기DataBase/MySql 2025. 4. 1. 10:26
GROUP BY에 대한 설명GROUP BY는 SQL에서 데이터를 그룹화하여 집계(aggregation) 함수를 적용할 때 사용됩니다. GROUP BY는 데이터를 하나의 기준으로 묶고, 각 그룹에 대해 계산을 수행하도록 합니다. 예를 들어, 부서별 평균 급여나, 제품별 총 판매액 등을 계산할 때 사용됩니다.기본 구문SELECT 컬럼명, 집계함수(컬럼명)FROM 테이블명GROUP BY 그룹화할_컬럼;그룹화할_컬럼: 데이터를 그룹화할 기준이 되는 컬럼입니다.집계함수: COUNT(), SUM(), AVG(), MAX(), MIN()과 같은 함수가 해당 그룹에 대해 계산을 수행합니다.예시: 부서별 평균 급여 구하기SELECT department_id, AVG(salary)FROM employeesGROUP BY ..
-
DB - 데이터베이스 내용 dmp파일로 백업하기DataBase/Oracle 2025. 2. 19. 09:56
dmp파일 생성하기exp {SchemasName}/{PWD} file={fileName}.dmp log={fileName}_export.log owner={SchemasName} {SchemasName}: 백업하려는 스키마 이름.{PWD}: 해당 스키마의 비밀번호.{fileName}.dmp: 백업된 덤프 파일의 이름입니다. 예: KRXVOC.dmp.{fileName}_export.log: 백업 로그 파일의 이름입니다. 예: KRXVOC_export.log.owner={SchemasName}: 백업할 스키마 이름을 지정합니다.위와같이 파일위치를 지정하지않으면 작업을 진행하던 cmd창에서 실행된 디렉토리에 .dmp파일이 생성된다. 예시:exp test/test file=test.dmp log=test_exp..
-
oracle - 특정 스키마 dmp하기DataBase/Oracle 2025. 2. 12. 18:02
1. 스키마 삭제삭제하고자하는 스키마의 사용자와 연결된 세션을 종료하고, 아래 명령어를 실행하여 해당 사용자를 삭제합니다 2. 현재 연결된 세션 확인DBeaver에서 SQL 콘솔을 열고 다음 SQL을 실행하여 {Schemas Name} 사용자와 연결된 세션을 확인합니다.SELECT sid, serial#, username FROM v$session WHERE username = '{Schemas Name}'; 3. 연결된 세션 종료DBeaver의 SQL 콘솔에서, 위에서 확인한 SID와 SERIAL#을 사용해 세션을 종료합니다.ALTER SYSTEM KILL SESSION 'SID,SERIAL#';예시:ALTER SYSTEM KILL SESSION '123,456'; 4. 자동으로 모든 세션 종료 (스..