묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
해시태그 중복 관련 질문
안녕하세요 제로초님 #노드 #노드 #노드 이런 식으로 중복되는 해시태그를 가진 게시글을 작성하면 db에 id만 다르고 name은 같은 해시태그들이 생성이 됩니다. 어찌됐든 db에 데이터가 생성되는 과정에서는 에러가 발생하지 않습니다. 직후에 다시 #노드 #노드 로 게시글 하나를 작성하면 ValidationErrorItem { message: 'posthashtag.PRIMARY must be unique', type: 'unique violation', path: 'posthashtag.PRIMARY', value: '8-32', // (실험해보면서 자동으로 올라간 hastaghId와 posthId입니다) origin: 'DB', instance: null, validatorKey: 'not_unique', validatorName: null, validatorArgs: [] } 와 같은 에러 메시지가 발생합니다. #노드 해시태그 하나만 넣고 작성하면 에러 없이 실행되구요. 물론 #노드 해시태그를 하나만 넣고 글을 작성하면 해시태그db에는 추가되지 않고 posthashtag 테이블에도 관계가 잘 설정이 됩니다. 이런 에러가 발생하는 원인으로는 db에 '노드'라는 해시태그가 없을 때 , const hashtags = req.body .... 로 가져온 hashtags가 [#노드,#노드,#노드] 인 경우 db에서 '노드'라는 name을 가진 해시태그를 3개 만들어버리는 현상인 것 같습니다. 왜 이런 현상이 발생하는지는 이유를 잘 모르겠습니다. 추측으로는 ['#노드','#노드','#노드'].map 하는 과정에서 findOrCreate가 Promise.all 때문에 프로미스들을 한 방에 실행하기 떄문에 ['노드',true],['노드',true],['노드',true]를 리턴한다고 생각해보면, 각자 모두 true이기 때문에 아이디 1,2,3을 부여받겠지요. 그 다음은post.addHashtags(result.map((v)=>v[0]); 에서 (1,1),(2,1),(3,1)이 친구들이 posthastag에 생성되게 되니까 최초 등록 과정에서는 문제가 안될것 같고 그 다음 ['#노드','#노드']가 들어와서 map을 하는 과정을 생각해보면, findOrCreate가 ['노드',false], ['노드',false]를 리턴하고, post.addHashtags에서 ['노드',false]이기 때문에 첫 번째로 찾은 '노드' name을 가진 hashtag 객체의 id인 1을 이용해서 (1,2), (1,2)를 시도하기 때문에 posthashtag UNIQUE 에러가 발생하는 것이 아닌가? 라고 생각을 하고 있습니다. 1. 혹시나 제 추측이 맞다면, 이는 제가 Promise.all의 메커니즘을 아직 잘 모른다는 뜻이 되는데 Promise.all은 정확히 동시에 실행이 되기 때문에 ['노드',true],['노드',true],['노드',true]를 결과값으로 받는건가요? 2. 혹시나 제 추측이 맞다면, 이를 해결하기 위해서 const hashtags = req.body .... 부분에서 중복제거를 실시한 다음에 findOrCreate 부분으로 넘어가게끔 처리하면 될까요? 3. 혹시나 제 추측이 틀리다면 어떤 흐름으로 오류가 발생하게 된건가요? 질문 완료입니다!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
화살표 함수 질문합니다.
화살표 함수를 사용할 때, () => {} () => () 차이가 무엇인지 궁금합니다 !!
-
해결됨Python 엑셀 프로그래밍 - with xlsxwriter
주피터 노트북 화면이 안나와요
파워쉘에서 jupyter notebook하고 엔터 눌렀는데 하얀 주피터로 넘어가지를 않는데요?? 뭐가 잘못된걸까요??
-
미해결딥러닝 CNN 완벽 가이드 - TFKeras 버전
CNN Cifar10 VGG16으로 전이학습 시 val_accuracy가 0.1로 고정되어 나옵니다
안녕하세요. CIFAR10 데이터를 가지고, VGG16으로 전이학습을 해보려고 했습니다. 데이터가 충분하다고 생각해서 뒤에서 2개의 block을 trainable=True로 바꾸고, top 부분은 globalaveragePool 이후에 Dense로 Softmax를 적용했는데, 훈련이 아주 이상하게 동작하는데, 이유를 알 수 있을까요? import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Conv2D, MaxPooling2D, Dense, Flatten, BatchNormalization, Dropout from tensorflow.keras.preprocessing.image import ImageDataGenerator from tensorflow.keras.utils import to_categorical, normalize import numpy as np import os import matplotlib.pyplot as plt import pandas as pd %matplotlib inline (x_train, y_train), (x_test, y_test) = tf.keras.datasets.cifar10.load_data() print(x_train.max(), x_train.min()) x_train = normalize(x_train) x_test = normalize(x_test) y_train = to_categorical(y_train) y_test = to_categorical(y_test) print(x_train.shape, x_test.shape, y_train.shape, y_test.shape) print(x_train.max(), x_train.min(), x_test.max(), x_test.min()) train_datagen = ImageDataGenerator( rotation_range = 45, width_shift_range = 0.2, zoom_range = 0.2, horizontal_flip = True ) train_datagen.fit(x_train) train_generator = train_datagen.flow( x_train, y_train, batch_size = 128) model_vgg = VGG16(weights='imagenet', include_top=False) for layer in model_vgg.layers: layer.trainable = False for layer in model_vgg.layers[-8:]: layer.trainable = True inputs = model_vgg.output x = tf.keras.layers.GlobalAveragePooling2D()(inputs) x = Dense(256, activation='relu')(x) x = Dropout(0.3)(x) x = Dense(128, activation='relu')(x) x = Dropout(0.3)(x) x = Dense(10, activation='softmax')(x) new_model = tf.keras.models.Model(model_vgg.input, x) new_model.summary() from tensorflow.keras.callbacks import ReduceLROnPlateau, EarlyStopping rlr_cb = ReduceLROnPlateau(monitor='val_loss', factor=0.3, patience=3, mode='min', verbose=1) ely_cb = EarlyStopping(monitor='val_loss', patience=5, mode='min', verbose=1) new_model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) history = new_model.fit_generator(train_generator, steps_per_epoch = 391, epochs = 100, validation_data = (x_test, y_test), #callbacks=[rlr_cb, ely_cb] )
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
뷰포트가 작아지면
브라우저의 창 크기를 줄이면 border가 괴상해지는데요 이를 방지하는 방법이 있을까요? ㅠㅠ
-
해결됨비전공자를 위한 진짜 입문 올인원 개발 부트캠프
안녕하세요. 질문드립니다.
- 아래 사진과 같이 hdml 1강의에서 웹브라우저로 열기하는 방법이 없습니다. 어떻게 해야하나요? - 주석으로 처리 방법으로 <! 로 똑같이 하였는데 되지않습니다. 왜 안되는지 모르겠습니다.
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
asyncio wait -> task로 교체
파이썬 공식 문서 --버전 3.8부터 폐지: aws에 있는 어웨이터블이 코루틴이면, 자동으로 태스크로 예약됩니다. 코루틴 객체를 wait()로 직접 전달하는 것은 혼란스러운 동작으로 연결되므로 폐지되었습니다. -- async def process_async(): start = time.time() task1 = asyncio.create_task( exe_calculate_async('One', 3)) task2 = asyncio.create_task( exe_calculate_async('Two', 2)) task3 = asyncio.create_task( exe_calculate_async('Three', 1)) await task1 await task2 await task3 end = time.time() print(f'>>> Total seconds: {end - start}') 문제 없이 실행 되었습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
더티체킹
안녕하세요 영한팀장님 강의를 듣다가 갑자기 궁금한 부분이 생겼습니다. 더티체킹은 transaction이 commit 한 시점으로 부터 스냅샷과 DB를 비교하여 쿼리가 나간다라고 말씀해주셨는데 만약 @Transactional을 메소드에 사용한다면 예를들어 @Transactional public void valueChange(Long id){ User user = repo.findUserByid(id) user.setUsername("hello") System.out.println("section1") User user = repo.findUserByUsername("hello") System.out.println("section2") } 이라고 하면 제가 실험을 해본 결과 "section1" 이 출력되고 update 쿼리가 나가던데 말씀하신데로라면 @Transactional 이 끝나고 update 쿼리가 나가야 하지 않나요? 답변 기다리겠습니다. 감사합니다.
-
해결됨홍정모의 따라하며 배우는 C언어
02:30초 질문드립니다.
02분 30초쯤부터 선생님께서 말씀하시기를 while문 비교를 하기전에 입력을 한번은 꼭 받아야 한다고 하셨는데, int ps = 0; while (ps != 337) { printf("Enter secret code : "); scanf("%d", &ps); } printf("Good!"); 저는 이렇게 while문에 하나만 달랑 넣고 만들어서 실행을 해봤는데 이상이 없더라구요. 이게 정상작동되면 do while문이 필요없지않나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Category의 parent_id 생성 관련
안녕하세요, 영한쌤. Category에서 private Category parent에 있지도 않은 parent_id를 @JoinColumn 기준으로 잡아주는 것이 너무 이상했는데 create table할 때 parent_id 필드가 만들어지더라구요. 명시적으로 만든 적이 없는 parent_id를 가지고 @JoinColumn에 이걸로 연결하라고 사용해도 오류가 나지 않을 뿐더러 심지어 parent_id가 생성되는 이유가 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
싱글톤에 관하여
안녕하세요 싱글톤을 따라서 구현하다가 궁금한 점이 생겨 질문드리게되었습니다. ServerPacketManager 에서는 static PacketManager _instance; public static PacketManager Instance { get { if (_instance == null) _instance = new PacketManager(); return _instance; } } 이렇게 싱글톤을 만들었고 SessionManager 에서는 static SessionManager _session = new SessionManager(); public static SessionManager Instance { get { return _session; } } 이렇게 구현하셨는데 같은 싱글톤이죠? 굳이 다르게 구현하신 이유가 있나요?
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
indent guides
안녕하세요 선생님 웹디 필기는 합격했고 실기위해서 강의 신청했어요 유튜브에서 html 기본강의 보고 있는데 브라켓에서 선생님이 설치하라는거 다 설치했거든요 그중에 indent guides도 설치했는데 라인이 안나와요 뭐가 잘못된걸까요? ㅜㅜ 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
git 권한 승인 부탁드립니다
인프런 아이디 : orcasoft인프런 이메일 : orcasoft@naver.com깃헙 아이디 : mirro97@naver.com깃헙 Username : sujeong.k
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
새로운 씬을 로드 후 InputManager 문제
안녕하세요, 강의 보면서 제 게임을 만들고 있는 학생입니다. 저는 Game씬에서 퍼즐 씬으로 넘어가도록 만들고 있습니다. 그런데 여기서 MissingReferenceException: The object of type 'PlayerController' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object. 오류가 발생합니다. InputManager에서 사용자의 키보드 입력이 들어오면 KetAction을 구독한 친구들(제 경우엔 PlayerController)에게 Invoke()를 통해 신호를 주잖아요. 그런데 새로운 씬으로 넘어가면 PlayerController가 사라지는데도 자꾸 신호를 넘겨줘서 이런 문제가 발생하는 것 같습니다. 캐릭터 이동에 할당한 키와 같은 키를 눌렀을 때 문제가 발생합니다. 이걸 해결할 수 있는 방법이 없을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
배포후 CORS 403에러
안녕하세요 제로초님 ! 현재 상황이 로컬에서는 별 문제없이 분명 API를 요청하면 잘 받아오는데 현재 프론트엔드를 배포하고 현시점에 API를 요청하니 CORS에러가 뜨더라구요.구글링을 해서 AWS 설정으로 CORS설정을 해줬는데도 계속 403과 함께 CORS가 발생하는데 조언 좀 부탁드리겠습니다 ㅜㅜ
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
메모리 사용량 질문
안녕하세요, 개인 환경에서 돌리는 것을 연습중인데, 왜 자꾸 에러가 나나 했는데 강의에서 트레이닝 시 메모리를 15G 정도 먹고있는 것을 발견해서 이것이 원인이라고 생각해요! 정말 메모리를 많이 먹는군요... load_weights 할 때부터 10G 정도를 먹고, fit을 하려고 하니 제 그래픽카드 할당량인 11G가 넘어서 에러가 나는 것 같스빈다. 제가 11G짜리 그래픽카드를 두장을 쓰고 있는데, 혹시 메모리 사용량을 절반씩 나눠서 트레이닝하는 방법이 있을까요??
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
BindEvent 관련 질문 드립니다.
제가 BindEvent 함수를 이용중에 있는데, Get을 통해서 오브젝트를 가져오고 있습니다, 문제는 enum값을 따로 써주면서 BindEvent를 하면 잘 되는데, enum이 너무 많아 반복문을 써서 Event를 등록하면 잘 안돼는 현상이 발생하는데, 원인을 잘 모르겠습니다. 심지어 반복문에 i <8 이라고 써서 i가 총 7까지만 되도록 했음에도 불구하고, 저 오브젝트를 눌렀을 때 ClickStuffIcon(int) 에 8이 매게변수로 들어가고 있습니다.. 원인을 계속 찾아보고자 디버그를 했는데, 찾지 못해 질문드립니다..ㅠㅠ
-
미해결초보를 위한 쿠버네티스 안내서
Service Discovery 질문있습니다.
안녕하세요 해당 강의를 통해서 많은 도움을 받고 있는 수강생입니다. 다름이 아니라, 여러가지 service(nodeport,lb)가 pod들에 Label을 통해서 mapping이 되는데, 만약 pod가 늘어나거나 줄어들때, IP가 바뀌는 것을 Label을 통해 Service Discovery한다고 볼수 있는지 여쭤봅니다. 해당 강의내용에는 service discovery개념이 없어서 질문드려요 감사합니다
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
파일 송수신 속도
안녕하세요 선생님 강의 외의 질문이지만 똑같이 통신(?)이라는 공통점도 있고 너무 막막해서 질문 남깁니다. 파일 송수신을 한다고할 때 클라이언트에서 서버로 대용량의 파일을 업로드하거나, 서버로부터 대용량의 파일(예를들어 GB단위의 동영상)을 다운로드 받는다고 할 때, 이에 대한 속도를 개선하기 위해서 서버에서 할 수 있는 방법이 뭐가 있을까요? 서버에서 클라이언트로 데이터를 보낼 때 이를 특정 크기로 분산해서 보내면 속도 개선에 도움이 될 수 있나요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part2: 자료구조와 알고리즘
SideWinder()로 미로를 만들 때 길이 막힐 수도 있나요?
y= n번째(n은 홀수) 줄의 모든 x에 대해서 우연히 rand.Next(0,2)의 값이 전부 0이었다면 계속 오른쪽만 뚫을 것같고, y = n+1줄은 전부 Wall인 상태인 것 같은데 그럼 미로가 막히게 되나요?