묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 프레임워크 핵심 기술
이벤트 생성된 걸 핸들러가 어떻게 알아차리게(?)되나요?
안녕하세요 기선님 항상 좋은 강의 감사드립니다. 강의를 통해 이벤트 기반의 코딩은 결국 이벤트를 처리할 핸들러들은 미리 빈으로 생성해 applicationContext 가 가지고 있고, 앱이 동작하는 동안 특정 상황에서 이벤트퍼블리셔를 통해 이벤트가 생성되면, 핸들러가 이벤트가 생성되었음을 알아차리고 처리를 하게되는 흐름이라고 이해했습니다. 그런데 어떤 방식으로 핸들러가 이벤트가 생성된걸 알아차리는지 궁금합니다. 이벤트 퍼블리셔가 이벤트를 생성할때 이벤트 핸들러에게 알려주는건가요??
-
미해결모의해킹 실무자가 알려주는, SQL Injection 공격 기법과 시큐어 코딩 : PART 1
취약점 유/무 진단에 대하여
1. 안녕하세요 열심히 수업을 듣고있는 학생입니다. 수업을 진행하면서, 개발자 친구의 도움을 받아 실습환경을 구성해서 실제로 해커처럼 기법을 써보고, 체득할 수 있도록 노력중입니다. 그런데 문제는 취약점 유/무 진단에서 막혀서 공격은 시도조차 못하고 있다는것입니다.. 이런 과정속에서 실무에 관한 의문이 생겼는데요, 정말 취약한 사이트가 아닌 이상에야 사실 웹방화벽을 사용하거나 입력값 검증 정도는 하는걸로 알고있습니다. 연결 연산자 사용이라거나, 싱글쿼터로 에러를 유발하는것은 친구가 구축한 환경에서도 먹히지가 않더라구요. (문자열을 넣어야하는 조건문에 and 1=1 을 넣고 안된다고 하는것이 아니라, 강사님이 알려주신대로 from절이나 order by 등에도 다 필터링에 막혔습니다) 제가 궁금한것은 실무에서 이런 경우에 sql 취약점이 없다고 결론을 내리는 건가요? 아니면 기본 강의이기 때문에 입력값 검증 우회에 대해서는 다루지 않는것인가요? 만약 후자라면, 이런 실무에서 바로 쓸 수 있는 기법들은 어떻게 배울 수 있을까요? 2. 강의를 들으면서 웹해킹은 웹프로그래밍의 연장선이라는 생각이 많이 들었습니다. 그런데 제가 웹 프로그래밍 쪽이 약해서, 강의 도중 가끔 php 함수를 쓰거나 하실때도 좀 어렵게 느껴지더라구요. 이를 보완하고 싶은데, 화이트해커 관점에서의 웹프로그래밍 공부법을 추천해주시면 감사하겠습니다.질문 답변 잘해주셔서 늘 감사합니다. 좋은하루되세요.
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
서버 문제 있는지 확인가능한가요?
동영상재생이 한번에 잘 안되네요.
-
해결됨스프링과 JPA 기반 웹 애플리케이션 개발
강의를 전부 수강한뒤 궁금증과 오류를 발견한것이 있어서 질문 남깁니다!!
1. index페이지에서 nav바에 있는 스터디버튼은 비활성화 되어있는데 원래의도는 프로필의 스터디 페이지로 보내주는것이였는지 궁금합니다. 2. 프로필의 스터디 페이지가 study만 출력하여 보여주고있는데 원래의도는 현재 관리중이거나 참여중인 스터디를 보여주는것인지 궁금합니다. 3. 회원가입 후 이메일 인증을 하지않은상태에서 프로필 소개 페이지를 보게되면 "가입을 완료하려면 이메일을 확인하세요." 를 눌렀을때에 404에러가 발생하게되는데 이부분 에러 발생이 제가 강의중 놓친부분이 있어서 404에러가 발생한것인지 궁금합니다. 4. index-after-login.html 에서 참여중인 스터디를 보여주는 부분에 75line의 코드가 class="list-group-item list-group-item-action" th:each="study: ${studyManagerOf}"> 로 구성되어있어서 참여중인 스터디가 아닌 관리중인 스터디가 출력되는 오류가 있었습니다.! class="list-group-item list-group-item-action" th:each="study: ${studyMemberOf}"> 로 변경하여 정상작동 확인했습니다. 수준높은 강의 감사합니다. 친절한 설명덕분에 스프링과 JPA를 많이 배우게되었습니다. 감사합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
stream().findAny()에 대한 질문입니다.
findById와 findByName에서 return result.stream().findAny()를 해주고 있는데요 stream().findAny()를 해주면 무조건 Optional 객체형으로 바뀌는건가요??
-
해결됨스프링 프레임워크 핵심 기술
컴포넌트 스캔 밖 빈 등록시 인텔리제이
스캔범위 밖 패키지의 빈을 직접 등록한 경우 인텔리제이가 제공하는 가이드에서는 다음과 같은 메세지를 띄어주네요. 돌려보니까 빈으로 등록되어있긴한데 인텔리제이가 못잡아주는 건가요?
-
미해결[개념부터 실습까지] 추천 시스템 입문편
오버피팅 방지 방법 관련 참고할 수 있는 코드가 있을까요?
안녕하세요, 좋은 강의 잘 듣고 있습니다 :) 섹션 7. Content-Based Recommendation 2 -> [파이썬 구현] 오버피팅 (Overfitting) 강의 마지막에 오버피팅을 방지하는 방법으로 '빈도수가 낮은 장르 없애기', 'correlation이 높은 장르들을 합치기', '데이터가 적은 user에 대한 평점을 전체 평균 / 유저별 평균 / contents-based filtering 1 강의에서 사용한 방법으로 예측'하는 것에 대한 코드 작성을 해볼 것을 말씀해주셨었는데, 혹시 참고할 수 있는 코드가 있을까요? 가능하다면, 제가 도출한 결과와 비교해보고 싶습니다! 감사합니다 :)
-
미해결iOS/Android 앱 개발을 위한 실전 React Native - Basic
안드로이드 에뮬레이터 오류
혹시 이런 오류 나시는분은 안계신가요???? 전 High Sierra 10.13.6 - Xcode 10 에서 테스트하고 있고 나머지는 버전 맞춰서 설정 했는데요 안드로이드 에뮬레이터를 실행하면 이런 에러가 나는데 도대체 수정할 방법이 검색으로도 안나오네요
-
미해결홍정모의 따라하며 배우는 C언어
질문입니다
null character는 문자열 뒤에 붙지만 숨어있다 하셨는데, 그럼 실제로 제가 문자열을 적을 때에도 null character를 굳이 쓰지 않아도 컴퓨터 안에서 알아서 null character는 붙여 주는 건가요? 그리고 제가 직접 null character를 적어도 되나요? 아니면 컴퓨터가 알아서 하게 그냥 납두는 게 나은 가요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
Add to Cart 누를 시에 Gateway timeout 에러가 납니다!
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
중복 값을 넣었을 때 inputText 유지 하는 방법 좀 가르쳐 주세요.
안녕하세요 선생님 저는 inputText에 값을 넣고 이벤트를 실행 했을 경우중복 값이 있는 경우 : Modal 창 띄우고 inputText 값 유지중복 값이 없는 경우 : 기존 로직 실행을 하려고 합니다.TodoInput.vue에서 이벤트를 주고 App.vue에서 중복 체크 한 후 validate 값을 props를 통하여 TodoInput.vue에 전달 하였습니다. 화면에 보여졌을때나 devTools의 vue를 보면 props 값이 부모와 일치 한데 메소드에서 props를 사용하려고 하면 부모 데이터의 이전 값이 표시가 됩니다. 메소드에서 부모와 동일한 props 데이터를 받는 방법이 있을까요?소스 보시고 답변 해주시면 감사하겠습니다. App.vue <template> <div id="app"> <TodoHeader></TodoHeader> <TodoInput v-on:addTodoItem="addOneItem" v-bind:propsdata="validate" ></TodoInput> <!-- propsdata 선언 --> <TodoList v-bind:propsdata="todoItems" v-on:removeItem="removeOneItem" v-on:toggleItem="toggleOneItem"></TodoList> <TodoFooter v-on:clearAll="clearAllItems"></TodoFooter> <Modal v-if="showModal" @close="showModal = false"> <!-- you can use custom content here to overwrite default content --> <h3 slot="header"> 경고! <i class="closeModalBtn fas fa-times " @click="showModal = false"></i> </h3> <h3 slot="body"> {{ message }} </h3> </Modal> </div> </template> <script> import TodoHeader from './components/TodoHeader.vue'; import TodoInput from './components/TodoInput.vue'; import TodoList from './components/TodoList.vue'; import TodoFooter from './components/TodoFooter.vue'; import Modal from './components/common/Modal.vue' export default { data: function() { return { todoItems: [], showModal: false, message: '', validate: false //중복 체크 값 선언 } }, methods: { addOneItem: function(todoItem) { var obj = {completed: false, item: todoItem}; localStorage.setItem(todoItem, JSON.stringify(obj)); // todoItems에 이미 같은 값이 있는지 체크 if(!this.todoItems.some(data => data.item == todoItem)) { this.todoItems.push(obj) this.validate = false; // 중복 체크 값 입력 } else { this.message = '중복 데이터가 존재 합니다. 중복 데이터 : [' + todoItem + ']' this.showModal = !this.showModal; this.validate = true; // 중복 체크 값 입력 } console.log('App.vue data : ' + this.validate); // 중복 체크 값 Log 출력 }, removeOneItem: function(todoItem, index) { localStorage.removeItem(todoItem.item); this.todoItems.splice(index, 1); }, toggleOneItem: function(todoItem, index) { // todoItem.completed = !todoItem.completed; // 같은 동작 this.todoItems[index].completed = !this.todoItems[index].completed; // 로컬 스토리지의 데이터를 갱신 localStorage.removeItem(todoItem.item); localStorage.setItem(todoItem.item, JSON.stringify(todoItem)); }, clearAllItems: function() { localStorage.clear(); this.todoItems = []; } }, created: function() { if(localStorage.length > 0) { for(var i=0;i<localStorage.length;i++) { if(localStorage.key(i) !== 'loglevel:webpack-dev-server') { // console.log(JSON.parse( localStorage.getItem(localStorage.key(i)))); this.todoItems.push(JSON.parse(localStorage.getItem(localStorage.key(i)))); // this.todoItems.push(localStorage.key(i)); } } } }, components: { // 컴포넌트 태그명 : 컴포넌트 내용 'TodoHeader': TodoHeader, 'TodoInput': TodoInput, 'TodoList': TodoList, 'TodoFooter': TodoFooter, Modal: Modal } } </script> TotoInput.vue <template> <div class="inputBox shadow"> <input type="text" v-model="newTodoItem" v-on:keyup.enter="addTodo"> <!-- <button v-on:click="addTodo">add</button> --> <span class="addContainer" v-on:click="addTodo"> <i class="fas fa-plus addBtn"></i> </span> <Modal v-if="showModal" @close="showModal = false"> <!-- you can use custom content here to overwrite default content --> <h3 slot="header"> 경고! <i class="closeModalBtn fas fa-times " @click="showModal = false"></i> </h3> <h3 slot="body"> 아무것도 입력하지 않으셨습니다. </h3> </Modal> </div> </template> <script> import Modal from './common/Modal.vue' export default { props: ['propsdata'], // propsdata 생성 data: function() { return { newTodoItem: "", showModal: false, propsd: this.propsdata } }, methods: { addTodo: function() { if(this.newTodoItem !== '') { this.$emit('addTodoItem', this.newTodoItem); console.log('TotoInput.vue data : ' + this.propsdata); // propsdata Log 출력 // 중복이 아닐 경우에만 Text Clear if(!this.propsdata) { this.clearInput(); } } else { this.showModal = !this.showModal; } }, clearInput: function() { this.newTodoItem = ''; } }, components: { Modal: Modal } } </script> 결과
-
해결됨인터랙티브 웹 개발 제대로 시작하기
스크립트 관련 질문이 있습니다.
style 로 값을 준 후에 addEventListener('transitionend') 이벤트를 주려고 합니다. end가 붙어있으면 제거해주고 없으면 end 추가해주는 식으로 했는데.. 처음 클릭했을 때 end 클래스가 계속 보여졌다 사라졌다 합니다ㅠㅠㅠㅠ if 문 안에 return; 을 적용했는데도 동일한 현상이 보여집니다ㅠㅠ const ballElem = document.querySelector('.ball'); let defult = false; window.addEventListener('click', function(e) { ballElem.style.transform = 'translate(' + (e.clientX - 15) +'px, ' + (e.clientY - 15) + 'px)'; ballElem.addEventListener('transitionend', function(e) { if ( !defult ) { ballElem.classList.add('end'); defult = true; return; } else if ( defult) { ballElem.classList.remove('end'); defult = false; return; } }); });
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
섹션5.크롤링 파트를 건너뛰고 섹션6을 들으려는데 혹시 크롤링파트에서 만든 db/table 코드 공유받을 수 있을까요?
안녕하세요. 선생님 sql 강의 즐겁게 잘 듣고 있습니다. 제가 크롤링 지식 없이 이 강의를 수강하다 보니 섹션5.실전크롤링/MySQL 파트가 이해가 되지 않아 일단 섹션6부터 수강한 뒤 크롤링 강의를 따로 수강하고 다시 듣고자 합니다. 다행히 sqld 자격증을 준비하면서 섹션6에서 필요한 기본 문법들은 알고 있는 상태입니다. 그런데 섹션 6에서 사용되는 db/테이블이 섹션 5에서 만든 테이블이라 섹션6을 들을 수 없더라구요ㅠㅠㅠ 혹시 섹션5의 테이블 생성한 코드 파일을 공유받을 수 있을까 싶어서 문의드립니다. 지금 가용 시간이 많지 않아 섹션5를 건너뛰지만, 이후에 꼭 다시 들을 계획입니다. 감사합니다!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
cascade 관련 질문입니다!
안녕하세요 김영한 강사님! 먼저 좋은 강의 만들어주셔서 감사합니다! 강의를 듣다가 cascade 관련하여 질문이 생겨서 질문 작성을 하게 되었습니다. 먼저 밑에 분이 먼저 해주신 질문과 강사님의 답변을 보고 cascade 옵션 자체는 연관관계 주인, 양방향등 관계 없이 1. 동일한 라이프 사이클, 2. 참조하는 주인이 private owner 일 때 라고 2가지 조건을 충족할 때 쓴다고 이해하게 되었는데, 그럼 order, orderItem, delivery에서 orderItem과 delivery가 각각 order만 참조하는, 다른 것이 참조할 수 없는 private owner인 건가요? private owner 라는 말에 대한 이해가 정확하게 되지 않아서 질문을 드립니다. 제가 이해한 것이 맞는 건가요? 감사합니다.
-
해결됨인터랙티브 웹 개발 제대로 시작하기
스크립트로 style 값을 줄 때 질문입니다.
안녕하세요. 강의 듣는 중에 궁금한 점이 있어서 여쭤봅니다. transform 경우 벤더프리픽스를 해줘야 하는데, 스크립트로 적용할 때엔 벤더프리픽스 작업을 안해줘도 브라우저마다 적용이 되는 건가요?? transform 외에도 벤더프리픽스 해줘야하는 속성들이 있어서 이럴 때엔 스크립트로만 작성해줘도 브라우저별로 실행이 되는 지 궁금해서 여쭤봅니다..
-
미해결[OpenCV] 파이썬 딥러닝 영상처리 프로젝트 2 - 불량사과를 찾아라!
제발 답좀 달아주세요 궁금해서 죽을것같아요
food100을 넣고 했는데, 일단학습이 되긴 합니다. 문제는 final _weight 가 100번까지 돌아간뒤에 저장이 되었다고 뜨는데 저장이 안되네요... 저번꺼는 6000번까지 돌아가던데 왜 이거는 100번만 돌아가고 마는건가요? 그리고 왜 저장이 안되는걸가요.. 뭐의 문제인가요
-
해결됨실전! Querydsl
강사님 컨트롤러에서 Pageable 사용 관련해서 질문드립니다.
강사님 안녕하세요. 강사님 덕분에 JPA 로드맵 강의를 알차게 배웠습니다. 갑자기 뜬금없이 생각났는데 컨트롤러에서 Pageable를 바로 사용할 경우 max size를 제한할 수 있는 방법은 없는건지요. 악의적으로 query String에 size값을 100000000 이렇게 찍어놓고 막무가내로 요청을 여러번 보낸다면 왠지 서버가 뻗을 것 같다는 생각이 들어서요. Pageable에서 최대 사이즈 막을 수 있는 방법이 없다면 따로 VO를 통해서 제한해 줘야하는 건지 궁금해서 질문드립니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
강의대상
자바스크립트의 함수형프로그래밍을 배울수있는 좋은강의를 들을수있어 감사드립니다. 그런데 보다보니 예제도 그렇고 d2 에올라온 영상도 그렇고 함수형프로그래밍이 프론트엔드와 밀접하다 생각이 드는데 실무에서 프론트엔드 개발자와 많은 연관이 있는지 궁금합니다! 잘못생각한거라면 죄송합니다 ㅎㅎ;;
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
npm run build error
안녕하세요 제로초님, sns를 만들지 않았지만 비슷한 방식으로 프로젝트를 만들고 배포하려고 하는데 우분투에 접속해서 npm run build 커맨드에서 오류가 나네요. 그냥 제 프로젝트에서는 잘 작동하는데 빌드하기전에 뭔가 제가 빼먹은 걸까요?? getServerSideProps는 적용되있습니다. ModuleNotFoundError: Module not found: Error: Can't resolve '../components/Applayout' in '/home/ubuntu/tiki-taka/front/pages' > Build error occurred Error: > Build failed because of webpack errors at build (/home/ubuntu/tiki-taka/front/node_modules/next/dist/build/index.js:15:918) at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:93:5)
-
해결됨Do it! 자바 프로그래밍 입문 with 은종쌤
소스코드를 어디에서 받아볼 수 있을까요?
안녕하세요. 보완해야 할 내용이 있어 강의 중반부 부터 듣고 있는 학생입니다. 강의중에서 선생님께서 소스들은 다 올려주셨으니 따로 치지 않겠다구 하셨는데 어디에 올려주셨는지 알 수 있을까요?