묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
앞으로의 방향
[질문 내용]안녕하세요!! 우선 좋은 강의 만들어주셔서 너무 감사합니다! 이번 강의도 정말 잘 들었습니다!! 저는 자바 입문, 실전 자바 기본편을 듣고 이번 스프링 입문 강의를 완강했습니다. 이전에는 자바에 대해 책으로 공부하고 강의를 통해 이해하는데 큰 어려움이 없었지만 스프링은 처음이라 많이 헤매는 느낌을 받습니다. 궁금한 점은 헤매는 느낌을 받는 이유는 자바에 대한 이해가 부족해서 인지 스프링에 대한 이해가 부족해서 인지 알고싶습니다. 또한 제 계획은 24년도 상반기에 나올 자바 중급,고급 강의를 듣고 스프링 완전정복 강의를 듣고 토이프로젝트를 통해 실력을 향상시키는 것이 목표입니다. 이 방향성이 괜찮은지 아니면 어떤 방향으로 나아가야하는지 조언 부탁드립니다.!! 처음 자바를 공부하고 너무나도 헷갈리고 어려운 순간들이 많았는데 김영한 선생님의 강의를 듣고 나름대로 발전한 것 같아서 항상 감사하고 있습니다. 양질의 강의를 제공해주셔서 감사합니다 !! 24년도 잘 부탁드립니다!!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
순수 jdbc 강의에서 H2 database적용 후, 회원목록 조회에서 Whitelabel 오류가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.2023-12-27T19:46:31.932+09:00 ERROR 20716 --- [nio-8080-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root cause 강의를 따라하면서 진행하다가 페이지에서 회원목록으로 들어가면 Whitelabel 오류가 뜹니다. 혹시 위 오류가 어떤 이유에서 나는지 알 수 있을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getLong 함수 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Oracle DB를 연동해서 강의 내용을 따라가고있는데, 저기 getLong부분에서 계속해서 오류가 발생합니다 ㅠㅠ오류 내용은 위와 같습니다... 실제DB에 값은 잘저장됩니다.Member라는 클래스 대신 User라고 이름을바꿔 사용하고있고, 사진과 같이 멤머변수도 두개 추가하였습니다.(아래는 getter/setter 코드입니다.)오라클 테이블은 다음과 같이 사용하고있습니다..
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]
오류가 발생하였는데 왜 일까요...?
java.lang.NumberFormatException: null java.lang.Integer.parseInt(Integer.java:542) java.lang.Integer.parseInt(Integer.java:615) kr.bit.controller.MemberInsertController.service(MemberInsertController.java:19) javax.servlet.http.HttpServlet.service(HttpServlet.java:779) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) @WebServlet("/memberInsert.do")public class MemberInsertController extends HttpServlet { protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1. 파라미터 수집(VO) String id=request.getParameter("id"); String pass=request.getParameter("pass"); String name=request.getParameter("name"); int age=Integer.parseInt(request.getParameter("age")); String email=request.getParameter("email"); String phone=request.getParameter("phone"); //MemberVO vo=new MemberVO(id, pass, name, age, email, phone); MemberVO vo=new MemberVO(); vo.setId(id); vo.setPass(pass); vo.setName(name); vo.setAge(age); vo.setEmail(email); vo.setPhone(phone); System.out.println(vo.toString());String형을 int형으로 변환해줬는데도 age쪽에서 오류가 발생하고 아랫부분들은 service메서드쪽에 왜 발생한 것인지 모르겠어요.. 답변 부탁드립니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ModelAttribute와 생성자
안녕하세요.@ModelAttribute 바인딩에 대한 질문 드립니다.바인딩 방식으로 제가 생각한 것은필드를 인자로 받는 생성자가 있다면 해당 생성자로 값을 주입한다.없다면 기본 생성자와 Setter를 이용해 값을 할당한다.이렇게 생각했습니다. @Getter @Setter public class Item { private Long id; private String itemName; private Integer price; private Integer quantity; public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; } }이렇게 해놓은 상태에서 Controller addItemV2 메소드를 실행할 경우,Cannot resolve parameter names for constructor public hello.itemservice.domain.item.Item(java.lang.String,java.lang.Integer,java.lang.Integer)위와 같은 오류가 발생합니다. 기본 생성자를 추가했을 경우에는 정상 작동하구요.1번의 방식으로 실행된다면 오류없이 실행되어야 한다고 생각했는데 바인딩 방식을 잘 못 이해하고 있는 것인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Thymeleaf
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <body> <div class="container"> <div> <table> <thead> <tr> <th>#</th> <th>이름</th> </tr> </thead> <tbody> <tr th:each="member : ${members}"> <td th:text="${member.id}"></td> <td th:text="${member.name}"></td> </tr> </tbody> </table> </div> </div> <!-- /container --> </body> </html> 여기서 ${member.id}와 ${member.name}은 member 객체에 getter가 있어야만 접근할 수 있는건가요?그리고 ${member.getId()} 이런식으로는 접근이 안되나요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemoryMemberRepository
private static Map<Long, Member> store = new HashMap<>();private static long sequence = 0L;@Overridepublic Member save(Member member) {member.setId(++sequence);store.put(member.getId(), member);return member;} 여기서 궁금한게 save 메서드에서 왜 member를 return 하나요?return 된 member를 사용하는 곳은 어디에도 안보이는데 왜 return 하는지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringDataJpa 테스트 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 뭐가 문젠지 전혀 모르겠습니다 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
find와 createQuery의 차이점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.findById와 findByName에서 id는 find를 쓰고 name은 createQuery를 쓰는 건 id는 member로 반환하고 name은 list로 반환하기 때문인건가요?find와 createQuery 둘다 조회하는 메서드인데 어떤 차이가 있는지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중복_회원_예외 fail 부분 질문 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.fail(); 부분에서 setName("test")로 member1, member2를 같게 해주었는데도 오류가 발생하여 질문드립니다.혹시 fail()을 잘못 사용하였는지 확인하기 위해 join을 두번 다 member1으로 하였을 때는 오류가 발생하지 않았습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
톰캣의 webapp 인식에 대한 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 강의를 듣다가 문제가 발생하여 질문 남깁니다.먼저 발생한 문제점은 어느 순간부터 톰캣이 localhost:8080을 인식하지 못하는 것 같습니다. 코드를 실행하면 톰캣이 8080에서 start했다는 로그는 찍히는데 url 창에 localhost:8080을 입력하면 톰캣의 루트 디렉토리(webapp)에 있는 webapp.index.html을 인식하지 못하는 것 같습니다. 그런데 html을 브라우저로 여는 것을 지원해주는 것 같길래 열어보니(첫 번째 사진에 화살표로 강조된 부분) 두 번째 사진과 같이 localhost:8080이 아닌 "http://localhost:63342/spring_MVC/servlet.main/webapp/index.html?_ijt=22fu4h3punn2kubkafeq5afd18&_ij_reload=RELOAD_ON_SAVE" 로 찍히네요 혹시 이러한 상황에 대해서 조언을 얻을 수 있을까 해서 글을 남깁니다 답변주시면 감사하겠습니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
영상처럼 한번에 국제화 보고 수정하는 방법
질문은 아니고 저처럼 다른 분들도 찾을까봐 남깁니다이렇게 보시는 부분이 있는데저도 저렇게 보고싶어서 찾아보니플러그인에서 검색으로 Resource bundle edit 이 플러그인을 설치하면 되더라구요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
톰캣이 웰컴 페이지를 찾는 과정이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 학습하다가 궁금한 점이 생겨 질문 글을 남깁니다.url 창에 localhost:8080을 입력하면 웰컴 페이지(index.html)가 이전에 는 잘 떳는데 웰컴페이지를 조금 항목이 많은 html 페이지로 바꾸고 나니까 whitelabel 에러가 뜨더군요. 한참 여기저기 뒤져보다가 어떤 글에서 index.html은 main.resources.static 디렉토리 경로에 존재해야 한다고 하더라고요? 그래서 index.html을 해당 디렉토리에 두니까 다시 잘 도되더군요 근데 강의를 들었을 때는 main.webapp에 index.html에 둔 상태로 코딩을 했었을 때도 문제 없이 잘 되는 거 같은데 제가 강의를 들으면서 놓친 부분이 있는지 모르겠습니다. 왜 톰캣이 main.webapp에 존재하는 index.html을 못 찾았을까요? 그리고 왜 main.resources.static에 index.html을 추가로 만드니까 잘 찾아낼까요? 원리가 궁금합니다. 바쁘신 와중에 답변 주시면 정말 감사하겠습니다!
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
이번 수업과는 관련이 있는진 모르겠지만 질문있습니다.
Model model 파라미터를 넘기면서model.addAttribute() 메서드의 동작원리에 대해 갑자기 궁금증이 생겼는데, 현재 로직이 /basic/items 으로 웹페이지가 넘어가면 items 메서드가 호출되면서 model.addAttribute("items",item); 메서드를 통해 모델에 items라는 이름에 items 객체가 저장이 되잖아요 새로운 아이템을 등록한 뒤에, 다시 /basic/items 페이지로 넘어가게 된다면 다시 items 메서드가 호출될텐데 이때 다시 로직이 돌면서 model.addAttribute("items", item); 메서드가 호출이 될텐데, 이럴때에는 items 이름에 정보를 덮어씌우는 방식으로 모델에 넘어가는건가요? 아니면 items객체에 수정된 부분만 고쳐서 모델에 넘어가는건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Test 코드 작성 중 MemberRepository 궁금한 것이 있습니다.
@Autowired MemberRepository memberRepository;@Bean public MemberRepository memberRepository(){ //return new MemoryMemberRepository(); //return new JdbcMemberRepository(dataSource); return new JdbcMemberRepository(dataSource); } 이것이 자동으로 JdbcMemberRepository 주입되는 것이 memberRepository가 스프링 빈으로 등록이 되었고 이 등록된 것이 스프링 컨테이너에서 관리하기 때문인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
localhost:8080 했을 때 창이 안뜨고 다운로드가 이뤄져요
강사님이 알려주신대로 dependencies 수정했어요. 어제 할때까지만 해도 잘 됐는데 오늘 갑자기< localhost:8080/hello?username>를 입력하니 hello이름의 파일이 계속 다운로드 되고 창이 뜨지 않아요. hello 파일을 열면 제대로 이름이 뜨긴 합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
jdbcTemplate.query 에서 sql 문 파라미터 질문 있습니다
public Optional<Member> findById(Long id) { List<Member> result = jdbcTemplate.query("select * from member where id = ?", memberRowMapper()); return result.stream().findAny(); }궁금한게 저기 sql문에서 ? 파라미터가 어떻게 입력이 되는거죠?public Optional<Member> findById(Long id) { List<Member> result = jdbcTemplate.query("select * from member where id = ?", memberRowMapper(),id); return result.stream().findAny(); }밑에 방식으로 해야되는거 아닌가요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
fail()이 무엇인가요
회원 서비스에 대한 테스트코드 중 일부인데try {memberService.join(member2);fail();} catch (IllegalStateException e) {assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.");} 여기서 fail()에 대한 제대로된 설명이 없이 넘어가셨는데 fail()이 무엇인가요?
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestMappingHandlerAdapter 궁금증이 있습니다.
@RequestMapping("/springmvc/v2/members/new-form") public ModelAndView newForm() { return new ModelAndView("new-form"); } @RequestMapping("/springmvc/v2/members/save") public ModelAndView save(HttpServletRequest request, HttpServletResponse response) { String username = request.getParameter("username"); int age = Integer.parseInt(request.getParameter("age")); Member member = new Member(username, age); memberRepository.save(member); ModelAndView mv = new ModelAndView("save-result"); mv.addObject("member", member); return mv; } 이 코드처럼 RequestMapping어노테이션이 붙은 메서드는 매개변수가 다를수도있는데RequestMappingHandlerAdapter가 알아서 잘 찾아서 handle 메서드에서 내부적으로 알아서 잘 굴러가게 구현이 되어있는건가요?몇가지 정해진 틀이있는건지 궁금합니다. 제가 임으로 int 나 String 같은 매개변수 넣어볼때는 안되더라구요
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
JdbcTemplateItemRepository2 적용 후 로그
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]JdbcTemplateItemRepositoryV2 적용 후 아래 화면처럼 로그가 뜬다고 설명해주셨는데제 PC 에서 실행 후 로그는 아래 화면 처럼 뜹니다.이에 관해 몇가지 질문이 있습니다. 1.로그가 서로 다른 이유가 무엇인가요??본인 PC 로그 표시 레벨은 기본 레벨인 Info로 되어있었기 때문2.어떻게 하면 강의 화면 처럼 로그가 띄울 수 있나요??application.properties 파일에 logging.level.org.springframework.jdbc=DEBUG 속성 추가(스프링 버전은 강사님이 첨부해주신 프로젝트를 가지고 사용한것이라 강의에서 사용된 프로젝트의 스프링 버전과 동일할 것으로 생각됩니다.)두 가지 질문 답변 부탁드립니다.감사합니다. 강의를 보다보니 답을 찾았습니다..... 세션 앞부분 강의에서 방법을 적어주셨었네요....제가 앞부분 강의를 제대로 집중해서 듣지 못했나봅니다.....