묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
yarn generate오류
$ yarn generateyarn run v1.22.19$ graphql-codegen✔ Parse Configuration⚠ Generate outputs ❯ Generate to ./src/commons/types/generated/typed.ts ✔ Load GraphQL schemas ✔ Load GraphQL documents ✖ Cannot use GraphQLObjectType "BoardReturn" from another module or realm. Ensure that there is only one instance of "graphql" in the node_modules directory. If d…error Command failed with exit code 1.info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. practice로 주소를 변경하고 yarn generate를 실행하는데 자꾸 위와같은 오류가 납니다 ㅠㅠ
-
해결됨[코드캠프] 시작은 프리캠프
파이널 과제 onkeyup="onchange()" 관련 질문
안녕하세요파이널 과제를 한 후 레퍼런스와 검토 중인데요,1/ 수업시간엔 changeFocus()로 알려주셨는데, 굳이 onchange="changePhone2()" onkeyup="onchange()" 로 사용된 이유가 있을까요? 굳이 두개로 나눠서 사용한 이유가 궁금합니다.2/ 해당 코드가 "키보드를 눌렀다 때면 onchange함수를 실행시켜줘. onchange는 changePhone함수를 실행시킨다는 의미야," 라는 의미일까요? 찾아봤지만 명쾌하게 이해가 되지 않아 질문합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1-k
http://boj.kr/fe656adfc64b4439972395d07af40ff6결국 못풀어서 선생님꺼보고 생각하면서 작성하며이것저것 바꿔보고있는데요 insert부분에서 begin은 어차피 0이니 지우고 사이즈만 반으로 나눠도 될것같은데 오류가 나더라구요위치를 반환하는거니 시작위치 + 사이즈만큼의 위치를 반환하는거로 생각되는데 맞게 이해하고있는건가요?
-
해결됨스프링 시큐리티 OAuth2
OpenId Provider와 인가서버의 차이에 대해 질문드립니다.
안녕하세요 강사님.매번 너무나도 좋은 강의 감사드립니다. 강의 내용 중 OIDC 부분을 학습하다 궁금증이 생겨 질문드립니다.위의 이미지는 제공해주신 ppt 자료 중 96번 슬라이드의 내용입니다. 이전 내용에서 OIDC를 사용하지 않는 클라이언트의 요청을 확인하여 액세스 토큰을 발급하는 주체는 인가 서버라고 설명을 해 주셨는데 위의 이미지에서는 OP가 ID토큰과 액세스 토큰을 발급한다고 설명을 해 주셨습니다. 혹시 OIDC를 사용하는 경우에는 OpenID Provider가 인가 서버의 역할을 같이 하는 것이라고 생각해도 될까요?감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
c++ 자료구조stl은 struct도 지원되나요?
int, pair<?,?> 이런것 만 지원되나요?struct의 stack이나 queue는 직접 구현 해야 되나요?
-
미해결초보를 위한 도커 안내서
wordpress 에러- Error establishing a database connection
강의 환경은 MAC이나 저의 실습 환경은 CentOS여서 생긴 에러입니다.host.docker.internal 을 Linux 환경에서 사용하기 위해서는 아래와 같이 실행하시면 정상적으로 워드프레스 동작합니다.mysql 실행하기docker run -d \ --add-host=host.docker.internal:host-gateway \ -p 3306:3306 \ -e MYSQL_ALLOW_EMPTY_PASSWORD=true \ --name mysql \ mariadb:10.9 mysql 데이터베이스 추가docker exec -it mysql mysql create database wp CHARACTER SET utf8; grant all privileges on wp.* to wp@'%' identified by 'wp'; flush privileges; quit 워드프레스 블로그 실행하기docker run -d -p 8080:80 \ --name wordpress \ --add-host host.docker.internal:host-gateway \ -e WORDPRESS_DB_HOST=host.docker.internal \ -e WORDPRESS_DB_NAME=wp \ -e WORDPRESS_DB_USER=wp \ -e WORDPRESS_DB_PASSWORD=wp \ wordpress--add-host host.docker.internal:host-gateway해당 옵션을 mysql/wordpress docker 실행 시 붙여주시면 됩니다. 오류나시는 분들께 도움되셨으면 좋겠습니다.
-
해결됨부트캠프에서 알려주지 않는 것들 (리액트) 1편
TDD - Green, Red, Refactor
안녕하세요. TDD의 Green, Red, Refactor 파트(9:40)에서리팩터링을 진행하시면서 onPageNumberClick 함수를 useCallback으로 감싸서 렌더링이 다시 될때 이 함수가 두번 생성되지 않도록 한다고 하셨는데이 부분이 잘 이해가 가지 않아서요. 설명해주신걸로 유추해보면 useCallback으로 감싸면 함수가 한번만 생성되는 것 같은데 useCallback을 사용했을때와 사용하지 않았을 때 차이에 대해서 조금 더 설명해주실 수 있을까요?
-
해결됨[코드캠프] 강력한 CSS
mac 화면 분할 질문
안녕하세요 슨새임.강의 너무 잘듣고있어요 감사합니다.혹시 mac 화면 분할 하실때 어떻게 하신건지 알려주실수 있나요..? 평생 수동으로 화면 창 크기 조절하면서 한 화면에 여러 창 띄웠는데 선생님 화면 보니까 되게 편해보이더라구요. 앱 설치하신건가요??
-
미해결
git hub 에서 helm chart repository 등록시 에러
안녕하세요 github를 제 서버에서 설치한후 helm chart 생성하여 upload 까지 확인하였는데요helm repo add 수행시 다음과 같은 에러가 발생됩니다.helm repo add test https://gitlab.staging.com/test/test-helm/Error: looks like "https://gitlab.staging.com/test/test-helm/" is not a valid chart repository or cannot be reached: Get "https://gitlab.staging.com/test/test-helm/index.yaml": dial tcp: lookup gitlab.staging.com on 127.0.0.53:53: no such hostIP 입력시에는 다음과 같은 에러가 발생됩니다.helm repo add test https://175.45.211.141/test/test-helm/Error: looks like "https://175.45.211.141/test/test-helm/" is not a valid chart repository or cannot be reached: Get "https://175.45.211.141/test/test-helm/index.yaml": tls: failed to verify certificate: x509: cannot validate certificate for 175.45.211.141 because it doesn't contain any IP SANs해결 방안 가능하실까요?답변 주시면 감사하겠습니다.
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
최상단 import 자동화
안녕하세요, 강의 영상을 보면 Body나 Param를 입력하면 맨 위에 import가 자동으로 되던데 vsc extension의 기능인가요?
-
해결됨홍정모의 따라하며 배우는 C언어
코딩 중 발생하는 warning에 대해서
visual stduio로 코딩 후 컴파일을 하면 대체로 "No issues found"가 표시되기도 하지만, 노란색으로 warning이 뜨기도 해요.혹시 이렇게 뜨는 warning은 모두 필수적으로 제거해야 하나요?
-
미해결
아마추어 음악 서바이벌 예능을 방송한다네요.
쇼퀸은 TV조선에서 방영하는 여성을 위한 노래 오디션 프로그램인데, 이 프로그램은 10세에서 54세까지의 대한민국 국적을 가진 여성이라면 누구나 참여 가능하며, X세대, Y세대, Z세대를 구분해 각 세대의 노래를 통한 대결과 통합의 과정을 보여주는게 특징이랍니다! 뭐 일반적인 경우와는 좀 다른 것 같긴합니다. 그리고 쇼퀸 MC는 장성규와 장민호가 MC를 맡아, 여성의 꿈과 노래를 선보이는 이 곳에서 실력 있는 뉴페이스의 탄생을 기대하고 있습니다. 쇼퀸 방송이 상당히 기대되네요후우... 요즘 AI 때문에 머리가 복잡한게 많은데 조금 여유롭게 즐기는 시간을 갖긴 해야겠어요.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1 모의문제 질문
문제1에서 df = df[:int(len(df) * 0.7)] 부분을df = df.loc[:int(len(df) * 0.7)] 로 코딩했더니 답이 다르게 나옵니다. loc는 인덱스가 50이 있는 행까지만 출력되기에 70%의 데이터개수를 할때는 loc가 부적합한건가요? 문제2에서 df = df.dropna(subset=['f1']) 부분을 저는 df = df['f1'].dropna() 라고 코딩했더니 df.shape이 (69,) 로 나옵니다. df = df['f1'].dropna() 이건 해당 컬럼에 결측치가 있는 행을 삭제하는게 아닌가요?
-
해결됨스프링 핵심 원리 - 기본편
싱글톤 적용이 안된 이유가 궁금합니다.
@Test void configurationTest(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); MemberServiceImpl memberService = ac.getBean("memberService", MemberServiceImpl.class); OrderServiceImpl orderService = ac.getBean("orderService", OrderServiceImpl.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); //모두 같은 인스턴스를 참고하고 있다. System.out.println("memberService -> memberRepository = " + memberService.getMemberRepository()); System.out.println("orderService -> memberRepository = " + orderService.getMemberRepository()); System.out.println("memberRepository = " + memberRepository); assertThat(memberService.getMemberRepository()).isSameAs(memberRepository); assertThat(orderService.getMemberRepository()).isSameAs(memberRepository); } @Configuration public class AppConfig { @Bean public MemberService memberService(){ System.out.println("call AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService(){ System.out.println("call AppConfig.orderService"); return new OrderServiceImpl( memberRepository(), discountPolicy() ); } @Bean private static MemberRepository memberRepository() { System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean private static DiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } } 실행 결과call AppConfig.memberServicecall AppConfig.memberRepositorycall AppConfig.orderServicecall AppConfig.memberRepositorycall AppConfig.memberRepositorymemberService -> memberRepository = MySpringStudy.core.v4.member.MemoryMemberRepository@30c93896orderService -> memberRepository = MySpringStudy.core.v4.member.MemoryMemberRepository@59a008bamemberRepository = MySpringStudy.core.v4.member.MemoryMemberRepository@338c99c8java.lang.AssertionError: Expecting actual: MySpringStudy.core.v4.member.MemoryMemberRepository@30c93896and: MySpringStudy.core.v4.member.MemoryMemberRepository@338c99c8to refer to the same object 강의에서 진행하신대로 스프링 컨테이너에서 빈을 주입받아서 사용했는데, 싱글톤으로 실행되지 않는 이유가 뭔지 궁금합니다..
-
미해결스프링 핵심 원리 - 기본편
오류가 발생한 이유와 해결된 이유 이게 맞나요??
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]1. @RequiredArgsConstructor 로 인해 생성자가 호출된다. - 변수(LogDemoService logDemoService, MyLogger myLogger)2. MyLogger 는 @Scope("request") 로 인해 요청이 들어오지 않은 상태라 에러가 발생한다.3. ObjectProvider<MyLogger> 를 변수로 변경을 해주어서 오류를 잡아준다. - MyLogger Bean 은 이미 컨테이너에 등록이 되어 있고 Provider 를 통해 새로운 빈을 만들어준다. 오류가 위와 같은 순서로 발생한게 맞나요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
apply addative 안되는 문제
착지 애니메이션과 locomotion 혼합시 영상처럼 돼버립니다.. ㅜㅜ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
NicknameEditForm, FollowList가 렌더되지 않습니다
안녕하세요. 강의 잘 듣고 있습니다.현재 섹션 1까지 모두 수강하였습니다. 다만 제목과 같이 NicknameEditForm, FollowList 구현부터 웹에 렌더가 되지 않아 진도가 막힌 상태입니다...ㅜㅜantd나 스타일 컴포넌트의 문제 같아 환경설정도 변경해보고 VS code를 재다운로드하거나 버전별로 테스트 해보기도 했는데 아직 해결 방법을 찾지 못한 상태입니다. 코드 실행한 결과입니다. 회원 정보 카드 옆에 닉네임 수정 폼이나 팔로우 리스트가 생성되어야 하는데 전혀 뜨질 않네요. 혹시 어떤 해결 방법이 있을까요?아래는 환경과 작성한 코드입니다.{ "name": "react-nodebird-front", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "next" }, "author": "kde", "license": "ISC", "dependencies": { "@ant-design/icons": "^5.1.3", "antd": "^4.3.1", "next": "^9.5.5", "prop-types": "^15.8.1", "react": "^17.0.2", "react-dom": "^17.0.2", "react-test-renderer": "^17.0.2", "styled-components": "^5.3.11" }, "devDependencies": { "eslint": "^8.41.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-react": "^7.32.2", "eslint-plugin-react-hooks": "^4.6.0" } }import React, { useCallback } from 'react'; import { Avatar, Button, Card } from 'antd'; const UserProfile = ({ setIsLoggedIn }) => { const onLogOut = useCallback(() => { setIsLoggedIn(false); }, []); return ( <Card actions={[ <div key="twit">짹짹<br/>0</div>, <div key="following">팔로잉<br/>0</div>, <div key="following">팔로워<br/>0</div>, ]} > <Card.Meta avatar={<Avatar>test</Avatar>} title="test" /> <Button onClick={onLogOut}>로그아웃</Button> </Card> ); }; export default UserProfile;import React, { useMemo } from "react"; import { Form, Input } from 'antd'; const NicknameEditForm = () => { return ( <Form style={{ marginBottom: '20px', border: '1px solid #d9d9d9', padding: '20px' }}> <Input.Search addonBefore="닉네임" enterButton="수정"/> </Form> ); }; export default NicknameEditForm;import React from "react"; import PropTypes from 'prop-types'; import { Button, List, Card } from 'antd'; import { StopOutlined } from '@ant-design/icons'; const FollowList = ({ header, data }) => { return ( <List style={{ marginBottom: '20px' }} grid={{ gutter: 4, xs: 2, md: 3 }} size="small" header={<div>{header}</div>} loadMore={<div style={{ textAlign: 'center', margin: '10px 0' }}><Button>더보기</Button></div>} bordered dataSource={data} renderItem={(item) => ( <List.Item style={{ marginTop: '20px' }}> <Card actions={[<StopOutlined key="stop"/>]}> <Card.Meta description={item.nickname}/> </Card> </List.Item> )} /> ); }; FollowList.propTypes = { header: PropTypes.string.isRequired, data: PropTypes.array.isRequired, }; export default FollowListimport React, { useState } from 'react'; import PropTypes from 'prop-types'; import Link from 'next/link'; import { Menu, Input, Row, Col } from 'antd'; import UserProfile from '../components/UserProfile'; import LoginForm from '../components/LoginForm'; // const SearchInput = styled(Input.Search)` // vertical-align: middle; // `; const AppLayout = ({ children }) => { const [isLoggedIn, setIsLoggedIn] = useState(false); return ( <div> <Menu mode="horizontal"> <Menu.Item> <Link href="/"><a>노드버드</a></Link> </Menu.Item> <Menu.Item> <Link href="/profile"><a>프로필</a></Link> </Menu.Item> <Menu.Item> <Link href="/signup"><a>회원가입</a></Link> </Menu.Item> <Menu.Item> <Input.Search enterButton style={{ verticalAlign: 'middle' }}/> </Menu.Item> </Menu> <Row gutter={8}> <Col xs={24} md={6}> {isLoggedIn ? <UserProfile setIsLoggedIn={setIsLoggedIn}/> : <LoginForm setIsLoggedIn={setIsLoggedIn}/>} </Col> <Col xs={24} md={12}> </Col> <Col xs={24} md={6}> <a href="http://google.com" target="_blank" rel="noreferrer noopener">메인화면</a> </Col> </Row> </div> ); }; AppLayout.propTypes = { children: PropTypes.node.isRequired, }; export default AppLayout;import React, { useState, useCallback, useMemo } from 'react'; import { Form, Input, Button } from 'antd'; import Link from 'next/link'; import PropTypes from 'prop-types'; import styled from 'styled-components'; import useInput from '../hooks/useInput'; // const ButtonWrapper = styled.div` // margin-top: 10px; // `; // const FormWrapper = styled(Form)` // padding: 10px; // `; function LoginForm({ setIsLoggedIn }) { const [id, onChangeId] = useInput(''); const [password, onChangePassword] = useInput(''); // const style = useMemo(() => ({ marginTop: 10 }), []); const onSubmitForm = useCallback(() => { console.log(id, password); setIsLoggedIn(true); }, [id, password]); return ( <Form onFinish={onSubmitForm} style={{ padding: '10px' }}> <div> <label htmlFor="user-id">아이디</label> <br /> <Input name="user-id" value={id} onChange={onChangeId} required /> </div> <div> <label htmlFor="user-password">비밀번호</label> <br /> <Input name="user-password" type="password" value={password} onChange={onChangePassword} required /> </div> <div style={{ marginTop: '10px' }}> <Button type="primary" htmlType="submit" loading={false}>로그인</Button> <Link href="/signup"><a><Button>회원가입</Button></a></Link> </div> </Form> ); } LoginForm.propTypes = { setIsLoggedIn: PropTypes.func.isRequired, } export default LoginForm;/* eslint-disable react/jsx-no-undef */ /* eslint-disable no-unused-vars */ import React from 'react'; import Head from 'next/head'; import AppLayout from '../components/AppLayout'; import NicknameEditForm from '../components/NicknameEditForm'; import FollowList from '../components/FollowList'; const Profile = () => { const followerList = [{ nickname: 'test1' }, { nickname: 'test2' }, { nickname: 'test3' }]; const followingList = [{ nickname: 'test1' }, { nickname: 'test2' }, { nickname: 'test3' }]; return ( <> <Head> <title>내 프로필 | NodeBird</title> </Head> <AppLayout> <NicknameEditForm/> <FollowList header="팔로잉 목록" data={followingList}/> <FollowList header="팔로워 목록" data={followerList}/> </AppLayout> </> ); }; export default Profile;
-
미해결Jupyter Notebook으로 시작하는 Python
위에 두분과 동일한 문제를 겪고 있습니다...
저도 파일좀 보내주실수 있으실까요? gudtjs24@naver.com 튜토리얼 알집 다운로드 시 위에 질문 해주신 두분처럼 안에 파일이 없어요...
-
미해결Slack 클론 코딩[실시간 채팅 with React]
useSelector가 초기값만 읽고, 상태변화를 읽지못함
안녕하세요. 선생님늦은 시간인데도 답변해주셔서 감사합니다(꾸벅)선생님께서 말씀해주신대로 useSelector를 써봤는데요.useSelector가 초기값만 읽고, updateReducer에 의해 상태가 업데이트되면,업데이트 된 값을 읽지 못합니다....1. console.log(title)이라고 썼는데, 아무것도 뜨지 않습니다2. Modal 컴포넌트에 제목을 입력을 해도 상태 변화를 읽지를 못합니다.어디서 잘못 된걸까요??const TodoItem = () =>{ const [state, dispatch] = useReducer(checkReducer, todoItem) const id = useSelector((state)=> state.update.id); const title = useSelector((state)=> state.update.title) const content = useSelector((state)=> state.update.content); const isDone = useSelector((state)=> state.update.isDone) const handleCheck = (id) =>{ dispatch(checkBox(id)); }; console.log(title) return( <SeveralItemContainer> <TodoItemContainer key={id}> <TitleContainer> <img className ="dot" src={dot} alt="icon"></img> <div className="title">{title}</div> <img onClick={ () => {handleCheck(id)}} className="noncheck" src = {isDone ? check: noncheck} alt="icon"></img> </TitleContainer> <div className="contentcontainer"> <div className="content">{content}</div> </div> </TodoItemContainer> </SeveralItemContainer> ) }; export default TodoItem; export const updateReducer = (state=initialState, action)=>{ switch(action.type){ case 'UPDATE_TITLE': return{...state, title: action.payload}; case 'UPDATE_STARTDATE': return{...state, startDate: action.payload}; case 'UPDATE_ENDDATE': return{...state, endDate:action.payload}; case 'UPDATE_CONTENT': return {...state, content: action.payload}; case 'ADD_ITEM': return {...state, id: Number(state.id)+1} //여기서 todoItem을 바로 쓸 수 없다. state나 action관련된 변수만 넣어야 한다 // 배열은 가능하지만, 객체는 전개연산자(...)를 쓸 수 없다 default: return state; } }; const rootReducer = combineReducers({ update: updateReducer, check: checkReducer, }); export default rootReducer; const Modal = ({onClick}) =>{ const [state, dispatch] = useReducer(updateReducer, initialState) const handleModalClick = (e) => { e.stopPropagation(); // 이벤트 버블링 막기 }; //사용자가 입력한 값을 추적하는 함수 const handleInputChange = (e) =>{ const {name, value} = e.target; dispatch({type: `UPDATE_${name.toUpperCase()}`, payload: value}) }; //클릭으로 적은 모든 내용을 한번에 전달 const addItem = () =>{ dispatch({type:'ADD_ITEM'}); }; return( <ModalBackGround onClick={onClick}> <ModalView onClick={handleModalClick} > <div className = "titleContainer"> <img className="dot" src = {dot} alt="icon"></img> <input value ={state.title} name = "title" className="title" placeholder="메모 제목" onChange={handleInputChange}></input> <img onClick={addItem} className="edit" src={edit} alt="icon"></img> </div> <div className="date"> <div className='일자'>일자</div> <input value ={state.startDate} name ="startDate" className ="start" placeholder="시작일" onChange={handleInputChange}></input> <div>~</div> <input value ={state.endDate} name= "endDate" className ="end" placeholder="종료일" onChange={handleInputChange}></input> </div> <div className='contentContainer'> <textarea value ={state.content} name ="content" className ="content" placeholder="메모" onChange={handleInputChange}> </textarea> </div> </ModalView> </ModalBackGround> ) }; export default Modal;
-
미해결
DTO에서 문제가 생겼습니다.
코드 1.@Getter @Builder public class ConnectionRequest { @NotNull(message = INVALID_CONNECTION_CODE_PATTERN) @Pattern(regexp = CONNECTION_CODE_PATTERN, message = INVALID_CONNECTION_CODE_PATTERN) private String connectionCode; @NotNull(message = INVALID_DATE_PATTERN) @DateTimeFormat(iso = ISO.DATE) @Past(message = INVALID_FIRST_DATE_RANGE) private LocalDate firstDate; public ConnectionServiceRequest toConnectionServiceRequest() { return ConnectionServiceRequest.builder() .connectionCode(connectionCode) .firstDate(firstDate) .build(); } } 코드 2.@Getter @Builder public class FirstDateRequest { @NotNull(message = INVALID_DATE_PATTERN) @DateTimeFormat(iso = ISO.DATE) @Past(message = INVALID_FIRST_DATE_RANGE) private LocalDate firstDate; public FirstDateServiceRequest toFirstDateServiceRequest() { return FirstDateServiceRequest.builder() .firstDate(firstDate) .build(); } }코드 1을 @RequestBody를 사용해 요청을 보냈을 때는 정상적으로 작동하지만,코드 2를 @RequestBody를 사용해 요청을 보냈을 때는 '(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)' 오류가 발생하게 됩니다.조금 알아본 결과, JSON을 파싱하는 라이브러리 에서는 기본 생성자가 필요해서 코드 2에 기본 생성자가 없어서 발생한 오류인 것 같지만,그러면 코드 1도 오류가 발생해야 하는 것 아닌가요?