묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
itemName ,price 값 넣지 않았을때 차이
안녕하세요 강사님 bindingresult 편 강의 잘 듣고 있다가 궁금증이 생겨서 문의 드립니다.상품등록 폼에서 모든 필드에 값을 넣지 않고 post로 값을 전달했습니다 에러가 발생하면 스프링에서 new FieldError를 생성해 바인딩리절트에 담아서 다시 폼으로 값을 전달해주는 것으로 이해했습니다. 하지만 binding result 로그를 확인해보면 똑같이 전부 값을 주지 않았지만 itemName의 rejectedValue에만 아무값이 들어가있지않고,price와 수량에는 null이 들어갔습니다 왜 itemName만 null조차 들어가지 않는지 알 수 있을가요?사진 같이 첨부드립니다.항상 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
build 오류
이렇게 오류가 뜨는데 어떻게 해결해야 하는지 궁금합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
ModelAttribute 사용하여 에러시 이전 데이터 유지 방식 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]현재 검증 직접 처리- 개발 부분을 수강중에 있습니다. 14분쯤에 영한님께서 에러 발생시 페이지를 다시 return 해도 이전 데이터를 사용하기 위해 Model 을 사용한다고 하셨습니다. 템플릿 엔진이 타임리프여서 유용한거 같은데 API 방식으로 진행하는 경우에는 해당 데이터를 서버에서 별도로 설계 해야하는건가요? 아니면 API로 만든경우에도 Model 과 같이 이전값을 유지하는 유용한 방법이 있는지 궁금합니다.
-
미해결[리액트 1부] 만들고 비교하며 학습하는 리액트 (React)
@ 골뱅이의 역활
안녕하세요!자꾸 질문드려 죄송합니다. 커스텀 이벤트를 호출하실때 계속 @(골뱅이)를 사용하시는데 구글에 아무리 찾아봐도 무슨 역활인지 모르겠습니다. 자바스크립트에 @를 붙이는 경우는 어디에 나와 있나요..? (혹시 제가 강의 내용에 있는 걸 놓친거라면 죄송합니다)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
validation에서 구체화 궁금증
item price에 대한 validation을 할때구체화된게 우선순위를 가진다 했는데 그냥 . 이 많고 길면 우선순위가 적용되는건가요?예를들면error =>item에 걸린다면item<item.itemprice<item.itemprice.max<item.itemprice.max.어쩌구저쩌구 이런식으로 뒤에붙는 말이 관련이 없더라도 구체화된것이니 우선순위가 더 높아지나요??
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
사이드 프로젝트.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요. 강의 들으면서 사이드 프로젝트 진행해가면서 배운 내용을 써보고 싶습니다. 프로젝트에 사용될 템플릿은 무료 부트스트랩 템플릿 소스 코드를 가져와서 사용하면 될까요? ?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
url로 매핑된 컨트롤러를 찾는 것은 알겠는데 메소드는 어떻게 찾는 건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]핸들러 매핑을 통해서 url이 들어오면 실행해야 할 컨트롤러를 찾는 것은 이해를 했습니다. 그런데 애노테이션 기반의 컨트롤러를 사용할 때 메소드에도 url이 매핑이 되었던데 이거도 스프링의 어떤 요소가 매핑 정보를 차례대로 조회하며 대응되는 것을 찾고 메소드를 수행해주는 것인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션 이름(name)은 무엇이고, 어떤 역할을 하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 등장한 두 용어(세션 아이디, 세션 이름)의 관계가 헷갈립니다.제가 이해한 바론, 세션 id는 클라이언트의 쿠키에 담아주는 랜던한 값으로, 해당 값으로 서버에서 세션을 찾습니다. 톰캣에선 jsessionid라는 이름으로 사용됩니다.그러나 강의에서 loginMember이란 이름으로 세션 name이 등장합니다. 어차피 세션 id로 세션을 식별할 수 있을텐데, 굳이 세션 이름이 존재하는 이유가 무엇일까요? 하나의 세션에 여러 정보를 담을 수 있고, 그 정보들을 식별하기 위한 식별자의 역할을 하는 걸까요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션을 만드는 것과 회원 정보를 보관하는 것의 관계
===[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]HttpSession session = request.getSession();위 코드는 세션이 있으면 그대로 사용, 없으면 세션을 새롭게 생성이라고 공부했습니다. session.setAttribute(SessionConst.LOGIN_MEMBER, loginMember);그리고 위 코드는 세션에 로그인 회원 정보를 보관하는 거라고 이해했습니다. 여기서 궁금합니다.세션을 생성하는 것과 회원 정보를 보관하는 것이 따로 존재한다면, 세션을 생성한다는 것이 무슨 의미가 있는지 모르겠습니다. 만약 세션만 만들고 회원 정보를 넣지 않는다면 세션 저장소에 특정 JSESSIONID 값을 키로 가지지만, value는 null인 상태로 저장되는 걸까요?그리고 하나의 세션에 여러 쿠키를 가질 수 있다고도 이해했습니다. 어차피 유저를 식별하는 데 하나의 쿠키만 있으면 될텐데 왜 세션에 여러 쿠키를 저장할 수 있는지 모르겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
오류시 인풋 값 사라지는 이유
BindingResult 사용시 오류가 발생하면 인풋 값이 사라지는데 이유가 뭔가요?"validation/v2/addForm" view 템플릿에는 여전히 th:object로 item이 지정되어 있고 각 필드 값들도 th:field로 지정되어 있는데 사라지는 이유가 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
스프링부트 + jsp로 프로젝트 생성하려면 jar가 아닌 war로 만들어야하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]강의에서 jsp사용하지않으므로 jar로 선택해달라고 하셨는데 그러면 스프링부트+jsp 사용시 war로 프로젝트를 생성해야하나요?그리고 war는 외부서버배포용이라고 말씀하셨는데 공부하면서 aws로 프로젝트 배포까지 해보려고 하거든요..(아직 하나도 모르긴합니당..ㅠㅠ)배포 하게 될 때에는 jar가 아닌 war로 변경해서 배포해야하는걸까요?
-
해결됨스프링 프레임워크는 내 손에 [스프1탄]
모바일 크기에 맞추기
선생님께서 만드신 웹을 모바일 크기에 맞춘 웹사이트로 만들고 싶은데그건 어떻게 할 수 있나요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
DB Connection 관련하여 질문드립니다.
@Transactional 선언된 메서드를 사용할 때, Connection이 사용되고 반환되는 시점이 궁금합니다.@Transactional 메서드 호출 -> 쿼리 실행 -> 외부 API 호출 -> @Transactional 메서드 종료 라고 했을 때, @Transactional 시작 시점부터 끝날 때까지 하나의 커넥션이 유지되나요? 아니면 쿼리가 실행될 때, 그리고 커밋/롤백 될때만 커넥션을 사용(커넥션 opne & close)하나요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션과 세션저장소의 개념구분
강의자료를 보던중에 혼동이 와서 질문드립니다..강의자료를 보면 세션을 생성하고, 신규 세션을 반환하고, 세션에 데이터를 보관하고.. 등등세션이라는 단어가 사용이 되는데요.. 하지만 이전에 세션 저장소라는 개념도 있어서 '세션'과 '세션저장소'의 구분이 잘 되지않습니다..다른 질문을 참고하니 HttpSession은 세션저장소이다 라고 답변주신것을 보긴했습니다. 그리고 session은 Map형태로 저장이 되서 세션저장소 내부에 있는 Map자체를 session이라고 생각했는데, 이 Map의 sessionId에 대응되는 값도 session이라고 부르는것인가요..?HttpSession = 세션저장소세션저장소내에 세션이 있다.세션 = 세션저장소 내에 있는 Map = 세션저장소 내에 있는 Map의 value이렇게 이해해도 되는것일까요..?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
자동생성되는 th:field의 value를 th:value의 value로 덮어쓰기되는지 확인 문의
안녕하세요 강사님 강의듣고 이해안되는 부분이 있어서 질문 남깁니다.최초로 상품등록을 하면 컨트롤러에서 Get메서드형식인 아래의 컨트롤러가 호출이되면서 빈깡통의 Item 객체가 모델에 담겨서 addForm.html로 값이 넘기는것으로 알고있는데요 그래서 최초 등록폼에서 소스보기를 하면 상품명 ,가격,수량부분이 value 가 공백이 들어간것으로 이해했습니다. @GetMapping("/add") public String addForm(Model model) { model.addAttribute("item", new Item()); return "form/addForm"; }하지만 의문드 드는점이 등록지역의 value는 SEOUL이 들어갔습니다 답은 메서드단위의 resions의 값이 들어갔다는것을 알고있지만 이해가 되지 않는점이 addForm에 등록지역 부분에는 th:field부분에서ModelAttribute의 값인 ${resions}이아니고 선택변수인 {resions}가 들어갔으니 최초에는 값이 없으니 위의 상품명처럼 value가공백이 들어가야하는데 SEOUL로 들어가는 것이 이해가 안갑니다. th:field={resion}의 자동생성되는 value가 th:value의 ${resions}의 벨류로 덮어쓰기가 되는건가요? 긴글 읽어주셔서 감사합니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
템플릿 레이아웃2 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]replace 할때 html tag 릴 기준으로 section을 넘기는거를 혹시 div Tag 가 가능한지 해봤더니 가능하더라고요. 근데 div tag 안에 또다른 div 태그가 있는데 최상위 div tag 전체를 넘기는거 같습니다. 가독성으로 혹시 div tag 의 특정 name 이 붙은 tag 를 넘기는게 가능할까요?ex)<div class="test1")><div class ="test2"></div><div>이런식일때 test1 tag 나 test2 태그중에 어떤 레벨을 넘길지 정할수 있는건가요? *추가로 layoutExtendMain 에서 layoutFile 한개를 불러왔는데 혹시 layoutFile2처럼 여러개도 호출가능한건가요? 답변 미리 감사합니다^^
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실행은 되는데 정지하면 오류가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 실행을 하고 난 후 정지를 하면 이런 오류가 뜹니다그래서 저와 같은 문제가 있는질문이 있는지 찾아보고 실행은 잘 되는데 멈출때마다 에러 메세지가 떠요 - 인프런 | 질문 & 답변 (inflearn.com)이 게시글에서 말씀해주신 링크대로 설정을 했더니 tomcat이 실행이 되지 않더라구요 이거 발견하고 나서 그래서 다시 프로젝트 설치해서 실행한 상태인데 여전히 멈추면 에러가 뜹니다... 어떻게 해야 하나요..?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
세션아이디에 대해 질문드립니다..
HttpSession session = request.getSession();을 하게되면 쿠키가 생성되고, 쿠키의 이름은 JSESSIONID, 쿠키의 값은 랜덤값이라고 이해했습니다. 하지만 이전 강의를 보면 쿠키의 값을 세션id와 동일하게 설정을하고, 쿠키의 값을 통해 세션저장소에서 세션을 조회했는데요. 하지만 코드에서는 session.setAttribute(SessionConst.LOGIN_MEMEMBER, loginMember)로 상수를 세션id(key)로 지정했는데 이렇게 하면 SessionConst.LOGIN_MEMEMBER를 통해 세션저장소에서 세션을 조회해야하지않나요? 쿠키의 value와 세션저장소의 세션id가 동일하지않은데 어떻게 조회할수 있는지 궁금합니다..
-
미해결[리액트 1부] 만들고 비교하며 학습하는 리액트 (React)
[순수JS1] 폴더구조 강의관련 질문
안녕하세요. [순수JS1] 폴더구조 편에서 npx 로 웹서버 띄우고 localhost:3000 켜고 크롬에서 개발자도구로 네트워크 보면 store.js 로딩하는데 404에러가 나오는데 이유가 뭘까요?그리고 강사님처럼 console.log 로 로그를 찍어도 크롬 개발자도구 console 탭 보면 아무것도 안나오는데 이유가 뭘까요 ㅠㅠ?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
private static Map<Long, Member> store = new HashMap<>(); 코드 이해가 안가요
Member.javapackage Hello.hellospring.domain; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.GenerationType; import jakarta.persistence.Id; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } MemoryMemberRepository.javapackage Hello.hellospring.repository; import Hello.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findByid(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } public void clearStore() { store.clear(); } } MemoryMemberReposirory.java 코드에서 private static Map<Long, Member> store = new HashMap<>(); 부분이 이해가 가질 않습니다..ㅠㅠ Map으로 <키 , 값>을 받으려고 하는것까진 알겠는데 왜 키는 id의 데이터타입인 Long으로 들어가는데 값은 name의 데이터타입인 String으로 들어가는것이 아닌 Member 객체로 들어가게 되는건가요..??