묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결모든 개발자를 위한 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 을 통해추가 설치 ? 를 진행하려고 보니 강사님은 아무 에러 없이 잘 진행 되는 반면에 저는 이러한 에러가 뜹니다... ㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-A 질문있습니다.
안녕하세요.제가 순열이 아닌 방법으로 풀었는데 이렇게 풀어도 괜찮을지 궁금해서 질문드립니다. 시간 효율은 개선되었다고 판단되지만 메모리가 많이 낭비되는 것 같고 코드가 긴 것 같습니다. http://boj.kr/a908b9d0967c46b9bfa2fb0f545f6073 감사합니다.
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
fragment 질문
fragment는 메모리를 사용하니까 직접 화면에 그리는것보다 빠른 건가요?그렇다면 메모리 속도 > 화면 그리는 속도 라고 봐도 될까요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
4-2 type1 작업형1 6번 문제 문의드립니다.
안녕하세요, 수강생입니다.학습 중에 궁금한 사항이 있어 문의글 남깁니다. 문제6 (데이터는 members.csv)'age' 컬럼의 이상치(소수점 나이와 음수나이, 0포함)를 제거하고제거 전 후의 views 컬럼 표준편차를 더하시오 (최종 결과 값은 소수 둘째자리까지 출력, 셋째자리에서 반올림) [ 풀이 코드 ]# 풀이 import pandas as pd df = pd.read_csv("members.csv") r1 = df['views'].std() cond = df['age'] <= 0 # print(df.shape) df = df[~cond] # print(df.shape) # print(df.shape) cond = df['age'] == round(df['age'],0) df = df[cond] # print(df.shape) r2 = df['views'].std() print(round(r1 + r2, 2))답은 : 8420.69 가 나왔고, [ 저의 코드 ]import pandas as pd df = pd.read_csv('members.csv') # print(df.head()) # print(df['age']) r1 = df['views'].std() df['age'] = df['age'] > 0 df['age'] = df['age'] == round(df['age'],0) r2 = df['views'].std() print(round(r1+r2, 2))저의 답은 8341.72 가 나왔는데.... 저의 질문은 'age' 컬럼의 이상치를 제거하면 제거한 값을 'age' 컬럼에 그대로 덮어쓰고 코드를 작성하는게 맞을 것 같은데 풀이는 cond 라는 변수로 받고 전체 df 데이터에 이상치 제거 값을 덮어쓰셨더라구요.어떠한 차이가 있는지 궁금합니다..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
transform 이해가 안돼요
cols = ['neighbourhood_group', 'neighbourhood', 'room_type'] from sklearn.preprocessing import LabelEncoder for col in cols: le = LabelEncoder() train[col] = le.fit_transform(train[col]) test[col] = le.transform(test[col]) train[cols]마지막에 train[col]이 아니고 train[cols]에 담긴게 이해가 안돼요 cols에서 꺼내서 col에 담았고.. for문 아래에도 col에 담았는데 왜 최종적으로는 cols에 담긴거예요??
-
미해결따라하면서 배우는 3D Human Pose Estimation과 실전 프로젝트
[긴급] 강의자료 링크 깨짐
제공된 강의링크가 깨졌습니다! 필요한 강의 자료https://drive.google.com/file/d/1eeCo0WKkh1t0v6o_4lIOhR59SzKYUoX9/view?usp=share_link
-
미해결[리뉴얼] 타입스크립트 올인원 : Part2. 실전 분석편
Module '"axios"' has no default export 에러 나시는분들
다른 질문에 제로초님께서 재설치나, 컴퓨터 재부팅 하면 해결 된다고 답변이 있지만, 그래도 해결 되지 않아서 저는 다음과 같은 시도를 했습니다.환경: vscode, 맥북 node_modules와 package-lock.json을 삭제 한 후 npm clean cache를 한 후 axios를 재설치를 하였는데도 에러가 남.재설치, 컴퓨터 재부팅 해도 에러가남.해결방법을 찾은건 공식문서 npm에서 찾았습니다.https://www.npmjs.com/package/axios/v/1.3.1대충 읽어보니까 Typescript에서 사용 할려면 tsconfig.json에 옵션을 넣어줘야 하는듯 합니다."moduleResolution": "Node16"이거 추가 하니까 해결됬습니다!
-
미해결[웹 개발 풀스택 코스] HTML&CSS 기초
뉴 파일 생성 안됨
안녕하세요, 부트캠프부터 뉴파일이 생성이 안돼서 시작을 못하고 있습니다ㅜ 이럴 땐 어떻게 해야할까요?
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
인터럽트와 이벤트의 차이?
안녕하세요 강사님. 항상 수업 유익하게 잘 듣고있습니다.인터럽트 강의를 듣다가 궁금한 부분이 있어서요 이벤트 기반의 프로그램을 작성하게되는 경우에 mouse click 이벤트는 하드웨어 인터럽트와 동일한거 같고html body onload는 소프트웨어 인터럽트와 동일한거 같다고 생각하는데요 그럼 이벤트와 인터럽트는 같은 의미라고 봐야되는걸까요??구글링 해보면 다르다고 하는데 내용이 이해가 되지 않아서요..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트에서 @Transactional 을 붙히지 않으면 왜 일차캐시가 작동하지 않을까요?
@Service @RequiredArgsConstructor public class MemberService { private final MemberRepository memberRepository; @Transactional public void signUp(Member member){ memberRepository.save(member); } public Member findOne(Long id){ return memberRepository.findById(id).orElseThrow(); } } @Test void signUp() { Member member1 = Member.builder() .userId("user1") .birthDay(LocalDate.now()) .password("pass") .email("aa@bb.cc") .build(); memberService.signUp(member1); Member member2 = memberService.findOne(member1.getId()); assertThat(member1).isEqualTo(member2); } 트랙잰션이 Memberservice에서 signUp을 완료 하고 트랜잭션이 끝난다고 영속성 컨텍스트가 비워지지 않다고 이해 했는데 왜 같은 id 값으로 다시 찾을 때 동일성을 보장하지 않는걸까요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이렇게해도 괜찮은걸까요?
(사진)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
test 예측에서 에러는 뭘까요...
(사진)
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
이직 시 포폴은 어느정도로 준비하면 될까요?
서버 개발자로 2년 근무 후 현재 퇴사 후 포폴 준비 중인데 포폴은 어느정도로 준비하면 되나요?현재 클라이언트는 따로 없는데 콘솔로 채팅 서버 정도로 충분 할까요??아니면 서비스를 염두해 두는 것까지 준비를 해야 할까요? 간단한 클라이언트 작업을 하는게 낫나요?