묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨개발자를 위한 쉬운 도커
commit 예제에서 -c 'CMD ["nginx", "-g", "daemon off;"]'가 필요한 이유가 궁금합니다.
이미지 커밋 예제를 보면 docker commit -m "edited index.html by devwiki" -c 'CMD ["nginx", "-g", "daemon off;"]' officialNginx (개인레지스트리명)/commitnginx를 통해 이미지를 커밋하고있습니다.이때 -c 'CMD ["nginx", "-g", "daemon off;"]' 옵션을 포함하지 않고 커밋하면 컨테이너가 정상적으로 실행되지 않고 곧바로 Exited되는 것을 확인하였습니다.커밋시 -c 'CMD ["nginx", "-g", "daemon off;"]' 를 포함해야 하는 이유가 궁금합니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
DispatcherServlet에서 핸들러와 핸들러 매핑의 동작 방식
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이전에 MVC 프레임워크 v5를 직접 만들었을 땐, 스프링이 실행됨과 동시에 다음 코드처럼 프론트 컨트롤러의 handlerMappingMap에 핸들러들이 자동으로 등록되었었습니다. 즉, 클라이언트로부터 요청이 오기도 전에 '핸들러 매핑 맵'에 저장되는 거로 이해했습니다. private void initHandlerMappingMap() { handlerMappingMap.put("/front-controller/v5/v3/members/new-form", new MemberFormControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members/save", new MemberSaveControllerV3()); handlerMappingMap.put("/front-controller/v5/v3/members", new MemberListControllerV3()); handlerMappingMap.put("/front-controller/v5/v4/members/new-form", new MemberFormControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members/save", new MemberSaveControllerV4()); handlerMappingMap.put("/front-controller/v5/v4/members", new MemberListControllerV4()); } 그러면 실제 DispatcherServlet에서도 위와 비슷한지, 다른지, 정확히 어떻게 동작하는지 궁금합니다. 스프링 부트가 실행되자마자 '핸들러 매핑'들은 스프링 빈으로 등록된다고 이해했습니다. 다만 '핸들러'가 어떤지는 헷갈립니다. 스프링 부트가 실행됨과 동시에 '핸들러(컨트롤러)'들이 각각에 해당되는 '핸들러 매핑' 내부에 저장되는 건지, 아니면'핸들러'들이 '핸들러 매핑'에 처음부터 저장되는 게 아니라, 클라이언트로부터 요청이 오면 그때 '핸들러 매핑'이 스프링 컨테이너에서 핸들러를 '찾아 주는' 건지.아니면'핸들러 매핑' 인터페이스마다 방식이 다른 건지 궁금합니다. +) 한 가지 더 궁금한 점이 있습니다.애노테이션 기반의 컨트롤러들은 반드시 스프링 빈으로 등록되어야 한다고 이해했습니다.그런데 Controller 인터페이스를 구현한 컨트롤러나 HttpRequestHandler 컨트롤러들은 강의에선 BeanNameUrlHandlerMapping을 이용하기 위해 스프링 빈으로 등록되기는 했지만, BeanNameUrlHandlerMapping를 이용하지 않는다면 꼭 스프링 빈으로 등록할 필요는 없는 건가요? 컨트롤러들이 모두 스프링 빈일 필요는 없는 건지 궁금합니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
질문 드립니다..
스크립트에fade: true를 하면 그림처럼 뒤에 있는 요소들은 안 나오는데 어디가 틀렸을까요? .. <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <!-- slick.js --> <link rel="stylesheet" href="slick/slick-theme.css"> <link rel="stylesheet" href="slick/slick.css"> <script src="slick/slick.js"></script> <!-- <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css"/> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js"></script> --> <link rel="stylesheet" href="01.slickslider-contents-slider.css"> </head> <body> <div class="myslider"> <div>your content1</div> <div>your content2</div> <div>your content3</div> <div>your content4</div> <div>your content5</div> <div>your content6</div> <div>your content7</div> <div>your content8</div> </div> <script> $('.myslider').slick({ infinite: true, slidesToShow: 4, slidesToScroll: 4, autoplay: true, autoplaySpeed: 2000, speed: 2000, fade: true, cssEase: 'linear', dots: true, responsive: [ { breakpoint: 1024, settings: { slidesToShow: 3, slidesToScroll: 3, infinite: true, dots: true } }, { breakpoint: 600, settings: { slidesToShow: 2, slidesToScroll: 2 } }, { breakpoint: 480, settings: { slidesToShow: 1, slidesToScroll: 1 } } // You can unslick at a given breakpoint now by adding: // settings: "unslick" // instead of a settings object ] }); </script> </body> </html>body { margin: 0; box-sizing: border-box; background-color: pink; } .myslider { width: 800px; margin: auto; } .myslider .slick-arrow { border: 1px solid #000; display: none !important; } .myslider .slick-dots { border: 1px solid #000; /* display: none !important; */ bottom : 5px; } .myslider .slick-dots li button:before{ font-size: 15px; } .myslider div { border: 1px solid #000; height: 300px; background-color: #ddd; } @media (max-width: 768px){ .myslider { width: 100%; } }
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
질문입니다..
정말 죄송하지만 제가 이것 때문에 진도를 쭉 못 나가고 있어서 답답한 마음에 질문 드립니다..인텔리제이 무료 쓰고있고, cli말고 workbench로 사용하려고 하는데요, 인터넷에 알아보면 먼저 application.properties에 (저희는 application.yml이더라구요) 이걸 추가하고두번째로는 build.gradle에 이걸 추가하더라구요이다음에 어떻게 하는건지 모르겠습니다 ㅜㅜ첫번째 사진의 driver도 연결 안되는 것 같고 디비와 연동되는지 확인하는 방법도 모르겠어요...
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
트와이스 앱 - splash 화면 manifest 파일 수정
트와이스 앱 만들기- 강의 소개 및 스플래시 화면 4분 33초를 듣고 있습니다.mainfest 파일 수정하는 과정에서 계속 에러가 나는데 어떻게 해야 하나요?검색해봐도 해결이 안되어서 질문 드려요앞에 첨부해주신 자료에 따라 exported를 true로 하고, intent filter를 splash 안에 들어가게 했는데 무엇이 문제인지 모르겠습니다. 다음처럼 에러가 나요Unable to find Gradle tasks to build: [:app]. Build mode: ASSEMBLE. Tests: None
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
3강에서 30분 내용이 전혀 이해가 안되는 수준이면 무엇이 부족한걸까요?
제목 그대로 입니다. TCHARFString같은 수준인줄 알았는데 갑자기 간접지정연산자로 접근을 해야 할당이 되질 않나 이게 무슨 관계인지 모르겠고,Fstring이 이미 Tchar배열형이랑 같은 수준인데 GetcharArray의 GetData라니 이게 무슨관계인지 모르겠습니다.C++에 대한 이해가 부족한걸까요? 멍때리고 보다가 뭘본건지 모르겠어서 질문올립니다... 제가 무엇을 더해야 이해를 할 수 있을까요? ㅠ
-
해결됨처음 만난 리액트(React)
컴포넌트 렌더링 과정이 궁금합니다.
안녕하세요 선생님 Char 7 실습 코드를 localhost:3000 포트에서 처음 랜더링 했을 때 그림과 같이 useEffect() 각각 2번씩 (총4번)호출되어 질문드립니다. 코드는 다음과 같습니다. 각각 1번씩 호출되지 않고 2번씩 호출되는 이유가 뭘까요.. ㅠ import React, {useState, useEffect} from "react"; import useCounter from "./useCounter"; const MAX_CAPACITY = 10; function Accommodate(props){ const [isFull, setIsFull] = useState(false); const [count, increaseCount, decreaseCount] = useCounter(0); useEffect(() => { console.log("============"); console.log("useEffect() is called."); console.log(`isFull : ${isFull}`); }); useEffect(() => { setIsFull(count >= MAX_CAPACITY); console.log(`Current count value: ${count}`); }, [count]); return ( <div style={{padding : 16}}> <p>{`총 ${count}명 수용했습니다.`}</p> <button onClick={increaseCount} disabled={isFull}> 입장 </button> <button onClick={decreaseCount}> 퇴장 </button> {isFull && <p style={{color: "red"}}>정원이 가득찼습니다.</p>} </div> ) } export default Accommodate;
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
Movie 엔티티 조회 시 실행되는 SQL Query가 강의 영상과 상이한 이슈에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 고급 매핑 - 상속관계 매핑 강의 영상 16:15 부분에서 Movie 엔티티 조회 코드 실행 결과로 출력되는 SQL Query와 저의 프로젝트의 코드 실행 결과로 출력되는 SQL Query가 상이하여 질문드립니다. 우선 프로젝트 생성은 2024 최신 버전으로 프로젝트 설정하기 문서를 참고해서 진행하였으며, 아래와 같이 작성한 코드 일부와 실행 결과로 출력되는 SQL Query를 첨부드립니다.Movie findMovie = em.find(Movie.class, movie.getId());select m1_0.id, m1_1.name, m1_1.price, m1_0.actor, m1_0.director from Movie m1_0 join Item m1_1 on m1_0.id=m1_1.id where m1_0.id=?위와 같이 강의 영상처럼 SELECT문의 형태가 MOVIE 테이블과 ITEM 테이블의 INNER JOIN이 아닌 INNER JOIN을 직관적(?)으로 나타내고 있지 않는데요. 한가지 예상되는 건 2024년도 기준 프로젝트 생성 시 하이버네이트, H2 DB 버전이 강의 내용에서 다루는 버전들보다 업그레이드 되어 동작 방식이 달라져서 그런게 아닐까 생각이 듭니다. 이 부분이 맞다면 만약, 강의와 동일한 SQL Query를 출력해 보고 싶다면 프로젝트에서 사용중인 라이브러리 버전들을 다운그레이드하는 방법밖에는 없을까요?<!-- TODO s:pom.xml 코드 일부 --> <properties> <maven.compiler.source>21</maven.compiler.source> <maven.compiler.target>21</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.2.Final</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.1</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.224</version> </dependency> </dependencies> <!-- TODO e:pom.xml 코드 일부 -->
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MVC, SSR, CSR
안녕하세요 아직 강의를 절반도 채 수강하지 않았으나제 얕은 지식과 현재 배우고 있는 내용이 머릿속에서 혼란을 일으켜 여쭙습니다 entity : DB에 저장,조회 등 직접적인 데이터로 이용하기 위해 만든 객체dto : 웹을 통해 주고 받을 때, entity를 바로 쓰기에는 위험하므로 또는 entity의 필요한 부분만을 이용하기 위해 만든 객체repository layer : DB와 관련된 로직을 수행하는 계층service layer : repository를 이용하여 비즈니스 로직을 수행하는 계층controller layer : HTTP 요청을 받고 service를 이용하여 로직을 수행 후 응답을 보내주는 계층 으로 알고있습니다. 현재 김영한님 강의에서 배우는 MVC패턴을 이용한 SSR(서버사이드랜더링)에서 ,controller : (현재 Servlet을 이용) service/repository 를 이용해 로직을 수행하고 필요한 데이터를 model에 담아 view로 전달model : HttpServletRequest 객체 이용, request 내부에 데이터 저장view : (현재 JSP를 이용) model을 통해 html페이지를 동적으로 만들고, 브라우저에 랜더링 위와 같이 동작하는 것으로 이해하였는데, CSR로 바뀐다면, model : JSON형태(dto객체를 JSON으로 변환시킨)의 payload를 가진 HTTP 프로토콜 view : 클라이언트서버(브라우저와 직접 통신하여 화면을 랜더링해주는) -> 커다란 MVC패턴이라고 봐야하는건가요? 아니면 MVC패턴이 깨지고, 그냥 클라이언트단과 서버단이 API를 통해 통신한다고만 이해하면 되는 건가요? 제가 이해하고 있는 용어나 흐름 등에 잘못된 정보가 있다면 고쳐주실 수 있나요? 긴 글 읽어주셔서 감사합니다강의 너무나 잘 보고 있습니다~!
-
해결됨핸즈온 리액트 네이티브
8.4 질문
8.4 까지 진행했을 때 firebase 초기화 관련해서 이런 경고가 뜹니다You are initializing Firebase Auth for React Native without providingAsyncStorage. Auth state will default to memory persistence and will notpersist between sessions. In order to persist auth state, install the package"@react-native-async-storage/async-storage" and provide it toinitializeAuth: 그리고 getAuthErrorMessages로 받아온 메세지를 출력하면 항상 default 값만 출력됩니다https://github.com/JIWONKIMS/photo
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
select문 지연 여부
근데여 JPA가 쓰기 지연 기능을 지원해서 commit 시에 flush되어 db에 반영되고, commit 되는거라고 하셨잖아요?근데 이름이 '쓰기 지연'이고,,, find 한 다음에 바로 다음줄에서 엔티티 조회하면 되는거 보니까 select문(읽기)은 지연되지 않고 바로 날라가는 것 같은데 맞나여?
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
map을 2개 사용하는 방식이 좋은지 이 방식이 좋은지 궁금하여 질문드립니다!
소스 코드http://boj.kr/d754f100ea9f49e6b9f3bd0c8f1ec98a저는 map을 <int, pair<int, int>>의 형식으로 사용했는데요, first에는 key, second.first에는 빈도수, second.second에는 입력 순서가 저장됩니다. 강의를 보기 전 문제를 풀어 보았는데 이러한 방식으로 구현하는 것이 map을 2개 사용하는 것보다 효율적일까요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
pdf에 업데이트된 내용의 위치가 잘못된 건가 싶어서 제보합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 5. 스프링 MVC - 구조 이해.pdf의 15~16페이지 부분에서'컴포넌트 스캔 없이 스프링 빈으로 직접 등록해도 된다'는 걸 보여 주는 내용 사이에 '주의 - 스프링 3.0 이상'에 해당하는 내용이 껴 있습니다. 위치가 잘못된 건지 의도된 건지 모르겠지만 혹시 몰라서 일단 제보합니다.
-
미해결Next + React Query로 SNS 서비스 만들기
PhotoModal 페이지 인터셉팅 라우트 질문
/compose/tweet 이나 /i/flow/login 에서 패러렐 라우트와 인터셉팅 라우트를 사용했을 때는 @modal 안에서 (.)compose 혹은 (.)i 로 작성했는데 이번 PhotoModal 페이지는 @modal 안에서 (.)[username]이 아닌 그냥 [username]으로 폴더 구조를 짜셨더라구요. 이러면 인터셉팅이 이루어지지 않는 것 아닌가요? 추가로 children으로 들어가는 /[username]/status/[id]/photo/[photoId]에 있는 page.tsx에서 강의자료에는 return ( <Home /> ); 이렇게 하고 있는데새로고침을 해도 제대로 나오려면 이렇게 하는 것이 맞는지 궁금합니다.return ( <> <Home /> <PhotoModalPage /> </> );
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-R 질문합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 큰돌님.<1번 코드>#include <iostream> #include <vector> using namespace std; int n, root, del, visited[53], cnt; vector<int> v[53]; bool isLeaf; void dfs(int n){ visited[n]= 1; isLeaf=true; for(int i : v[n]){ if(!visited[i] && i != del){ //방문하지 않았고 현재 i가 del이랑 다르면 dfs를 계속 호출해서 탐색해야 함 isLeaf = false; dfs(i); } } if(isLeaf){ cnt++; } } int main(){ cin >> n; int num; for(int i=0; i<n; i++){ cin >> num; if(num == -1){ root = i; }else{ v[num].push_back(i); } } cin >> del; if(del == root){ cout << 0 << "\n"; }else{ dfs(root); cout << cnt << "\n"; } return 0; }#include <iostream> #include <vector> using namespace std; int n, root, del, visited[53], cnt; vector<int> v[53]; void dfs(int n){ visited[n]= 1; bool isLeaf = true; //가지마다 체크해야하니까 for(int i : v[n]){ if(!visited[i] && i != del){ //방문하지 않았고 현재 i가 del이랑 다르면 dfs를 계속 호출해서 탐색해야 함 isLeaf = false; dfs(i); } } if(isLeaf){ cnt++; } } int main(){ cin >> n; int num; for(int i=0; i<n; i++){ cin >> num; if(num == -1){ root = i; }else{ v[num].push_back(i); } } cin >> del; if(del == root){ cout << 0 << "\n"; }else{ dfs(root); cout << cnt << "\n"; } return 0; } 처음에 첫번째 코드로 작성하여 리프 노드의 갯수가 제대로 출력되지 않았습니다. isLeaf라는 변수의 선언 위치에 따라 값이 달라지는데 왜 두 코드가 값이 다르게 나오는지 모르겠습니다..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
데이터베이스 연동 오류
기존 강의 1편에서 들었던 데이터베이스 파일 전부 삭제하고 다시 처음부터 만들어서 해볼려고하는데 이런 에러가 떠서 어떤식으로 해야하나요
-
해결됨스프링 핵심 원리 - 기본편
테스트 코드에서 ApplicationContext 의 구현체를 생성하면 스프링 컨테이너가 2개 생성되나요?
안녕하세요 현재 강의를 세션 6까지를 수강하고 다시 한번 복습을 하고 있는 중입니다.복습을 하면서 이해가 안되는 부분이 있어서 질문을 드리게 되었습니다.@Configuration 을 설정하면 Spring에서 자동으로 그 클래스 안에 있는 @Bean 을 자동으로 스프링 컨테이너에 등록됬다고 알고 있습니다.수업 중에 테스트코드에 ApplicationContext 를 스프링 컨테이너라고 소개를 하셨고, 그것을 구현을 하셨느데, 그럼 테스트코드를 실행을 하면 스프링 컨테이너가 2개가 생성이 되는 건인가요?아니면 해당 클래스에서 생성된 bean을 가져오는 역할을 하는 것인가요? @Autowired 에서 주입된 Bean이 어디에서 가져온 객체인지도 판별이 될 것 같아요
-
해결됨CAN 통신 - 자동차 신입이 알아야 할 모든 것
Baud Rate와 물리적 와이어 길이 관계
Baud Rate 와 물리적 와이어 길이 관계를 설명해 주시는 부분이 잘 이해가 안갑니다.1Mbps 는 최대 40m500kbps는 최대 100m125kbps는 최대 500m속도가 빠를 수록 다른 제어기가 ACK를 미리 보내지 않기 위해(?) 길이가 짧아야 한다는 부분이 잘 와닿지가 않네요...조금 더 쉬운 설명 부탁드려도 될까요?
-
미해결홍정모의 따라하며 배우는 C언어
8분 40초경 질문
int sum2d_2(int ar[][COLS], int row);에서 COLS 자리의 인덱스에 숫자를 적어주는 이유는ar이라는 포인터의 행의 사이즈는 int * (COLS 자리의 인덱스) 이기 때문이다.라고 해봤는데 이게 맞거나 비슷한 표현 일까요?제 표현이 틀린 것 같아 답변자 분이 이해를 할 수 없을 것 같기도 하네요.. ㅈㅅ함미다.
-
해결됨[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
docker-compose up 후에 터미널엔 연결 됐다고 떴는데 postgres-data 폴더에 아무것도 들어와 있지 않아요
다 맞게 잘 한 거 같은데 뭐가 문제인 지 모르겠습니다ㅜㅜ