묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
FrontController 도입에 따른 Servlet Container 에 담길 객체
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 프론트컨트롤러를 도입하게 되면서 Servlet Container에는 어떤것이 담기게되는지 의문이 들어 질문을 남깁니다.기존 ServletMVC 패턴을 사용할 때는 각 URL 마다 Servlet을 구현하면서, 구현한 Servlet들이 Servlet Container에 싱글톤 패턴으로 담기고, 쓰레드들이 사용하는 것 으로 이해했습니다.그런데 FrontController를 도입하게 되면서 각 URL 에 맵핑되던 Servlet들이 전부 Controller로 변하게 되고, FrontController만 Servlet으로 남게된 것으로 이해했는데 이게 맞는 설명일까요..?또 Controller로 변하게된 컨트롤러들은 @Controller 어노테이션을 통해 스프링 빈으로 관리되는 것으로 이해했는데, 이러면 Servlet Container 에는 FrontController를 구현한 Dispatcherservlet 만 들어있고 나머지 Controller는 스프링 컨테이너에 들어가는게 맞을까요?처음 접하는 개념이어서 뒤죽박죽 섞인 것 같은데,, 답변 주시면 감사하겠습니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestHeaderServlet에서 로그 결과가 이상합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] //Header 모든 정보 private void printHeaders(HttpServletRequest request) { System.out.println("--- Headers - start ---"); /* Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); System.out.println(headerName + ": " + headerName); } */ request.getHeaderNames().asIterator() .forEachRemaining(headerName -> System.out.println(headerName + ": " + headerName)); 의 결과 내용이 다음과 같습니다.--- Headers - start ---content-type: content-typeuser-agent: user-agentaccept: acceptpostman-token: postman-tokenhost: hostaccept-encoding: accept-encodingconnection: connectioncontent-length: content-length--- Headers - end ---실제 값이 나오는 것이 아닌, 필드명을 그대로 찍습니다.강의내용에서도 그렇고 제공해주신 코드로 돌려봐도 위와 같이 나옵니다.확인 부탁드리겠습니다.
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-h
선생님 수업 잘듣고있습니다. 다름이 아니라 선생님께서 푸신 방법 말고 if(!visited[next]){ q.push(next); visited[next]=visited[now]+1; cnt[next]+=cnt[now]; v[next].push_back(now); }이런식으로 인접 리스트를 만들어서 구현을 해보고싶은데 계속해서 에러가 발생됩니다. 도와주실 수 있으신가요? 감사합니다
-
해결됨ElasticSearch Essential
모니터링 질문
안녕하세요Thread 관련한 모니터링 보여주실 때 8분 15초 경이것도 Kibana에서 보신걸까요??
-
해결됨코테 출제자가 알려주는 [코딩 테스트 with 파이썬]
upper_bound : int) -> int:
안녕하세요 강사님이분탐색-1의 def calculate_needed_budget(upper_bound:int ) -> int: 에서 upper_bound : int) -> int: 이 부분이 이해가 안갑니다.상한금액이 정수면 정수로 나오게 하라는건가요..?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
섹션1-8 일곱난쟁이 문제 질문
안녕하세요. 강의 코드와 결과가 이해가 되지 않아 질문드립니다. for (let i = 0; i < 8; i++) { for (let j = i + 1; j < 9; j++) { if (sum - (arr[i] + arr[j]) === 100) { arr.splice(j, 1); arr.splice(i, 1); } } }중첩 for문 중에서 내부에서 조건문을 사용해서 참일 경우 배열에 splice를 통해 요소를 제거를 해주는 코드에서 의문이 생겼습니다.중첩 for문이기 때문에 외부 for문에서 i=0 으로 시작하여 내부 for문으로 이동j=i+1 이므로 배열의 0번째 인덱스 요소를 기준으로 1번째 인덱스 요소부터 j<9 요소까지 탐색탐색 중 if (sum - (arr[i] + arr[j]) === 100) 조건에 참인 요소가 있다면 splice 메서드를 통해 제거, j<9 요소까지 탐색을 마쳤다면 내부 for문 종료다시 외부 for문으로 이동하여 i=1 로 증감 후 다시 내부 for문 실행..저는 이와 같은 절차를 가진다고 생각하는데요, 3번 절차에서 조건에 참인 요소가 있다면 splice 메서드를 통해 제거가 되므로 21과 19가 제거 되는것은 이해가 되는데 왜 15와 25까지 함께 제거가 되는지 의문입니다! 21과 19가 제거된 상태라면 (sum - (arr[i] + arr[j]) === 100) 조건에 참일 수가 없을 거 같아서요.결론은 중첩 for문인데 21과 19 그리고 15와 25까지 함께 제거가 되는지 의문입니다!감사합니다.
-
해결됨[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
심화 학습
안녕하세요.강의 잘 들었습니다.대부분의 사이트는 셀레니움과 bs4, requests 를 조합하면 정보를 가져올 수 있지만, 문제는 동적 사이트의 경우 시간이 걸린다는 점 입니다.예를 들어, 네이버 지도를 대상으로 필요한 데이터를 가져올 때, 저의 경우는 100개의 가게 정보를 모두 가져오는데 5~6분 정도가 소요되는 반면, 크롤링을 전문적으로 하시는 분들은 더 빠르게 작업을 완료하시는 것 같더라구요.자세히는 모르겠지만 패킷 등등의 기술을 활용하시는 것 같은데, 이런 내용을 학습할 수 있는 방법이 있을까요?크롤링을 활용해서 부업을 하려고 했는데, 막상 전문적으로 하시는 분들을 보니, 상대가 될 것 같지 않은 답답한 마음에 질문 드렸습니다.
-
미해결따라하면서 배우는 3D Human Pose Estimation과 실전 프로젝트
Canonical space란?
canonical space가 정확히 어떤 의미를 갖는건지 알려주실 수 있으실까요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
오타관련
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예강의자료 324페이지에 오타관련으로 수정 부탁드립니다!위 그림중 데이터 미변경 예시에서, 304 Not Modified에 대한 전송용량이 0.1 M인데요. 바디가 0M이어야 되는데 1.0M으로 되어있습니다. 감사합니다 :)
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-D 질문있습니다
안녕하세요, 큰돌님강의와 비슷한 로직인것 같은데, 메모리초과 되어 질문합니다!메모리초과가 나는 이유를 모르겠습니다ㅣ. K가 10일때, 2^1024만큼 go함수를 호출해서 틀린건가 싶기도 합니다...
-
해결됨ElasticSearch Essential
레플리카 샤드
안녕하세요 프라이머리 샤드에 있는 데이터를레플리카 샤드로 옮기는 건 따로 설정하지 않아도ES 내부에서 자동으로 해주는 건가요??
-
미해결Flutter 초입문 왕초보편
강의를 구매했습니다.
강의를 구매했습니다. 그리고 저번에 선생님께서 ios 개발을 위해서 맥 컴퓨터가 필요하다고 해주셨는데, 플러터 공부를 지금 시작했더라도 결국에는 맥 컴퓨터가 필요하다는 것이죠? (현재 윈도우 컴퓨터는 갖고 있습니다)
-
해결됨
인텔리제이 말풍선 숨기기 설정에 대해서
특정 메서드 사용시 힌트 말풍선이 계속 나와서 너무 불편합니다. "hints" 관련 설정이라고 생각하여 이것저것 눌러보았으나 안 나오게 하는 방법을 모르겠네요. 혹시 해당 설정을 끄는 방법을 아시는 분께서는 제발 도와주셔요 ㅠㅠ
-
미해결홍정모의 따라하며 배우는 C++
char *name vs const char *name
안녕하세요,전자는 에러나고 후자는 ok인데, 그 이유가 "string literal은 constant array of chars이므로, pointer 또한 const이어야 한다"라고 다른 곳에서 설명을 봤습니다.(https://stackoverflow.com/questions/61601872/why-do-string-literals-char-in-c-have-to-be-constants)이 설명과 "기호적 상수"개념이 어떻게 연결될 수 있는지 궁금합니다. (사실 지금 예시에서 "기호적 상수"가 어떤 의미인지 제대로 모르겠습니다.)
-
해결됨ElasticSearch Essential
매핑 설정 변경하기
안녕하세요.운영 중인 엘라스틱 서치에서바로 매핑 설정을 변경할 수 있나요? 정적 매핑을 사용한다고 했을 때기존에 있던 인덱스를 제거하고 정적 매핑 설정 후 다시 색인기존에 있던 인덱스 제거하지 않은 상태로 정적 매핑 설정 하면 자동으로 변경이 됨어떤 게 맞는 지 알 수 있을까요
-
해결됨ElasticSearch Essential
샤드 개수 늘리기
안녕하세요운영중인 엘라스틱 서치에서바로 샤드 개수를 늘려서 적용할 수 있나요??아니면 다른 방식으로 샤드 개수를 늘려야 하나요?
-
해결됨스프링 핵심 원리 - 고급편
댓글 구현에 대한 질문
댓글 구현 중에 질문이 있어서 남깁니다. 댓글 수정 기능 구현할 때, 댓글의 주인인지 아닌지를 검사해야하는데findByCommentIdAndUsername으로 한번에 가져오는 것 (조인)findByCommentId해서 게시자 지연로딩findByCommentIdWithUser해서 user도 같이 가져오도록 fetch join 어떤게 가장 좋은 방법일까요. 그리고 성공시에 클라이언트에게 어떤 정보를 리턴하는 게 가장 좋을까요?댓글을 리턴해주면 될까요?
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
섹션 6에서 CRS vs SSR
섹션 6에서 CRS vs SSR 하나의 프로젝트에 2개를 번갈아가면서 구현된다는 말씀이 있는데, 마이크로프론트엔드를 말씀하시는걸까요? 아님 다른 방법이 있나요?
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
.banner 간격 조정 어떻게 하나요?
<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>서울구석구석</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="main-content"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="images/logo-header.png" alt="header logo"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">지금의 서울</a> <div class="sub-menu"> <a href="#none">이벤트</a> <a href="#none">축제&행사</a> <a href="#none">전시</a> </div> </li> <li> <a href="#none">추천</a> <div class="sub-menu"> <a href="#none">에디터 추천</a> <a href="#none">테마코스</a> <a href="#none">도보해설관광</a> <a href="#none">한류관광</a> </div> </li> <li> <a href="#none">여행지</a> <div class="sub-menu"> <a href="#none">명소</a> <a href="#none">엔터테인먼트</a> <a href="#none">음식</a> <a href="#none">게스트하우스</a> </div> </li> <li> <a href="#none">여행정보</a> <div class="sub-menu"> <a href="#none">가이드북&지도</a> <a href="#none">시티투어버스</a> <a href="#none">날씨</a> </div> </li> </ul> </div> </header> </div> <div class="right"> <div class="slide"> <div class="slide-image"> <div class="slide-image-inner"> <a href="#none"><img src="images/slide-01.jpg" alt="slide1"></a> <a href="#none"><img src="images/slide-02.jpg" alt="slide2"></a> <a href="#none"><img src="images/slide-03.jpg" alt="slide3"></a> </div> </div> <div class="banner"> <img class="banner-image" src="images/banner-01.png" alt="banner image"> <div class="banner-content"> <h3>얼리버드 선착순 할인 이벤트 최대 30% 할인</h3> <p> 12월은 사랑의 달~ 코딩웍스에서 여러분께 사랑을 뿌려요~<br> 12월 개강반을 12월 06일까지 접수하는 분들께는 15%~ 20% 의 얼리버드 할인을 제공합니다. </p> </div> <a href="#none"><img src="images/banner-02.png" alt="banner link"></a> </div> </div> <div class="items"> <div class="news"> <div class="tab-inner"> <div class="btn"> <span>공지사항</span> </div> <div class="tab1"> <a class="open-modal" href="#none"><em>스트리밍 서버 이전 작업으로 2시간 서비스 중지</em><b>2022.12.20</b></a> <a href="#none"><em>얼리버드 선착순 할인 이벤트 최대 50% 할인</em><b>2022.10.13</b></a> <a href="#none"><em>내 집 마련의 꿈을 꿈이 아닌 현실로 만드는 진짜 방법</em><b>2022.11.31</b></a> <a href="#none"><em>외국인과 영어로 네이티브처럼 대화하는 노하우</em><b>2022.08.09</b></a> <a href="#none"><em>월 500만원 매출을 내는 블로그 운영하는 노하우</em><b>2022.07.07</b></a> </div> </div> </div> <div class="gallery"> <div class="tab-inner"> <div class="btn"> <span>갤러리</span> </div> <div class="tab2"> <a href="#none"><img src="images/gallery-01.png" alt="gallery1"><span>퍼블리셔 취업 가이드</span></a> <a href="#none"><img src="images/gallery-02.png" alt="gallery2"><span>전문가가 되는 사진촬영</span></a> <a href="#none"><img src="images/gallery-03.png" alt="gallery3"><span>라인을 만드는 필라테스</span></a> </div> </div> </div> </div> </div> </div> <footer> <div class="footer-logo"> <a href="#none"><img src="images/logo-footer.png" alt="footer logo"></a> </div> <div class="copyright"> 상호 : (주)코딩웍스 | 대표자 : 홍길동 | 개인정보관리책임자 : 성춘향 부장 사업장주소 : 경기도 남양주시 별내동 1234 코딩웍스 빌딩 6층 (주)코딩웍스 </div> <div class="family-site"> <select> <option value="">패밀리 사이트</option> <option value="">코딩웍스 커뮤니티</option> <option value="">코딩웍스 쇼핑몰</option> <option value="">코딩웍스 재단</option> </select> </div> </footer> </div> <div class="modal"> <div class="modal-content"> <h2>스트리밍 서버 이전으로 서비스 장애</h2> <p> 스트리밍 서버 이전 작업으로 2시간 서비스 중지됩니다.<br> <br> 주요 작업 내용은 아래와 같습니다.<br> 1. 서버 이전에 따른 DNS 이전으로 기존 호스팅 서비스 대체<br> 2. 문자셋을 utf-8로 변경 후 모바일 등에 대처하기 위해 미리 조치<br> 3. 스트리밍 서버 CDN과 연동 후 멀티미디어 이러닝 서비스가 제공<br> <br> 위 내용을 보시면 제법 큰 작업이었음을 알 수 있습니다.<br> 특히 문자셋의 변경에 따라 기존의 DB, data, 웹사이트 솔루션 등의 커스트마이징 등에 상당한 어려움이 있었고, 이에 따른 일부 접속 오류가 있을 수 있었음에 양해를 구합니다.<br> 특히 인터넷익스플로러 11로 접속하셨을 경우 일부 문제은행 목차가 출력되지 않았을 수도 있습니다.<br> 서버 이전 작업으로 고객님들께 불편을 드려서 대단히 죄송합니다.<br> 정상 운영되도록 최선을 다하겠습니다. 감사합니다. </p> <a class="close-modal" href="#none">닫기</a> </div> </div> <script src="script/jquery-1.12.4.js"></script> <script src="script/custom.js"></script> </body> </html> @charset "UTF-8"; body { margin: 0; background-color: #ffffff; color: #333333; font-size: 15px; } a { color: #333333; text-decoration: none; } .container {} .main-content { display: flex; } .main-content > div { /* border: 1px solid black; */ /* height: 650px; */ } .left { width: 200px; background-color: rgba(210, 181, 161, 0.5); } .right { flex: 1; } header {} header > div { /* border: 1px solid red; */ } .header-logo { height: 100px; display: flex; align-items: center; } .navi { height: 400px; } /* Navigation */ .menu { list-style: none; padding: 0; width: 90%; margin: auto; margin-top: 10px; } .menu li { text-align: center; } .menu li > a { border: 1px solid lightgray; display: block; padding: 5px; background-color: lightskyblue; transition: 0.1s; } .menu li:hover > a { background-color: olivedrab; color: #ffffff; } .sub-menu { border: 1px solid lightgray; background-color: lightcyan; display: none; } .sub-menu a { display: block; padding: 5px; transition: 0.1s; } .sub-menu a:hover { background-color: olivedrab; color: #ffffff; } .slide { display: flex; } .slide > div { /* border: 1px solid blue; */ height: 400px; } .slide-image { flex: 1; height: inherit; overflow: hidden; position: relative; } .slide-image-inner { font-size: 0; width: 300%; height: inherit; position: absolute; top: 0; left: 0; animation: slide 10s linear infinite; } .slide-image-inner a { height: inherit; display: inline-block; width: calc(100% / 3); } .slide-image-inner a img { height: inherit; width: 100%; object-fit: cover; } @keyframes slide { 0% { left: 0; } 30% { left: 0; } 35% { left: -100%; } 65% { left: -100%; } 70% { left: -200%; } 95% { left: -200%; } 100% { left: 0; } } .banner { width: 230px; text-align: center; box-sizing: border-box; padding: 5px; font-size: 14px; background-color: ivory; } .banner .banner-image { width: 88%; } .items { display: flex; } .items > div { /* border: 1px solid green; */ height: 250px; flex: 1; } .news {} .gallery {} /* News & Gallery */ .tab-inner { width: 95%; margin: auto; margin-top: 5px; } .btn {} .btn span { border: 1px solid #000000; display: inline-block; width: 100px; text-align: center; padding: 5px; border-radius: 5px 5px 0 0; border-bottom: none; margin-bottom: -1px; background-color: lightskyblue; } .tab1 { border: 1px solid #000000; height: 208px; box-sizing: border-box; padding: 10px 15px; } .tab1 a { display: block; padding: 9px; border-bottom: 1px solid #000000; } .tab1 a:last-child { border-bottom: none; } .tab1 a em { font-style: normal; } .tab1 a b { float: right; font-weight: normal; } .tab2 { border: 1px solid #000000; height: 208px; text-align: center; box-sizing: border-box; padding-top: 10px; } .tab2 a { display: inline-block; text-align: center; } .tab2 a img { height: 165px; border-radius: 5px; } .tab2 a span { display: block; } footer { display: flex; height: 100px; align-items: center; background-color: rgb(211, 211, 211, 0.3); } footer > div { /* border: 1px solid red; */ text-align: center; } .footer-logo { width: 200px; } .copyright { flex: 1; } .family-site { width: 230px; } .family-site select { padding: 5px; border-radius: 3px; } .modal { background-color: #00000077; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 100; display: none; } .modal-content { background-color: #ffffff; width: 460px; padding: 20px; border-radius: 10px; box-shadow: inset 0 0 10px #000000; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .modal-content h2 { text-align: center; } .close-modal { float: right; border: 1px solid #000000; padding: 5px 10px; border-radius: 5px; } $('.menu li').mouseenter(function(){ $(this).children('.sub-menu').stop().slideDown() }) $('.menu li').mouseleave(function(){ $(this).children('.sub-menu').stop().slideUp() }) $('.open-modal').click(function(){ $('.modal').fadeIn() }) $('.close-modal').click(function(){ $('.modal').fadeOut() }) .banner에서 gap처럼 요소 간의 간격을 띄우는 방법이 있나요?
-
미해결15일간의 빅데이터 파일럿 프로젝트
Kernel panic - not syncing : Fatal exception
[4. VM 통합 환경 구성]에서 헤매고 있습니다.Windows11에서 보안 상의 이유로 VirtualBox 5.x 버전을 설치할 수 없다고 하여 6.1 버전을 설치하여 사용하고 있습니다.다음은 Server01, Server02의 설정값입니다.네트워크 어댑터1 NAT 네트워크 (강의와 같은 NatNetwork 10.0.2.0/24)네트워크 어댑터2 호스트 전용 어댑터 (6.1버전이라서 [파일-호스트 네트워크 관리자]에서 강의와 같이 설정)