묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
${} 사용시 sql 인젝션 이슈가 있다고 하셨는데요, 궁금한게 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] ${}가 sql인젝션으로 위험한 이유가 입력한 문자 그대로 전달되기 때문으로 이해했는데요 그래서 예제코드 작성해서 테스트 진행해 보았는데, -mapper.xml- <select id="findByItemName" resultType="Item"> select id, item_name, price, quantity from item where item_name = ${itemName} </select> -sql 수행 시- select id, item_name, price, quantity from item where item_name = itemA 이런식으로 itemA가 따옴표 없이 파라미터를 넘기다보니 애초에 JdbcSQLSyntaxErrorException 에러가 발생합니다. 그래서, mapper.xml에서 '${itemName}' 이런식으로 따옴표를 강제로 붙이면 정상적으로 쿼리수행이 되더라구요 그럼 애초에 sql인젝션 위험요소가 없는 거 아닌가요? 문자열로 지정을 안하면 예외를 뱉고, 따옴표로 문자열로 강제하면, sql 인젝션 문구 전체가 문자열로 인식해서 쿼리보안상 문제가 없을 것 같은데 제가 모르는 부분이 있나 여쭤봅니다.
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
지금 4.0버전인데 4.0으로 해도 괜찮나요 ??
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨Slack 클론 코딩[실시간 채팅 with React]
웹팩 한가지 질문이 있습니다.
안녕하세요! 웹팩설정에서 질문이있습니다. 알거같다가도 헷갈려서 질문드려요! "webpack.config.ts 파일 내에서 const require 방식이 아닌 Import를 사용가능한 이유"가 어느부분때문인가요? tsconfig.json 에서 module을 esnext로 최신으로 쓰겠다고 설정했으므로 tsconfig를 웹팩이 먼저 읽어서, 웹팩 파일내부에서도 commonjs방식이아닌 import 방식이 가능한것이라고 이해하면 맞을지 궁금합니다. 그런데 이렇게 이해하면 tsconfig-for-webpack-config 파일에서는 또 module을 commonJs 로 해주기때문에 조금 헷갈립니다,,
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
message body에 "ok"를 넣은 후, 리다이렉트시 Content-Length
[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] message body에 writer.pringln("ok"); 를 작성한 상태로, 리다이렉트를 하지않고 http://localhost:8080/response-header 를 접속하면, Response Headers에 Content-Length가 prinln을 포함하여 3으로 나오는데, http://localhost:8080/basic/hello-form.html로 리다이렉트시, http://localhost:8080/response-header의 Response Headers의 Content-Length가 0으로 나옵니다. 3으로 나와야하는 것 같은데 왜 0으로 나오나요? 0으로 나오는 이유가 궁굼합니다. HTTP 강의도 들었는데, 302는 리다이렉트시 요청 메서드가 GET으로 변하고 본문이 제거될 수 있음(MAY)라고 알고있습니다. 여기서 본문이라함은, 메시지 바디이며 메시지 바디가 제거된 것, 즉 본문이 제거된 경우라고 이해하면 될까요? 아니면 다른 이유가 있거나, 제가 잘못 이해하고 있는지 궁굼합니다.
-
미해결누구든지 하는 리액트: 초심자를 위한 react 핵심 강좌
onClick = {smoe callback} 은 render 를 다시 호출 하나요?
``` render() { return ( <div ref={(ref) => (this.myDiv = ref)}> <h1> 안녕하세요 리액트 </h1> <MyComponent value={this.state.counter} /> <button onClick={this.handleClick}> click here </button> </div> ); } ```
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
구조체를 java의 클래스로 비교해서 생각해도 괜찮을까요?
구글링을 통해서 검색해보니 두개가 살짝 비슷하면서 다른 것 같아서요
-
미해결아마존 클라우드 무료계정으로 시작하는 서버리스 애플리케이션 프로젝트
api gateway 배포기록 질문
안녕하세요! 2022년 7월에 수강 중인 학생입니다. 영상을 보고 aws에서 실습을 하고 있는데, api gateway 서비스 자체에서 말씀해주시는 부분들이 통폐합된 경우가 많아서요! 지금까지는 대략적으로 이해하고, 통합된 부분들 파악하면서 실습하고 있는데, 배포기록 부분은 공식문서에서도 찾기가 어렵습니다 ㅜㅜ 혹시 지금 버전의 api gateway에서 배포 기록을 어떻게 보고 계시는 지 알 수 있을까요?
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL 문제풀이
MIN 관련 질문이 있어요!
안녕하세요:) 강의 잘 듣고 있어요 현 게시판에 이미 게시되어있는 MIN에 관한 질문이 있어서 이렇게 글을 남겨요. 피봇팅을 할때 마지막에 MIN을 붙여서 쿼리를 완성하셨는데, 그렇다면 만약에 MIN을 붙이지 않아도 되는 건가요? MIN을 안 붙이고 했는데 오류가 뜨더라고요. 이 부분에 대해 설명해주시면 감사드릴게요! SELECT CASE WHEN Occupation = 'Doctor' THEN Name Else Null END , CASE WHEN Occupation = 'Professor' THEN Name Else Null END , CASE WHEN Occupation = 'Singer' THEN Name Else Null END , CASE WHEN Occupation = 'Actor' THEN Name Else Null END FROM ( SELECT occupation , name , ROW_NUMBER() over (PARTITION BY Occupation ORDER BY Name) rn FROM Occupations ) AS a GROUP BY rn ORDER BY rn;
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
14강 Edit Controller GetMapping 어노테이션 추가 관련 에러
안녕하세요! 14강 강의를 듣다가 오류를 해결하지 못해서 도움을 요청드립니다ㅠㅠ edit 기능 추가를 위해서 GetMapping 어노테이션을 추가하게 되면 @GetMapping() 에서 괄호 안에 url주소를 적지 않고 비워두면 정상적으로 작동을 합니다.그런데 저 주소 안에 강의랑 똑같이 @GetMapping("/articles/{article.id}/edit)를 적기만 하면 오류가 납니다ㅠㅠ 저 괄호 안에 주소를 적기만 하면 아래 있는 edit메소드 부분이 주황색 밑줄이 그어지면서 사진과 같이 수정권고문?이 나타나고 스프링부트를 실행 했을때 실행자체에도 오류가 생깁니다.. 스프링부트 버전은 아래 사진과 같고요 다운그래이드를 하려고 했는데 gradle-wrapper.properties 파일에 버전 숫자를 바꿔버리면 또 이것도 이것대로 오류가 나서 아예 안되더라구요 도와주세요..ㅠㅠ
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
px-md-3
px-md-3을 풀어서 말로 다시한번 설명해 주시겠으면 감사하겠습니다.
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
a:hover
#intro .intro-first-card .overlay a { transition: color 0.4s ease; } #intro .intro-first-card .overlay a:hover { color: #fafa6f; } 몇번이나 오타가 있는지 확인했는데요. 잘 되질 않네요.
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
스프링에서의 트랜잭션 롤백처리 관련해서 질문 드립니다
안녕하세요 좋은 강의 너무 감사합니다. 코틀린에서는 모든 예외가 Unchecked Exception이라 하였는데, 스프링에서는 UncheckedException과 CheckedException에 따라 롤백 여부가 달라진다고 알고있습니다. 코틀린에서는 모든 예외가 UncheckedException이어도 자바와의 호환성을 위해서는 발생하는 예외에 따라 롤백 여부가 달라질 것 같은데, 이것이 맞다면 예외가 발생할 수 있는 코드들에 대해서 항상 예외가 자바에서 runtimeException을 상속받았는지 아닌지를 확인해 주어야 할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
실행할 때
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]실습 할 때, 결과물을 보기 위해서는 항상 stop 하고 다시 재실행해야하는 건가요??
-
미해결처음 배우는 리액트 네이티브
Theme Context 관련 질문
안녕하세요 선생님. 1) 1: 55 에서 styled로 컴포넌트를 만들때는 Button.js 파일 안에 theme을 따로 import 하지 않는데, 지난 강의에서 Auth.js navigation 안에 헤더 컬러를 정할땐 왜 theme을 따로 import 하거나 useContext로 처리해줬어야했는지 궁금합니다. styled 는 styled-components 라이브러리에서 온 가족이라서 굳이 theme이 없어도 자동으로 적용되는건가요...? 2) 강의랑 관련 없는 질문이긴 하나 혹시 리액트로 개발을 하실 때 에러 메시지가 나오면 보통 어떻게 디버깅 하시는지 여쭤도 될까요? 다른 언어들과 다르게 리액트 에러 메시지는 어떤 에러가 났는지도 제대로 알려주지 않고 몇번째 줄에 에러가 났는지도 알려주지 않는거 같아서요. 예를 들어, 가끔 에러가 나서 핸들링을 하려고 하면 단순히 오타가 난건데 아예 관계없는 에러메시지가 뜬다는지 하는게 보여서 혹시 이런 경우 어떻게 처리하시는지 궁금합니다. 다시 코드를 하나하나 뜯어보는 수 밖에 없는건가요...? 감사합니다. 좋은 하루 보내세요.
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
settings.json
다른 수강생분들에게도 문제 해결에 도움을 줄 수 있도록 좋은 질문을 남겨봅시다 :) 1. 질문은 문제 상황을 최대한 표현해주세요.2. 구체적이고 최대한 맥락을 알려줄 수 있도록 질문을 남겨 주실수록 좋습니다. 그렇지 뭐 많이 뜨는데...어떻게 해야되나요. 처음에 defult?.settigns.json으로 되어 있어서 cmd+,로 눌러서 settings.json으로 설정했는데도 많이뜨네요.
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
강사님 질문이있습니다.
글 삭제 remove 메소드 실행할때 deletPost에서 (props.id) 삭제와 deltePost(id) 삭제의 차이점이 궁금합니다 어차피 delete restapi는 연결된시점에 그냥 id만 써도 되는거아닌가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트 관련하여 궁금한점이 있습니다.
안녕하세요! 강의 듣다가 의문이 생겨서 질문 드립니다. 강의에서 스프링부트와 DB를 모두 연결하여 통합테스트를 하는 것보다 순수 자바 코드를 이용한 유닛테스트를 하는 것이 더 좋은 테스트라고 하셨습니다. 제가 궁금한 것은 실무에서 테스트를 진행할 때, 유닛테스트를 한다면 데이터가 메모리에 저장되고 로직이 잘 실행되는지를 확인 할 수 있지만, 실제 스프링 컨테이너에 잘 들어갔는지, 의존성 주입이 잘 되었는지, DB에 연결이 잘 되고 저장이 잘 되는지 등등 실제 서비스가 돌아갈 때는 이런 것들이 중요할텐데 왜 유닛테스트를 하는 것이 더 좋은 테스트인지 궁금합니다. 메모리에 저장되는 것이 잘 작동된다고 해도, 실제 DB를 연결했을 때 문제가 생기는 경우도 많을 것이라 생각이 듭니다. 그냥 유닛 테스트와 통합 테스트를 적절히 섞어 테스트를 하면 되는 문제인 것 같다고 생각이 드는데 그래도 여쭈어봅니다!
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
fragment 썻을 때 오류는 아닌데 저렇게 빨간색으로 나오는 이유가 뭘까요
(사진)
-
미해결Vue.js 시작하기 - Age of Vue.js
컴포넌트 여러개 생성했음에도 모두 그려지지 않는 현상에 대해 질문 드립니다!
안녕하세요, 장기효님 덕분에 강의 잘 수강하고 있습니다! 수강 중 궁금한점이 있어서 글을 남깁니다. app-content가 뷰에 그려지지않아 이유를 찾다가 app-header컴포넌트를 셀프클로징을 풀어주니 app-content가 그려지는것을 발견했습니다. 컴포넌트는 셀프클로징을 하면 안되는것일까요? 아니면 제 코드에 다른 문제가 있는 것일까요? 뷰가 그려지지 않는 코드를 첨부드립니다. (이 상황에서 app-header의 셀프클로징을 수정해주면 정상으로 뷰가 그려집니다. ) <body> <div id="app"> <app-header v-bind:propsdata="message"/> <app-content /> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> var appHeader = { template: "<h1>header : {{propsdata}}</h1>", props: ["propsdata"], }; var appContent = { template: "<div>content</div>", }; new Vue({ el: "#app", components: { "app-header": appHeader, "app-content": appContent, }, data: { message: "hi!!", num: 100, }, }); </script> </body> 추가) '같은 컴포넌트 레벨 간의 통신 방법 구현 1'을 듣던중 셀프클로징을 사용하지 않았는데도 위와 비슷한 현상이 일어나서 추가합니다! elements탭이나 vue탭에서 보아도 app-header 컴포넌트만 나타나고 app-content 컴포넌트는 나오지 않습니다. 이 상황에서 app-header컴포넌트를 주석처리하면 app-content컴포넌트가 보이는데 무엇이 잘못된 것일까요? 코드를 첨부드립니다! <body> <div id="app"> <app-header></appHeader> <app-content></app-content> </div> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <script> var appHeader = { template: "<h1>header</h1>", }; var appContent = { template: "<div>content<button>passNumber</button></div>", }; new Vue({ el: "#app", components: { "app-header": appHeader, "app-content": appContent, }, }); </script> </body> vue생성자 함수를 찍어보니 components안에 두 컴포넌트가 모두 잘 생성되어있는것 같습니다. - elements탭에서는 header만 보입니다. (vue탭도 header만 보입니다ㅜ)
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
유의미한 시간 차이
안녕하세요, 강의 덕분에 알고리즘 잘 배우고 있습니다. 강사님 답안을 참고하면서 구현을 하고 있는데요. 1. Main 클래스를 public 지정 여부 2. Queue = new LinkedList<>() 에 <> 를 붙여주는 것 여부에 따라서 20ms 씩 시간 차이가 났습니다. * (1) public class Main + Queue = new LinkedList<>(): 1961ms * (2) class Main + Queue = new LinkedList<>() 1986ms * (3) class Main + Queue = new LinkedList(): 2000MS * (3) public class Main + Queue = new LinkedList(): 2013MS 20ms 는 유의미한 시간 차이인가요? 여러 코드를 테스트 해볼 때, 어느 정도 부터가 성능에 영향이 간다고 할 수 있는 정도인지 궁금합니다.