묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
UserHandlerExceptionResolver
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]여기에 질문 내용을 남겨주세요.MyHandlerExceptionResolver 는 에러가 터지면 서블릿 컨테이너까지 가고 또 다시 /error을 요청하고UserHandlerExceptionResolver 이건 그냥 바로 그자리에서 끝내는데그 차이가 response.sendError(...)이 response.SendError 해주냐 안해주냐 차이라고 생각하면 될까요 ?
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
CDN에 리소스를 올린다는 의미가 무엇인가요??
Static resource는 cdn에 올려서 사용한다고 하셨는데.. cdn에 올린다는 의미가 무엇인가요?사용자가 서버에 접속했을때 리소스를 cdn에서 가져올 수 있는지 궁금합니다
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
API 서버를 WAS로 볼 수 있는건가요??
디비와 통신하고 비지니스 로직을 처리하여 클라이언트에 응답하는 API 서버를 WAS라고 할 수 있을까요??
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
왜 findByLoginId는 Optional로 반환하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요! MemberRepository 코드 중에 findById는 예전 강의에서 스펙상 Member 객체를 반환하는걸로 권고(?)된다고 들었던 것 같은데, 그렇다면 왜 findByLoginId는 Optional<Member>로 반환하는건가요?Optional이 NullPointerException 발생을 줄이기 위해 래퍼 역할을 한다는 것은 알겠는데, 두 메서드의 반환값 차이가 있는 이유가 무엇인지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]패치 조인을 한다는 것은 "영속성 컨텍스트를 사용한다." 라고 이해해도 되나요?
-
해결됨Flutter 앱 개발 기초
강의 내 Flutter 버전 문의
안녕하세요.제가 못찾아서 그런지 강의에 이용되는 Flutter 버전을 어떻게 맞추어야 하나요~?
-
미해결스프링 핵심 원리 - 고급편
강의 자료 다운로드 안돼요
아이패드로 강의 시청하다가 강의자료 다운로드 누르고 다시 노트북으로 다운로드 받을려니깐 다운로드를 받을 수 있는 표시가 없어요
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
split 사용
function solution(s) { let answer = ""; let count = 0; for (let i = 0; i < s.length; i++) { if (s[i] === s[i + 1]) { count++; } else if (s[i] !== s[i + 1]) { answer += s[i] + (count + 1); count = 0; } } return answer.split("1").join(""); } let str = "KKHSSSSSSSE"; console.log(solution(str));강사님 코드가 거의 비슷한데 마지막에 1을 없애주기 위해서 split을 사용해서 1을 없애 주고 다시 문자열로 만들어주었는데, 이정도는 시간과 별로 상관이 없나요??
-
해결됨외워서 끝내는 네트워크 핵심이론 - 기초
DNS 서버를 여러대 두는 이유
영상보고 도움 많이 받고 있습니다.영상에서 naver.com 에 대한 DNS가 여러대 있을수도 있다고 했는데 DNS 서버를 여러대 두는 이유는 무엇인가요..? 제가 생각하는건 A 서비스를 서버 한대를 띄웠다고 했을때, 트래픽이 많아지면 서버의 대수를 늘려야한다고 생각하는데요.DNS서버도 이런 트래픽의 영향때문에 여러대를 두는 것일까요? 추가로 궁금한 점은 DNS 서버한테 요청을 할때도 L2 -> L3 이런식으로 다 거쳐서 올라가는건가요?? 질문이 허접한거 같지만 ㅠㅠ 잘 부탁드립니다
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
map 함수를 쓸때
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 위는 JSX고 아래는 자바스크립트라서 묶어주는 괄호가 다른건가요??똑같이 소괄호 또는 중괄호 하면 오류가나는데 이유가 있나요??
-
미해결CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
브라우저 렌더링 부분 교재 관련 질문입니다!
안녕하세요 강사님! 우선 좋은 강의 감사드립니다 :)열심히 보고 있습니다 ㅎㅎ..브라우저 렌더링 관련되어 의문이 생겨 질문을 남겨보니 시간 여유있으실 때 답변해주시면 좋겠습니다.렌더 트리? 렌더 레이어 ?? 렌더객체??짧게 브라우저 렌더링 관련하여 공부를 하고 인강을 들으면서 다시 복기를 하였을 때 렌더레이어라는 말을 처음 들어보는 것 같아 추가적으로 정보를 찾아보려고 browser render layer 와 같은 키워드를 찾아보았습니다. [Naver D2 - 하드웨어 가속에 대한 이해와 적용] 글을 발견하였고 아래와 같은 설명이 있었습니다.DOM 트리: HTML 웹 페이지를 파싱한 트리로, HTML 문서의 각 요소를 쉽게 처리(추가, 삭제 등)하기 위하여 브라우저의 엔진이 사용하는 트리다. RenderObject 트리: DOM 트리로부터 만들어지는 트리로, DOM 트리의 노드 가운데 실제 화면에 표현되는 노드만으로 구성된 트리다. RenderLayer: 브라우저의 엔진이 하드웨어 가속 등을 처리하기 위해 사용하는 논리적인 레이어로, 각 RenderObject의 속성에 따라 RenderLayer에 할당된다. GraphicsLayer: 하드웨어 가속 처리를 위한 물리적인 레이어로, 레이어별 RenderObject를 GraphicsLayer 단위로 렌더링한 뒤 최종적으로 GPU를 통해 합성된다. 그리고 PDF 기준 150~151번째 페이지에 아래와 같은 코멘트가 있습니다. Q. 렌더객체와 렌더레이어는 1:1 대응일까요?- NO : display:none으로 사라지는 노드들이 있을 수 있기 때문입니다.하지만 DOM 트리와 렌더트리는 1:1대응이 됩니다. 이렇게 렌더트리가 생성된 후..제가 이해한 바로는 위 D2에서 이야기하는 RenderObject Tree 를 렌더트리라고 명명 하신 것 같습니다.(아니면 저의 이해력부족인 것 같습니다 🥲)DOM트리에서 렌더트리(RenderObject Tree)를 생성할때 이미 font-size의 상속 및 display:none에 해당하는 DOM 객체에 대한 수정이 이루어지고 그렇게 된다면 1:1 대응이 되지 않는것이 맞는 것 같다는 생각이 들어 문의를 드립니다!그렇다면 DOM트리와 렌더트리(Render Object Tree) 렌더레이어(Render Layer) 그 어느것도 1:1대응이 되지 않는 것이 아닐까요?질문 끝까지 읽어주셔서 감사합니다 :)답변 기다리고 있겠습니다!
-
해결됨따라하며 배우는 리액트 A-Z[19버전 반영]
수업자료 질문
안녕하세요수업에서 보여주는 nextjs13 관련 pdf 문서는 따로 공유 안 되는 걸까요...?
-
미해결
passport를 이용한 로컬 로그인 구현중 프론트가 변하지 않음
강의 보면서 passport를 이용해 로컬 로그인 구현중이지만 로그인을 해도 <% if user %>로 분기처리한 부분이 작동하지 않고 redirect 해도 동일한 화면만 보입니다. 소스코드는 github에서 가져와서 동일할 것입니다. 제가 원인을 찾아보던중 passport 전략의 마지막 부분이라 할 수 있는 serializeUser으로 user가 제대로 done을 통해 넘어가지 못했나 싶어 serializeUser에서 console.log(user.id)를 밑에 사진처럼 시도 해봤지만 문제 없었습니다.module.exports = () => { //serializeUser. 로그인 시 실행 passport.serializeUser((user, done) => { console.log(user); done(null,user.id); //session에 저장하고 싶은 정보 = user.id }); //deserializeUser. 매 요청 시 실행. serUser에서 done의 두번째 인수(=user.id)가 매개변수(=id) passport.deserializeUser((id,done) => { //db에서 아이디로 유저를 찾고 User.findOne({ where : {id}}) .then(user => done(null, user)) //user를 req.user에 저장 .catch(err => done(err)); }); local(); kakao(); };그러면 마지막 done(null,user.id)에서 세션으로 제대로 유저 아이디를 못 올려주고 있는거 같은데 뭐가 문제인지 모르겠습니다. 그리고 참고로 2번이상 로그인을 시도할 시 뷰는 안변하지만 쿼리에 '로그인한 상태입니다'라고 에러메세지가 뜹니다. 그리고 참고로 app.js에서 아래와 같이initialize와 sessino은 세션 생성후 적용했습니다app.use(session({ resave: false, saveUninitialized: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, }, })); app.use(passport.initialize()); app.use(passport.session());
-
해결됨[코드캠프] 강력한 CSS
단위심화 강의 중 질문 있습니다.
안녕하세요 단위심화 강의 중 두 번째 실습 과정 중, 두 번째 줄에 사진이 3장밖에 안 들어가는데 왜 그런건가요..?? flex-wrap: wrap; 까지 적용시켰는데 되지 않네요. 보시는 바와 같이 윗줄은 4장이 출력 되는데, 밑줄은 3장만 출력이 됩니다. 제가 작성한 코드는html<!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>06-02-calc2</title> <link rel="stylesheet" href="./index.css"> </head> <body> <div class="container"> <div class="sidebar"> <ul> <li>메뉴1</li> <li>메뉴2</li> <li>메뉴3</li> <li>메뉴4</li> </ul> </div> <div class="contents"> <div class="item">상품</div> <div class="item">상품</div> <div class="item">상품</div> <div class="item">상품</div> <div class="item">상품</div> <div class="item">상품</div> <div class="item">상품</div> </div> </div> </body> </html>css* { box-sizing: border-box; } .container { display: flex; flex-direction: row; justify-content: space-between; align-items: flex-start; } .sidebar { width: 170px; background-color: orange; padding: 5px 15px; } .sidebar ul { width: 100%; padding: 0; } .sidebar ul li { list-style: none; padding: 5px 0; color: #ffffff; border-bottom: 1px dashed rgba(255,255,255,0.3); /* 메뉴 사이 구분선*/ } .contents { width: calc(100% - 170px); display: flex; flex-direction: row; align-items: flex-start; flex-wrap: wrap; } .item { width: 24%;/ height: 180px; background-image: url("../img/dochihello.jpg"); }
-
미해결스프링 핵심 원리 - 기본편
추상화비용이 발생한다는 것이 궁금합니다 영환님!
영환님 인터페이스를 활용할 때 추상화 비용이라는 것이 발생한다고 하셨는데 구글링 검색해도 정확한 지식을 얻기 힘들어서 질문 드립니다.수업 내용의 기능을 확장할 가능성이 없다면, 필요할 때 리팩터링해서 인터페이스를 도입하는 방법 등 수업 내용은 이해했으나 추상화라는 비용이 정확히 무엇인지 궁금합니다!
-
미해결비전공자/입문자를 위한 Data Science(DS)와 AI 학습 & 취업 가이드
강의 자료 부탁드립니다.
안녕하세요 오늘부터 강의를 듣게 되었습니다.강의를 들으면서 활용하기 위해 강의자료를 요청드립니다!tony121367@gmail.com 입니다
-
미해결업무가 100배 빨라지는 엑셀 데이터 활용과 분석 노하우
offset 함수 관련
안녕하세요. 선생님오늘도 질문을 드립니다. offset 함수로 데이터 실적 찾아오기를 실습하고 있습니다.그런데 제가 OFFSET (기준셀, 행이동, 열이동)에서 행이동, 열이동에 1,2 등등을 넣어서 이동한 뒤 데이터를 가져온다는 기본적인 내용은 이해를 했습니다. 그런데 =offset ( #C7, 0, D#6) 여기서 금액 셀(C7)을 고정하고 행은 움직이지 않은 상태에서 7월 셀을 선택하시는 부분이 잘 이해가 잘 되지 않습니다. 영상에서도 해당 내용을 설명하시면서 '1월에 선택하면 해당하는 만큼 11칸이 이동한다' 이런 비슷한 말씀을 해주셨는데잘 이해가 되지 않습니다. 결론적으로는=offset( C7,1,-1) 같이 간단한 이동을 통해서 데이터를 가져오는 것은 이해를 하겠으나여기서 심화된 내용들을 잘 이해하지 못하겠네요ㅜㅜ 보다 자세히 설명해주실 수 있으실지 부탁드립니다. 오늘도 좋은 하루 보내시길 바랍니다.감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
thymeleaf 적용이 안됩니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술상품목록 - 타임리프 진행중에 문제가 생겼습니다.타임리프에 문제가 있는지.. 변수가 안담깁니다.구글링으로 찾아봐서 캐쉬초기화도 해봤고"http://www.thymeleaf.org" 를 http://thymeleaf.org 로 변경도 해봤지만 경고문만 사라지고 해결되지 않았습니다.근데 여기서 이상한건th:onclick="|location.href='@{/basic/items/add}'|" 이 타임리프 문장은 작동이 되는것 같아요저 코드대로 /basic/items/add 경로로 이동이 됩니다.자바코드에 문제가 있나 확인도 해봤지만 문제점을 찾지 못했습니다 확인해야할게 더 있으면 알려주시면 감사하겠습니다...
-
미해결홍정모의 따라하며 배우는 C언어
4.9 질문이 있습니다.
강의에서는 잘못 출력되는 예제중 첫번쨰 에서 n3가 1024가 아닌 다른 숫자가 나오는데요 (이 오류의 원인은 이해했습니다)하지만 제가 따라하니 1024로 나옵니다.혹시나 해서 x86으로 하니 강의처럼 오류가 뜨는데요이전에 포인터의 크기와 관련해서 32비트와 64비트를 확인해보라는 답글을 주셔서 이 부분은 이해했는데 지금 부분은 왜 다른지 이해가 가지 않습니다. 답변 부탁드립니다.
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
퍼사드 패턴 코드 공유 드립니다!
퍼사드 패턴 관련하여 노션 코드는 강의 코드와 다르기때문에, 에러를 해결하지 못하신 분들을 위해서 코드 공유 드립니다.(에러메세지로 위치, 그 위치에 해당하는 강사님이 강의 진행시 적어주셨던 코드와 대조하여서 작성하였습니다)// index.js import { checkValidationPhone, getToken, sendTokenToSMS} from './phone.js' // requestAnimationFrame('./phone.js') console.log('안녕하세요~~'); function createTokenOfPhone(myphone) { // 1. 휴대폰번호 자릿수 맞는지 확인하기 const isValid = checkValidationPhone(myphone); if (isValid) { // 2. 핸드폰 토큰 6자리 만들기 const mytoken = getToken(); // 3. 핸드폰번호에 토큰 전송하기 sendTokenToSMS(myphone, mytoken); } } createTokenOfPhone('01012345678', 6);// phone.js export function checkValidationPhone(myphone) { if (myphone.length !== 10 && myphone.length !== 11) { console.log('에러 발생!!! 핸드폰 번호를 제대로 입력해 주세요!!!'); return false; } else { return true; } } export function getToken(count) { const mycount = 6 if (count === undefined|null) { console.log('에러 발생!!! 갯수를 제대로 입력해 주세요!!!'); return; } else if (mycount <= 0) { console.log('에러 발생!!! 갯수가 너무 적습니다!!!'); return; } else if (mycount > 10) { console.log('에러 발생!!! 갯수가 너무 많습니다!!!'); return; } const result = String(Math.floor(Math.random() * 10 ** count)).padStart(mycount,'0'); return result; // console.log(result) } export function sendTokenToSMS(fff, ggg) { console.log(fff + '번호로 인증번호' + ggg + '를 전송합니다!!'); }