묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨React로 NodeBird SNS 만들기
스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다
안녕하세요 강의를 듣고 디자인을 꾸미는 중에 궁금한 점이 생겨 질문 남깁니다 스타일드 컴포넌트로 css 속성을 주는 것과 className을 통해 css 속성을 적용하는 것에 성능적으로 ( 또는 어떤 부분에서든 ) 차이가 있는지 궁금합니다 (실제 적용되는 css 속성은 생략하였습니다) 1. 스타일드 컴포넌트로만<Wrapper> <Content> 테스트 </Content></Wrapper>const Wrapper = styled.div``const Content = styled.div``2. className을 적용한 css<Wrapper> <div className={'test'}> 테스트 </div></Wrapper>const Wrapper = styled.div` ~ .test { ~ } `
-
미해결'이것이 리눅스다' 저자의 Red Hat CentOS7 리눅스 서버&네트워크 강좌
Server(B) 해상도 조정 알려주시면 감사하겠습니다.
강의 잘 듣고 있습니다. 강사님께서 강좌3장 중 Server(B)의 해상도 조정하는 법을 그냥 지나치셨는데요. 어떻게 하면 되는지 알려주시면 감사하겠습니다. 작은 모니터를 사용하다보니 커맨드라인 화면이 너무 길게 나오네요. ㅜㅜ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
도커 배포시에 image upload 경로 설정
안녕하세요 선생님. 좋은 강의 올려주셔서 많이 배울 수 있었습니다. 이제 이 프로젝트를 도커로 만들어서 배포 해보고 싶어서, docker-compose up을 구글링으로 해보고 있습니다. client와 server를 따로 dockerfile을 만든 후에, compose-up으로 같이 실행하는거까지는 이해가 가는데, 그 후에 upload 디렉토리와 경로를 어떻게 설정해야 할지 모르겠어서 질문남깁니다. 먼저 docker-compose.yaml 파일의 코드는 이렇습니다. version: "3" services: client: build: dockerfile: dockerfile context: ./client volumes: - ./client/:/app - /app/node_modules networks: - backend server: build: dockerfile: dockerfile context: ./server volumes: - ./server/:/app - /app/node_modules environment: - NODE_PATH=src - PORT=5000 - NODE_ENV="production" #안되면 이거 그냥 제거하고 dev모두로 사용 - MONGO_URI='mongodb+srv://<name>:<password>@boilerflate.ynaxn.mongodb.net/<db>?retryWrites=true&w=majority' networks: - backend ports: - "5000:5000" nginx: restart: always build: dockerfile: dockerfile context: ./nginx ports: - '3000:80' networks: - backend networks: backend: driver: bridge volumes: data: driver: local 제가 Node.js와 배포가 처음이라, Nodejs 환경변수 설정하는게 저게 맞는지도 헷갈립니다.. ㅠㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
터미널에 이런 에러가 자꾸 뜨는데 뭘까요..
터미널에 자꾸 이렇게 뜨는데 이게 뭘까요.... 분명 코드는 똑같은데....찾질 못하겠어요 ㅠㅠ 1. getProps created store with state { index: {}, user: { followLoading: false, followDone: false, followError: null, unfollowLoading: false, unfollowDone: false, unfollowError: null, logInLoading: false, logInDone: false, logInError: null, logOutLoading: false, logOutDone: false, logOutError: null, signUpLoading: false, signUpDone: false, signUpError: null, changeNicknameLoading: false, changeNicknameDone: false, changeNicknameError: null, me: null, signUpData: {}, loginData: {} }, post: { mainPosts: [ [Object] ], imagePaths: [], addPostLoading: false, addPostDone: false, addPostError: null, addCommentLoading: false, addCommentDone: false, addCommentError: null } } 3. getProps after dispatches has store state { index: {}, user: { followLoading: false, followDone: false, followError: null, unfollowLoading: false, unfollowDone: false, unfollowError: null, logInLoading: false, logInDone: false, logInError: null, logOutLoading: false, logOutDone: false, logOutError: null, signUpLoading: false, signUpDone: false, signUpError: null, changeNicknameLoading: false, changeNicknameDone: false, changeNicknameError: null, me: null, signUpData: {}, loginData: {} }, post: { mainPosts: [ [Object] ], imagePaths: [], addPostLoading: false, addPostDone: false, addPostError: null, addCommentLoading: false, addCommentDone: false, addCommentError: null } } 4. WrappedApp created new store with withRedux(withReduxSaga(NodeBird)) { initialState: { index: {}, user: { followLoading: false, followDone: false, followError: null, unfollowLoading: false, unfollowDone: false, unfollowError: null, logInLoading: false, logInDone: false, logInError: null, logOutLoading: false, logOutDone: false, logOutError: null, signUpLoading: false, signUpDone: false, signUpError: null, changeNicknameLoading: false, changeNicknameDone: false, changeNicknameError: null, me: null, signUpData: {}, loginData: {} }, post: { mainPosts: [Array], imagePaths: [], addPostLoading: false, addPostDone: false, addPostError: null, addCommentLoading: false, addCommentDone: false, addCommentError: null } }, initialStateFromGSPorGSSR: undefined } HYDRATE { type: '__NEXT_REDUX_WRAPPER_HYDRATE__', payload: { index: {}, user: { followLoading: false, followDone: false, followError: null, unfollowLoading: false, unfollowDone: false, unfollowError: null, logInLoading: false, logInDone: false, logInError: null, logOutLoading: false, logOutDone: false, logOutError: null, signUpLoading: false, signUpDone: false, signUpError: null, changeNicknameLoading: false, changeNicknameDone: false, changeNicknameError: null, me: null, signUpData: {}, loginData: {} }, post: { mainPosts: [Array], imagePaths: [], addPostLoading: false, addPostDone: false, addPostError: null, addCommentLoading: false, addCommentDone: false, addCommentError: null } } }
-
미해결스프링 핵심 원리 - 기본편
안녕하세요 영한님! 영한님의 모든 스프링 강의를 학습하고 있는 수강생입니다!
안녕하세요 영한님 다름이 아니라 제가 이 강의 뿐 아니라 JPA를 비롯하여 영한님의 강의를 전부 듣고 있는데 혹시 영리적 목적이 아닌 개인 학습 정리 목적으로 블로그에 강의 내용을 한번 정리해서 작성해도 괜찮을까요? 혹시 몰라서 확인을 받고자 질문을 남겨놓겠습니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
intelliJ IDEA Community는 Gradle Web 프로젝트 생성을 못하나요?
안녕하세요. IntelliJ IDEA Community에서 New 하여 Gradle에 Web 항목이 없는 것은 익히 알고 있습니다. Ultimate 에는 당연히 있겠지요? 그러면, IntelliJ IDEA Community에서 Gradle로 Web 혹은 Spring MVC 프로젝트 작업은 불가능한 것입니까? 혹은 (제가 아직은 정확히 구분을 못해서 말씀 드리는 것일 수도 있는데) start.spring.io 에서 생성한 Spring Boot project를 활용하면 되는 것일까요?
-
해결됨반응형 웹사이트 포트폴리오(Architecture Agency)
page-scroll-effects-master이 어디 있나요
제 눈이 의심스럽네요.^^; page-scroll-effects-master를 어디서 다운로드 받을수 있을까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문
윈도우 환경에서 사용하고 있는데요 저는 우측에 gradle 뜨지 않는데 제대로 설치가 안된건가요? 1강부터 다시 듣는데 어디서 놓친건지 잘 모르겠습니다
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
안녕하세요 다시 질문드립니다.~~
앞전에 질문내용과 동일한데요. 공단에 문의해 보니까 css3 html5 유효성검사에 오류가 뜨지 않게만 하면 된다고 하던데요. 그럼 플렉서를 써도 되는건가요?
-
미해결파이썬(Python)으로 데이터 기반 주식 퀀트 투자하기 Part1
추후 준비중인 크롤링/업무자동화 강의 문의드립니다
강의 너무 감사드려요 너무잘듣고 있습니다 추후진행될 크롤링/업무자동화강의는 퀀트투자를위한 금융데이터 수집을 위한 강의인가요..? 사실 이부분을 가장듣고싶거든요.. 이부분 꼭 부탁드릴게요!
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
heroku 배포시에 에러 발생
안녕하세요. 선생님께서 올려주신 https://www.youtube.com/watch?v=qdoiwouykAg 강의를 보고 이 앱을 헤로쿠에서 deploy 하는데 아래 에러가 발생합니다. documentation도 찾아봤는데 이유를 모르겠네요... 왜 그러는 걸까요?? 참고로 heroku buildpacks 를 해보았는데 빌드팩이 없다고 뜹니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 생성
안녕하세요. 강의 듣다가 막혀서 질문드립니다. 저는 메인메서드 실행 버튼이 안뜨는데 이런 경우엔 어떻게 해야하나요?
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
.tab2 img{width: }에서 이미지 크기 줄여도 갤러리 이미지 두줄로 됩니다.
.tab2 img{width: }에서 이미지 크기 줄여도 갤러리 이미지 두줄로 됩니다. 어떻게 합니까?
-
미해결자바(javafx) 실전 데스크탑앱 프로젝트 - 유튜브관리앱
이클립스에 오류가 발생합니다.
위 사진과 같은 오류가 발생합니다. 이유를 모르겠네요ㅜㅜ 참고로 이클립스를 설치할 때 자바 jdk8은 경로에 안나와서 jdk11을 설치했습니다. 어떻게 해결해야하나요?? 강의와 관련있는 질문을 남겨주세요.• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)• 서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등) 질문 전달에도 요령이 필요합니다.• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. • 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요! 구체적인 질문일수록 명확한 답을 받을 수 있어요.• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다. 기본적인 예의를 지켜주세요.• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. • 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. • 반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다.
-
해결됨인터랙티브 웹 개발 제대로 시작하기
카드 애니메이션 IE에서 실행되게 하는 법
안녕하세요. 카드 3D 애니메이션을 IE에서 실행되게 할 때 선생님께서 문서구조를 바꾸셨는데 그럼 하나의 html 파일에서 대응하게 하는 건 어려울까요? 강의를 듣다 궁금해서 질문 남깁니다. 크로스 브라우징 너무 어렵네요ㅜ
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
Link를 사용하지 않고 a tag를 사용하는 이유
선생님의 이전까지의 모든 연관 로드맵을 보고 react와 node로 실질적인 어플리케이션을 구성하는 법을 공부해왔습니다. 많은 것을 배웠고 감사함을 갖고 있습니다. 제가 선생님 강의를 보면서 늘 궁금했던 점이 react-router-dom에서 제공해주는 라이브러리인 Link를 사용하지 않고 a tag를 사용하셨는데, a tag를 사용할 경우 컴포넌트를 이동할 경우 리덕스의 state가 초기화 되는 것으로 알고 있습니다. 이를 방지하기 위해 Link를 쓰는것으로 알고 있고요 실무에서는 a tag를 사용해서 구현하나요, 아니면 웹페이지의 성격상 리덕스가 초기화 되도 큰 문제가 없기에 a tag를 사용한 것인가요? 선생님께서는 Link와 a tag중 어떤것을 권장하시는지도 궁금합니다. 늘 감사합니다 선생님!
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
component library 선택 질문
안녕하세요 캡틴! 한가지 질문이 있습니다. vue를 사용하면 css에 대한 고민을 줄이기 위해서 보통 material framework? component library 같은 걸 이용하잖아요? 시간을 아끼기 위해서 프레임워크 중 하나를 선택해 사용하려고 하는데 혹시 추천해줄 만한 게 있을까요? 예를 들면 quasar, vuetify, vue-material, element-ui 같은 거요!
-
미해결Vue.js 시작하기 - Age of Vue.js
컴포넌트 property 재사용
각각의 컴포넌트가 data를 공유하지 않기 위해 함수형태로 정의를 해야한다 하셨는데, 반대로 말하면 객체 형태로 정의한 property들은 재사용이 된다는 이야기군요? methods나 computed처럼요.
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 편의 메서드 위치에 관련한 질문입니다.
다대일 관계에서 다쪽에 편의 메서드가 존재하는 경우 아래처럼 setter없이 =연산자와 add메서드를 통해 설정이 가능합니다. public class Member{ private Team team; public void setTeam(Team team) { this.team = team; team.getMembers().add(this); } // ... } 그런데 일쪽에 편의 메서드가 사용되면 public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this);} 이런식으로 setter를 사용할 수밖에 없습니다. (물론 위에 set팀도 setter메서드를 정의한 것이긴 하지만) 제가 이런 질문을 하는 이유는 영한님께서 강의마다 하시는 말씀중에 setter은 가능하면 열어두지 말고 따로 비즈니스 로직을 위한 메서드를 정의해서 사용하는 것이 좋다고 하셨기 때문입니다. 하지만 연관관계 편의 메서드를 위해서는 setter가 필수불가결해보이는데, 이렇게 부분적으로 열어두는 경우는 괜찮은 것인지요?
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
RightMenu.js에서 useSelect 질문있습니다
if (user.userData && !user.userData.isAuth) { return ( <Menu mode={props.mode}> <Menu.Item key="mail"> <a href="/login">Signin</a> </Menu.Item> <Menu.Item key="app"> <a href="/register">Signup</a> </Menu.Item> </Menu> ) 이와 같은 코드에서 landing page로 첫 로딩이 됬을 경우, user_reducer.js 파일에서 state의 초기값을 빈객체로 하였기 때문에 처음에는 빈 객체가 출력되고 dispatch한 action값으로 state값이 변경되는 구조이잖아요 위 사진과 같이 빈 객체일 시점에, if(user.userData && user.userData.isAuth)를 쓰면 user.userData가 없는 property에 접근하기에 에러가 발생한다고 생각했는데, undefined가 되네요. 그렇다면 똑같이 빈 객체일 시점에서, user.userData.isAuth를 하면 에러가 발생하네요. 이 둘은 자바스크립트의 객체의 문법적인 특징인가요?? 혹시 참고할만한 자료같은게 있으면 부탁드리겠습니다 항상 강의 잘 보고 있습니다. 늘 다음 강의가 기다려지는 강의 감사합니다!