묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결2023년 개인정보보호 법령 제개정 내용 강의
강의자료 어디에있나요?
다른 강의들 같은 경우에는, 별도 첨부파일 다운로드를 위한 강의가 있던데이건 없네요. 다른 글에서도 강의자료 관련 문의가 많은데, 정확한 답변이 없네요.
-
미해결선형대수학개론
row equivalent와 row reduction
강의에서 row equivalent라는 용어는 이제 row reduction을 통해서 얻을 수있다는 것을 1.1에서 설명하셨다고 했는데 강의자료에는 row reduction이 등장하지 않아서요 혹시 왜그런지 알 수 있을까요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
프로젝트 선택 시 Groovy, Kotlin 중 어떤 것을 선택해야 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.섹션2. 서블릿 / 프로젝트 생성 2:10Spring Initializr 에서 프로젝트 선택 시Gradle - Groovy, Gradle - Kotlin 중 어떤 것을 선택해야 하나요?
-
해결됨코딩테스트 [ ALL IN ONE ]
bfs 코드를 공부하면서 트리에서의 levelorder 구현 방식에 대해 질문이 있습니다.
from collections import deque def levelorder(root): if root is None: return visited = [] q = deque() q.append(root) while q: cur_node = q.popleft() visited.append(cur_node.val) if cur_node.left: q.append(cur_node.left) if cur_node.right: q.append(cur_node.right) return visitedlevelorder 코드는 위와 같은데요. 여기서 q.append(root) 를 bfs 코드와 같이 사전에 queue = deque(root)로 미리 넣어줘도 되지 않나요? 이렇게하면 오히려 q.append(root)를 하는데 걸리는 런타임을 더 줄일 수 있을 것 같아서요
-
해결됨비전공자의 전공자 따라잡기 - 데이터베이스,SQL
설정에서 AutoIncrement를 바꿔도 수정이 되지 않습니다.
Row를 지운 후 auto_increment를 설정에서 1로 변경하도록 시도했습니다.아래 사진처럼 적용 완료되었다는 말만 나오고 도로 카운트가 원상복귀 됩니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
'' 따옴표 쓰임 관련 질문이요!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ''따옴표는 보통 문자 기재시, 사용하는 것으로 알고있는데엘리아스 뒤에도 ''따옴표인가요?어떤 책에서는 "" 쌍따옴표를 쓰고,_ 이런 특수문자사용시에 도 ""를 쓰라고해서정확한 사용법을 알려주세요ㅜ
-
미해결
member테이블 정보
delivery테이블에는 address값이 다 들어가 있는데 member테이블에는 address값이 없습니다.왜 이러는지 알려주세요ㅠㅠ
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
fragment에 대하여
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1)fragment라는 게 혹시 이런 걸 말하는 게 맞나요?같은 페이지이고 단순히 스크롤만 내릴 뿐인데도(페이지의 특정 버튼을 누르거나 다른 페이지로 이동하는 것이 아닌데도) 웹 브라우저 URL 창의 끝 부분이 바뀌는 경우가 있는데 그런 걸 말하는 건가요? 2)제가 아는 어떤 외국 사이트의 글을 아래로 스크롤하며 내릴 뿐인데도 URL 주소가 변경되는 경우가 있긴 한데 그 경우엔 #이 아니라 /가 변경되더라고요.https:// ~~~~~~~~~~~/55였다가 스크롤을 더 내리면https:// ~~~~~~~~~~~/76 이런 식으로 바뀌던데 이것도 fragment인가요?
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
섹션 19 Authorization 탭 이용해서 Basic 토큰 보내기 음량 문제
음량이 갑자기 작아진 강의 입니다. 빠른 피드백 감사합니다. 코드팩토리 통합 링크https://links.codefactory.aiFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!
-
미해결[LV3 : 기술편] 게임스킬 만들기 - 기획, 아트 누구나 만드는 블루프린트
강의 자료 다운 문의
안녕하세요. 닻 데이터는 어디서 받을 수 있나요? 현재 버섯 데이터만 받을 수 있는 것 같습니다.
-
미해결
실제 운영중인 유학생 커뮤니티 플랫폼 백엔드 충원
요약중국 한인 유학생을 위한 커뮤니티 플랫폼을 운영중입니다.(에브리타임과 유사)현재 인원: 기획/운영8 프론트1 UI/UX 디자인1모집 인원: 백엔드 n명(미정)모집 역할백엔드참여 시간매주 10시간 이상(상시)소개사이트 링크https://infli.co 진행 상황중국 내 한인 유학생들을 위한 커뮤니티 플랫폼을 운영중입니다.23년 3월부터 기획했고 9월에 개발이 완료되어 9/7에 출시해 약 2달간 운영중이며DAU 200, 일일 조회수 5,000정도 나오고 있습니다.개발 초기에는 4명의 프론트, 4명의 백엔드로 총 8명의 개발자가 있었지만 취업, 개인사정 등의 이유로 그만두셔서 현재 개발총괄 및 프론트인 저와 디자이너님만 남은 상황입니다. 이미 개발이 완료되었기 때문에 유지/보수 및 새로운 기능 추가가 주업무입니다.출시 후부터는 프론트 1명 백엔드 1명으로 충분히 운영이 가능했었지만 백엔드 개발자분이 취업을 하시는바람에 갑작스럽게 충원을 해야하는 상황입니다.이런 분들께 추천드려요이직/취업 준비하는 백엔드 개발자완성도 높은 포트폴리오를 원하는 백엔드 개발자(대규모 협업, 실제 트래픽이 발생하는 서비스 운영)실제 실무와 비슷한 구조를 경험해보고 싶으신 분(기획, 앱 기획, QA 등 개발 플로우가 상세하게 나누어져 있음) 어렵게 생각하지 마시고 편하게 지원해주세요! 0. 인플리만의 장점개발부터 실제 서비스까지 완성형 포트폴리오 구성 가능기획 / 디자인 /백엔드 /프론트엔드 전부 참여하는 프로젝트로 실무와 유사한 환경직접 개발한 플랫폼(개발자)을 실제 유저로부터 피드백 받고 디벨롭 시키는 경험 1. 플랫폼 계획 동기한국에는 에브리타임 어플로 전반적인 학교생활을 관리하고 대학생에게 필요한 정보를 수월하게 얻을 수 있습니다. 하지만 해외대학에 다니는 유학생들은 마땅한 어플이 없어 많은 어려움을 겪고 있습니다.이에 저희는 글로벌 유학생들이 유학생활에 필요한 다양한 정보를 교류하고 대외활동부터 취업까지 연계되는 글로벌 플랫폼을 계획했습니다.2. 플랫폼 기능회원가입/ 로그인, 학교메일을 통한 인증 회원가입/로그인익명 게시판 이벤트 게시판, 취업활동, 중고장터 등 다양한 카테고리 게시판(CRUD 기능)시간표시간표 작성 / 강의별로 후기 작성 이는 MVP 모델에 포함되는 기본 기능입니다. 추후 유저 피드백을 통해 기능을 추가시킬 예정입니다. 3. 모집 인원현재 인원: 기획/운영 8명 백엔드 0명 프론트 1명 UI/UX 1명 모집 인원: 백엔드 n명(미정) 4. 프로젝트 일정4~6월 : MVP 개발 및 출시7월 : 유저 피드백8월 : 피드백 반영/부가 기능 추가9월 : 정식 서비스 출시9월~현재 : 출시 후 운영 중 5. 진행 방식 및 사용 기술 스택매주 1회 정기 회의(프론트, 백엔드 참여)매달 1회 전체 회의(개발자, 기획자, 디자이너 참여) 커뮤니케이션: 슬랙, 디스코드백엔드 : spring, java스프링시큐리티 jwt jpa querydsl redis 젠킨스 소나큐브 checkstyle jacoco 6. 지원 방식카톡 : https://open.kakao.com/o/sY0MqSkf구글 폼 : https://forms.gle/Q5DdkRSumjs96zwq9지원자 선별 완료 시 조기마감 될 수 있습니다. 구글 폼 작성해주시면 지원 완료됩니다.궁금한 사항은 카톡으로 질문 주세요!
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
reduce방식으로 풀어보았습니다.
감사합니다.function solution(array) { let continuous = 0; return array.reduce((pre, current) => { current === 1 ? continuous++ : (continuous = 0); return pre + continuous; }, 0); } console.log(solution([1, 0, 1, 1, 1, 0, 0, 1, 1, 0]));
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
웹 브라우저 요청 흐름에서 TCP/IP 연결 관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! 항상 강의 잘 보고 있습니다. TCP/IP 관련해서 질문드립니다.TCP / IP 패킷의 경우, HTTP 메세지와 IP 패킷(출발지/목적지 IP)와 TCP(출발/목적지 Port, 순서 등)을 합쳐서 패키지로 묶어서 전송한다는 의미에서 IP, TCP 둘을 붙여 쓰는게 이해가 가는데,웹브라우저 요청 과정에서 소캣 라이브러리를 통해 TCP/IP 로 3 way handshake를 실행하여 서버와 연결하는 과정에서 TCP/IP 연결에서 왜 둘을 붙여서 이야기 하는지 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
map을 이용해서 풀어 보았습니다
원본 배열 길이와 반환 배열 길이가 같기 때문에 map 함수를 이용하였고, if else 분기문을 가독성 좋게 switch case를 이용하였습니다.function solution(array, array2) { return array.map((v, index) => { if (v === array2[index]) return "D"; switch (v) { case 1: return array2[index] === 2 ? "B" : "A"; case 2: return array2[index] === 1 ? "A" : "B"; case 3: return array2[index] === 1 ? "B" : "A"; } }); } console.log(solution([2, 3, 3, 1, 3], [1, 1, 2, 2, 3]));
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
포트폴리오 관련 질문 - 오늘 본 상품
안녕하세요. 포트폴리오 작성 중 여러 방법을 시도해 보다 도저히 해결방법을 잘 모르겠어서 질문드립니다.구현하고 싶은 것 : 오늘 본 상품 목록을 다른 페이지에서 구현 하는 것이 아닌 여러 페이지의 본문 영역 옆에 상시 뜨도록 설계 하는 것, recoil을 이용하지 않고 localStorage 를 이용하여 구현하는 것 입니다. 아래 사진은 현재 진행 과정 입니다.아래는 현재 코드입니다sidebar.tsx import { useEffect, useState } from "react"; import * as S from "./sidebar.style"; import type { IUseditem } from "../../../../commons/types/generated/types"; import { LikeFilled } from "@ant-design/icons"; import { getPrice } from "../../../../commons/libraries/price"; export default function SideBar(): JSX.Element { const [items, setItems] = useState<IUseditem[]>([]); useEffect(() => { const storedItems = localStorage.getItem("todaylist"); if (!storedItems) return; setItems(JSON.parse(storedItems)); }, []); return ( <S.SideBarWrapper> <S.SideBarTitle>오늘 본 상품</S.SideBarTitle> {items .filter((el) => el) .map((el) => ( <S.SideBarContents key={el._id}> <S.SideBarP> <LikeFilled style={{ color: "#ffd903" }} /> {el.pickedCount} </S.SideBarP> {el.images && ( <S.SidaBarImg src={`https://storage.googleapis.com/${el.images[0]}`} /> )} <S.SidebarDetail> <S.SideBarName>{el.name}</S.SideBarName> <S.SideBarRemarks>{el.remarks}</S.SideBarRemarks> <S.SideBarPrice>{getPrice(el.price)}</S.SideBarPrice> </S.SidebarDetail> </S.SideBarContents> ))} </S.SideBarWrapper> ); } 문제점useEffect 부분에서 storedItems 가 업데이트 될 때마다, 리렌더링을 해주고 싶어, 종속성 배열에 items state를 넣으니 ⚠ Warning: Maximum update depth exceeded. This can happen when a component calls setState inside useEffect, but useEffect either doesn't have a dependency array, or one of the dependencies changes on every render.관련 오류가 뜹니다. 여러 방법을 시도해도 옳은 방법을 잘 모르겠어서 질문 남깁니다.
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
enum 컬럼 옵션에 대한 질문합니다.
10강의 Typeorm 이론의 EnumColumn에서는 EumColumn에서는 @Column({ type : 'enum', enum : Role, default : Role.USER, }) role: Role;enum에 Role 타입을 enum : Role 이렇게 넣고 11강의 Relations강의에서 Enum Column에서는@Column({ enum : Object.values(RolesEnum), type : 'enum', default : RolesEnum.USER }) role : RolesEnum;옵션에서 enum : Object.values(RolesEnum)로 설정을 하는데 무슨 차이가 있나요?
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
게시판만들다가 질문드립니다
import "./App.css"; import { BrowserRouter, Route, Routes } from "react-router-dom"; import MainPage from "./pages/MainPage"; import Board from "./pages/Board"; import { useEffect } from "react"; function App() { useEffect(() => console.log("app is loading"), []); return ( <BrowserRouter> <Routes> <Route path="/" element={<MainPage />}></Route> <Route path="/board/:bbsId" element={<Board />}></Route> <Route path="/board/:bbsId/new" element={<Board />}></Route> </Routes> </BrowserRouter> ); } export default App; import React, { useEffect, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; // useParams를 import import BoardList from "../pagesComponent/BoardList"; import BoardEdit from "../pagesComponent/BoardEdit"; import BoardView from "../pagesComponent/BoardView"; import Layout from "../layout/Layout"; import axios from "axios"; export const BbsSettingContext = React.createContext(); const Board = () => { const { bbsId } = useParams(); // const [currentUrl, setCurrentUrl] = useState(null); const [boardSettData, setBoardSettingData] = useState(null); useEffect(() => { let mode = window.location.pathname.split("/")[3] == null ? "list" : window.location.pathname.split("/")[3]; console.log(`mode::::::::::::::${mode}`); setCurrentUrl(mode); axios .get("http://localhost:8080/board/" + bbsId) .then((response) => { const boardSettData = response.data.bbsEntity; console.log(boardSettData); setBoardSettingData(boardSettData); }) .catch((error) => console.log(error)); }, [currentUrl]); return ( <BbsSettingContext.Provider value={boardSettData}> {currentUrl == "list" ? ( <Layout> <BoardList /> </Layout> ) : currentUrl == "new" ? ( <Layout> <BoardEdit /> </Layout> ) : currentUrl == "edit" ? ( <Layout> <BoardEdit /> </Layout> ) : currentUrl == "view" ? ( <Layout> <BoardView /> </Layout> ) : ( <BoardList /> )} </BbsSettingContext.Provider> ); }; export default Board; import React from "react"; import { useContext, useHistory } from "react"; import { BbsSettingContext } from "../pages/Board"; import PageNationPage from "./PageNationPage"; import { useNavigate } from "react-router-dom"; const BoardList = () => { const boardSetData = useContext(BbsSettingContext); console.log(boardSetData); const Navigate = useNavigate(); const handleBoardEdit = () => { // 원하는 동작을 수행할 코드를 여기에 추가 console.log("쓰기로 이동"); Navigate("/board/1/new"); }; return ( <div className="BoardList"> <table className="bbsTable"> <colgroup> <col style={{ width: "10%" }} /> <col style={{ width: "40%" }} /> <col style={{ width: "10%" }} /> <col style={{ width: "20%" }} /> <col style={{ width: "10%" }} /> </colgroup> <thead> <tr> <th scope="col">번호</th> <th scope="col">제목</th> <th scope="col">작성자</th> <th scope="col">등록일</th> <th scope="col"> 조회</th> </tr> </thead> </table> <PageNationPage /> <button onClick={handleBoardEdit}>쓰기</button> </div> ); }; export default BoardList; import React from "react"; import { useState, useEffect, useContext } from "react"; import { BbsSettingContext } from "../pages/Board"; const BoardEdit = () => { const boardSetData = useContext(BbsSettingContext); console.log(boardSetData); return <div>BoardEdit</div>; }; export default BoardEdit; 안녕하세요 다름이 아니라 일기장 보고 게시판을 응용해서 만들던 도중에 안되는게 있어서 질문드립니다.http://localhost:3000/board/1이 리스트로 나오는데요 ...거기서 쓰기를 누르면 http://localhost:3000/board/1/new으로 위에 url은 바뀌는데밑에 ui는 전혀 바뀌질 않습니다 .그리고 Board.js에 useEffect쪽에 콘솔로 찍어봐도 들어오지가 않는데 이유를 좀 알수있을까요 ????? 근데 쓰기 버튼말고 그냥 직접 url을 입력하고 enter를 입력하면 이동합니다 .
-
미해결당신을 함께 일하고 싶은 개발자로 만들어 줄 클린 코드 작성법
이해가 잘 안됩니다.ㅠ
개행 할 것앞서 스크롤이 적을수록 코드를 이해하기 좋다고 말씀드렸습니다. 코드 길이가 매우 긴 함수나 호출자 함수로부터 너무 멀리 떨어져 있는 내부 함수를 탐험하기 위해 스크롤이 발생하면 확실히 코드 이해가 오래 걸리고 힘들어집니다.같은 이유로 수평 방향 스크롤도 고려해야 합니다. 큰 모니터를 사용하면 수평 방향 스크롤은 문제 되지 않을 것으로 생각하실 수 있지만 그렇지 않습니다. 코드를 파악하려다 보면 IDE 화면을 분할할 필요가 종종 있습니다. 화면 너비가 반으로 줄어드는 것이죠. 이런 경우에는 모니터 크기가 큰 도움이 되지는 않습니다. 또한, 수직 방향 스크롤을 줄이기 위해 세로로 길쭉한 모니터를 쓰시는 분들도 계십니다. 이런 모니터는 수평 방향 스크롤에 더 취약하겠습니다.제가 독해력이 부족할수도 있는데..어떻게 단점이고 장점이고 무엇을 고려하고 의도하신지 좀 이해가 잘안되서.. 조금만 더 친절한 설명 부탁드립니다!도움 많이 되고 있습니다!
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
깃헙 권한 요청드립니다
인프런 아이디 : sangkipm@gmail.com인프런 이메일 : sangkipm@gmail.com깃헙 아이디 : sangkipm@gmail.com깃헙 username : kimsangkipm
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
타입스크립트 설치파트에서 에러가 납니다.
타입스크립트 설치하고 yarn dev 한 이후, yarn add --dev @types/react @types/node 을 통해추가 설치 ? 를 진행하려고 보니 강사님은 아무 에러 없이 잘 진행 되는 반면에 저는 이러한 에러가 뜹니다... ㅠ