묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
file is read only 해제는 어떻게
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 갑자기 코딩을 수정할 수가 없게 되었습니다. 수정하려니 file is read only라는 메시지가 뜨더니 수정이 안됩니다. 구글링해봐도 뽀쪽한 수가....
-
미해결스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException:
public void basicScan()을 붙이고 시행 했는데 다음과 같은 에러가 났습니다. org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'orderServiceImpl' defined in file [D:\core\out\production\classes\hello\core\order\OrderServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier("mainDiscountPolicy")} 어덯게 수정해야 하나요?
-
미해결반응형 웹사이트 포트폴리오(App Official Landing Website)
선생님 코딩좀 봐주세요..
안안녕하세욧 ㅓㄴ생님... 다름아니라 faq와 review 가 코딩이 겹쳐서나옵니다.. faq 보더를 그려보면 저렇게 상단만 나와요.. html구조를 제가 뭘 잘못했을가요..? <div class="faq"> <div class="faq-inner"> <div class="headline-share"> <h1>서비스 이용이 궁금하신가요?</h1> <p>스타트업메이트가 도와드리겠습니다.</p> </div> <div class="faq-content"> <div class="faq-accordion"> <div class="faq-item active"> <div class="faq-title">스타트업 메이트 회원가입이 필수인가요?</div> <div class="faq-desc">네. 회원가입은 필수입니다. 스타트업 메이트 회원가입은 만 20세 이상 누구나 가입하실 수 있으며, 스타트업 메이트 앱 서비스를 이용하시기 위해서 회원가입은 필수입니다. 스타트업 메이트 회원가입은 앱을 통해서 가입하실 수 있습니다. 가입 절차는 아래와 같습니다.<br> ① 약관동의(서비스이용약관, 개인정보 취급방침)<br> ② 기본정보 입력(아이디, 이름, 비밀번호, 이메일, 휴대전화, 사업자 주소)<br></div> </div> <div class="faq-item"> <div class="faq-title">회원가입 시 주민등록번호가 포함되나요?</div> <div class="faq-desc">스타트업 메이트 회원가입 시 주민등록번호는 입력받지 않습니다. 회원가입을 위한 최소한의 정보만으로 회원가입이 완료됩니다. 입력된 회원 정보는 스타트업 메이트 보안 시스템을 통해 안전하게 보호되며 법령에서 정하는 바에 최소한의 기간 동안 보관 후 모두 삭제되며, 고객 정보 보호에 최선을 다하고 있습니다.</div> </div> <div class="faq-item"> <div class="faq-title">개인정보 관리를 어떻게 하시나요?</div> <div class="faq-desc">스타트업 메이트는 서비스 제공을 위해 회원의 개인정보를 최소화 하여 수집하며, 수집된 정보는 '개인정보 취급방침'에 따라 엄격히 관리됩니다.<br> 스타트업 메이트는 고객님의 개인정보를 소중하게 생각하며 서비스를 이용하시는 고객님의 개인정보 보호를 위해 관련 법령에서 규정하고 있는 개인정보보호 규정을 철저히 준수합니다. 개인정보보호와 관련한 자세한 내용은 '개인정보 취급방침'을 참고해주시기 바랍니다.</div> </div> <div class="faq-item"> <div class="faq-title">회원정보를 변경하고 싶은데 어떻게 하나요?</div> <div class="faq-desc">스타트업 메이트 회원정보를 변경하기 위해서 로그인 후 [회원정보]에서 회원정보를 조회하거나 변경하실 수 있습니다.<br> 회원정보 변경 방법은 아래와 같습니다. (단, 아이디는 수정하실 수 없습니다.)<br> ① [회원정보] 페이지 > 현재 사용중인 비밀번호 입력<br> ② [정보수정] 버튼을 클릭합니다.</div> </div> <div class="faq-item"> <div class="faq-title">회원탈퇴 후 같은 아이디로 재가입 가능한가요?</div> <div class="faq-desc">스타트업메이트 회원 탈퇴를 원하시나요? 동일 아이디는 스타트업 메이트 회원 정책에 따라 재가입이 일정 기간 불가합니다. 회원 탈퇴 시 기존 회원 정보를 포함한 모든 정보가 복구 불가능합니다.<br> 탈퇴 시 이 점을 다시 한번 고려하신 후 진행해 주세요. 항상 최선을 다하는 스타트업메이트가 되겠습니다. 감사합니다.</div> </div> </div> <div class="awards-content"> <div class="award-image"> <img src="image/faq-01.png" alt=""> </div> <h2>Great apps win awards</h2> <p>웹 및 모바일 개발자가 이끄는 Great apps win awards는 새로운 모바일 앱을 대중에게 주목을 받는 역할을 수행한 앱(App)에 수여됩니다.</p> <a href="#none" class="btn-awards">view the awards</a> </div> </div> </div> </div> </section> <!-- review --> <section class="review"> <div class="review-inner"> <div class="headline-share"> <h1>CEO들의 생생 리뷰</h1> <p class="upper">STARTUP MATE CEO REVIEW</p> </div> <div class="review-content"> <h1 class="slogan">CEO 커뮤니티 앱, 스타트업 메이트</h1> <div class="review-slider"> <div> <p> 스타트업 창업 후 조직관리에 관한 내용이 잘 만들어져 있어서 많은 도움이 됩니다. 스타트업메이트의 CEO를 위한 특별한 서비스들 너무 좋습니다. CEO로서 스타트업메이트의 기본적인 가이드만 참고해도 원하는 방향으로 조직관리할 수 있을 것 같습니다. 조직관리의 시작을 명확하게 하고, 완성도를 높일 수 있어서 좋습니다. </p> <p> <span>주승윤 대표</span> 스타메이킹 스타트업 대표이사 </p> </div> <div> <p> 경영전략을 어떻게 기획해야 하는지 도무지 엄두가 나지 않았는데 스타트업메이트 앱을 통해서 그런 고민 해결이 많이 되었습니다. 안전성과 전문성이 검증된 스타트업메이트의 CEO 경영전략 서비스 추천해 드립니다. 저한 단계별 검증을 통해 새니기 CEO에게 경영전략 실패에 대한 위험부담을 낮출 수 있을 것 같습니다. 감사합니다. </p> <p> <span>정동수 대표</span> 스타트업 웹 에이전시 CEO </p> </div> <div> <p> 처음 시작하는 CEO라서 전략기획이 뭔지 조직관리가 뭔지 정말 막막했습니다. 컨설팅도 합리적인 비용으로 해주기 때문에 이런 부분에 대한 고민해결도 충분히 되었습니다. 스타트업메이트와 같은 CEO만을 위한 앱 서비스가 없어서 비교가 어렵겠지만 저는 정말 만족합니다. 번창하시길 기원합니다. 저도 화이팅~ 스타트업메이트도 화이팅입니다. </p> <p> <span>유태연 대표</span> 캐주얼 모바일 게임 개발 CEO </p> </div> </div> </div> </div> </section>
-
미해결
yolov3 를 tflite 변환시 box size가 정확지 않아요
안녕하세요, 객체감지 yolov3 -> pb -> tflite 로 변환하여서 라즈베리파이에서 구동시키는데, 객체를 잘 찾기는 하는데 box size가 너무 크고 좌표가 심지어 마이너스 (-) 값이 나오기도 하는데요. Darknet 에서는 다양한 anchor size 를 쓰면 box size가 점점 정확해 졌었습니다. tflite 사용시 box size를 정확하게 맞추려면 어떻게 해야 할까요? 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
application scope와 singleton scope
강의를 보던 중 application scope에 대한 설명이 좀 부족하다고 생각해서 찾아보던 중 아래 링크에서 ApplicationContext와 ServletContext에서 사용한다는 차이가 있다는 정도로 이해했습니다. https://stackoverflow.com/questions/49819633/spring-singleton-scope-vs-application-scope 하나의 ServletContext에 여러개의 ApplicationContext를 갖게 되는 경우는 어떤 경우인가요? Spring boot의 경우 tomcat을 내장하고 있어서 ServletContext가 application마다 각각 생성될 것 같은데, 그것을 공유하면 어떤 장점이 있는지 궁금합니다.
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
2D에서 마우스 클릭시 이동
안녕하세요. 강의 내용을 응용해서 2D에서 마우스 클릭시 이동되는 걸 해보고 싶은데 코드를 똑같이 썼더니 안되더라구요..아마 레이저 쏘는 게 3D 시스템이라 그런 것 같은데 그러면 2D에서 마우스 클릭시 이동되게 구현하려면 어떻게 해야할까요??ㅠㅠ 구글링을 아무리해도 다 3D 관련 내용 뿐이네요..
-
미해결따라하며 배우는 리액트 A-Z[19버전 반영]
[id].tsx 에서 params 빨간줄 부분 괜찮나요?
여기서 41번째줄 params 빨간줄 지나가도 괜찮나요 실행은 잘되는데 이유가 궁금합니다 undefine이라고 하는데... 잘모르겠네요
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
api gateway 를 swagger 에 연동
api gateway 를 swagger 에 연동하는 방법 알려주시면 감사하겠습니다ㅜㅜ
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요 강사님 filter관련 질문이 있습니다.
안녕하세요 강사님 강의 잘듣고 있습니다. 강의를 듣고 filter예제를 변형해가면서 여러가지 요구사항이 들어왔을 경우를 가정해가며 연습을 하고있는데, 해당 경우도 람다로 해결할수 있는지 헷갈리네요.. 예시를 들어보면서 설명을 해보겠습니다. fun main() { // 같은 쇼핑몰은 3개까지만 가지고 있는다. var productList = getItems() } fun getItems() : List<Item> { var productList : MutableList<Item> = mutableListOf( Item("올리브영", "1"), Item("올리브영", "2"), Item("무신사", "1"), Item("무신사", "2"), Item("무신사", "3"), Item("무신사", "4"), Item("무신사", "5"), Item("오늘의집", "1"), Item("오늘의집", "2"), Item("오늘의집", "3"), Item("오늘의집", "4") ) return productList } data class Item( val shopId: String, val productId: String ) 쇼핑몰명, 상품id를 가지고 있는 객체의 리스트를 가지고 있습니다 그런데 어느날 같은 쇼핑몰은 3개 까지만 가지고 있는다. 요구사항 요청 들어왔습니다. 이러한 경우도 람다로 조치할수 있는지 궁금하네요.. 요런 결과를 얻도록 의도하고 있습니다. var productList : MutableList<Item> = mutableListOf( Item("올리브영", "1"), Item("올리브영", "2"), Item("무신사", "1"), Item("무신사", "2"), Item("무신사", "3"), Item("오늘의집", "1"), Item("오늘의집", "2"), Item("오늘의집", "3"), 혹시 좋은 방안을 얻을수 있을것 같아서 질문 요청드립니다. 감사합니다!
-
미해결실전! Querydsl
벌크 연산 후 영속성 컨텍스트 초기화에 대해 질문이 있습니다.
말씀해주신대로 이미 영속화 되어있는 상태에서 벌크연산이을 해도 디비로 작업하고 영속성 컨텍스트와 달라져 초기화를 하라고 말씀해주셨는데요, 영속화되있는 상태에서 select를 해도 쿼리가 나가는것이 querydsl일 경우인것이고 JPA에서는 객체를 통해 가져오면 이미 캐시되어있는 데이터를 가져와 디비 쿼리도 치지 않는다고 이해해도 될까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
안녕하세요- ㅎㅎ
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요- 혹시 강사님. 수업자료를 전달 받을 수 있을까요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
for in 반복문 사용시 에러 ㅜㅜ
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. for link in links: 부터 에러가납니다..
-
미해결실전! Querydsl
quertdsl에서 projection을 이용해 @onetoMany dto를 내리고싶을때
프로젝션을 이용한 결과 반환을 배웠는데요, 보통 양방향일 경우 1:n 관계는 조인해서 같이 반환하고 싶을때 fetchjoin()만 이용했다가 디비상으로는 1:n 이지만 단방향인 경우에 querydsl의 projection을 이용해서 dto를 내릴순 없을까요 ? https://bbuljj.github.io/querydsl/2021/05/17/jpa-querydsl-projection-list.html 이런 예제들처럼 양방향 1:n에 대한 예제는 많이 보이는데 단방향인 경우에는 예제가 없는거같아서... 여러 시도를 해봤는데 막히고 있어 궁금합니다 jooq 같은 라이브러리를 써야하는지, querydsl로는 해결방법이 없을까요? 예를 들면 .. TeamDto { String teamName; List<MemberDTO> members; } 이런 구조를 querydsl로 바로 표현할순 없는지..
-
미해결수학으로부터 인류를 자유롭게 하라(미적분학 Part.I) - 미분
수강 멈춤 기능 또는 기간 연장
안녕하세요. 죄송한데 일시적으로 수강을 일정 기간 멈추거나 추가로 연장할 수 있는 기능이 있을까요? 제가 개인 사정으로 계획대로 강의를 수강을 못 했는데 기간이 얼마 남지 않아 여쭤봅니다. 그리고 아직 올라오지 않은 강의의 업로드 계획도 궁금합니다.
-
해결됨파이썬 동시성 프로그래밍 : 데이터 수집부터 웹 개발까지 (feat. FastAPI, async, await)
Scraping code 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ---------- ---------- # 감사의 인사 안녕하세요! 먼저 좋은 강의 만들어주셔서 감사합니다. 파이썬 문법을 기본적인 것을 떼고 프레임워크와 함께 무언가 만들어볼라고 하던 찰나 FastAPI와 함께 크롤링까지 학습할 수 있어서 좋은 강의인 것 같습니다 : ) 스크랩핑의 경우, json.load 관련하여 학습하다보니 serialize 개념에서 시작하여 json.dump와 json.loads 등등 과 parser 개념에 대해 학습할 수 있어서 너무 좋았습니다. 이것저것 학습하다보니 하루가 쑤욱 갔네요... ---------- ---------- # 질문 1 먼저 구글링을 하고 나서 질문드립니다. 1) 아래 코드에서 response 앞에 await이 올 수 있는 이유 async def fetch(session, url): print(f"{os.getpid()} | {threading.get_ident()} thread | url: {url}") async with session.get(url) as response: return await response.text 공식 문서에 따르면 await 뒤에는 코루틴, 태스크 또는 퓨처가 와야한다고 하는데, 위 코드에서 await이 올 수 있던 것은 여기서 response가 async with session.get(url)의 alias 여서 가능한건가요??? 만약 그렇다면 with문은 context manager인 걸로 알고 있습니다. 자원을 할당해주고 다 사용하면 반환하는 역할인 것으로요. 그러면 이 with문이 어째서 코루틴에 속하는지 잘 모르겠습니다. ------- # 질문 2 2) html.parser 이 질문은 제가 이해한 게 맞는 건지 여쭤보는 질문입니다. beautifulsoup(html, "html.parser") code 부분에서 html을 구문분석할 parser를 "html.parser"로 정한다는 의미인가요? 그리고, HTML parser란 HTML 코드를 읽고 취해서 DOM tree 구조를 생성하는 프로그램이라 이해하면 되나요?? 이 부분은 구글링하여 학습했으나, 강사님의 내포하는 지식과 일치하는지 확인받을려는 질문입니다. ------- # 질문 3 3) await을 넣는 위치 코루틴이란 진입점과 탈출점이 여러 개인 routine인 것으로 이해했고, 그 포인트들이 await과 return으로 만들어진다고 강의를 통해 이해했습니다. 그런데, 왜 이 위치에 await을 썼는가? 라는 의문에는 쉽게 답이 나오지 않는 것 같습니다. from bs4 import BeautifulSoup import asyncio import aiohttp async def fetch(session, url): async with session.get(url) as response: html = await response.text soup = BeautifulSoup(html, 'html.parser') cont_thumb = soup.find("div", "cont_thumb") for cont in cont_thumb: print(cont.find("p", "text_thumb")) 위 코드에서 await은 response.text 앞에 있는데요. await의 위치는 작성자가 임의로 위치할 수 있는 건인지, 아니면 별도로 제가 모르는 내용이 있는 건지 알고 싶습니다. ------- #질문 4 4) config.py의 get_secret() 질문 get_secret function 매개변수 3개를 key, default_value, json_path 를 입력하셨습니다. json_path의 경우, BASE_DIR를 전역변수로 입력하셨기 때문에 함수 인자로 입력하지 않아도 인식된다고 이해하면 될까요? 또한, EnvironmenError의 내용을 보면 이 Error 설명을 보면 Base class for I/O related Errors 나와있는데, 왜 I/O 관련 에러인지 모르겠습니다. 이 Error는 key에 대한 대체값인 default_value가 없는 경우 발생되는 걸로 이해했습니다. CPU가 이 값을 읽는건데 I/O 인가요? 그리고, get_secret() 같은 함수를 작성하실 때 어떠한 흐름으로 작성하시는지 궁금합니다. 작성을 하면서 수정하시는 건지, 아니면 처음부터 이 function은 이 역할을 하고, 이 역할을 위해서 별도의 function을 만들고 라는 방식으로 하시는 건지 입문자로서 궁금합니다. ------- # 질문 5 5) 마지막 질문입니다. 이건 학습 관련 질문입니다. 이번 강의를 마치고, 운영체제와 네트워크 공부를 다시 복습하고, 자료구조와 알고리즘 공부를 할려고 하는데, 프레임워크에 대해서 학습하고 싶습니다. FastAPI를 깊이 공부할지, 아니면 Django를 학습할지 고민입니다. 인프런의 Django 강의를 결제하여 듣고 있으나, 너무 꼼꼼하셔서 그런지 강의가 heavy하네요..ㅠㅠ 어떻게 학습하시는 걸 추천하시나요??? -------------- -------------- 질문 읽어주셔서 감사합니다.
-
미해결[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
자료 강의 구매해야하던데, 답변 부탁드려요
https://www.creapple.com/item 들어가서 확인했습니다. 그런데 전자책을 구매하시면 강의 모든 내용을 보시고 관련 자료를 얻으실 수 있습니다.라고 자료에 적혀있는데, 인프런 구매자는 자료 못 얻는 건가요? 크리애플에서 구매해야 볼 수 있고 인프런 구매자는 볼 수 없고. 답변 부탁드려요
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
일대 다 관계 조회 질문입니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 영한님! 평소에 영한님 강의를 들으면서 개발 공부 열심히 하고 있는 개발자입니다. 일대다 연관관계에 대해서 궁금한 점이 있어서 여쭤봅니다. 일대다를 페치 조인하면 데이터가 뻥튀기 되어서 먼저 toOne 연관관계인 것들만 페치 조인으로 가져오고 그 다음에 @BatchSize를 사용하든 in 쿼리를 사용해서 페이징을 유지하면서 일대 다를 성능 최적화 시키면서 가지고 올 수 있다는 것은 이해를 했습니다! 그런데 궁금한 점이 생겨서 질문드립니다. 예를 들어 회원 리스트 조회 API에, member와 member_account 테이블이 있고, 한개의 멤버에 여러 개의 멤버 account가 있을 수 있는 일대 다 형식입니다 member를 기준으로 페이징을 하고 싶은데, 조회 API 검색 조건에 member와 member_account테이블을 동시에 봐야되는 요구사항이 있어서 쿼리에 member와 member_account를 join 하고 where절에 해당 테이블을 사용할 수 뿐이 없으면,이런 상황에서는 데이터가 뻥튀기 되고 member를 기준으로 페이징이 안될 것 같은데 이거는 기술적으로 해결 방법은 없고 기획적으로 접근 방법을 달리 해야되는지 궁금해서 여쭤봅니다. 긴 글 읽어주셔서 감사합니다!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 연관관계에서의 remove 과정..
양방향 연관관계에서 연관관계 편의 메소드 라는 것을 만들어서 양쪽에 값을 모두 넣어주고 persist를 했었는데 반대로 엔티티를 삭제할때에도 삭제와 관련된 편의메소드를 생성해서 연관된 엔티티 (fk)에 null을 넣어주고 해당 엔티티를 em.remove 해야 하나요?? ex) member : post = 1 : n ==> member 삭제 시, post에 members list 에 있는 해당 member를 null값으로 설정하는 메소드
-
미해결팝스타 공식 뮤비 제작 & 유튜브 2천만 뷰 크리에이터의 애니메이트 X 이모티콘 클래스
애니메이트에는 애프터 이펙트처럼 퍼펫툴 같은거없나요??
- 먼저 유사한 질문이 있었는지 커뮤니티의 '자주 묻는 질문'과 '질문 리스트' 그리고 '강의 소식'에서 검색해 보세요.- 수업 관련 질문은, 강의 번호와 스크린샷을 포함하면 더 확실한 답변을 들을 수 있어요.- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 작성한 질문은 답변을 들은 후 절대 삭제하지 마세요, 다른 수강생분에게도 도움이 됩니다.- 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 캐릭터 꿀렁이게 만들고싶은데... ㅠㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
상품 저장 시 데이터가 안들어갑니다.
강의를 바탕으로 혼자 연습중인데요 Book extends Item 의 구조로 Item 대신 Book을 객체로 넣어 프로그래밍하고 있습니다. addForm.html <!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta charset="utf-8"> <link th:href="@{/css/bootstrap.css}" href="../css/bootstrap.css" rel="stylesheet"></head><body><!--상부 컨테이너--><div class="container" style="max-width: 600px"> <div class="py-3 bg-primary text-center text-white"> <h2>Steady Kim Shop</h2> </div> <div class="py-2 text-center"> <h3>상품 등록 </h3> </div> <!-- 상품 상세 내용--> <div class="text-center"> <h5 class="mb-3">상품 입력</h5> <form th:action method="post"> <div class="my-3"> <label form="itemName">상품명</label> <input type="text" id="itemName" name="itemName" placeholder="이름을 입력하세요"> </div> <div class="my-3"> <label form="itemPrice">가격</label> <input type="text" id="itemPrice" name="itemPrice" placeholder="가격을 입력하세요"> </div> <div class="my-3"> <label form="itemQuantity">수량</label> <input type="text" id="itemQuantity" name="itemQuantity" placeholder="수량을 입력하세요"> </div> <hr class="my-4"> <div class="row"> <div class="col text-center"> <button class="w-50 btn btn-primary btn-lg" th:onclick="|location.href='@{/basic/items/add)}'|" type="submit">상품 등록</button> </div> <div class="col text-center"> <button class="w-50 btn btn-secondary btn-lg" th:onclick="|location.href='@{/basic/items}'|" type="button">취소</button> </div> </div> </form> </div></div> <!--/container --></body></html>PostMapping add Controller@PostMapping("/add")public String addItem(@ModelAttribute Book book, RedirectAttributes redirectAttributes) { Book savedItem = (Book) itemRepository.save(book); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); log.info("savedItem.quantity={}",savedItem.getQuantity()); log.info("savedItem.price={}",savedItem.getPrice()); return "redirect:/basic/items/{itemId}";}위의 사진과 같이 데이터가 들어가지 않습니다. RequestParam을 통해 직접 넣어주면 잘 동작합니다.RequestParam @PostMapping("/add")public String addItem(@RequestParam("itemName") String itemName, @RequestParam("itemPrice") Integer itemPrice, @RequestParam("itemQuantity") Integer itemQuantity, RedirectAttributes redirectAttributes) { Book book = new Book(itemName, itemPrice, itemQuantity, ItemName.BOOK); Item savedItem = itemRepository.save(book); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/basic/items/{itemId}";}Q1) 아래는 되고 위 @ModelAttribute는 안되는 이유가 무엇인가요?Q2) 이렇게 상속을 한 이유가 자바의 다형성을 적용해보고 싶어서였는데 modelAtrribute는 제네릭처럼 동작하는 것같더라고요..혹시 원래 이렇게 상속으로 domain을 설계하면 안되는 것인지 궁금합니다.