묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결다양한 사례로 익히는 SQL 데이터 분석
쿼리 질문있습니다!!
selectgenerate_series('2016-08-02'::date, '2016-11-01'::date, '1 day'::interval)::dateascurrent_date)위의 쿼리로 series를 생성하신 이유가selectdate_trunc('day', visit_stime)::dateascurr_datefromga_sessgroupbydate_trunc('day', visit_stime))이 쿼리로 temp_00을 생성하면 11-01 일자의 dau를 구할수 없어서 인지 궁금합니다!
-
미해결데이터 분석 SQL Fundamentals
join 관련 질문 (inner join, left join)
inner join과 left join에 대해서 이론적으로는 이해가 되는데 실제 테이블 관계 설정시 조인을 사용해야하는 상황에 대해서 아직 감이 잘 잡히지 않습니다.강사님께서 조인을 선택해서 사용하실때 기준이 있을까요?? left join을 할시, 기준이 되는 테이블(부모 테이블) 붙이는 테이블(자식 테이블)로 이해를 했습니다. 부모테이블의 경우 집합레벨 1, 자식테이블 집합레벨 M으로 이해하는게 맞을까요??
-
미해결데이터 분석 SQL Fundamentals
배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 배치에서 full outer join을 쓴다고 하셨는데 예시를 알 수 있을까요?배치에서 쓰인다는게 잘 와닿지가 않습니다.
-
미해결데이터 분석 SQL Fundamentals
Madrid에 살고 있는 고객이 주문한 주문 정보를 구할것. 실습 질문드립니다
안녕하세요 해당 강의 2분 50초 정도에서 궁금한 것이 있습니다. 고객이 한 번도 주문을 하지 않은 경우에도 고객정보는 조회가 되어야하기 때문에 left outer join을 쓰는 이유는 이해가 되는데요.그 다음 주문접수 직원정보를 구해야 할 때 left join을 하는 부분이 이해가 되지 않습니다. 저는 join key를 b와 c 테이블에 대해서 하니까 b와 c간의 join으로 생각이 되어서 inner join을 걸었었는데요. 이건 사실 customers와 employees 간의 outer join이니까 left outer join을 써야하는걸까요?
-
미해결프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
SQL Sheell
SQL Sheell 깜빡 열렸다가 꺼지는데 postgresql-18.0-2-windows-x64 설치 해야 되나요?
-
미해결[C#/.NET 8.0]어서와, WinForm은 처음이지?
npgDBserver 말고 windows workbench는 없나요? ㅠㅠ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!NPGDB_server를 사용하는거같은데 혹시 windows workbench를 사용해도 다름이 없을까요? ㅠㅠ 혹시 된다면 그거관련된 강의도 가전으로 기재해주셨으면 너무나 감사할거같은데 ㅠㅠ 무리일까요?ㅠㅠ
-
미해결데이터 분석 SQL Fundamentals
rollup시 null값 매출 라벨링
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.selectcoalesce(to_char(b.order_date, 'yyyy'), '총매출') asyear, coalesce(to_char(b.order_date, 'mm'), '연매출') asmonth, coalesce(to_char(b.order_date, 'dd'), '월매출') asday, sum(a.amount) assum_amountfromnw.order_itemsajoinnw.ordersbona.order_id = b.order_idgroupbyrollup(to_char(b.order_date, 'yyyy'), to_char(b.order_date, 'mm'), to_char(b.order_date, 'dd'))orderby1, 2, 3;case when 안쓰고 coalesce 해도 괜찮을것 같아요!
-
해결됨따라하며 배우는 NestJS
회원가입 기능 구현 버전 변경에 따른 코드수정(해당 사항은 업데이트 예정이 없나요?)
Custom Repository 부분에서 에러가 나서 해결 하긴 하였으나 맞는 과정인지는 잘 몰라 문의드립니다.강의에서 사용하는 @EntityRepository방식은 구버전(0.2.x) 방식으로 최신버전에서는 제거되었습니다. 강의 코드를 그대로 따라하면 ... is not a function같은 에러가 발생합니다.그래서user.repository.ts, auth.modules.ts 수정, auth.service.ts를 수정 1. user.repository.ts 수정 1. user.repository.ts 수정 Repository를 일반 서비스로 만들기 위한 핵심 작업입니다. 수정 내용: @EntityRepository(User) 데코레이터를 삭제하고 @Injectable()을 추가했습니다. Repository 클래스를 초기화하기 위해 constructor (생성자)를 추가하고, 그 안에서 super()를 호출했습니다.// src/auth/user.repository.ts import { Injectable } from '@nestjs/common'; import { DataSource, Repository } from 'typeorm'; import { User } from './user.entity'; // ... @Injectable() // ✅ 변경 export class UserRepository extends Repository<User> { // ✅ 생성자 추가 constructor(private dataSource: DataSource) { super(User, dataSource.createEntityManager()); } async createUser(/* ... */): Promise<void> { // ... } }2. auth.service.ts 수정-> providers 배열에 UserRepository를 추가했습니다.이유: providers 배열에 등록해야만 AuthModule이 "아, UserRepository라는 서비스를 모듈로 포함시켰습니다.// src/auth/auth.module.ts import { UserRepository } from './user.repository'; // ... @Module({ imports: [TypeOrmModule.forFeature([User])], controllers: [AuthController], providers: [ AuthService, UserRepository, // ✅ UserRepository를 providers에 등록 ], }) export class AuthModule {}3.auth.service.ts 수정> 서비스에서 Repository를 주입받는 방식을 변경합니다.수정 내용: @InjectRepository(User) 데코레이터를 삭제하고, 생성자에서 UserRepository를 직접 타입으로 선언하여 주입받습니다.이유: UserRepository는 이제 마법 같은 존재가 아닌 일반 서비스이므로, 다른 서비스를 주입받을 때와 똑같이 클래스 이름만으로 간단하게 주입받을수 있습니다.// src/auth/auth.service.ts import { Injectable } from '@nestjs/common'; import { UserRepository } from './user.repository'; // 🗑️ import { InjectRepository } from '@nestjs/typeorm'; <- 삭제 @Injectable() export class AuthService { constructor( // 🗑️ @InjectRepository(User) <- 삭제 private userRepository: UserRepository, // ✅ 직접 주입 ) {} async signUp(/* ... */): Promise<void> { return this.userRepository.createUser(/* ... */); } }일단 이런식으로 수정했는데 이 과정이 맞는지는 잘 모르겠습니다! 강사님이나 따로 혹시 올라와 있는 코드가 있다면 참고해보겠습니다!
-
미해결프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
TypeORM 마이그레이션
우선 typeorm.ts, app.modules.ts 두 파일 코드 복사 붙여넣기 하면app.modules.ts 의TypeOrmModule.forRootAsync({ inject: [ConfigService], useFactory: async (configService: ConfigService) => configService.get('typeorm'), }),useFactory에서 린트에러가 발생합니다.configService.get('typeorm')의 타입이 undefined 일 수도 있어서 에러가 발생하는데 타입 지정해서 서버 실행하면 일단 실행은 됩니다.문제는 이 다음에package.json에 마이그레이션 스크립트 추가 후서버 실행하고 터미널 창 새로 열어서 npm run migration:generate --name=Initial_Migration 명령어 실행하면 migration 관련 파일은 잘 생성이됩니다.내용도 잘 들어가있어요 posts 테이블 만들고 index 들 설정하는 쿼리들 다 제대로 적혀있습니다만 npm run migration:run 명령어 실행시 migrations 테이블은 생성되는데 안에 레코드가 하나도 없고, posts 테이블은 아예 생성이 안됩니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
없는강의요청해도됩니까,,
데이터모델링,,쿼리튜닝,,따로따로 심도있게 추후계획있는지 궁금합니다,,인프런에선 몇년전부터 게속 기대하고 찾아보는데 하나도 없네요,,심도있는강의가없어요,,철민님이 유일하게 하실수 있을것같아 조심스레 한번물어봅니다(다른사람 대체불가)
-
미해결데이터 분석 SQL Fundamentals
10. 조인 실습 - 02 관련 질문
안녕하세요.강의를 들으면서 잘 이해가 되지 않는 부분이 있어 질문 드립니다.질문 드리고자 하는 부분은 "직원명 SMITH의 과거 소속 부서 정보를 구할 것"이라는 문제의 쿼리문인데요. 우선 제가 작성한 쿼리문은 아래와 같습니다.selecta.ename, a.empno, b.deptno, c.dname, b.fromdate, b.todatefromhr.empajoinhr.emp_dept_histbona.empno = b.empnojoinhr.deptcona.deptno = c.deptnowherea.ename = 'SMITH'; 그리고 강사님께서 작성하신 쿼리문은 아래와 같구요.selecta.ename, a.empno, b.deptno, c.dname, b.fromdate, b.todatefromhr.empajoinhr.emp_dept_histbona.empno = b.empnojoinhr.deptconb.deptno = c.deptnowherea.ename = 'SMITH'; 두 쿼리문의 차이는 join hr.dept c on 부분에서 "a.deptno = c.deptno"과 "b.deptno = c.deptno"입니다. 제 생각에는 위 두 쿼리문이 같은 결과를 뱉어야 할 것 같은데.. 아래 쿼리문 결과를 보면 dname 부분이 다르게 출력됩니다. 1) 제가 작성한 쿼리문 결과 2) 강사님이 작성하신 쿼리문 결과 제 짧은 지식으로는 두 결과가 동일해야 할 것 같은데, 제가 잘못 생각한 부분이 있다면 말씀 부탁드립니다 ㅠ
-
해결됨데이터 분석 SQL Fundamentals
조인실습03 - join의 pk-fk join
안녕하세요 조인실습03 - 8:25에서 join 관련 질문입니다. [ 이해한 내용 ]- shippers의 shipper_id - orders의 ship_via컬럼명만 다를 뿐, shipper_id가 pk컬럼인데,orders에서 fk로 만들 때 ship_via로 만든 것이다.그래서 두 컬럼이 조인된다. [ 궁금한 사항 ]두 컬럼이 PK - FK 관계라는 판단 근거가 어떻게 되나요?Dbeaver에서 이를 쉽게 확인할 수 있나요?제가 수강한 진도까지는 이러한 내용이 나오지 않고ERD를 봐도 모르겠어서 질문드립니다.
-
미해결데이터 분석 SQL Fundamentals
조인실습03 - join의 pk-fk join
안녕하세요 조인실습03 - 8:25에서 join 관련 질문입니다. [ 이해한 내용 ]- shippers의 shipper_id - orders의 ship_via컬럼명만 다를 뿐, shipper_id가 pk컬럼인데,orders에서 fk로 만들 때 ship_via로 만든 것이다.그래서 두 컬럼이 조인된다. [ 궁금한 사항 ]두 컬럼이 PK - FK 관계라는 판단 근거가 어떻게 되나요?Dbeaver에서 이를 쉽게 확인할 수 있나요?제가 수강한 진도까지는 이러한 내용이 나오지 않고ERD를 봐도 모르겠어서 질문드립니다.
-
미해결다양한 사례로 익히는 SQL 데이터 분석
아래와 동일한 질문에 대한 추가질문입니다
selectpage_path, count(*) ashits_cnt,count(distincta.sess_id) asnet_cntfromga_sessajoinga_sess_hitsbona.sess_id = b.sess_idwherehit_type = 'PAGE'groupbypage_pathorderby2desc 저도 아래 질문글처럼 같은 방식으로 쿼리를 작성했습니다. 이전섹션인 일별 페이지 조회수와 양식이 유사해서 저한테 더 익숙했기 때문입니다 그런데 수업에서 사용한 쿼리가 제 쿼리보다 월등히 처리속도가 빠르더라고요(3s vs 4.7s). SQL숙련도가 올라가면 튜닝이라는걸 통해 처리속도를 최적화해야 한다고 들었습니다. 나중을 대비해서 익숙한 제 쿼리보다는 처리속도가 빠른 선생님 코드처럼 코드작성 습관을 바꾸는게 좋을까요?
-
미해결데이터 분석 SQL Fundamentals
(공유)맥, 스키마 import
덤프 파일 다운(.backup)brew install libpq(terminal)echo 'export PATH="/opt/homebrew/opt/libpq/bin:$PATH"' >> ~/.zshrcsource ~/.zshrcln -s /opt/homebrew/opt/libpq/bin ~/'적절한 경로' (파인더에서 참조할 수 있도록 경로 설정, 기존 brew 설치 경로에서는 파인더에서 비하인드 처리되어 이를 찾을 수 없도록 되어있음)Driver Manager > Edit Driver 'PostgreSQL' > Local Client 탭에서 ~/'적절한 경로' 로 선택 스키마 import 완료(최종사진첨부)
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
drizzle-zod로 변환한 videoUpdateSchema를 z.infer로 추론하면 타입에러가 나타납니다.
'BuildSchema<"update", { id: PgColumn<{ name: "id"; tableName: "videos"; dataType: "string"; columnType: "PgUUID"; data: string; driverParam: string; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: false; ... 4 more ...; generated: undefined; }, {}, {}>; ... 15 more ...; updatedAt: PgColumn<...>...' 형식이 'ZodType<any, any, any>' 제약 조건을 만족하지 않습니다. 'ZodObject<{ id: ZodOptional<ZodUUID>; title: ZodOptional<ZodString>; description: ZodOptional<ZodNullable<ZodString>>; ... 13 more ...; updatedAt: ZodOptional<...>; }, { ...; }>' 형식에 'ZodType<any, any, any>' 형식의 type, parse, getType, getOrReturnCtx 외 7개 속성이 없습니다.라는 에러 문구가 코드 에디터에 나타납니다.
-
미해결따라하며 배우는 NestJS
파일을 찾지 못하는 오류가 계속 뜹니다
Cannot find module './app.controller' or its corresponding type declarations.Cannot find module './app.service' or its corresponding type declarations.저런 내용이 아예 없는데 코드에서 저게 잘못됐다고 뜨네요....파일구조도 다 맞는것 같은데왜 계속 저런 오류가 뜨는걸까요ㅜㅜ
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
폴더구조
해당 영상에서 사용된 폴더구조는 어떤 아키텍처를 따른것일까요?
-
미해결다양한 사례로 익히는 SQL 데이터 분석
cnt/max로 구한 결과의 차이
교수님 수업 항상 잘 듣고 있습니다 감사합니다!다름이 아니라 영상 3분 쯤에서 sess_cnt 구할 때 영상에서count(*) over (partition by b.sess_id rows between unbounded preceding and unbounded following) as sess_cnt이런식으로 구했는데, 이건 sess_id 별로 몇 개 seq_hit가 있는지 count한걸로 이해합니다.근데 count 말고max(hit_seq) over (partition by sess_id order by hit_seq desc)로 최대 seq를 구해도 되는거 아닌가요? 이렇게 하니까 결과가 차이가 좀 나오는데 왜 나오는지 혹시 설명해주실 수 있을까요?감사합니다.
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
[ Server ] Error: Cannot read properties of undefined (reading 'useSuspenseQuery')
아래와 같이 코드르 작성하고 그냥 PageClient 만 불러왔을 때도 정상 동작하는데 useSuspenseQuery 를 사용하면 에러가 발생합니다. page.tsximport { trpc } from "@/trpc/server"; import { PageClient } from "./client"; export default async function Home() { void trpc.hello.prefetch({ text: "Kyuleelim" }) return ( <div> <PageClient /> </div> ); } client.tsx"use cilent" import { trpc } from "@/trpc/client" export const PageClient = () => { const [data] = trpc.hello.useSuspenseQuery({ text: "Kyuleelim", }); return ( <div> {/* Page client */} Page Client says: {data.greeting} </div> ) }