묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
도커 yarn install
#0 10.10 error @graphql-tools/merge@9.0.0: The engine "node" is incompatible with this module. Expected version ">=16.0.0". Got "14.21.3"#0 10.10 error Found incompatible module.#0 10.10 info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command. ------Dockerfile:10--------------------8 | COPY ./yarn.lock /myfolder/9 | WORKDIR /myfolder/10 | >>> RUN yarn install11 |12 | COPY . /myfolder/--------------------ERROR: failed to solve: process "/bin/sh -c yarn install" did not complete successfully: exit code: 1ERROR: Service 'my-backend' failed to build : Build faileddocker-compse bulid 했을때 에러가 발생합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
경로문제 문의드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]몇일동안 경로문제로 여러 시도를 해보았지만 아직 해결이 안됩니다. ㅜ다른 댓글보고 .gradle 파일이 안보이는 문제인가 싶어숨김모드를 찾아봐도 안보이네요. .gradle가 설치가 안되어 있다면 어떻게 해야하나요.
-
미해결Selenium 기본 과정
BY.xpath로 자녀값도 가져올 수 있나요??
BY.xpath, "./.." 방법으로 부모값을 가져오는 방법에 대해 알려주셨는데요반대로 자녀 값을 가져오는 방법도 있을가요?
-
미해결Practical Testing: 실용적인 테스트 가이드
DTO 분리에 관련된 질문이 있습니다.
안녕하세요. 강의 잘 듣고 있습니다.만약에 Service를 Write / Read 로 나눠서 관리를 한다고 하면Service 패키지쪽의 DTO도 나눠서 생성을 하시나요?아니면 그 부분은 같이 사용하시는 편인가요?
-
미해결직접 만드는 노션 템플릿 BEST 7선
무료 요금제에서 1000개 블록 중 999개를 사용했습니다. 라고 표시됩니다.
안녕하세요? 선생님.다름이 아니라 실습을 따라하면서 템블릿을 복제해 오니깐아래와 같은 메시지가 표시됩니다.블록도 많이 사용한 것 까지 않고무료 요금제도 블록 생성 개수에 제한이 없다고 들었는데, 말입니다. ㅠ.ㅠ무료 요금제 이지만 워크스페이스에 멤버를 초대하면블록 생성 개수에 제한을 받나요?네~ 시원한 여름. 되시기 바라며
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션5 연속부분수열1 (Two Pointers Algorithm) 질문있습니다.
강사님이 작성해주신 코드를보면 for문안에 while문을 돌려서 시간복잡도가 O(n^2) 아닌가요?이렇게하면 시간복잡도가 O(n)이라서 아래의 코드가 더 좋은것 아닌가요?
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
사용자로 하여금 어떻게 JWT를 헤더에 포함하게 하나요?
jwt 부분을 다 듣고 아래 테스트 수업 듣는 중입니다.사용자 로그인 시에 우리가 jwt를 발급하고,사용자가 매 요청마다 이걸 가져오면 검증하는 건이해가 됐습니다.그러다 문득 궁금해진 게, 저희가 테스트할 때는포스트맨을 통해 헤더의 Authorization에 토큰을직접 넣어주었습니다. 하지만 실제 어플리케이션에선사용자가 직접 이 작업을 하지는 않죠.그렇다면 사용자 요청 헤더의 Authorization에 토큰을포함해야 하는 건 서버 측에서 해야할 일 같은데이에 대한 강의는 없는 것 같습니다. 혹시 자세하게는아니라도 대충 어떠하게 흘러가는 지 알려주실 수있을까요??
-
해결됨비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
PuTTY git pull orgin main 적용안됨..?
안녕하세요 선생님강의를 따라하는 도중 제가 실수로 port번호를 입력하지 않아 수정 후 다시 git에 push를 하고새로 업데이트된 내용을 적용시키기위해PuTTY에서 git pull을 하였습니다.그런데도 마커가 뜨지 않아서 브라우저 개발자도구를 살펴보니 수정한 port번호가 추가 되어있지 않더라구요 ㅠㅠㅠ 이럴때는 어떤방법을 시도해보아야하나요..?
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
클라이언트에서 서버 전향시 연봉 협상
안녕하세요 루키스님! 강의 언제나 잘 보고 있습니다!https://www.inflearn.com/questions/801980/%ED%81%B4%EB%9D%BC%EC%9D%B4%EC%96%B8%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8-%EC%BB%A4%EB%A6%AC%EC%96%B4-%EA%B3%A0%EB%AF%BC몇달전에 해당 질문 글을 올리고 빡세게 공부해 서버 면접에 최종 합격했습니다!최종 합격은 한곳만 했고 아직 다른곳은 진행중인 상태입니다.다만 아쉬운점이 연봉 문제로 현재 회사에서 사천 중반 정도를 받고있는데 최종 합격한 회사에서는 연봉을 삼천 후반대로 제시해주시더라구요..서버 신입으로 지원했다보니 어느정도 감봉은 예상했지만 생각보다 액수가 커 고민중인 상황입니다.이정도는 감수하는게 보통일까요?바쁘신데 강의 내용에 관한 질문이 아니라 죄송합니다 ㅠㅠ
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
CNN에 대한 질문이 있습니다.
안녕하세요 교수님CNN에 대해 궁금한 점이 있어 질문 남깁니다.CNN으로 이미지 분류를 수행할 때, 인풋데이터로 이미지가 아닌 수치형 데이터를 넣어도 분류가 가능한가요?예를 들면, 수치형 데이터의 색을 부여한 후,(0이면 흰색에 가깝게, 100이면 검은색에 가깝게) 색을 부여한 이미지로 분류를 수행하는 것이 가능한 건가요?위에서 말하는 색 이미지를 파이썬 코드로 대체하여 출력을 하지 않고도(따로 인풋 데이터로 이미지를 제공하지 않아도) CNN의 이미지 분류가 가능한 것인지 궁금합니다.
-
해결됨스프링 배치
spring batch 5 업데이트
이번 메이저 릴리즈에 대한 내용이 강의에 추가될 계획이 있는지 궁금합니다!
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
라우터 셋팅 에러가 발생합니다.
강의 내용 따라하면서 하고 있는데요강사님하고는 다르게 아래와 같이 기본값을 넣어라정의되어 있지 않다? 아래 캡쳐와 같이 나오더라구요막혀서 더이상 진행이 안되고 있는데제가 한 부분 첨부 드리니 확인 부탁드릴께요!https://drive.google.com/file/d/1609gWfNr-B7Nvc9dlBW9ve_zGff89gd2/view?usp=sharing
-
미해결Slack 클론 코딩[백엔드 with NestJS + TypeORM]
npm run db:create
import { DataSource } from 'typeorm'; import dotenv from 'dotenv'; import { ChannelChats } from './src/entities/ChannelChats'; import { ChannelMembers } from './src/entities/ChannelMembers'; import { Channels } from './src/entities/Channels'; import { DMs } from './src/entities/DMs'; import { Mentions } from './src/entities/Mentions'; import { Users } from './src/entities/Users'; import { WorkspaceMembers } from './src/entities/WorkspaceMembers'; import { Workspaces } from './src/entities/Workspaces'; dotenv.config(); const dataSource = new DataSource({ type: 'mysql', host: 'localhost', port: 3306, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, database: process.env.DB_DATABASE, entities: [ ChannelChats, ChannelMembers, Channels, DMs, Mentions, Users, WorkspaceMembers, Workspaces, ], migrations: [__dirname + '/src/migrations/*.ts'], charset: 'utf8mb4_general_ci', synchronize: false, logging: true, }); export default dataSource; 에러!Error: Can't add new command when connection is in closed stateat Connection._addCommandClosedState (/Users/minchankim/Desktop/study/nestToy/node_modules/mysql2/lib/connection.js:148:17)at Connection.end (/Users/minchankim/Desktop/study/nestToy/node_modules/mysql2/lib/connection.js:855:26)at Query.onResult (/Users/minchankim/Desktop/study/nestToy/node_modules/typeorm-extension/dist/database/driver/mysql.js:27:28)at Connection._notifyError (/Users/minchankim/Desktop/study/nestToy/node_modules/mysql2/lib/connection.js:228:17)at Connection._handleFatalError (/Users/minchankim/Desktop/study/nestToy/node_modules/mysql2/lib/connection.js:167:10)at Connection._handleNetworkError (/Users/minchankim/Desktop/study/nestToy/node_modules/mysql2/lib/connection.js:180:10)at Socket.emit (node:events:513:28)at Socket.emit (node:domain:489:12)at emitErrorNT (node:internal/streams/destroy:151:8)at emitErrorCloseNT (node:internal/streams/destroy:116:3) {fatal: true}계속 이렇게 나오는데 npm run db:create데이터베이스 정보확인 및 dotenv도 재설치 해봤는데 계속 안되서 질문드립니다!버전에 문제가 있나 싶어서 강사님 package.json에서 그대로 불러왔습니다!
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Dictionary로 대화창 만드는건 가능할까요?
Dictionary는 메모리를 내주고 성능을 취한다 했는데 큰게임에 쓰면 메모리 손해가 심할텐데 Dictionary로 대화창 만들 수 있을까요?
-
미해결
RFID와 beaglebone 보드 SPI & UART 통신 질문입니다.
RFID RC522 카드 태그 모듈의 여러 정보를 SPI 통신을 통해 beaglebone 보드로 전송하고 이를 다시 PC로 UART 통신하려고 합니다.그전에 SPI_DEVICE 경로 및 UART_DEVICE 경로 모두 확인했고 spidev까지 존재함을 확인한 상태입니다.이때 아래와 같이 코드를 완성했는데, 실제로 실행해보면 태그 감지나 정보가 통신되지 않습니다..안되는 이유를 조금 생각해보자면 그나마 유력한 용의자가 데이터 패턴 값 부분일 것 같은데,AVR과제 도어락 : 네이버 카페 (naver.com)위 카페의 내용(URL 접속이 안되므로 "네이버 검색: RFID 0x52 0x93" 으로 찾을 수 있습니다.)과 MFRC522(RFID RC522) datasheet를 보고 넣었는데 무엇이 잘못작성되었을까요? #define SPI_DEVICE "/dev/spidev9.0" // SPI 장치 경로(X: 버스 번호, Y: 장치 번호) #define UART_DEVICE "/dev/ttyS0" // UART 장치 경로 #define SS_PIN 328 // SPI SS(Chip Select) GPIO 핀 번호 #define MOSI_PIN 339 #define MISO_PIN 340 #define SCK_PIN 338 #define MFRC522_PICC_TYPE_MIFARE_MINI 0x09 #define MFRC522_PICC_TYPE_MIFARE_1K 0x04 #define MFRC522_PICC_TYPE_MIFARE_4K 0x02 int spi_fd; int uart_fd; // UART 파일 디스크립터 추가 // SPI 통신 초기화 int SpiInit() { spi_fd = open(SPI_DEVICE, O_RDWR); // SPI 모드 설정 uint8_t mode = SPI_MODE_0; ioctl(spi_fd, SPI_IOC_WR_MODE, &mode); // 최대 전송 속도 설정 (1MHz) uint32_t speed = 1000000; ioctl(spi_fd, SPI_IOC_WR_MAX_SPEED_HZ, &speed); return 0; } // SPI 데이터 송수신 int SpiTransfer(uint8_t* tx_data, uint8_t* rx_data, int len) { struct spi_ioc_transfer spi_transfer = { .tx_buf = (unsigned long)tx_data, // 송신할 데이터가 저장된 버퍼 주소 지정 .rx_buf = (unsigned long)rx_data, // 수신된 데이터를 저장할 버퍼 주소 지정 .len = len, // 송수신할 데이터의 길이 지정 .delay_usecs = 0, .speed_hz = 1000000, .bits_per_word = 8, }; if (ioctl(spi_fd, SPI_IOC_MESSAGE(1), &spi_transfer) < 0) { printf("SPI transfer error\n"); return -1; } return 0; } // MFRC522 초기화 void MFRC522Init() { uint8_t tx_data[] = {0x0F}; // MFRC522에 softreset 명령어를 전송하기 위한 데이터 값 uint8_t rx_data[sizeof(tx_data)]; if (SpiTransfer(tx_data, rx_data, sizeof(tx_data)) < 0) { printf("Failed to send SPI message\n"); return; } usleep(5000); // 잠시 대기 } // 카드가 존재하는지 확인 int PiccIsNewCardPresent() { uint8_t tx_data[] = {0x52}; // MFRC522에 해당 함수를 전송하기 위한 데이터 패턴 값, 0x52 : find all the cards antenna area uint8_t rx_data[sizeof(tx_data)]; memset(rx_data, 0, sizeof(rx_data)); if (SpiTransfer(tx_data, rx_data, sizeof(tx_data)) < 0) { // SPI 통신 실패 시 카드 존재 여부 확인 불가를 판별하기 위함. printf("Failed to transfer data\n"); return -1; } return rx_data[1]; } // 카드 UID 정보 읽기 int PiccReadCardSerial(uint8_t* uid) { uint8_t tx_data[] = {0x93}; // MFRC522에 해당 함수를 전송하기 위한 데이터 패턴 값, 0x93 : election card uint8_t rx_data[sizeof(tx_data)]; memset(rx_data, 0, sizeof(rx_data)); if (SpiTransfer(tx_data, rx_data, sizeof(tx_data)) < 0) { printf("Failed to transfer data\n"); return -1; } memcpy(uid, &rx_data[1], 4); return 0; } // 카드 타입 가져오기 uint8_t PiccGetType(uint8_t sak) { // select Acknowledge, 카드 유형 정보를 나타내는 7비트 값 반환 return sak & 0x7F; } // 카드 타입명 가져오기 const char* PiccGetTypeName(uint8_t piccType) { switch (piccType) { case MFRC522_PICC_TYPE_MIFARE_MINI: return "MIFARE Mini"; case MFRC522_PICC_TYPE_MIFARE_1K: return "MIFARE 1K"; case MFRC522_PICC_TYPE_MIFARE_4K: return "MIFARE 4K"; default: return "Unknown"; } } // 16진수로 변환하여 출력 void printHex(uint8_t* data, uint8_t length) { for (uint8_t i = 0; i < length; i++) { printf("%02X", data[i]); } } // UART 초기화 int UartInit() { uart_fd = open(UART_DEVICE, O_RDWR | O_NOCTTY); if (uart_fd < 0) { printf("Failed to open UART\n"); return -1; } struct termios options; tcgetattr(uart_fd, &options); // import current setting // 전송 속도 설정 (9600 bps) cfsetispeed(&options, B9600); cfsetospeed(&options, B9600); // 데이터 비트, 패리티 비트, 정지 비트 설정 options.c_cflag &= ~PARENB; options.c_cflag &= ~CSTOPB; options.c_cflag &= ~CSIZE; options.c_cflag |= CS8; // 제어 옵션 설정 // options.c_cflag &= ~CRTSCTS; options.c_cflag |= CREAD | CLOCAL; options.c_iflag &= ~(IXON | IXOFF | IXANY); options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); options.c_oflag &= ~OPOST; tcsetattr(uart_fd, TCSANOW, &options); // apply new settings to uart_fd return 0; } // UART로 데이터 전송 void WriteUidUart(const char* data) { write(uart_fd, data, strlen(data)); } void delay(int seconds) { struct timespec req, rem; req.tv_sec = seconds; req.tv_nsec = 0; while (nanosleep(&req, &rem) == -1) { req = rem; } } int main() { // SS 핀 설정 int ss_gpio_fd; // fd : 파일 디스크립터로, 특정 파일에 접근할 때 사용하는 추상적인 값 char ss_gpio_path[64]; // SS 핀 열기 snprintf(ss_gpio_path, sizeof(ss_gpio_path), "/sys/class/gpio/gpio%d/value", SS_PIN); ss_gpio_fd = open(ss_gpio_path, O_WRONLY); // O_WRONLY : 파일을 쓰기 전용으로 열기 플래그 // SS 핀을 출력으로 설정 write(ss_gpio_fd, "out", 3); // or "in" // 파일 디스크립터에 out 이라는 문자열을 쓰기 위해, 데이터 길이인 3만큼을 파일에 씀. // MOSI 핀 설정 int mosi_gpio_fd; char mosi_gpio_path[64]; // MOSI 핀 열기 snprintf(mosi_gpio_path, sizeof(mosi_gpio_path), "/sys/class/gpio/gpio%d/value", MOSI_PIN); mosi_gpio_fd = open(mosi_gpio_path, O_WRONLY); // MOSI 핀을 출력으로 설정 write(mosi_gpio_fd, "out", 3); // MOSI value high write(mosi_gpio_fd, "1", 1); // MOSI 핀 닫기 close(mosi_gpio_fd); // MISO 핀 설정 int miso_gpio_fd; char miso_gpio_path[64]; // MISO 핀 열기 snprintf(miso_gpio_path, sizeof(miso_gpio_path), "/sys/class/gpio/gpio%d/value", MISO_PIN); miso_gpio_fd = open(miso_gpio_path, O_WRONLY); // MISO 핀을 입력으로 설정 write(miso_gpio_fd, "in", 2); // MISO 핀 닫기 close(miso_gpio_fd); // SCK 핀 설정 int sck_gpio_fd; char sck_gpio_path[64]; // SCK 핀 열기 snprintf(sck_gpio_path, sizeof(sck_gpio_path), "/sys/class/gpio/gpio%d/value", SCK_PIN); sck_gpio_fd = open(sck_gpio_path, O_WRONLY); // SCK 핀을 출력으로 설정 write(sck_gpio_fd, "out", 3); // SCK value high write(sck_gpio_fd, "1", 1); // SCK 핀 닫기 close(sck_gpio_fd); // SPI 통신 초기화 if (SpiInit() != 0) { return -1; } // MFRC522 초기화 MFRC522Init(); // UART 통신 초기화 if (UartInit() != 0) { return -1; } uint8_t nuidPICC[4] = {0}; // 이전 카드 UID 저장 while (1) { // 카드가 인식되었다면 다음으로 넘어가고 아니면 더이상 실행하지 않음 if (!PiccIsNewCardPresent()) continue; // ID가 읽혀졌다면 다음으로 넘어가고 아니면 더이상 실행하지 않음 if (!PiccReadCardSerial(nuidPICC)) continue; // SS 핀에 값 쓰기 (1로 설정) write(ss_gpio_fd, "1", 1); // high printf("PICC type: "); // 카드의 타입을 읽어옴 uint8_t piccType = PiccGetType(nuidPICC[0]); // 모니터에 출력 printf("%s\n", PiccGetTypeName(piccType)); // MIFARE 방식인지 확인하고 아니면 리턴 if (piccType != MFRC522_PICC_TYPE_MIFARE_MINI && piccType != MFRC522_PICC_TYPE_MIFARE_1K && piccType != MFRC522_PICC_TYPE_MIFARE_4K) { printf("Your tag is not of type MIFARE Classic.\n"); continue; } // 만약 바로 전에 인식한 RF 카드와 다를 경우. 즉, 카드의 중복 감지를 방지하기 위함. if (nuidPICC[0] != nuidPICC[0] || nuidPICC[1] != nuidPICC[1] || nuidPICC[2] != nuidPICC[2] || nuidPICC[3] != nuidPICC[3]) { printf("A new card has been detected.\n"); // ID를 저장해둠 memcpy(nuidPICC, nuidPICC, sizeof(nuidPICC)); // 모니터 출력 printf("The NUID tag is:\n"); printf("In hex: "); // 16진수로 변환하여 출력 printHex(nuidPICC, sizeof(nuidPICC)); printf("\n"); // UART를 통해 카드 정보를 PC로 전송 char uartData[9]; snprintf(uartData, sizeof(uartData), "%02X%02X%02X%02X\n", nuidPICC[0], nuidPICC[1], nuidPICC[2], nuidPICC[3]); WriteUidUart(uartData); } // SS 핀에 값 쓰기 (0로 설정) write(ss_gpio_fd, "0", 1); // low // PICC 종료 // usleep(3000000); delay(3); if (piccType > 0) { break; } } close(spi_fd); close(uart_fd); // SS 핀 닫기 close(ss_gpio_fd); return 0; }
-
미해결AWS Certified Advanced Networking - Specialty 자격증 준비하기
수강기간 연장 요청드립니다!
강의를 결제하고 나서 업무가 바빠 이제야 학습중인데, 수강기간이 부족합니다 ㅠㅠ 연장 요청드립니다 :)
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
10.6 사용량 제한 질문
nodebird-api 미들웨어 index.js 타입이 any로 떠서 프리미엄이 체크가 안되고 계속 제가 작성한 게시글정보만 뜹니다 사용량제한 어떻게 하나요? ㅠㅠ const jwt = require("jsonwebtoken"); const rateLimit = require("express-rate-limit"); const User = require("../models/user"); exports.isLoggedIn = (req, res, next) => { if (req.isAuthenticated()) { next(); } else { res.status(403).send("로그인 필요"); } }; exports.isNotLoggedIn = (req, res, next) => { if (!req.isAuthenticated()) { next(); } else { const message = encodeURIComponent("로그인한 상태입니다."); res.redirect(`/?error=${message}`); } }; exports.verifyToken = (req, res, next) => { try { res.locals.decoded = jwt.verify( req.headers.authorization, process.env.JWT_SECRET ); return next(); } catch (error) { if (error.name === "TokenExpiredError") { return res.status(419).json({ code: 419, message: "토큰이 만료되었습니다.", }); } return res.status(401).json({ code: 401, message: "유효하지 않은 토큰입니다.", }); } }; exports.apiLimiter = rateLimit({ windowMs: 60 * 1000, // 1분 max: 1, handler(req, res) { res.status(this.statusCode).json({ code: this.statusCode, // 기본값 429 message: "1분에 한 번만 요청할 수 있습니다.", }); }, }); exports.apiLimiter = async (req, res, next) => { let user; if (res.locals.decoded) { user = await User.findOne({ where: { id: res.locals.decoded.id } }); } rateLimit({ widowMs: 60 * 1000, max: user?.type === "premium" ? 10 : 1, handler(req, res) { res.status(this.statusCode).json({ code: this.statusCode, message: "1분에 열 번만 요청 할 수 있습니다...", }); }, })(req, res, next); }; exports.deprecated = (req, res) => { res.status(410).json({ code: 410, message: "새로운 버전이 나왔습니다. 새로운 버전을 사용하세요", }); };
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
8주차 개념 강의 중 질문입니다.
강사님 안녕하세요,8주차 개념강의 중 질문입니다.[알고리즘 강의] 8주차. 펜윅트리와 최단거리.. : 네이버블로그 (naver.com)강의 노트 웹페이지에 2번째 그림에서,"2~8 까지의 최소인덱스 3번째 4번째 6번째 인덱스만 비교해서 최소 인덱스를 반환" 이라는 말이 잘 이해가 안되어서요.그림상 파란 화살표 표시한 것이 3,4,6 인덱스를 의미 하는 것인지 그리고, 3,4,6째 인덱스를 비교한다는 것이 왜 필요한 것인지 궁금합니다.제가 이해한 것은 2~8 까지의 최소 인덱스는 Level 1 에 저장된 Index 3 만 확인하여 Index 3 에 위치한 "1" 이 최소값인 것으로 이해를 했거든요. 강의 노트 웹페이지에서 5번째 그림에서,파랑 노드를 만들면 된다고 갑자기 설명을 하시는데, (강의 3:03 구간)그림상 주황색 노드(3,4,10,11)의 의미, 파랑색 노드(1,2,3,4)의 의미에 대한 안내도 없고... 그림에 표시된 화살표도 어떤 연산이 수행되었고, 화살표로 연결된 두 노드의 관계에 대한 설명도 없어 이해가 되지 않습니다.관련 내용 상세 설명 좀 다시 부탁드리겠습니다.
-
해결됨OpenGL 쉐이더 (2) shader 3D 그래픽스 - 프로그래머블 파이프라인, 기하학 기초, 삼각형 출력
22-6 varing colors 예제 질문
안녕하세요.22-colored-tri.vert 코드를 보다가프리미티브 단계에 버텍스 좌표도 out으로 넘겨야 할 거 같은데gl_postion에 대입하기때문에 따로 안 넘기는건가요 ?버텍스 좌표를 넘길때pre-defined out을 사용할때랑 varying register out을 사용할때 차이와 용도가 궁금합니다 !
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
Splash intent-filter
splash activity 에 intent-filter 옮기는 부분에서 자꾸 오류가 나요.22년도 커뮤니티 글을 보고 수정해보려 했는데, 현재는 meta 부분도 없고 true 로 바꾸어도 실행되지 않습니다.사진은 옮기기 전 원래 상태입니다.