묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[플러터플로우] 실전! 앱 출시를 위한 끝장 노하우!
iOS에 deploy 시 초대받은 이의 화면에 TestFlight 초대코드
강의대로 iOS에 deploy를 했습니다. 초대받은 이가 첨부처럼 [코드 교환] 제목으로 TestFlight 초대 코드 입력 필드가 보인다고 합니다. 초대코드를 어떻게 확인해야 하는지요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
해당 강의 소스
코드팩토리 디스코드에 질문하면 더욱 빠르게 질문을 받아 볼 수 있습니다![코드팩토리 디스코드]https://bit.ly/3HzRzUM 해당 강의 소스를 받아 볼 수 있나요? - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
로그인 후 Token 발행 시 postman 에러메시지
안녕하세요. 본 수강 열심히 잘 듣고있습니다~ 감사합니다.제가 Postman으로 로그인하고나서 Token을 발행할 시에 postman에 테스트해본 결과 결과코드는 SUCCESS라고 나오고 data에도 Bearer에 토큰이 들어간것을 확인하였습니다. 그러나 메시지에는 정상완료가 아닌 에러가 발생했다고 해서 제가 아무리 코드를 확인하였지만 어디부분에서 잘못된건지 확인이 힘들었습니다. 사실은 선생님께서 보내주신 파일을 업로드안하고 강의보면서 제가 직접 코드를 타이핑쳤었는데 손코딩을해서 그런지 오타가 있을 것으로 사료됩니다. 불가피하게 파일을 덮어씌우는게 좋을까요?
-
해결됨우아한 고성능 프로그래밍 언어 Rust 입문 및 활용
임대값 수명에 대한 질문
안녕하세요! 영상을 보고 아래 함수에서 반환값의 수명은 매개변수로 주어진 s1 과 s2 중 수명이 더 긴 것으로 채택된다고 이해했는데요! 러스트 공식문서에서는 더 작은것이 채택된다고 적혀있어서 어떤게 정답인지 궁금합니다. fn longest<'a>(s1: &'a str, s2: &'a str) -> &'a str { if s1.len() > s2.len() { s1 } else { s2 } }
-
해결됨BigQuery(SQL) 활용편(퍼널 분석, 리텐션 분석)
1-5 예제용 학생 점수 데이터 테이블 생성 시 오류 발생
안녕하세요 카일님1-5 학습 중 PIVOT 예제용 TABLE을 만들어 보려고 하였습니다.결론부터 말씀드리면 TABLE 생성에 성공하였어요.다만 궁금한 것은 제가 겪은 오류에 대한 해석이 올바른 것인지 확인 받고 싶어서 질문 드립니다.1-4 강에 있던 array_exercise 생성 구문을 참고하여 아래와 같은 구문으로 실행하였더니 생성되지 않았습니다.가장 안쪽의 select 부터 실행하면서 찾아보니 최하단의 UNION ALL이 원인이었더라구요. UNION ALL 은 아래에도 추가 ROW를 입력해야 할 때, 한 행으로 밀어넣는 명령어이므로, 마지막 행 다음에는 넣지 말아야 한다. 넣을 경우 그 뒤에 추가적인 데이터의 입력을 요구하나, 데이터가 없으므로 실행이 되지 않는 것이다.라고 이해했는데, 맞게 이해했을까요?CREATE OR REPLACE TABLE `advanced.grade` AS SELECT student, grades FROM ( SELECT 'A' AS student, ARRAY<STRUCT<subject STRING, score INT64>>[ STRUCT('수학', 80), STRUCT('영어', 90), STRUCT('과학', 85) ] AS grades UNION ALL SELECT 'B', ARRAY<STRUCT<subject STRING, score INT64>>[ STRUCT('수학', 75), STRUCT('영어', 95), STRUCT('과학', 80) ] UNION ALL )
-
해결됨초보자를 위한 BigQuery(SQL) 입문
4-7. 조건문 연습문제 5번 질문있습니다!
안녕하세요 카일님!좋은 강의 너무 감사드립니다 :)조건문 연습문제를 혼자 풀고 카일님이 작성하신 쿼리와 비교해보았는데 저와는 다르게 서브쿼리 없이 작성하셨더라고요!결과는 잘 나오지만 서브쿼리를 사용하면 효율성이 떨어지는 쿼리일까요? 현업에서는 어떤 쿼리를 선호할까요?('Old' 로 분류되는 결과도 얻고 싶어서 기준 날짜를 바꿨습니다.)
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
ui 파일을 py파일로 변환
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의에서는 너무 짧게 지나가서, 해결을 못하고 있습니다.컴알못이라,, 자세히 설명 부탁드립니다 ㅠ,.ㅠ...프로젝트 폴더를 06.GUI폴더로 설정=>어디서 어떻게 클릭해서 설정하는지 모르겠습니다.터미널에서 해당 명령어를 실행 "pyside6-uic ui -o py"=>1번부터가 막혀서 실행을 못하고 있습니다.
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
대규모 트래픽 환경에서는 Jpa 보단 서브쿼리를 활용하시나요?
22:40에 서브 쿼리를 제시해주셨는데요.쿼리를 분리하여 애플리케이션 로직으로 풀수 없을때만 nativeQuery를 사용해서 서브쿼리를 즉시 적용하시는 걸까요? 아니면 서브쿼리를 적극적으로 사용하시는 걸까요? 대규모 트래픽 환경에서는 Jpa, Querydsl를 단순한 기능에 사용할때도 조심해서 써야할 것 같아요.. 팀 컨벤션이 도메인을 풍부하게 활용하는 거라면 nativeQuery는 지양해야 할것 같기두 하네요. 지식이 부족해서 가정만 하게 되네요 ㅠ.ㅠ답변 부탁드립니다~ (반복 학습 필수네요. 강의 1분 1초를 씹고 뜯고 맛보고 즐기면서 공부하겠습니닷!)
-
해결됨[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스
숙제 5번인데
"use client"; import styles from "./styles.module.css"; import Image from "next/image"; const IMAGE_SRC = { profileImage: { src: ("/assets/profile_image.png"), alt: "프로필이미지", }, linkImage: { src: ("/assets/link.png"), alt: "링크아이콘", }, locationImage: { src: ("/assets/location.png"), alt: "위치아이콘", }, cheongsanImage: { src: ("/assets/cheongsan.png"), alt: "청산사진", }, neotubeImage: { src: ("/assets/neotube.png"), alt: "너튜브사진", }, badImage: { src: ("/assets/bad.png"), alt: "싫어요", }, goodImage: { src: ("/assets/good.png"), alt: "좋아요", }, hamberger: { src: ("/assets/hamberger.png"), alt: "목록아이콘", }, pencil: { src: ("/assets/pencil.png"), alt: "수정아이콘", }, } as const; export default function BoardsDetailPage() { return ( <div className={styles.detailLayout}> <div className={styles.detailBody}> <div className={styles.detailFrame}> <div className={styles.detailSubject}> 살어리 살어리랏다 쳥산(靑山)애 살어리랏다멀위랑 ᄃᆞ래랑 먹고 쳥산(靑山)애 살어리랏다얄리얄리 얄랑셩 얄라리 얄라 </div> <div className={styles.detailMetadataContainer}> <div className={styles.detailMetadataProfile}> <Image src={IMAGE_SRC.profileImage.src} alt={IMAGE_SRC.profileImage.alt} width={100} height={100} /> <div>홍길동</div> </div> <div className={styles.detailMetadataDate}>2024.11.11</div> </div> <div className={styles.enrollBorder}></div> <div className={styles.detailMetadataIconContainer}> <Image src={IMAGE_SRC.linkImage.src} alt={IMAGE_SRC.linkImage.alt} width={100} height={100} /> <Image src={IMAGE_SRC.locationImage.src} alt={IMAGE_SRC.locationImage.alt} width={100} height={100} /> </div> <div className={styles.detailContentContainer}> <Image src={IMAGE_SRC.cheongsanImage.src} alt={IMAGE_SRC.cheongsanImage.alt} className={styles.detailContentImage} width={100} height={100} /> <div className={styles.detailContentText}> <div>살겠노라 살겠노라. 청산에 살겠노라.</div> <div>머루랑 다래를 먹고 청산에 살겠노라.</div> <div>얄리얄리 얄랑셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div>우는구나 우는구나 새야. 자고 일어나 우는구나 새야.</div> <div>너보다 시름 많은 나도 자고 일어나 우노라.</div> <div>얄리얄리 얄라셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div> 갈던 밭(사래) 갈던 밭 보았느냐. 물 아래(근처) 갈던 밭 보았느냐 </div> <div>이끼 묻은 쟁기를 가지고 물 아래 갈던 밭 보았느냐.</div> <div>얄리얄리 얄라셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div>이럭저럭 하여 낮일랑 지내 왔건만</div> <div>올 이도 갈 이도 없는 밤일랑 또 어찌 할 것인가.</div> <div>얄리얄리 얄라셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div>어디다 던지는 돌인가 누구를 맞히려던 돌인가.</div> <div>미워할 이도 사랑할 이도 없이 맞아서 우노라.</div> <div>얄리얄리 얄라셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div>살겠노라 살겠노라. 바다에 살겠노라.</div> <div>나문재, 굴, 조개를 먹고 바다에 살겠노라.</div> <div>얄리얄리 얄라셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div>가다가 가다가 듣노라. 에정지(미상) 가다가 듣노라.</div> <div> 사슴(탈 쓴 광대)이 솟대에 올라서 해금을 켜는 것을 듣노라. </div> <div>얄리얄리 얄라셩 얄라리 얄라</div> <div className={styles.textGap}></div> <div>가다 보니 배불룩한 술독에 독한 술을 빚는구나.</div> <div> 조롱박꽃 모양 누룩이 매워 (나를) 붙잡으니 내 어찌 하리이까.[1] </div> <div>얄리얄리 얄라셩 얄라리 얄라</div> </div> <Image src={IMAGE_SRC.neotubeImage.src} alt={IMAGE_SRC.neotubeImage.alt} width={100} height={100} /> <div className={styles.detailContentGoodOrBad}> <div className={styles.detailGoodContainer}> <Image src={IMAGE_SRC.badImage.src} alt={IMAGE_SRC.badImage.alt} width={100} height={100} /> <div className={styles.detailBadText}>24</div> </div> <div className={styles.detailGoodContainer}> <Image src={IMAGE_SRC.goodImage.src} alt={IMAGE_SRC.goodImage.alt} width={100} height={100} /> <div className={styles.detailGoodText}>12</div> </div> </div> <div className={styles.detailButtonsContainer}> <button className={styles.detailButton}> <Image src={IMAGE_SRC.hamberger.src} alt={IMAGE_SRC.hamberger.alt} width={100} height={100} /> <div>목록으로</div> </button> <button className={styles.detailButton}> <Image src={IMAGE_SRC.pencil.src} alt={IMAGE_SRC.pencil.alt} width={100} height={100}/> <div>수정하기</div> </button> </div> </div> </div> </div> </div> ); } require 를 넣으면 왜 오류인지 require 어떤 기능인지 알 수 있을까요ㅕ?>
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
7세그먼트 온도표현
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 자주 묻는 질문에 혹시 답이 있을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 30강까지는 7세그먼트에 온도가 잘 표현이 됐는데 31강에서 함수 쪼개고 나서부터는 아래사진처럼 온도는 계속 변하고 있는데 7세그먼트에는 아무것도 안떠서요..! 온도는 계속 가져오는 거면 함수가 잘 쪼개진 건 맞는건가요? 어느부분이 문제가 된건지 잘 모르겠어서 여쭤봅니다! 질문 많이 해서 죄송해요..
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
delete 버튼 이벤트관련 하여 질문드립니다.
선생님 서버액션을 이런식으로 사용하면 안되는걸까요?굳이 버튼을 따로빼서 관리하는지 궁금합니다."use client"; import { ReviewData } from "@/types"; import { deleteReview } from "@/actions/create-review-action"; export default function ReviewList({ id, content, author, createdAt, }: ReviewData) { const onClickHandler = async () => { await deleteReview({ id: id }); }; return ( <section> <span>{author}</span> <div>{content}</div> <p>{createdAt}</p> <button onClick={() => onClickHandler()}>삭제하기</button> </section> ); }
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
v4에서 DTO 전용 리포지토리를 만들 때 유지보수 비용
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]package jpabook.jpashop.repository.order.simplequery; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Repository; import javax.persistence.EntityManager; import java.util.List; @Repository @RequiredArgsConstructor public class OrderSimpleQueryRepository { private final EntityManager em; public List<OrderSimpleQueryDto> findOrderDtos() { return em.createQuery( "select new jpabook.jpashop.repository.order.simplequery.OrderSimpleQueryDto(o.id, m.name, o.orderDate, o.status, d.address)" + " from Order o" + " join o.member m" + " join o.delivery d", OrderSimpleQueryDto.class) .getResultList(); } } 이 코드 같은 경우 유지보수가 더 좋아졌다고 할 수 있나요?만약, 다른 도메인 계층에 있는 엔티티가 수정될 경우 오히려 이 부분도 수정해야 하기 때문에 전체적으로 유지보수 비용이 증가한다고도 볼 수 있지 않나요? 원래처럼 일반 리포지토리에 두었을 때 API에 핏하게 설계했기 때문에 API 스펙이 변경될 경우 리포지토리를 수정해야하는 거랑 따로 DTO 전용 리포지토리를 만들었을 때 다른 도메인 계층의 엔티티가 수정되었을 때 이 부분 코드를 수정하는 거랑 유지보수 비용이 어느게 더 적은 지 궁금합니다.
-
해결됨Skill-Up! 웹쉘 탐지 솔루션 우회를 위한, 웹쉘 난독화 기법
단순 강의 개설 문의
안녕하세요 강사님 강의가 매우 유익하여 강의랑은 별개의 내용으로 단순 질문이 있습니다.혹시 모바일 앱(IOS, Andriod)에 대한 취약점 진단 강의도 개설하실 의향이 있으실까요?
-
해결됨세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
boj 3020
안녕하세요 ! 수강전 문제를 풀어보았는데풀었던 방법이 attributeError 런타임에러가 나왔습니다. 하기 방법에 매몰이 되어서 강의에 집중이 안되어서 이렇게 질문하게 되었습니다 ㅠㅠ 이렇게 풀면 메모리나 시간초과가 날까요? 그리고 어디가 틀려서 런타임에러가 나는지 알수있을까요?import sys # sys.stdin = open('./input.txt', 'r') input = sys.stdin.readlines().strip() from collections import defaultdict W, H = map(int, input().split()) lit = [int(input()) for _ in range(W)] # print(lit) # dict_ = defaultdict() ans = defaultdict() points = [] for y, v in enumerate(lit): if y % 2 == 0: for x in range(H-v, H): points.append((x, y)) else: for x in range(v): points.append((x, y)) for x, z in points: if x in ans.keys(): ans[x] += 1 else: ans[x] = 1 # print(ans) low_cnt = sorted(ans.values())[0] cnt = 0 for k, a in ans.items(): if a == low_cnt: cnt += 1 print(f'{low_cnt} {cnt}')
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
기초적인 질문!
5.3JSX UI 표현하기, 10:29강의 내용 같이 return 에 내용을 적고, save 하면<작성-save 전> const Main = () => { const user = { name: "이선영", isLogin: treu, }; return (<> {user.isLogin ? ( <div>로그아웃</div> ) : ( <div>로그인</div> )} </> ); }; export default Main; <작성후-save>const Main = () => { const user = { name: "이선영", isLogin: treu, }; return <>{user.isLogin ? <div>로그아웃</div> : <div>로그인</div>}</>; }; export default Main; 이렇게 되는 데, 이유가 뭘까요 ? 🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)질문 하실때 꼭 확인하세요- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결자바 코딩테스트 - it 대기업 유제
가장 많이 사용된 회의실
안녕하세요 강사님 강의 잘 듣고 있습니다 강사님 코드를 보면서 드는 의문이 굳이while문이 필요한 가 입니다.while문에 없어도 어쩌피 if else로직만으로도 잘 답을 가져오는 거 같아서요 혹시 예외 케이스가 있나요? ```javapackage org.youyk.inflearn.latest.sec03.Problem6; import java.util.*; class Solution7 { public int solution(int n, int[][] meetings){ int answer = 0; int[] rest = new int[n]; // 끝나는 시간, 순번 PriorityQueue<int[]> rooms = new PriorityQueue<>((a,b)->a[0] == b[0] ? a[1]-b[1] : a[0] - b[0]); TreeSet<Integer> roomSet = new TreeSet<>(); for(int i=0;i<n;i++){ roomSet.add(i); } Arrays.sort(meetings,(a,b)->a[0] - b[0]); for(int[] m : meetings){ if(!roomSet.isEmpty()){ int r = roomSet.pollFirst(); rest[r]++; rooms.add(new int[]{m[1],r}); }else{ int[] poll= rooms.poll(); rest[poll[1]]++; rooms.add(new int[]{poll[0] + (m[1] - m[0]), poll[1]}); } } int max=0; for(int i=0;i<n;i++){ if(max<rest[i]){ max = rest[i]; answer = i; } } return answer; } public static void main(String[] args){ Solution7 T = new Solution7(); System.out.println(T.solution(2, new int[][]{{0, 5}, {2, 7}, {4, 5}, {7, 10}, {9, 12}})); System.out.println(T.solution(3, new int[][]{{3, 9}, {1, 10}, {5, 8}, {10, 15}, {9, 14}, {12, 14}, {15, 20}})); System.out.println(T.solution(3, new int[][]{{1, 30}, {2, 15}, {3, 10}, {4, 12}, {6, 10}})); System.out.println(T.solution(4, new int[][]{{3, 20}, {1, 25}, {5, 8}, {10, 15}, {9, 14}, {12, 14}, {15, 20}})); System.out.println(T.solution(2, new int[][]{ {0, 5}, {1, 2}, {2, 3}, {3, 6}, {6, 8} })); } }```
-
미해결[ITⓔ코칭] Oracle로 배우는 실전 데이터관리
21c 다운
oracle database xe download 을 검색하면Oracle Database 21c Express Edition화면이 나오는데이 버전을 다운받아도 될까요?
-
미해결레트로의 유니티 C# 게임 프로그래밍 에센스
IsTargetOnSight가 자꾸 false로 나와요.
Debug.Log를 찍어본 결과, Physics.Raycast(eyeTransform.position, direction, out RaycastHit hit, viewDistance, whatIsTarget)위 코드의 반환값이 false라는 것을 알아냈어요.플레이어 캐릭터가 좀비 앞에서 아무리 알짱거려도 진짜 코앞까지 얼굴을 들이미는 게 아니면 계속 false가 떠요.이상하게도 얼굴을 들이밀면 true가 떠요.딱히 viewDistance 같은 걸 조절한 게 아니라서 거리 문제는 아닌 것 같은데, 왜 레이캐스트가 자꾸 false가 뜨는 걸까요? 이해가 안 돼요... ㅠㅠ
-
미해결[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
ruby 버전은 꼭 2.7.6을 설치해야 하나요?
ruby 2.7.6까지 설치하고 npx react-native@0.72.6 init MatjipApp --version 0.72.6 로 프로젝트 생성 중에 cocoapods 오류가 뜹니다ERROR: Error installing activesupport:There are no versions of activesupport (= 8.0.1) compatible with your Ruby & RubyGemsactivesupport requires Ruby version >= 3.2.0. The current ruby version is 2.7.6.219.cocoapods 설치중 activesupport을 설치하게 되었는데요. activesupport가 ruby 3.2 이상 버전을 요구한다고 하더군요.. 이 경우에는 어떻게 해결해야 하나요? 루비 버전을 강의와 다르게 올려도 괜찮은가요? 결론은, ruby 버전을 3.2.0 이상으로 설치를 하고 진행하여도 강의 듣는데 문제가 없을지 궁금합니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
UI 랜더링이 이해가 안되어 질문드립니다
수업내용을 놓쳤을 수도 있는데 어디를 놓친건지 몰라서 질문드립니다기본적인 default object들과 UI object들의 랜더링을원근투영과 직교투영을 이용하는 내용은 이해가 되나둘 다 동일한 z버퍼를 사용하는걸로 아는데 그러면 투영변환의 인자 값에 상관없이 랜더링 파이프라인에서 z버퍼로 인하여 서로가 가려져야 한다고 생각했는데정상적으로 출력이 되어 왜 그런지가 궁금합니다.