묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA에서 findById, findByName에서 궁금한게있습니다.
package hello.hellospring.repository; import hello.hellospring.domain.Member; import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository { private final EntityManager em; // build.gradle에서 data-jpa를 등록함 // 스프링부트가 자동으로 EntityManager 만들어줌 public JpaMemberRepository(EntityManager em) { this.em = em; } // 저장, 조회, 업데이트는 쿼리 짤 필요 없음 @Override public Member save(Member member) { em.persist(member); // persist=영구저장-> setId등 모든것을 해줌 return member; } @Override public Optional findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } // 리스트로 탐색 시 @Override public Optional findByName(String name) { List result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } @Override public List findAll() { // 객체를 대상으로 쿼리를 날림 -> entity 자체를 select하는 것임 List result = em.createQuery("select m from Member m", Member.class) .getResultList(); return result; // return em.createQuery("select m from Member m", Member.class) // .getResultList(); } } 여기에서 findById는 sql없이 찾을 수 있는데 findByName은 쿼리를 작성해주는데, 이유가 어떤건가요? 혹시 id의 경우 제가 db에 넣는게아니라 컴퓨터에서 직접 넣어주는거고 name은 제가 입력해서 db에 넣기 때문인가요? 그리고 findByName에서 sql을 이용해서 특정 데이터를 뽑아내면 list로 나오는데, findById의 경우는 리스트로 나오는게 아닌가요,,?
-
미해결웰컴 투 태블로 월드
안녕하세요. 스캐터 플롯에서 질문이 있습니다!
다름이 아니라 추세선을 추가할 때, 일반 선형 추세선이 아닌 다항식 추세선을 넣을 수가 있는데, 여기서 다항식의 구성은 어떻게 알 수 있나요?>
-
해결됨[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
.tab-inner .btn span태그 box sizing: border box;
선생님 .tab-inner .btn span태그에 width:100px; 을 주고 padding:5px;을 주었으니 너비값이 padding으로 인해서 변하니 box sizing: border box;를 줘야되는거 아닐까요??
-
미해결성공적인 SQL 인젝션 공격을 위한, SQL 기본 문법
질문입니다.
안녕하세요 SQL기본문법 활용예제(1)강의에서 8분 25초경 예제 5번문제 해설해주시는부분이 잘 이해가 안되는데 처음에 name이 kimhongsam 인 부분에 name에 들어가서 name이 leegugu부분이 참이 된다고 하셨는데 그 이유가 궁금합니다..
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PRG 패턴에 대해 궁금한게 있습니다
PRG 패턴이 클라이언트 차원에서 중복 주문을 예방하는 방법이라고 하셨는데,일단 API 자체에서도 응답으로 3xx와 같은 리다이렉션 응답코드를 리턴해줘야 가능한게 맞을까요? 그렇다면 데이터를 중복으로 생성하면 문제가 있을만한 post 요청에 대해서는 201 응답보다는 3xx 응답을 주는게 맞는건지?가 궁금합니다.
-
미해결면접과 취업을 부르는 '퍼블리셔 개인 포트폴리오 홈페이지' 제작
개인 포트폴리오 제작할때 벤치마킹 싸이트 이미지를 그대로 사용하면 안될까요?
안녕하세요~ 개인 포트폴리오 여쭤볼게 있는데요 개인 포트폴리오 제작할때 벤치마킹 싸이트 이미지를 그대로 사용해도 되나요? 안된다면 이미지같은 경우는 어디에서 가져와야 될까요?
-
미해결스프링 핵심 원리 - 기본편
MemoryMemberRepository에 store를 static으로 선안하는 이유가 뭐죠?
static이라는게 다른 클래스에서도 객체 생성하지 않고도 해당 변수를 사용할 수 있게 만드는 것 아닌가요? 제 생각에는 저장소를 Repository 클래스에서만 쓸거 같은데 왜 static으로 선언한건지 궁금합니다. 추가로 MemberServiceImpl에서 repository 변수를 final로 만든 이유도 궁금합니다.
-
미해결처음 배우는 리액트 네이티브
아래 에러의 원인을 못찾겠네요 ,,,
https://github.com/dongguntechnology/rn_chat 17:20 Invariant Violation: "main" has not been registered. This can happen if: * Metro (the local dev server) is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project. * A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called. rror: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getter setter 인텔리제이에서 만드는 법
안녕하세요. getter setter를 만들려고 했는데 alt+Insert를 해도 generate에 test와 copyright만 뜨고 다른게 뜨지를 않습니다. 이럴땐 getter setter를 어떻게 만들어야 할까요 ㅠㅠ.. 구글링을 해봐도 모두 generate를 누르면 다 getter setter 탭이 뜨는데 인텔리제이 사용이 처음이라 어렵네요 ㅠㅠ..
-
미해결Vue.js + TypeScript 완벽 가이드
todoItems 일부러 타입 안맞게 해당 변수 값을 저장 시켰는데요 왜 밑에 빨간색이 안나올까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사 todoItems 변수를 todoItems: [] as Todo[] 이렇게 Todo 로 선언했는데요 this.todoItems = 1; 이렇게 선언하면 밑에 빨간색이 나와야 하는데 왜 안나오는걸까요... tsconfig 파일에서 "noImplicitAny": true, 이렇게 true 로 설정했는데... 왜 그런건가요?? 답변 부탁드립니다 ㅠㅠ 감사합니다.
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습
솔리디티 4.1.15 이상의 버전은 안되나요?
솔리디티 5.1.6 버전을 쓰고 있습니다. 이전에 공부할때 그 버전을 쓰기도했고 4.1.15를 설치하려고 하면 에러가 나서요 deploy할때 5.1.6으로 쓰려고하면 이런 에러가 나옵니다 ExtendableError: Unknown network "klaytn". See your Truffle configuration file for available networks. at Object.validateNetworkConfig (C:\Users\SasukiYoko\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\environment\environment.js:111:1) at Object.detect (C:\Users\SasukiYoko\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\environment\environment.js:16:1) at WorkflowCompile.compileAndSave.then (C:\Users\SasukiYoko\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\core\lib\commands\migrate.js:206:1) Truffle v5.1.61 (core: 5.1.61) Node v10.15.3 꼭 4.1.15 버전을 써야하나요 ?? 5.1.6으로 하는 방법은 없을까요?
-
미해결After Effects CC 2020 모션 그래픽의 입문 Part.1
pen tool masking(2) 강의에서
안녕하세요 강사님, 혹시 해당강의 12분 19초쯤 나오는 윗쪽 아랫쪽 화살표 기능을 하는 키가 맥에서는 무엇인지 알 수 있을까요?
-
해결됨배달앱 클론코딩 [with React Native]
질문있습니다!
안녕하세요 제로초님! 위치정보 카메라 권한 얻기 강의에서 질문1. if (Platform.OS === 'android') { check(PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION) .then(result => { console.log('check location', result); if (result === RESULTS.BLOCKED || result === RESULTS.DENIED) { Alert.alert( '이 앱은 위치 권한 허용이 필요합니다', '앱 설정 화면을 열어서 항상 허용으로 바꿔주세요.', [ { text: '네', onPress: () => Linking.openSettings(), }, { text: '아니오', onPress: () => console.log('No Pressed'), style: 'cancel', }, ], ); } }) 위치 권한 허용할 때 위치권한은 항상허용이 사라져서 수동으로 해야한다고 말씀하셨잖아요? 그런데 19:20초쯤 안드로이드에서는 그냥 deny일때 request하면 된다고 하셔서 헷갈리는게 있습니다! 19:20초에서 말씀하신 뜻이 수동으로 말고 request로 해도 된다는 말씀이신가요? 코드에서는 위치권한을 아예 수동으로 설정해놓으셨는데 위치권한 항상허용은 수동으로 해야하나요?... 아니면 deny일때 request를 하면 항상허용이 적용되는 것인가요? 질문2. 또한 deny와 block의 차이를 모르겠습니다. 콘솔로 찍어서 deny와 다른 선택지를 클릭하면 deny는 나오는데 block은 나오지 않습니다 block은 차단인것 같은데 어떨 때 발생하는것인지 궁금합니다.
-
미해결업무 자동화를 위한 파이썬 pyautogui, beautifulsoup 크롤링 기초
import
visual studio code 에서는 import가 안돼요 일단 jupyter notebook 에서는 되길래 그렇게 실습하려고하긴합니다. 저는 vscode에서 하고싶은데 왜 vscode에서는 안될까요?
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
네비게이션 호버 관련
선생님 네비게이션 옆으로 보이게 하는 구성 연습중 막히는 부분이 있어 질문드립니다!! 캡쳐화면과 같이 마우스를 menu1에 올리면 sub-menu가 menu1 의 sub-menu가 아닌 menu4의 sub-menu가 나와요.. 제이쿼리 적용시에는 괜찮은데 이게 혹시 나중에 문제가 있을까 걱정이 되어서요ㅠㅠ html <!DOCTYPE html> <html lang="ko"> <head> <meta charset="UTF-8"> <title>Vallery Festival</title> <link rel="stylesheet" href="css/style.css"> </head> <body> <div class="container"> <div class="left"> <header> <div class="header-logo"> <a href="#none"><img src="images/logo-header.png" alt="logo-header"></a> </div> <div class="navi"> <ul class="menu"> <li> <a href="#none">축제소개</a> <div class="sub-menu"> <a href="#none">Festival소개</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> <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> <a href="#none"><img src="images/slide-01.jpg" alt="slide-01"></a> <a href="#none"><img src="images/slide-02.jpg" alt="slide-02"></a> <a href="#none"><img src="images/slide-03.jpg" alt="slide-03"></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>운영위원장 후보자 추천을 받고 있습니다.</em><b>2020.01.09</b></a> <a href="#none"><em>홈커밍데이 진행위원회 결과를 다운로드 받으세요.</em><b>2020.01.07</b></a> <a href="#none"><em>카드결제 무이자 이벤트 한시적 10월 20일까지</em><b>2019.12.31</b></a> <a href="#none"><em>보안강화 시스템 작업 안내 공지</em><b>2019.12.20</b></a> <a href="#none"><em>부여 가을연꽃축제 10주년 콘서트 축제</em><b>2019.12.20</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.jpg" alt="gallery-01"></a> <a href="#none"><img src="images/gallery-02.jpg" alt="gallery-02"></a> <a href="#none"><img src="images/gallery-03.jpg" alt="gallery-03"></a> </div> </div> </div> <div class="shortcut"> <a href="#none"><img src="images/shortcut.jpg" alt="shortcut"></a> </div> </div> <footer> <div class="footer-logo"> <a href="#none"><img src="images/logo-header.png" alt="footer-logo"></a> </div> <div class="copyright"> 상호 : (주)린 | 대표자 : 최종윤 | 개인정보관리책임자 : 이주현 부장<br> 사업장주소 : 인천광역시 중구 개항로 6층 (주)이스타컴퍼니 </div> <div class="familysite"> <select> <option value="">familysite</option> <option value="">여주군청 홈페이지</option> <option value="">한국관광공사</option> <option value="">여행자보험가입</option> </select> </div> </footer> </div> </div> <div class="modal"> <div class="modal-content"> <h2>부여 가을연꽃축제 팸투어 모집</h2> <p>예비 청년상인들을 위해 진행하는 부여에서 청춘의 미래를 디자인하다. 청년창업人부여 팸투어가 12월 05일 토요일 충청남도 부여에서 진행됩니다. <br><br> 팸투어는 전액 무료로 진행되며 참가비 없습니다. 이번 팸투어에서는 부여군상권활성화재단의 청년상인 육성프로젝트를 실제로 견학하며 확인해 보실 수 있는 좋은 기회이니 창업을 희망하는 많은 청년 분들의 관심 부탁드립니다. <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> css @charset "utf-8"; body { margin: 0; background-color: #fff; color: #333; font-size: 15px; } a { text-decoration: none; color: #333; } .container { width: 1000px; } .container > div { /* border: 1px solid red; */ float: left; box-sizing: border-box; height: 600px; } .left { width: 200px; } .right { width: 800px; } header {} header > div {} .header-logo { height: 100px; line-height: 130px; } .navi {} /* Navigation */ .menu { position: relative; width: 90%; margin: auto; list-style: none; padding: 0; } .menu li { text-align: center; } .menu li > a { border: 1px solid #000; display: block; padding: 5px; transition: 0.5s; } .menu li:hover > a { background-color: #000; color: #fff; } .sub-menu { border: 1px solid #000; position: absolute; top: -30px; left: 100%; width: 100%; height: 200px; background-color: #000; /* display: none; */ } .sub-menu a { display: block; padding: 5px; color: #fff; transition: 0.5s; } .sub-menu a:hover { background-color: #fff; color: #000; } /* Slide Animation */ .slide { width: 800px; height: 350px; overflow: hidden; } .slide > div { width: 2400px; font-size: 0; animation: slide 10s linear infinite; } .slide a { } .slide a img {} @keyframes slide { 0% { margin-left: 0; } 30% { margin-left: 0; } 35% { margin-left: -800px; } 65% { margin-left: -800px; } 70% { margin-left: -1600px; } 95% { margin-left: -1600px; } 100% { margin-left: 0; } } .items { overflow: hidden; margin-top: 20px; } .items > div { /* border: 1px solid red; */ height: 200px; float: left; box-sizing: border-box; } /* Tab Content */ .tab-inner { width: 95%; margin: auto; } .tab-inner > div {} .tab-inner .btn {} .tab-inner .btn span { border: 1px solid #000; text-align: center; width: 100px; padding: 5px; box-sizing: border-box; display: inline-block; border-radius: 5px 5px 0 0; border-bottom: none; margin-bottom: -1px; background-color: #fff; } .tab1, .tab2 { border: 1px solid #000; height: 160px; } .tab1 { padding: 0 10px; } .tab1 a { display: block; border-bottom: 1px solid #000; padding: 5px; } .tab1 a:last-child { border-bottom: none; } .tab1 a b { float: right; font-weight: normal; } .tab2 { text-align: center; } .tab2 a {} .tab2 a img { padding-top: 30px; width: 85px; } /* css 깔끔하게 */ .tab1 a { overflow: hidden; } .tab1 em, .tab1 b { float: left; } .tab1 em { width: 70%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-style: normal; } .tab1 em b{} .news { width: 300px; } .gallery { width: 300px; } .shortcut { width: 200px; } .shortcut img { width: 95%; } footer { overflow: hidden; } footer > div { /* border: 1px solid red; */ height: 100px; float: left; box-sizing: border-box; text-align: center; } .footer-logo { width: 200px; line-height: 130px; } .copyright { padding-top: 30px; width: 400px; } .familysite { width: 200px; padding-top: 40px; } /* Modal */ .modal { display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.2); } .modal-content { position: absolute; background-color: #fff; width: 400px; top: 50%; left: 50%; transform: translate(-50%,-50%); padding: 20px 30px; border-radius: 10px; } .modal-content h2 {} .modal-content p { line-height: 1.6em; } .close-modal { border: 1px solid #000; padding: 5px 10px; float: right; }
-
미해결스프링 핵심 원리 - 고급편
doTransaction() 어드바이스의 return 값 의미가 궁금합니다.
안녕하세요. 좋은 강의 제공해주셔서 감사합니다. 문득... 강의를 보다 Object result 를 return 해주고 있어, 이 반환이 어떤 의미가 있는지 그리고 어느곳에서 사용을 하는지 궁금해 문의 드리고 싶습니다. 아래 코드의 7 Line 입니다. @Around("allOrder() && allService()")public Object doTransaction(ProceedingJoinPoint joinPoint) throws Throwable { try { log.info("[트랜잭션 시작] {}", joinPoint.getSignature()); Object result = joinPoint.proceed(); log.info("[트랜잭션 커밋] {}", joinPoint.getSignature()); return result; } catch (Exception e) { log.info("[트랜잭션 롤백] {}", joinPoint.getSignature()); throw e; } finally { log.info("[리소스 릴리즈] {}", joinPoint.getSignature()); }} 감사합니다.
-
미해결Slack 클론 코딩[실시간 채팅 with React]
socket 객체의 삭제에 관한 질문
안녕하세요 제로초님 ㅎ 제가 sleact프론트 만들기 강의를 듣고 express로 서버를 직접 구현해보고 있습니다. 근데 socket부분을 구현하던 중 의문이 들었습니다. workspace가 바뀌거나, 페이지 새로고침을 하면 서버에 새롭게 socket.on('connect') 요청이 가고 서버에선 새롭게 다시 통신을 합니다. onlineMap[newNamespace.name][socket.id] = id; //유저정보 기록 이렇게 새롭게 유저를 넣어주고, newNamespace.emit('onlineList', onlineMap[newNamespace.name]); 이렇게 서버로 온라인 리스트를 보내주고 콘솔에 찍어주니 새로고침할때마다 id 앞에있는 socket id가 이렇게 바뀌는데, 매번 새로고침할때마다 기존의 socket은 삭제되고, 새롭게 생성되는 것인가요? (disconnect해서 onlineList= {} 에서 삭제되는것 질문하는거아님) 그리고 DMList에서 onlineList를 가져온다음 socket.off를 해주는 이유가 무엇인가요>? 질문이 길어서 죄송합니다. 답변 기다리겠습니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
메모리 데이터 조회 예제를 해보고 있는데 폼 데이터를 하나 더 추가하니 조회가 안됩니다.
안녕하세요. 회원 목록 Memory 에 저장하는거를 토대로 그냥 시간, 할 일 데이터를 받아와서 출력하는 예제를 해보고 있습니다. ( 수업 때 진행하셨던 부분을 토대로 한거라 구조는 같은데 Model에 date,work 가 저장되어 변수 하나 더 추가해서 해보는 중입니다. ) - 날짜, 할 일을 입력 받는 것까지 되는거는 확인 했습니다. - 1 을 보시면 아시다 싶이 id 값은 출력이 됩니다. 그런데 date 와 work 로 설정해놓은 데이터들이 출력이 안됩니다. 소스파일은 zip 파일로 묶어서 구글드라이브에 올려놨습니다. ( https://drive.google.com/file/d/1aTSxDKgxCr-do_l9oV0zNX3NTc7jDfRN/view?usp=sharing ) 한번 확인 가능하시면 어떤 부분을 놓치고 있는 것인지 조언 부탁드립니다.
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
select 에 option태그 관련
선생님! option태그에 value="" 이부분은 그냥 공백으로 비워놔도 상관없는지 궁금해요
-
미해결실전 리액트 프로그래밍
컴포넌트와 컨테이너의 기준
안녕하세요. 패키지 구조내의 컨테이너와 컴포넌트를 나누는 기준이 궁금하여서 질문드립니다. 강의를 듣기 이전에 state를 관리하는 부븐을 컨테이너로 props를 받아서 화면에 보여주는 것들은 컴포넌트로 나누어서 사용을했었는데요 (smart component, dumb component로 어디서 봤네요)리덕스를 사용하게되면서 컴포넌트와 컨테이너 모두 state를 받아서 사용하거나 dispatch를 이용하여 데이터를 변경할 수 있는데 어떤기준으로 패키지를 나누고 계신지 궁금합니다!