묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결대세는 쿠버네티스 (초급~중급편)
초기 설치 관련건
안녕하세요 강사님 aws 인스턴스에서 쿠버 세팅중 질문 있어서 아래와 같은 질문 드립니다. http://192.168.0.30:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/으로 대쉬보드 접속 하기위하여 192.168.0.30 부분을 aws ec2 공인 IP로 설정 하였습니다.하지만, 사이트가 정상적으로 열리지 않은 상태입니다.블로그에 상세한 설명 덕분에 기존에 되지 않던 설치는 완료 되었습니다.해당부분 처리 방법 알수 있을까요?
-
미해결Flutter 중급 1편 - 클린 아키텍처
공통 정보들의 DI는 어떻게 구현하면 좋을까요?
1. 공통 정보 예를들어 앱 전체에서 필요한 로그인 정보가 있는데요. 이를 앱내 전 페이지들에서 사용이 필요할때가 많은데요 이러한 로그인과 같은 공통 정보들은 어떻게 저장을 하고.. 각 페이지에서는 매번 이 정보를 어떻게 꺼내 쓰면 좋을까요? 상위페이지에서 하위페이지로 로그인정보를 계속 전달해줄수는 없을듯하구요.. DI 객체 만들어주신것 내에 2. 다른 클래스에 의존하지 않는 Model? 여기에 넣어서 쓰는게 좋을지.. 2. 그리고 로그인 정보가 한번 조회하고 나서 계속 고정된 값이 아니라 예를들어 특정화면에서 내가 bookmark또는 좋아요..를 클릭하면 이 값이 로그인 정보에 속하다보니 업데이트를 하고 다시 조회를 해야 하는데..이런 경우는 어떻게 구현을 하면 좋을까요? 구체적인 코드가 아니더라도 참조할만한 레퍼런스가 있을지요? 3. 고급? 플러터 기능에 대한 강좌 오픈 계획은 없으신가요??
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
리트코드 관련 질문
안녕하세요!!작성하신 코드와 동일한 코드이고, 테스트 케이스까지는 통과하는데, 제출버튼을 클릭하니 오답이라고 뜹니다!! 혹시 몰라 코드 제출합니다!!
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
as 옵션 질문
db.Good.belongsTo(db.User, { as: 'Owner' }); db.Good.belongsTo(db.User, { as: 'Sold' }); 실습코드에는 강의와 다르게 User 테이블에 db.User.hasMany(db.Good , { as: 'Owner' }); db.User.hasMany(db.Good, { as: 'Sold' }); 가 없던데 동일한건가요?
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
네임드락을 활용할 때 데이터소스를 분리해야하는 이유가 궁금해요!
안녕하세요 최상용 엔지니어님~~ 강의 너무 잘 보고 있어요! 다음강의도 기대기대됩니당 답변 부탁드립니다~~~
-
해결됨홍정모의 따라하며 배우는 C언어
scanf()함수 반환 오류(18:45부분)
강의 18:45부분입니다.강의에서 교수님께서 입력하신대로 동일하게 입력하였으나, 컴파일 후 실행하려고 하면 위와 같은 'I': redefinition; different basic types 에러가 뜨면서 실행이 되지 않습니다. int a, b; int i = scanf("%d%d", &a, &b);printf("%d", i);코드 외에는 강의에서처럼 전부 주석처리 해놓은 상태입니다. 인터넷에 해당 오류에 대해 검색해보니 관련 변수가 앞서 정의하였으나, 또 재정의하였다는 오류라고 하는데.. 분명 주석화하였음에도 재정의 오류가 뜨는건 왜 그런건지 잘 모르겠습니다.
-
미해결8명의 비전공자는 어떻게 개발자로 취업했을까
16일 전에 글 남긴 사람입니다
안녕하세요 16일 전에 코딩이 저에게 맞는 건지 고민된다고 했던 사람입니다 그동안 벌써 3번 그룹 프로젝트를 했었고 데이터 베이스 직접 만들어서 2개에서 6개 테이블 쪼개고 연결해보는 것까지 어떻게 마무리를 했네요 조원들이랑 같이 짠 코드라서 이해 안가고 넘어간 부분이 몇 군데 있는데 ㅜ 그래도 그거 이해하면 이제 스스로 그 코드 참고하면서 데이터베이스 구축 (게시판 및 게시판 댓글창, 도서관 도서대여대장 등등) 정도는 스스로 만들 수 있을 것 같아서 기운이 납니다. 그래도 스스로 삽질은 좀 길게 해봐야겠지만요 ㅠㅋㅋㅋㅋ 또 아직은 다른 팀원들에 비해서 저희팀이 할 수 있는 게 적었던 것 같기도 해요 ㅠㅋㅋ 이런게 아직 현타오는 건 어쩔 수 없나봅니다 ㅜㅋㅋ 다음주에는 자바를 배우는데 그래도 뭔가를 해봤다는 이번 기억으로 버텨볼 수 있을 것 같습니다! 뭐 하다보면 또 언젠가 되는 순간이겠거니 하려고요 엘런님 덕분에 그래도 기운내서 할 수 있었습니다 그 때 격려 감사합니다 ㅎㅎ
-
미해결[유니티 레벨 업!] 모듈식으로 개발하는 퀘스트&업적 시스템
Quest Tracker 질문입니다.
선생님 영상 12분까지 따라했는데 Kill Normal Gem Slim5에 대한 Quest Tracker UI가 그대로 남아있습니다. 게임 Points는 30점으로 제대로 저장이 되어있고, 게임 시작시 Quest Giver로 인해 Active Quests로 2개의 퀘스트가 Add 되어서 UI로 다시 출력이 되는데 원인을 잘 모르겠습니다. (Completed Quest로 Kill Normal Gem Slim5이 Add 된 것은 확인했습니다)
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
sendgrid에 템플릿적용방법에 대해 질문드립니다.
안녕하세요 강사님, content부분을 html로 적용해 보내고싶은데 메일을 보내면 아래와 같이 escape태그가 나와서 어떻게 해결해야할지 잘 모르겠습니다. 혹시 템플릿을 사용할려면 Json을 사용하지않고, 최대한 장고를 이용해서 할 수 있는 방법이 있을까요?
-
미해결처음 만난 리액트(React)
6강 실습에 관해 질문드립니다!
안녕하세요 최근에 강의를 듣기 시작한 학생입니다. 6강 실습중인데 마지막처럼 화면이 나오질 않아 질문남깁니다. 그리고 혹시 언제쯤 18버전 코드로 업데이트 해주시는지 궁금합니다. 6강 실습에 관해 다른분에게 올려주신 공식문서를 봐도 조금 헷갈려서요ㅠㅠ
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
태그를 입력할때 insertBefore 에러
저런 에러가 발생하고, 하단에 단어가 추가되지 않습니다. 원인이 무엇인지 모르겠습니다.. (tags.html의 구성은 강사님과 똑같이 하였습니다.) 단어를 추가하려고 할때마다 박스 아래에 단어는 추가되지않고, 같은 에러가 계속 추가됩니다.
-
미해결Node.js로 웹 크롤링하기
선생님 아무리 해도 안되는 부분이 있어서 올립니다.ㅜㅠㅜㅜ
해당 영상에서는 postman에서 안켜지는 동적으로 나온 이미지들을 selector를 이용해서 가져오는 것으로 보이는데요. 아래의 코드를 사용해서 카카오맵 상세화면 크롤링 해오려고 하는데 셀렉터로 찾게된 div class 'info_menu'를 찾으면 아무것도 안 나옵니다.. 제발 도와주세요..ㅠㅠㅠ 이거하려고 강의 구매한 건데 못하겠어요ㅠㅠㅠㅠ stackoverflow 에서 검색해보고 찾긴했습니다. .. await page.goto('https://place.map.kakao.com/873103765', { waitUntil: "networkidle0" }); 이렇게 해주니 되었습니다. const fs = require("fs"); const puppeteer = require("puppeteer"); const axios = require("axios"); //ajax 라이브러리 const cheerio = require("cheerio"); //html 파싱 const crawler = async () => { try { const browser = await puppeteer.launch( {headless : false} ); const page = await browser.newPage(); await page.goto('https://place.map.kakao.com/915459672'); const result = await page.evaluate(()=>{ const scoreEl = document.querySelector('div.info_menu'); if(scoreEl){ console.log('있다!!'); return scoreEl.outerHTML; }else{ console.log('없다!!'); return []; } }); console.log(result); await browser.close(); } catch (e) { console.error(e); } }; crawler();
-
해결됨홍정모의 따라하며 배우는 C++
7:45 부근 질문있습니다.
B m_b는 Something과는 다른 class이고 instance 멤버가 private인데 어떻게 class Something에서 B m_b { 1024 }와 같이 초기화가 가능한지 궁금합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
비동기 관련
좋은 강의 잘 보고 있습니다.한 가지 질문이 있다면 다른 프로그램 언어의 경우 기본으로 async await 비동기 관련해서 메소드를 처리하는 경우가 많습니다만 영한님의 강의들은 비동기 관련해서 메소드 처리를 하는 부분이 없네요. 강의를 위해서 비동기 관련은 빼고 동기 형식의 메소드 처리만 보여주시는 것인지 아니면 비동기 관련해서는 spring data jpa 나 java에서 처리하기 힘들어서 강의에서 빼신 것인지요? 좀 자세히 설명해 주시면 감사하겠습니다. 플랫폼 개발 시에 로직 중 비동기는 필수가 아닌가 싶은데 유독 spring이나 spring data jpa에서는 이런 부분에 대해 자세히 설명해주시는 분이 없네요.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
여러개의 데이터 타입을 컨트롤 해야하는 프로그램에서의 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 해당 강의를 수강후 여러 객체를 리턴해야하는 상황이 있었습니다ex(member객체와 book객체)를 하나의 프로젝트에서 사용할려고 하는데 두개의 다른 객체를 각각 따로 db에 연결하기 위하여 서로 다른 리포지토리 객체를 따로따로ex(memberRepository, bookRepository)를 따로 따로 만들어도 괜찮을까요(코드의 중복 DI 사용의 힘듬) 아니면 스트레티지 패턴등을 이용하여 객체지향을 노리는게 좋을까요 강의에선 하나의 domain객체 만을 사용하였기에 이러한 부분을 알기 힘들었습니다
-
미해결[2026 신규] 데이터분석 준전문가(ADsP) 자격증
3강 R파트 관련 질문입니다
시험 합격만을 필요로 하시는 분은 R에 대한 강의에서 3, 10, 11, 17을 들으시고 18강부터 마지막 강까지는 쭉 들어보시는 것을 추천드립니다. R이 시험에 나오지 않는 것은 아니지만, 몇몇 부분에 치중이 되어 나오는 것 같습니다. 32회 기출에서 boxplot에 대한 것이 3개 문항이나 나와서 다음 시험에서는 어떨지 모르지만 ^^ summary 함수의 결과 해석을 대비해 두시는 것도 좋을 것 같습니다. 22, 23, 24의 경우 이산형 확률분포와 연속 확률분포를 구분할 수 있도록 하시고 간단하게 특징만 기억해 두셔도 좋을 듯 합니다. 라고 파트 1 1강에 적혀있었는데요 R파트는 16강 까지만 있는데 3,10,11,17강이 3과목 데이터분석(1)-R기초와 데이터 마트에있는 강의가 맞는 건가요? 아니면 17이 오타가 난 것인가요? 이산형 확률분포 연속형 확율분포는 목차의 제목상 20,21번째 강의이던데 위 글의 22, 23, 24 가 맞는 건가요? 혹시 가능하시다면 저 강의들의 목차상 제목을 알려 주실수 있으신가요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
코루틴 질문드립니다.
함수는 실행될 때 스택 영역에서 실행 후 사라지는 걸로 알고 있는데 코루틴을 사용하게 되면 힙영역에 저장되어 있다가 마지막 리턴이 끝나면 사라지나요?? 그리고 코루틴을 게임에서 어떨 떄 적용을 많이 하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
템플릿 조각 활용
템플릿 조각을 실제로 사용해봐야 감이 잡힐 것 같아서 실제 적용을 해보았습니다. 확인 하고 싶은 html파일을 절대경로로 확인했을 때 해당 템플릿조각(header, footer)부분이 전혀 적용이 안되었습니다. 어디가 잘못되었던걸까요? 이틀째 이것만 보고 있는데 답이 안나와서 문의 드립니다 ,,, ㅠ /resources/templates/layout/header.html <!DOCTYPE html> <html th:fragment="header" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Photogram</title> <!-- 제이쿼리 --> <script th:src="@{https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js}"></script> <!-- Style --> <link rel="stylesheet" th:href="@{/css/header.css}"> <link rel="stylesheet" th:href="@{/css/footer.css}"> <link rel="stylesheet" th:href="@{/css/style.css}"> <link rel="stylesheet" th:href="@{/css/story.css}"> <link rel="stylesheet" th:href="@{/css/popular.css}"> <link rel="stylesheet" th:href="@{/css/profile.css}"> <link rel="stylesheet" th:href="@{/css/upload.css}"> <link rel="stylesheet" th:href="@{/css/update.css}"> <link rel="shortcut icon" th:href="@{/images/insta.svg}"> <!-- Fontawesome --> <link rel="stylesheet" th:href="@{https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.8.2/css/all.min.css}" /> <!-- Fonts --> <link th:href="@{https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700&display=swap}" rel="stylesheet"> </head> <body> <header class="header"> <div class="container"> <a th:href="@{/image/story}" class="logo"> <img th:src="@{/images/logo.jpg}" alt=""> </a> <nav class="navi"> <ul class="navi-list"> <li class="navi-item"><a th:href="@{/image/story}"> <i class="fas fa-home"></i> </a></li> <li class="navi-item"><a th:href="@{/image/popular}"> <i class="far fa-compass"></i> </a></li> <li class="navi-item"><a th:href="@{/user/profile}"> <i class="far fa-user"></i> </a></li> </ul> </nav> </div> </header> </body> </html> /resources/templates/layout/footer.html <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <footer th:fragment="footer"> <div class="container"> <ul> <li><a th:href="@{#a}">소개</a></li> <li><a th:href="@{#a}">블로그</a></li> <li><a th:href="@{#a}">채용 정보</a></li> <li><a th:href="@{#a}">도움말</a></li> <li><a th:href="@{#a}">API</a></li> <li><a th:href="@{#a}">개인정보처리방침</a></li> <li><a th:href="@{#a}">약관</a></li> <li><a th:href="@{#a}">인기 계정</a></li> <li><a th:href="@{#a}">해시태그</a></li> <li><a th:href="@{#a}">위치</a></li> </ul> <div class="copy"> <p>© 2022 Photogram from Lea Hwang</p> </div> </div> </footer> /resources/templates/auth/signin.html - header, footer 템플릿조각이 잘 적용되었는지 확인해보고 싶은 페이지 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <div th:replace="~{/layout/header :: header}"></div> <body> <div class="container"> <main class="loginMain"> <!--로그인섹션--> <section class="login"> <!--로그인박스--> <article class="login__form__container"> <!--로그인 폼--> <div class="login__form"> <h1><img th:src="@{/images/logo.jpg}" alt=""></h1> <!--로그인 인풋--> <form class="login__input" > <input type="text" name="username" placeholder="유저네임" required="required" /> <input type="password" name="password" placeholder="비밀번호" required="required" /> <button>로그인</button> </form> <!--로그인 인풋end--> <!-- 또는 --> <div class="login__horizon"> <div class="br"></div> <div class="or">또는</div> <div class="br"></div> </div> <!-- 또는end --> <!-- Oauth 소셜로그인 --> <div class="login__facebook"> <button> <i class="fab fa-facebook-square"></i> <span>Facebook으로 로그인</span> </button> </div> <!-- Oauth 소셜로그인end --> </div> <!--계정이 없으신가요?--> <div class="login__register"> <span>계정이 없으신가요?</span> <a th:href="@{/auth/signup}">가입하기</a> </div> <!--계정이 없으신가요?end--> </article> </section> </main> </div> </body> <div th:replace="~{layout/footer :: footer}"></div> </html> 1. 절대 경로로 연 signin.html 2. 서버 구동 시켰을 때 나오는 화면, 콘솔 "C:\Program Files\Java\jdk1.8.0_333\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.2\lib\idea_rt.jar=57768:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2021.3.2\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_333\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_333\jre\lib\rt.jar;C:\Users\dbwjd\Desktop\편하게 테스트용\jsp를타임리프로\thymeleaf\out\production\classes;C:\Users\dbwjd\Desktop\편하게 테스트용\jsp를타임리프로\thymeleaf\out\production\resources;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-thymeleaf\2.6.10\a7b7d4d15a174fe3891ce5b13df128e1de6ba9d6\spring-boot-starter-thymeleaf-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\2.6.10\ca6ff4f62825bc8f31811b18fb33c5452da43b81\spring-boot-starter-web-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-security\2.6.10\d766c74b5cc4f3bc75b63e435acd8c2761a564ed\spring-boot-starter-security-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\mysql\mysql-connector-java\8.0.29\16bfffda393ac4fe56f0985f1f035b37d3fc48f\mysql-connector-java-8.0.29.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-log4j2\2.6.10\b0aa7e4b11bb73b38a9e3a453098a1e48ebbde82\spring-boot-starter-log4j2-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\2.6.10\17180490bcfd4a490ac1a48b27eff4fb8655ec1c\spring-boot-starter-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf-spring5\3.0.15.RELEASE\7170e1bcd1588d38c139f7048ebcc262676441c3\thymeleaf-spring5-3.0.15.RELEASE.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.thymeleaf.extras\thymeleaf-extras-java8time\3.0.4.RELEASE\36e7175ddce36c486fff4578b5af7bb32f54f5df\thymeleaf-extras-java8time-3.0.4.RELEASE.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\2.6.10\10f7730f605d45366420ad7bf575105a1761550d\spring-boot-starter-json-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-tomcat\2.6.10\80df6d17fb599040b84fcab33702ec31eba1a165\spring-boot-starter-tomcat-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\5.3.22\519d86b7ac9b8b6bb54739eb4eb73dc13a263b28\spring-webmvc-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\5.3.22\fdab9b8d8df2e6a8fb90f2481c361bcf2c129567\spring-web-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-web\5.6.6\d2a50959c71b87a18b0256c7381db9bdd9c7468c\spring-security-web-5.6.6.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-config\5.6.6\3049cbe8b6a2fc724d2a49f2010437b525f0ca08\spring-security-config-5.6.6.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\5.3.22\2f9f00efbff8432f145ccffeb93e6a1819bac362\spring-aop-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-slf4j-impl\2.17.2\183f7c95fc981f3e97d008b363341343508848e\log4j-slf4j-impl-2.17.2.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-core\2.17.2\fa43ba4467f5300b16d1e0742934149bfc5ac564\log4j-core-2.17.2.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-jul\2.17.2\6a479ffc13d5f0ca3df8117ed57419fc5d06de7f\log4j-jul-2.17.2.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\1.7.36\ed46d81cef9c412a88caef405b58f93a678ff2ca\jul-to-slf4j-1.7.36.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\2.6.10\feeb8e959a35b41650e7fb4040b4f86e451f95c1\spring-boot-autoconfigure-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\2.6.10\de9f4e24f18907e1d566ff0d96148c3ae1142e68\spring-boot-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\2.6.10\145051d408cb255a81f599f52cc4da29b39d36f9\spring-boot-starter-logging-2.6.10.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\jakarta.annotation\jakarta.annotation-api\1.3.5\59eb84ee0d616332ff44aba065f3888cf002cd2d\jakarta.annotation-api-1.3.5.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\5.3.22\661fc01832716c7eedebf995c6841b2f7117c63d\spring-core-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.29\6d0cdafb2010f1297e574656551d7145240f6e25\snakeyaml-1.29.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.thymeleaf\thymeleaf\3.0.15.RELEASE\13e3296a03d8a597b734d832ed8656139bf9cdd8\thymeleaf-3.0.15.RELEASE.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\1.7.36\6c62681a2f655b49963a5983b8b0950a6120ae14\slf4j-api-1.7.36.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.13.3\ad2f4c61aeb9e2a8bb5e4a3ed782cfddec52d972\jackson-datatype-jsr310-2.13.3.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.13.3\f71c4ecc1a403787c963f68bc619b78ce1d2687b\jackson-module-parameter-names-2.13.3.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.13.3\d4884595d5aab5babdb00ddbd693b8fd36b5ec3c\jackson-datatype-jdk8-2.13.3.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.13.3\56deb9ea2c93a7a556b3afbedd616d342963464e\jackson-databind-2.13.3.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-websocket\9.0.65\bd70dfeb39cc83c6934be24fa377b21e541dbe76\tomcat-embed-websocket-9.0.65.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-core\9.0.65\a24c5f379b2ec343a167a83332b75c37f26b2ae7\tomcat-embed-core-9.0.65.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.tomcat.embed\tomcat-embed-el\9.0.65\d278157387e59a5f9b48091dcada22b7c74aed00\tomcat-embed-el-9.0.65.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\5.3.22\fdd59bb4795c7a399e95ec4a5c8b91103e3189fd\spring-context-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\5.3.22\866c2022b5fef05b1702f4a07cfa5598660ce08a\spring-beans-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\5.3.22\c056f9e9994b18c95deead695f9471952d1f21d1\spring-expression-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-core\5.6.6\700dd9a8b103c6a243a0df38eba3e49ec27dd927\spring-security-core-5.6.6.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.17.2\f42d6afa111b4dec5d2aea0fe2197240749a4ea6\log4j-api-2.17.2.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\5.3.22\811ace5e5eb379654ed96fd7844809db51af74a5\spring-jcl-5.3.22.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.attoparser\attoparser\2.0.5.RELEASE\a93ad36df9560de3a5312c1d14f69d938099fa64\attoparser-2.0.5.RELEASE.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.unbescape\unbescape\1.1.6.RELEASE\7b90360afb2b860e09e8347112800d12c12b2a13\unbescape-1.1.6.RELEASE.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.13.3\7198b3aac15285a49e218e08441c5f70af00fc51\jackson-annotations-2.13.3.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.13.3\a27014716e4421684416e5fa83d896ddb87002da\jackson-core-2.13.3.jar;C:\Users\dbwjd\.gradle\caches\modules-2\files-2.1\org.springframework.security\spring-security-crypto\5.6.6\1fd0dbfcdb031a097710c4450e5c545f8fb154bf\spring-security-crypto-5.6.6.jar" ex.thymeleaf.ThymeleafApplication . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.6.10) 2022-08-18 23:51:50.243 INFO 13868 --- [ main] e.t.ThymeleafApplication : Starting ThymeleafApplication using Java 1.8.0_333 on DESKTOP-H6C6G5D with PID 13868 (C:\Users\dbwjd\Desktop\편하게 테스트용\jsp를타임리프로\thymeleaf\out\production\classes started by dbwjd in C:\Users\dbwjd\Desktop\편하게 테스트용\jsp를타임리프로\thymeleaf) 2022-08-18 23:51:50.259 INFO 13868 --- [ main] e.t.ThymeleafApplication : No active profile set, falling back to 1 default profile: "default" 2022-08-18 23:51:52.755 INFO 13868 --- [ main] o.s.b.w.e.t.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2022-08-18 23:51:52.776 INFO 13868 --- [ main] o.a.c.c.StandardService : Starting service [Tomcat] 2022-08-18 23:51:52.777 INFO 13868 --- [ main] o.a.c.c.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.65] 2022-08-18 23:51:53.025 INFO 13868 --- [ main] o.a.c.c.C.[.[.[/] : Initializing Spring embedded WebApplicationContext 2022-08-18 23:51:53.025 INFO 13868 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 2672 ms 2022-08-18 23:51:53.313 WARN 13868 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : Using generated security password: 883c43da-de4b-4d13-8951-8c3c2b83961e This generated password is for development use only. Your security configuration must be updated before running your application in production. 2022-08-18 23:51:53.421 INFO 13868 --- [ main] o.s.s.w.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@149c3204, org.springframework.security.web.context.SecurityContextPersistenceFilter@12abdfb, org.springframework.security.web.header.HeaderWriterFilter@572e6fd9, org.springframework.security.web.csrf.CsrfFilter@459cfcca, org.springframework.security.web.authentication.logout.LogoutFilter@1c6c6f24, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@ad9e63e, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@6bbe50c9, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@8a98f38, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@64f16277, org.springframework.security.web.session.SessionManagementFilter@58b71ceb, org.springframework.security.web.access.ExceptionTranslationFilter@2b5183ec, org.springframework.security.web.access.intercept.FilterSecurityInterceptor@1e141e42] 2022-08-18 23:51:53.645 INFO 13868 --- [ main] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2022-08-18 23:51:53.832 INFO 13868 --- [ main] o.s.b.w.e.t.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2022-08-18 23:51:53.844 INFO 13868 --- [ main] e.t.ThymeleafApplication : Started ThymeleafApplication in 4.527 seconds (JVM running for 5.851) 2022-08-18 23:52:15.777 INFO 13868 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2022-08-18 23:52:15.777 INFO 13868 --- [nio-8080-exec-1] o.s.w.s.DispatcherServlet : Initializing Servlet 'dispatcherServlet' 2022-08-18 23:52:15.779 INFO 13868 --- [nio-8080-exec-1] o.s.w.s.DispatcherServlet : Completed initialization in 2 ms
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
페치조인 select 필드에 의문이 있습니다.
이번 강의에 나온 예시처럼 fetch join을 여러 관계에 적용한다면 한번의 select 쿼리에 모든 필드값을 가져오게 됩니다. 여기서 의문이 생긴게 만약 필요한 필드의 개수가 소수라면, 해당하는 필드만 select 하여 가져오는게 성능상 좋을지 아니면 페치 조인을 통해 한방 쿼리로 가져 오는게 성능상 좋을지 입니다. 전자의 경우 다수의 select 문이 실행되겠지만 가져오는 조회하는 필드는 적고, 후자의 경우 한번의 select 문이 실행되지만 모든 필드를 조회합니다. 이러한 경우엔 어떤 방식이 유리한가요? 페치조인으로 한방에 가져오는 메서드로 여러 방면에서 재사용하는 것이 좋은지, 각 상황에 맞는 쿼리로 다수의 메서드를 만드는게 좋은지 궁금합니다.
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
null과 equals의 차이가 뭔지 궁금합니다.
검색해보니 ‘==’ 는 연산자로 주소값을 비교하고, ‘equals’ 는 메소드로 실제 내용 자체를 비교한다고 하는데 title == null, title.equals("")의 차이는 null은 title 객체 자체가 없는 것이고 equals 객체는 만들어졌는데 값이 ""인 의미인가요? 둘의 차이가 잘 이해되지않아 질문드립니다!