묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 세션 방식
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요!! 요즘은 세션 방식 말고 JWT토큰방식을 이용한다고 하는데 실무에서 정말 그러나요,?
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
dms 의 서비스에서 코드를 봐도 모르겠는 부분이 있어서 질문합니다.
function getKeyByValue(object, value) { return Object.keys(object).find((key) => object[key] === value); } ... async getWorkspaceDMChats( url: string, id: number, myId: number, perPage: number, page: number, ) { return this.dmsRepository .createQueryBuilder('dms') .innerJoinAndSelect('dms.Sender', 'sender') .innerJoinAndSelect('dms.Receiver', 'receiver') .innerJoin('dms.Workspace', 'workspace') .where('workspace.url = :url', { url }) .andWhere( '((dms.SenderId = :myId AND dms.ReceiverId = :id) OR (dms.ReceiverId = :myId AND dms.SenderId = :id))', { id, myId }, ) .orderBy('dms.createdAt', 'DESC') .take(perPage) .skip(perPage * (page - 1)) .getMany(); } ... async createWorkspaceDMChats( url: string, content: string, id: number, myId: number, ) { const workspace = await this.workspacesRepository.findOne({ where: { url }, }); const dm = new DMs(); dm.SenderId = myId; dm.ReceiverId = id; dm.content = content; dm.WorkspaceId = workspace.id; const savedDm = await this.dmsRepository.save(dm); const dmWithSender = await this.dmsRepository.findOne({ where: { id: savedDm.id }, relations: ['Sender'], }); const receiverSocketId = getKeyByValue( onlineMap[`/ws-${workspace.url}`], Number(id), ); this.eventsGateway.server.to(receiverSocketId).emit('dm', dmWithSender); } ... 1. getKeyByValue가 어떠한 역할을 하나요? 소켓을 사용할 때 필요한 부분이라고 짐작만 하고 있습니다. 코드에 대한 간단한 해석과 역할을 간단하게 알려주시면 감사하겠습니다. 2. async getWorkspaceDMChats 기능에서 .innerJoinAndSelect('dms.Sender', 'sender') 부분이 헷갈립니다. dms라는 별칭과 Sender라는 테이블이 join 되는 부분이라고 생각하고 있었는데, Sender 라는 테이블이 존재했었나요?저는 여태까지 dms.Workspaces 이런식으로 DMs와 Workspaces 테이블을 join 하는 부분이라고 생각하고 있었는데 잘못 알고 있는건가요..? 3. async createWorkspaceDMChats 중 const dmWithSender 부분에서 2번과 비슷한 내용의 질문인데, relations: ['Sender']가 나오는데 이 부분 또한 테이블과의 관계를 나타내는 부분으로 알고있었는데 Sender라는 테이블이 존재하는건가요?
-
미해결
How much will scuba diving in Mallorca be a chilling experience for all?
For those who are accustomed to diving in cold waters, scuba diving in Mallorca can be a chilly experience. Luckily, when there is a need for thermal protection while diving in Mallorca, Scubanautic is here to deliver the necessary warmth. We offer a range of products that protect you from the cold water and allow you to enjoy your cave diving Mallorca as much as before. With products such as merino wool undersuits, balaclavas, neck gaiters, gloves, and more, we are confident that we have what it takes to suit your needs—no matter what they may be. Visit us today to find out which product is right for you.
-
미해결대세는 쿠버네티스 (초급~중급편)
설치 중 에러가 나서 문의 드립니다.
안녕하세요 virtualbox로 kubernetes를 사용하려고 설치하는 도중 vagrant up을 하였을때 다음과 같은 에러가 발생해서 문의 남깁니다. 해결할 수 있는 방법이 있을까요? There was an error while executing `VBoxManage`, a CLI used by Vagrantfor controlling VirtualBox. The command and stderr is shown below. Command: ["hostonlyif", "create"] Stderr: 0%...Progress state: NS_ERROR_FAILUREVBoxManage: error: Failed to create the host-only adapterVBoxManage: error: VBoxNetAdpCtl: Error while adding new interface: failed to open /dev/vboxnetctl: No such file or directoryVBoxManage: error: Details: code NS_ERROR_FAILURE (0x80004005), component HostNetworkInterfaceWrap, interface IHostNetworkInterfaceVBoxManage: error: Context: "RTEXITCODE handleCreate(HandlerArg *)" at line 95 of file VBoxManageHostonly.cpp
-
해결됨아이폰 앱 개발 입문 2편
Xcode Version 13.4.1 (13F100)
Version 13.4.1 (13F100) 사용중입니다 image Literal 이 자동완성에 뜨지않아서.. 업그레이드버전에서 리터럴을 넣는법을 알고싶습니다!
-
미해결데이터 분석 SQL Fundamentals
case when 질문있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. select * , case when sal_rn_desc = 1 then 'top' when sal_rn_asc = 1 then 'bottom' else 'middle' end as gubun 위 구문에서 case when 조건 when 조건 else '' end 로 한번에 case when 구절 안에 조건을 여러개 넣은걸까요? 미리 감사드립니다.
-
미해결웹 게임을 만들며 배우는 React
useRef 관련 질문 있습니다.
useRef와 useState의 차이는 화면 상의 리렌더링이 되냐 안되냐의 차이로 알고 있습니다. 하지만 useState로 interval을 설정해도 잘 되어서 왜 useRef를 쓰신것인지 궁금해서 여쭤봅니다!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
문제를 풀었다고 생각했는데 75%에서 틀립니다. 뭐가 문제일까요 ㅜㅜ
기준을 배열 내에 있는 가장 높은 높이로 잡았습니다. 강수량이 배열 내부에서 가장 높은 높이보다 같거나 크다면 안전지역이 없는 것이니 0이 나온다고 생각했습니다. 배열 내부 최대값 보다 작은 것 중에 찾으면 되겠다고 생각하고 문제에 접근했습니다. 어느 부분을 잘못생각할 걸까요? ㅠㅠ #include<bits/stdc++.h> using namespace std; int n, m,ret=0, nx, ny, x, y, ma = 0; int max_len; int h[104][104]; bool sc[104][104]; set<int> _set; int dy[4] = {-1,0,1,0}; int dx[4] = {0,1,0,-1}; void dfs(int y, int x, int m){ sc[y][x] = 1; for (int i =0; i<4; i++){ ny = y + dy[i]; nx = x + dx[i]; // 인덱스로 표현하면 n보다 하나 작아야하니깐 n까지 포함시켜서 커지면 안됨 if(nx < 0 || ny < 0 || nx >= n || ny >= n) continue; if(h[ny][nx] > m && !sc[ny][nx]){ dfs(ny,nx,m); } } } int main(){ cin >> n; for (int i =0; i < n; i++){ for (int j = 0;j < n; j++){ cin >> h[i][j]; if(h[i][j] > max_len){ max_len = h[i][j]; } } } for (int i = 1 ; i < max_len; i++){ m = i; int ret = 0; fill(&sc[0][0],&sc[0][0] + 104*104,0); for (int i =0; i <= n; i++){ for (int j = 0;j < n; j++){ if(h[i][j] > m && !sc[i][j]){ dfs(i,j,m); ret++; } } } if(ma <= ret) { ma = ret; } } cout << ma << "\n"; return 0; }
-
미해결스프링 핵심 원리 - 기본편
ComponentScan과 Configuration 어노테이션을 같이 사용하는 이유
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]강의 내용 85쪽 AutoAppConfig 클래스의 @Configuration 어노테이션이 있을때와 없을 때 모두, AnnotationConfigApplicationContext의 생성자 인자로 AutoAppConfig.class를 넘겨줬을 때 싱글턴 패턴을 보입니다. (각 컴포넌트의 생성자에 로그성 코드를 심어둠) @Configuration 어노테이션을 붙이는것과 붙이지 않는것에 차이가 존재하나요? 그렇다면 그것이 무엇인지 알 수 있을까요? 추가적으로 https://www.baeldung.com/spring-component-scanning 다른 참고문서도 찾아보았는데, we use the @ComponentScan annotation along with the @Configuration annotation to specify the packages that we want to be scanned라는 문구에서, 컴포넌트 스캔을 시작할 위치는 @ComponentScan의 basePackages 필드로 설정하는것으로 사료되는데 더더욱 이해가 되지 않아 질문드립니다.
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
winSCP 연결문제
디렉토리 구조가 완전 달라서 당황스러운데 다시 다운받아서 설정해도 원래 설정이 그대로 가져와 져서 똑같이 설정되더라구요 ... 어디서 부터 다시 해야 할까요 ㅜㅠㅜㅠㅜ
-
해결됨처음 만난 리액트(React)
NotificationList.jsx 챕터 6장 실습 내용 질문 - 동시에 2개씩 나옴
요약: 3개가 각각 1-1-1 로 1초 간격으로 나와야 하지만, 2-1 로 나옴. 즉 2개가 한번에 나오고 나머지 1개가 나옴, notification 개수를 5개로 늘려봤더니, 1-1-1-1-1이 나와야 하지만 2-2-1로 나옵니다. 어디가 문제일까요.. 1. NotificationList import React from "react"; import Notification from "./Notification"; const reservedNotifications = [ { message: "안녕하세요, 오늘 일정을 알려드립니다.", }, { message: "오전은 피곤합니다", }, { message: "점심식사 시간입니다.", }, { message: "30분 후 잠시 휴식하겠습니다.", }, { message: "퇴근합시다.", }, ]; var timer; class NotificationList extends React.Component { constructor(props){ super(props); this.state = { notifications: [], }; } componentDidMount() { const { notifications } = this.state; timer = setInterval( () => { if (notifications.length < reservedNotifications.length){ const index = notifications.length; notifications.push(reservedNotifications[index]); this.setState({ notifications : notifications }); } else { clearInterval(timer); } }, 5000); } render() { return ( <div> {this.state.notifications.map((notification) => { return <Notification message={notification.message}/>; })} </div> ); } } export default NotificationList; 2. Notification import React from "react"; const styles = { wrapper: { margin: 8, padding: 8, display: "flex", flexDirection: "row", border: "1px solid grey", borderRadius: 16 }, messageText: { color: "black", fontSize: 16 } }; class Notification extends React.Component { constructor(props) { super(props); this.state = {}; } render() { return ( <div style={styles.wrapper}> <span style={styles.messageText}>{this.props.message}</span> </div> ) } } export default Notification; 도와주세요!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하세요 usestate를 객체와 배열로 쓰고 싶은데 질문이 있습니다
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c const [toggle, setToggle] = useState({ toggleArray: [], conToggle: [], addCard: [], }); const target = parseInt(e.currentTarget.getAttribute("data-index")); //이 친구를 setToggle((prev) => { return { ...prev, addCard: [...prev.addCard, target], }; }); // 이렇게 넣을려 하는데 결과값이 addCard : [0,1,2,3,4,5] 이렇게 지속적으로 추가되고 삭제 됐으면 좋겠는데 addCard : [1] > [2] > [3] 이렇게 바뀌는데 위 처럼 할 순 없을까요? 밑처럼 add를 누르면 각 Element가 가진 index 값인 0 ~ 5 가 setState에 적용 됐으면 좋겠는데 배열에 계속 추가가 아니고 변경이 되더라구요
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-c문제 해설에 링크되어있는 정답코드 문제가 다릅니다.
강의에 나와있는 문제 풀이랑 해설지에 리크돼있는 코드가 달라서 확인차 문의 드립니다.코드가 약간 조금 다르네요. 해설지 링크에는 배열을 세개 사용하는 걸로 되어있고 추가된 배열은 안전하지 않은 지역을 표시하기 위한 배열이 하나 더 선언 되는거네요. 맞나요?
-
미해결리눅스 커널 해킹. A부터 Z까지
./boot_sh를 통해 qemu-script 실행 시 커널 실행이 안됩니다.
ubuntu 18 버젼 이상 사용 중이고, 강의에서 진행한대로 설정을 완료하였는데도 ./boot_sh 입력 시 커널 실행이 안되고 있습니다 어떻게 해결해야 할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
템플릿엔진 동작 확인 오류
안녕하세요 강사님 수업을 듣는데 똑같이 따라했는데 저는 실행하면 계속 이렇게 페이지가 뜨지 않습니다 ㅠㅠ 코드 내용은 다음과 같습니다.. 어떤 오류인지 궁금합니다 ㅠㅠ
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
npm과 yarn
안녕하세요! 강의 매우 잘 듣고 있습니다 npm에서 react버전 때문에 발생한 문제가 yarn을 통해서는 해결되는 이유가 뭔지 알 수 있을까요?
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
안녕하십니까 multer-S3 CredentialsError: Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1관련 질문입니다.
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 안녕하십니까 강의 너무 유익하게 잘 보고 있습니다. 다름이 아니라 우분투 EC2인스턴스를 통해 서버와 프론트를 배포했는데 사진 업로드 과정에서 다음과 같은 에러가 계속 발생합니다. 제로초님께서 예전에 관련 내용으로 질문을 받으셨을 때 알려주신 방법인 sudo mkdir ~/.aws sudo vim ~/.aws/credentials 파일을 다음과 같이 작성한 후 인스턴스를 reload해도 같은 에러가 발생합니다. 혹시 어떻게 해결해야할까요? 알려주시면 감사하겠습니다.
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
3:27 리스트를 역순으로는 어떻게 설정해야하나요?
3:27 리스트를 역순으로는 어떻게 설정해야하나요?
-
미해결인공지능 기초수학
강의교안 부탁드립니다.
안녕하세요 이번에 강의를 수강하게 되어 기초가 너무 없어 강의교안 부탁드립니다. 메일 kyj66092@naver.com 감사합니다 ^^
-
미해결홍정모의 따라하며 배우는 C++
&의 쓰임
*의 쓰임이 2가지(1. 포인터 선언 시 포인터임을 나타내는 표시, 2. de-referencing)로 나뉘어지는 것처럼, &의 쓰임도 2가지(1. reference선언 시 reference임을 나타내는 표시, 2. 주소)로 나뉘어진다고 생각해도 될까요? 예를 들어 void addOne(int &y) { cout << &y << endl;} 란 코드가 있을 때, int &y는 reference선언할 때와 같은 쓰임이어서 인자가 reference에 의해 들어오는 거라고 해석하는 것이고, cout 출력할때의 &y는 주소의 쓰임으로 해석하는 것이라고 해도 될까요?