-- 스키마 권한 부여GRANT USAGE ON SCHEMA public TO postgres, anon, authenticated, service_role;-- 모든 테이블에 대한 권한 부여GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO postgres, anon, authenticated, service_role;-- 모든 시퀀스에 대한 권한 부여GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO postgres, anon, authenticated, service_role;-- 모든 함수에 대한 실행 권한 부여GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA public TO..
Supabase의 UUID 값을 id BigInt @id @default(autoincrement()) 대신 사용하는 것은 일반적으로 안전하며, 많은 경우에 더 나은 선택일 수 있습니다. 각각의 장단점을 고려하여 프로젝트의 요구 사항에 맞게 결정하는 것이 중요합니다.BigInt @id @default(autoincrement())의 특징 및 고려 사항:장점:성능: 숫자형 ID는 인덱싱 및 비교 연산에서 UUID보다 약간 더 빠를 수 있습니다. 특히 데이터베이스 규모가 매우 커지는 경우에 미미한 성능 향상을 기대할 수 있습니다.순차적인 정렬: 자동 증가하는 숫자는 생성 순서대로 정렬하기 쉽습니다.간결함: UUID보다 사람이 읽고 이해하기 쉽습니다.단점:확장성 및 병합: 여러 데이터베이스 또는 분산 시스템 ..
Prisma의 보안 강점서버 사이드 전용: Prisma는 서버에서만 실행되므로 데이터베이스 접근 로직과 자격 증명이 클라이언트에 노출되지 않습니다.SQL 인젝션 방지: Prisma는 파라미터화된 쿼리를 사용하여 SQL 인젝션 공격을 자동으로 방지합니다.접근 제어: 애플리케이션 로직을 통해서만 데이터베이스에 접근할 수 있어, 세밀한 접근 제어가 가능합니다.타입 안전성: TypeScript와의 통합으로 런타임 오류를 줄이고 보안 취약점이 발생할 가능성을 낮춥니다.Supabase의 보안 고려사항클라이언트 노출: 클라이언트에서 직접 데이터베이스 작업을 수행할 수 있어, 잘못 구성될 경우 보안 위험이 있습니다.RLS(Row Level Security): Supabase는 PostgreSQL의 RLS를 사용하여 보..
Supabase vs Firebase: 비교 분석Supabase와 Firebase는 모두 백엔드 개발을 간소화하기 위해 데이터베이스, 인증, 스토리지 등 다양한 기능을 제공하는 Backend-as-a-Service (BaaS) 플랫폼입니다. 하지만 데이터베이스 구조, 가격 정책, 커스터마이징 가능성, 생태계 지원 측면에서 큰 차이가 있습니다. 아래는 두 플랫폼의 상세 비교입니다.주요 차이점데이터베이스 구조Supabase: PostgreSQL 기반의 관계형 SQL 데이터베이스를 사용합니다. 복잡한 관계형 데이터와 고급 쿼리 기능이 필요한 경우 적합합니다.Firebase: Firestore라는 NoSQL 문서 기반 데이터베이스를 사용합니다. 유연하거나 비구조적인 데이터 모델에 적합합니다.오픈소스 여부Supa..
surcharge_policy_title like '검색어'-- 또는surcharge_policy_title like '%검색어%'-- 동적쿼리(Dynamic Query)에서는 어떻게 사용해야 할까?-- concat()을 사용해야 한다.set @sql = @sql + N' and sp.surcharge_policy_title like concat(''%'', @surcharge_policy_title, ''%'') '
In Microsoft SQL Server, the `COUNT(*)` and `COUNT(column)` functions are both used to count the number of rows in a table or a result set. However, they have a subtle difference: 1. **COUNT(*)**: This function counts the total number of rows in a table, including rows with NULL values in any column. Example: ``` SELECT COUNT(*) FROM TableName; ``` 2. **COUNT(column)**: This function..
1.사용 목적: EXISTS: 서브쿼리의 결과가 하나라도 존재하는지 확인하는 데 사용됩니다. IN: 서브쿼리의 결과 중에서 특정 값이 존재하는지 확인하는 데 사용됩니다. 2.쿼리 실행 방식: EXISTS: 서브쿼리를 먼저 실행하고, 메인쿼리에서 서브쿼리의 결과가 존재하는지 확인합니다. IN: 메인쿼리에서 서브쿼리의 결과를 모두 가져와서 비교합니다. 3.성능: EXISTS: 서브쿼리의 결과가 적을 때는 IN보다 성능이 좋지만, 많을 때는 IN보다 성능이 떨어집니다. IN: 서브쿼리의 결과가 많을 때는 EXISTS보다 성능이 좋지만, 적을 때는 EXISTS보다 성능이 떨어집니다. SELECT * FROM Table1 WHERE EXISTS (SELECT 1 FROM Table2 WHERE Table1.id ..
이 함수는 둘 이상의 문자열 값을 엔드투엔드 방식으로 연결하거나 조인한 결과 문자열을 반환합니다. SELECT CONCAT ( 'Happy ', 'Birthday ', 11, '/', '25' ) AS Result; Result ------------------------- Happy Birthday 11/25 (1 row(s) affected) 실전 예제 select string_agg(concat(pis.sku_no, '(', pis.sku_qty, ')'), ', ') from table_name as pis with(nolock)
DECLARE @param1 INT, @param2 VARCHAR(50); -- 저장 프로시저에 전달할 매개변수 선언 DECLARE myCursor CURSOR FOR SELECT column1, column2, ... FROM your_table WHERE your_condition; OPEN myCursor; FETCH NEXT FROM myCursor INTO @param1, @param2; WHILE @@FETCH_STATUS = 0 BEGIN -- 저장 프로시저 호출 EXEC YourStoredProcedure @param1, @param2; FETCH NEXT FROM myCursor INTO @param1, @param2; END CLOSE myCursor; DEALLOCATE myCursor;
- Total
- Today
- Yesterday
- 표현 언어(expression language)
- 람다식(lambda expression)
- java 키워드 정리
- 문자 자르기
- java web-mvc
- REST API
- await
- 스프링 프레임워크(spring framework)
- 메이븐(maven)
- System.Diagnostics
- 진수 변환
- 인텔리제이(intellij)
- 스프링 시큐리티(spring security)-http basic 인증
- 특정 문자를 기준으로 자르기
- jstl(java standard tag library)-core
- system.io
- docker
- java-개발 환경 설정하기
- java.sql
- MainActor
- jstl(java standard tag library)
- nl2br
- jsp 오픈 소스
- 스프링 프레임워크(spring framewordk)
- React
- In App Purchase
- 스프링 시큐리티(spring security)
- 제품 등록
- .submit()
- error-java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |