묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
ManyToMany 테이블이 자동으로 만들어지지 않습니다..
import { ProductCategory } from 'src/apis/productsCategories/entites/productCategory.entity'; import { ProductSaleslocation } from 'src/apis/productsSaleslocations/entities/productSaleslocation.entity'; import { ProductTag } from 'src/apis/productsTags/entities/productTag.entity'; import { User } from 'src/apis/users/entities/user.entity'; import { Column, Entity, JoinColumn, JoinTable, ManyToMany, ManyToOne, OneToOne, PrimaryGeneratedColumn, } from 'typeorm'; @Entity() export class Product { @PrimaryGeneratedColumn('uuid') id: string; @Column() name: string; @Column() description: string; @Column() price: number; @Column({ default: false }) isSoldout: boolean; @JoinColumn() // 1:1 연결에서는 두 테이블 중 중심을 정하는 JoinColumn을 달아주어야한다. @OneToOne(() => ProductSaleslocation) // 일대일 연결. 어떤 테이블이랑 연결될지 표기. ProductSaleslocation 테이블과 연결 할 것이다. productSaleslocation: ProductSaleslocation; // 그 때 사용되는 Column은 productSaleslocation이고 타입은 다음과 같다, FK @ManyToOne(() => ProductCategory) // many가 Product 한개인게 Category productCategory: ProductCategory; // FK @ManyToOne(() => User) user: User; @JoinTable() // ManyToMany는 둘 중 하나에 JoinTable 작성 @ManyToMany(() => ProductTag, (productTags) => productTags.products) // 상대방 입장에서 나를 볼 때 products productTags: ProductTag[]; // 객체가 여러개이기 떄문에 객체 배열타입 사용 } import { Product } from 'src/apis/products/entities/product.entity'; import { Column, Entity, ManyToMany, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class ProductTag { @PrimaryGeneratedColumn('uuid') id: string; @Column() name: string; @ManyToMany(() => Product, (products) => products.productTags) products: Product[]; }ManyToMany 설정했는데.. product_product_tags_product_tag 테이블이 자동으로 생성이 안되네요. 코드 말고 건드려줘야 할 부분이 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
getOrder 안되는 이유,member 테이블 정보
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 오류가 나는데 왜 안되는건가요..? member 클래스 안에 있는 컬렉션객체를 가지고 오는 거 아닌가요?그리고 멤버 테이블에 address 임베디드 한 값이 안떠요.. 해결방법 알려주시면 감사하겠습니다!
-
해결됨스마트워크를 위한 맞춤 프로그램, OneNote (전자 필기장)
특정 페이지만 공유하는 방법
Onenote의 섹션이나 페이지가 여러 개 일때 특정 섹션이나 페이지를 내보내기 하는 방법 말고 특정 섹션이나 페이지를 다른 직원에게 공유할 수 있는 방법이 있나요? 제가 원노트 앱에서 페이지에서 우클릭 > 페이지 링크 복사를 해서 보내봤는데 그 페이지만 보이는게 아니라 다른 페이지까지 다 보이더라구요.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
코드에 대한 질문이 잇습니다.
강의를 전부 진행한지 시간이 좀 된 상태에서 프로젝트 리팩토링중 이해가 안되는 부분이 있어 질문드립니다.아래 의문점에 대해 확인과 의견을 부탁드립니다.작성된 코드는 제로초님의 front / nest-typeorm 에서 가져온 코드입니다. 의문점 : 채팅 데이터 전송에 웹소켓이 역할을 하지 않는것 같다. 그렇게 생각한 근거 : 1-1 : useSocket을 이용해서 소켓에 연결하는데 ws-${workspace} 의 message에 onMessage 함수를 연결하고 있다const Channel = () => { const [socket] = useSocket(workspace); useEffect(() => { socket?.on('message', onMessage); return () => { socket?.off('message', onMessage); }; }, [socket, onMessage]); }const useSocket = (workspace?: string): [Socket | undefined, () => void] => { const disconnect = useCallback(() => { if (workspace && sockets[workspace]) { console.log('소켓 연결 끊음'); sockets[workspace].disconnect(); delete sockets[workspace]; } }, [workspace]); if (!workspace) { return [undefined, disconnect]; } if (!sockets[workspace]) { sockets[workspace] = io(`${backUrl}/ws-${workspace}`, { transports: ['websocket'], }); console.info('create socket', workspace, sockets[workspace]); sockets[workspace].on('connect_error', (err) => { console.error(err); console.log(`connect_error due to ${err.message}`); }); } return [sockets[workspace], disconnect]; };1-2 : 백엔드에서 채팅을 수신받는 createWorkspaceChannelChats는 ws-${url}-${chatWithUser.ChannelId} 의 message에 받아온 채팅을 보내고 있다. async createWorkspaceChannelChats( url: string, name: string, content: string, myId: number, ) { const channel = await this.channelsRepository .createQueryBuilder('channel') .innerJoin('channel.Workspace', 'workspace', 'workspace.url = :url', { url, }) .where('channel.name = :name', { name }) .getOne(); const chats = new ChannelChats(); chats.content = content; chats.UserId = myId; chats.ChannelId = channel.id; const savedChat = await this.channelChatsRepository.save(chats); const chatWithUser = await this.channelChatsRepository.findOne({ where: { id: savedChat.id }, relations: ['User', 'Channel'], }); this.eventsGateway.server // .of(`/ws-${url}`) .to(`/ws-${url}-${chatWithUser.ChannelId}`) .emit('message', chatWithUser); } 2 : 네트워크 탭의 웹소켓 메시지에 채팅내역 수신내역이 남지 않는다이미지가 보일지는 모르겟지만 빨간 박스가 새로 전송한 채팅이고 정상적으로 수신받으면 네트워크 탭에 messag에 내역이 남아야 하는걸로 알고 있는데 남지 않는걸로 확인됩니다. 3 : 웹페이지에서 포커스를 유지한 상태로 모바일에서 입력시 채팅이 전송되지 않음 왜 채팅이 정상적으로 전송된거 처럼 보일까 생각해보니 swr이 브라우저를 포커스 아웃후 재 포커스하면 채팅데이터를 다시 가져오는걸로 추측하여 웹페이지 포커스 유지중 모바일로 테스트해보니 채팅이 전송되지 않습니다.
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
sql
mySQL연동 해봤는데 옆에 mintchoco디렉터리에 db.sqlite같은 파일 없는게 정상인가요?그리고 만약 서버에 배포할려고하는데 db같은경우는 Settings.py에서 DATABASES=[]에서 host 변수에 서버 주소만 주면 되나요?
-
미해결[2023 코틀린 강의 무료제공] 기초에서 수익 창출까지, 안드로이드 프로그래밍 A-Z
apirequest.io 로딩 현상 & 사이트 이상함
안녕하세요, 미세미세 클론코딩 영상에서 레트로핏 라이브러리 영상을 보고 있데, JSON 데이터 클래스를 만들어야 하는 api변환하는 사이트를 알려주셔서 들어가는데 변환하는 것이 나오지 않아서 인강을 진행할 수가 없는 상황입니다 혹시 다른 사이트 알려주실 수 있나요??
-
미해결자바스크립트 : 기초부터 실전까지 올인원
강의가 재생이 안됩니다.
해당 강의(자바스크립트에서 API를 불러보자) 재생 버튼 누르면 동작하지 않고 그 전 강의에서 다음강의 수강하러가기로 이동해도 건너띄어지는데 확인좀부탁드립니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1, 모의문제1의 문제3 질문있습니다!
안녕하세요!f3의 결측치를 변환할 때 .replace()와 .map()을 알려주셨는데요, 두 개의 차이가 궁금해서 질문드립니다! 아래는 제가 푼 풀이 과정인데 결과는 133이 나오더라고요!# f3의 결측치를 0으로 변환 # dt['f3'].isnull().sum() # 변환 전 28개 dt['f3'] = dt['f3'].fillna(0) # dt['f3'].isnull().sum() # 변환 후 0개 # silver를 1, gold는 2, vip는 3으로 변환 a = {"silver" : 1, "gold" : 2, "vip" : 3} dt['f3'] = dt['f3'].replace(a) # 총 합 구하기 print(int(sum(dt['f3'])))강의를 보니 .replace()는 앞에서부터 하나씩 순차적으로 변환되고.map()은 딕셔너리를 사용해 일괄 변환된다고 하셨는데, (제가 이해한 게 맞을까요..?)제가 푼 풀이 과정은 딕셔너리를 만들어서 replace로 변환한 거라 이것도 맞는 과정인지, 우연의 일치인지 궁금합니다!ㅠㅠ 감사합니다!
-
해결됨[코드팩토리] [입문] Dart 언어 4시간만에 완전정복
toSet(), Set.of(), Set.from() 차이점
toSet(), Set.of(), Set.from() 차이점이 있나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
버젼 오류...
h2database 버젼은 동기화했는데도 오류가 뜨네요.. 미치겠어요 ㅠ
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
에셋 매니저에 버그인지 제 기존 weapon 데이터 에셋을 못찾습니다.
왼쪽에 Weapon1 이 예전부터 실습하던 데이터 에셋인데요.weapon 박스가 생성이 안되길래 디버그로 확인해보니 에셋 매니저가 이 weapon1를 못 찾아서 에셋 목록에 없었습니다. 리로드 다시 해도 안되는 것 같습니다. 그래서 새로운 data asset을 ABWeaponItemData기본으로 만들어서 같이 테스트 해보니, 오른쪽 새로 만든 건 또 에셋 매니저가 찾아서 목록 안에 있더라구요..... 이게 버그인지 아니면 제가 뭘 잘못한 건지 잘 모르겠는데 혹시 뭔지 알 수 있을까요....
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-H 13144
등차수열의 합이 등장하는 이유를 잘 모르겠습니다.교안에도 공식만 나와있고 언제 활용해야 하는지에 대한 정보는 안 담겨 있어서요.그냥 직접 세 보니까 어라? 등차수열의 합 공식의 결과랑 동일하니까 이걸로 가자!라는 논리로 등장한 것인가요?
-
미해결스프링 시큐리티
세션 STATELESS 일때 궁금한점이 있습니다.
강사님 정말 강의 잘 듣고 있습니다. SecurityContext에 대해서 강의를 듣던중에 궁금한 점이 있어 질문을 남깁니다 세션 방식일때 SecurityContext(authentication)를 세션에 저장하고, 인증이 완료된 후에는 세션에 있는 SecurityContext를 꺼내어 SecurityContextHolder에 저장하여 stateful한 상태를 유지합니다. 근데 세션 stateless 일때는 , 세션 또한 존재하지 않을것이고, 여기서 spring security는 인증이 완료된 후에 SecurityContext에 인증객체를 담는 과정도 진행하는지 궁금합니다. stateless한 즉 rest api를 이용해서 통신을 할 경우에는 매 요청마다 인증 과정을 거칠텐데 SecurityContext에 인증객체를 담아야 하는지 궁금하네요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
이원 분산 분석 링크가 동작하지 않아요.
이원 분산 분석의 아래 링크가 없다고 나옵니다.노트북(빈칸): https://bit.ly/3ZFv4IZ
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1주차 개념 #10. 구현과 문제를 푸는 방법의 기초(질문 있습니다)
자바스크립트 같은 경우에는 배열 메서드를 까먹었다 싶으면 MDN 사이트를 들어가서 찾아보잖아요? C++도 비슷한 사이트가 있나요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁합니다.
intratel@naver.com
-
미해결
react input창 입력 후 button클릭 시 초기화 하는 방법 질문
댓글 기능 창에서 input에 작성자 비밀번호 내용을 입력하고 등록하기 버튼을 클릭하면 댓글이 잘 생성이 되지만 input창이 비어지지 않습니다. container와 presenter 코드입니다.import CommentWriteUI from "./BoardComment.presenter"; import { FETCH_COMMENTS } from "../list/BoardCommentList.queries"; import { useRouter } from "next/router"; import { useState } from "react"; import type { ChangeEvent } from "react"; import type { IUpdateBoardCommentInput } from "../../../../../commons/types/generated/types"; import type { ICommentWriteProps } from "./BoardComment.types"; import { useMutationCreateComment, useMutationUpdateComment, } from "../../../../commons/hooks/mutations/useMutationBoardComment"; export default function CommentWrite(props: ICommentWriteProps): JSX.Element { const [createBoardComment] = useMutationCreateComment(); const [updateBoardComment] = useMutationUpdateComment(); const [writer, setWriter] = useState(""); const [password, setPassword] = useState(""); const [contents, setContents] = useState(""); const [star, setStar] = useState(0); const router = useRouter(); function onChangeWriter(event: ChangeEvent<HTMLInputElement>): void { setWriter(event.target.value); } function onChangePassword(event: ChangeEvent<HTMLInputElement>): void { setPassword(event.target.value); } function onChangeContents(event: ChangeEvent<HTMLTextAreaElement>): void { setContents(event.target.value); } const resetFields = () => { setWriter(""); setPassword(""); setContents(""); }; const onClickSubmit = async (): Promise<void> => { const result = await createBoardComment({ variables: { createBoardCommentInput: { writer, password, contents, rating: star, }, boardId: String(router.query.number), }, refetchQueries: [ { query: FETCH_COMMENTS, variables: { boardId: router.query.number }, }, ], }); console.log(writer); resetFields(); }; const onClickEdit = async (): Promise<void> => { const updateBoardCommentInput: IUpdateBoardCommentInput = {}; if (contents !== "") updateBoardCommentInput.contents = contents; if (star !== 0) updateBoardCommentInput.rating = star; if (typeof props.el?._id !== "string") { alert("시스템에 문제가 있습니다."); return; } try { const result = await updateBoardComment({ variables: { updateBoardCommentInput, password, boardCommentId: props.el?._id, }, refetchQueries: [ { query: FETCH_COMMENTS, variables: { boardId: router.query.number }, }, ], }); console.log(result); props.setIsEdit(false); } catch (error) { if (error instanceof Error) alert(error.message); } }; return ( <CommentWriteUI onClickSubmit={onClickSubmit} onChangeWriter={onChangeWriter} onChangePassword={onChangePassword} onChangeContents={onChangeContents} setStar={setStar} isEdit={props.isEdit} onClickEdit={onClickEdit} writer={writer} el={props.el} data={props.data} /> ); } import * as S from "./BoardComment.styles"; import type { ICommentWriteUIProps } from "./BoardComment.types"; export default function CommentWriteUI( props: ICommentWriteUIProps, ): JSX.Element { return ( <> <S.Wrapper> <S.TitleBox> <span>댓글</span> </S.TitleBox> <S.BodyWrapper> <S.InfoWrapper> <S.Writer placeholder="작성자" readOnly={Boolean(props.el?.writer)} onChange={props.onChangeWriter} defaultValue={props.isEdit ? props.el?.writer : ""} /> <S.Password placeholder="비밀번호" onChange={props.onChangePassword} type="password" /> <S.Star onChange={props.setStar} defaultValue={props.isEdit ? props.el?.rating : 0} /> </S.InfoWrapper> <S.ContentWrapper> <S.Content placeholder="개인정보를 공유 및 요청하거나, 명예 훼손, 무단 광고, 불법 정보 유포시 모니터링 후 삭제될 수 있으며, 이에 대한 민형사상 책임은 게시자에게 있습니다." onChange={props.onChangeContents} defaultValue={props.isEdit ? props.el?.contents : ""} ></S.Content> <S.SubmitWrapper> <span>0/100</span> <S.SubBtn onClick={props.isEdit ? props.onClickEdit : props.onClickSubmit} > 등록하기 </S.SubBtn> </S.SubmitWrapper> </S.ContentWrapper> </S.BodyWrapper> </S.Wrapper> </> ); } 하지만 저 화면에서 등록하기를 누를 시 빈 값이 입력됩니다. 또한 console.log(writer)를 해보면 공란이 나옵니다. 즉, 데이터는 없는데 화면이 리렌더되지 않습니다. 해결 부탁드립니다!
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
circuitbreaker custom config 관련
강의를 따라하며 circuitbreaker custom config 파일을 만들었는데요. 빈에 주입하게 되실겁니다. 하고 코드에서 별다른 수정이 없는데 적용이 된건가요?빈에 따로 주입하지않아도 만들기만하면 알아서 적용이 되는건가요???
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FSoftObjectPtr 함수 질문
IsPending()은 객체정보는 있지만 로딩되지 않았을 때 True.IsValid()는 객체정보있고 로딩도 되있을 때 True 인가요?? 그렇다면,IsPending()은 nullptr 일 때 false.IsValid()는 객체정보는 있고 로딩 전 일때 false 인가요??
-
미해결따라하면서 배우는 고박사의 유니티 기초
사다리 밑으로 이동이 안 돼요
강의 다 따라하고 스크립트도 똑같이 작성했는데 사다리 타고 올라가는 건 되지만 내려오는 것이 안 돼요. 사다리 앞에서 멈춥니다.