묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 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가 동일하지않은데 어떻게 조회할수 있는지 궁금합니다..
-
미해결[React 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 객체로 들어가게 되는건가요..??
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
Exception 예외를 지양해야되는 이유에 대해
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요 Exception 예외를 지양해야되는 이유로 어떤 예외를 잡을건이 어떤 예외는 안잡을건지 알 수 없기 때문이라고만 설명해주셨는데, 그냥 다 잡아버리면 안되는 이유가 있을까요??Exception이면 의존 관계도 문제될거 없어보이는데 자세한 이유를 알 고 싶습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
DispatcherServlet 사용 후 서블릿 객체
2.서블릿.pdf p10 을 보면 helloServlet이 생성되었는데요서블릿이 추가된다면 더 많은 서블릿 객체가 생성되잖아요갑자기 드는 생각이 DispatcherServlet 을 사용하고 나면 @Controller 의 메소드들은 어떻게 되는지 궁금하네요.Q1 DispatcherServlet 도 서블릿 컨테이너가 관리하는 서블릿 객체라 할 수 있나요 ?Q2 @Controller를 통해 서블릿과 분리시켰는데, @RequestMapping된 메소드들이 호출될 때 서블릿 객체가 생성이 되나요 ?Q3 DispatcherServlet 사용하면 서블릿 컨테이너가 관리하는 서블릿 객체는 DispatcherServlet 하나일수도 있겠다는 생각이 드는데 맞을까요 ?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
jar 빌드 관련 문의 사항
html같은 파일들은 서버가 구동중인데도 별도 재컴파일 없이 변경적용이 가능하잖아요??하지만 프로젝트를 jar로 만들면 html 과 같은 웹페이지들이 jar파일에 같이 포함되버리는데resources/ 하위 폴더를 jar안에 안들어가게 따로 구성하는 방법은 없을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
jdbc template findById method
@Override public Optional<Item> findById(Long id) { String sql = "select id,item_name,price,quantity where id =?"; template.queryForObject(sql, ((rs,rowNum)->{ Item item = new Item(); item.setId(rs.getLong("id")); item.setItemName(rs.getString("item_name")); item.setPrice(rs.getInt("price")); item.setQuantity(rs.getInt("quantity")); return item; }),id); return Optional.empty(); } **람다식에 두번째 매개변수를 1로 바꾸면 안되는 이유가 궁금해요 sql를 보면 id가 primary key 이므로 당연히 1개의 데이터셋이 추출될건데 rowNum값을 왜 1로 두면 안될까요??