묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
th:value="${region.key}" 질문
안녕하세요. 강의 잘 듣고 있습니다. addForm.html을 공부하다가이 부분에서 궁금한 점이 생겼는데요.th:field는 id, name, value를 채워주니까th:value= "${region.key}" 를 지우고 실행해보니아예 화면 자체가 오류창으로 나오더라구요.위에 체크박스를 공부했을 때는 자동으로 value = "true"가 들어가던데 여기서는 왜 문제가 생기는건가요?추가로 checkbox는 value값과 상관없이선택이 되면 regions=on 이렇게 가야하는 것 같은데여기서는 왜 value값이 대입이 되어서regions=SEOUL, regions=BUSAN 이렇게 들어가는지 헷갈리네요 ㅠ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MemberRepository save 반환타입
안녕하세요강의를 복습하다가 궁금한 점이 생겨서 질문 남깁니다!MemberRepository 클래스에서 저장소에 저장하는 메서드의 반환타입이 Member일 필요가 있나요?Map 에 put 만 하면 저장소의 기능은 끝난다고 생각하고, 강의에서도 save의 반환타입을 이용하지 않는것 같아서요감사합니다.
-
해결됨토비의 스프링 부트 - 이해와 원리
부트 3.0 사용하시는 분들은 @RequestMapping 만으로 매핑이 등록되지 않으니 참고하세요.
부트 3.0과 스프링 6.0이전 버전에서는 매핑 테이블에 핸들러로 등록되기 위해서는 클래스 레벨의 @RequestMapping 어노테이션만으로 가능했으나, 3.0부터는 클래스 레벨의 핸들러 감지 대상에 @Controller 어노테이션만이 포함된다고 합니다.https://github.com/spring-projects/spring-framework/issues/22154
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hellospringapplication 실행이 안됩니다
다른 분이 같은 질문을 남기신 걸 보고 file - invalidate caches 항목을 실행하고난 화면인데 뭐가 문제일까요 ㅠㅠ 자바는 버전 17이고 스프링은 3.0.2 버전입니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable 이 어떻게 매칭되는지 모르겠습니다..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.<tr th:each="item : ${items}"> <td><a href="item.html" th:href="@{/basic/items/{itemId}(itemId=${item.id})}" th:text="${item.id}">회원id</a></td> <td><a href="item.html" th:href="@{|/basic/items/${item.id}|}" th:text="${item.itemName}">상품명</a></td> <td th:text="${item.price}">10000</td> <td th:text="${item.quantity}">10</td> </tr>package hello.itemservice.web.basic; import hello.itemservice.domain.item.Item; import hello.itemservice.domain.item.ItemRepository; import jakarta.annotation.PostConstruct; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import java.util.List; @Controller @RequestMapping("/basic/items") @RequiredArgsConstructor public class BasicItemController { private final ItemRepository itemRepository; @GetMapping public String items(Model model) { List<Item> items = itemRepository.findAll(); model.addAttribute("items", items); return "basic/items"; } @GetMapping("/{itemId}") public String item(@PathVariable Long itemId, Model model) { Item item = itemRepository.findById(itemId); model.addAttribute("item", item); return "basic/item"; } /** * 테스트용 데이터 추가 */ @PostConstruct public void init() { itemRepository.save(new Item("itemA", 10000, 10)); itemRepository.save(new Item("itemB", 20000, 20)); } } 여기서"@{/basic/items/{itemId}(itemId=${item.id})}"{itemId} 이 변수명? 키값? 같은게 넘어가서 @RequestMapping("/basic/items") 컨트롤러로 넘어가고 @GetMapping("/{itemId}") 이쪽으로 들어가는거 로이해했는데요 "@{|/basic/items/${item.id}|}"리터럴 대체는 item.id 이렇게 이름이 넘어가는 거 같은데 여기선 변수명? 같은 매칭될만한게 안보이는데 어떻게 알고 찾아 들어가는건가요?
-
미해결스프링 핵심 원리 - 기본편
싱글톤 적용 관련 질문
옵션처리 부분의 강의에서 모든 테스트 케이스를 돌려보았을 때, 선생님과 다른 오류가 나오고 해결방법을 잘 모르겠어서 질문 남깁니다. 이러한 테스트 문을 작동 시켰을 때이러한 오류가 뜹니다.우선은테스트를 실행시켰을 때의 로그를 통해 보시는 바와 같이 스프링 빈에 잘 올라가있음을 알 수 있습니다.memberServiceImpl와OrderServiceImpl은 컴포넌트 스캔과 Autowired 또한 잘 적용되어 있음을 알 수 있습니다. 또한 AppConfig에서 지정한 코드를 보면위와 같이 작성되어 있고, 의존관계에 따라 구현 함수의 내용을 보면MemberRepository의 구현체 MemoryMemberRepository DiscountPolicy의 구현체 RateDiscountPolicy 또한 컴포넌트 스캔이 잘 작성되어 있음을 알 수 있습니다. 따라서 스프링 부트에 올라가있고, 싱글톤이 적용되어야하는데, 왜 객체가 다르게 반환되는 지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
th:action
아래는 customer/createCustomer.html 일부입니다.강의를 듣고 th:action 을 적용시켜봤는데요1.controller-> getmapping / postmapping 모두같은 url 로 설정2.customer/createCustomer.html -> th:action 기입두 조건을 다 넣어줬는데 post mapping 에서 받아오는 form 에서carNum 이 중복되어 (ex: 1111->1111,1111) 나타납니다.아래는 오류가 발생했을때 웹페이지 정보입니다.query string parameter 와 form 에서 중복으로 데이터를 가져옵니다.th:action -> th:action=@{/main/findCustomerByCarNum}수정하면 중복되는 오류가 사라지구요.. 혹시 th:action 사용시 getmapping에서@RequestParam (name = "carNumber") String carNumber (사진 빨간 밑줄)같은 것들이 있으면 저처럼 중복되는 오류가 생길수 있나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
반환타입
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컨트롤러를 만들때 문자로 반환해도 뷰이름으로 알고 프로세스가 진행된다고 하는데 반환타입이 String일때 어댑터에서 자동으로 ModelAndView로 변환해서 저렇게 사용할 수 있는건가요? 컨트롤러에 반환타입을 String 말고 다른것으로 설정해줘도 사용이 가능한건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd로 실행하는 이유는 뭔가요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.현재 프로그램 환경설정의 빌드하고 실행하기까지 했는데 여기서 cmd로 실행하는걸 하는데 왜 cmd로 실행하는 건가요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
강의를 듣고 공부한 내용을 블로그에 정리해도 괜찮을까요??
안녕하세요 강의 잘 듣고 있습니다~블로그에 항상 그날 공부한것을 포스팅하는중인데 수업자료를 과도하게 노출하지 않는선에서 블로그를 작성하는건 괜찮을까요?? 포스팅하기전에 혹시 몰라서 질문드려봅니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
H2 DB
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]jdbc:h2:~/test 로 들어가면 연결이 잘 되는데 제가 영한님 다른 강의를 병행하면서 들어서 test에는 다른 테이블들이 있습니다.. 삭제하면 병행하면서 공부하기 힘들거 같아서 TEST말고 다른 경로의 DB로 하고 싶은데 이럴때는 어떻게 해야할까요?
-
미해결스프링 핵심 원리 - 기본편
싱글톤패턴 사용사례
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요!스프링 컨테이너가 싱글톤 기반이라고 하셨고, 단점도 많은데 실무에서는 어떠한 경우에 싱글톤 패턴이 적용되는지 궁금합니다!
-
미해결자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌
StudentAssembler 클래스 질문드립니다.
강사님께서는 StudentAssembler 클래스 만드셔서 그 안에서 StudentService 파일들을 임포트해서 임포트한 서비스들에 각각 StudentDao를 넣으시고 사용하실때 register = assembler.getRegisterService() 해서 사용하시던데 main 클레스에서StudentDao studentDao = new StudentDao(); 객체를 만들고 여기서 바로registerService = new registerService(studentDao) < 이렇게 해서 사용안하시는 이유가 따로 있으신가요??Assembler 클래스가 각각의 서비스들을 바로 연결되지 못하게 한번 거쳐서 사용하는 클래스인거 같은데 이렇게 사용하려고 하니 확실히 더 복잡해지는거 같아서요...
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
Content ajax로 갖고오는 부분이 이해가 안됩니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.강의 설명중 이해가 안되서 질문드립니다.!1:36 설명에서 수정에서 데이터를 바꾼다음에다시 제목을 눌렀을 때 수정이 되지 않은 내용이 textarea에 보인다고 하셨는데수정을 하면 DB에 수정내용이 반영되서 다시 제목을 누르면 바뀐 내용이 보이는 상황 같은데요content 부분만 ajax로 다시 갖고 오는게 이해가 잘 되지 않습니다.만약에 list로 보여지는 내용 별도의 내용을 더욱 보여줘야 한다면 상세보기를 하는게 맞는거 같은데 현재 예제에서 content 부분만 따로 갖고오는게 이해가 잘 안되네요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
MemberRepositoryTest 실행시 오류
안녕하세요 MemberRepositoryTest 실행시 저런 오류가 떠서 여러 해결 방안을 실행했지만 해결이 안되어 질문드립니다.저는 인텔리제이 무료버전을 사용하기 때문에Gradle로 초기 설정을 햇고,build.gradle 에서 다음과 같은 코드를 주석처리 하였습니다. 하지만 아직도 계속 오류가 떠서 질문 올려봅니다..ㅜ>> 코드는 정확히 작성했고, 2~3번의 검토로 코드는 오류가 아닙니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
REST Controller
@RestController로 할 경우 redirect는 어떻게 하나요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트에서 assertThat 항상 같은 값나오는게 아닌가 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네[질문 내용]여기에 질문 내용을 남겨주세요.상품 도메인 개발 12분 에 ItemRepositoryTest 안에 @Test void save() 메소드를 보면public Item save(Item item) { item.setId(++sequence); store.put(item.getId(), item); return item; }@Test void save() { //given Item item = new Item("itemA", 10000, 10); //when Item savedItem = itemRepository.save(item); //then Item findItem = itemRepository.findById(item.getId()); assertThat(findItem).isEqualTo(savedItem); } Item item 객체생성을 하고 itemRepository.save(item);리포지터리save메소드를 호출해서 id 값 set하고 map에저장하고 item 을 그대로 반환하자나요그리고 test save() 에서 Item savedItem 으로 받고요그럼 savedItem 은 item 을 참조하는거 아닌가요?savedItem 을 받지 않고 그냥 item 을 사용하는거와 다른가요? 예를들어 assertThat(findItem).isEqualTo(savedItem);대신 assertThat(findItem).isEqualTo(item);하는거와 같은거 아닌가요?왜 새로 변수를 만들어주는 것인지 궁금합니다.초보라 혼란해서 이해가잘안가서요 ㅜ
-
미해결스프링 핵심 원리 - 기본편
Appconfig 질문 / 생성자 호출
public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository()); } public OrderService orderService() { return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy()); } }Appconfig 에서orderService() 조회하면(호출하면) ( 생성자니까 Appconfig 객체가 생성되면 호출된다 ) ( MemoryMemberRepository() 객체 생성 ,FixDiscountPolicy() 객체 생성 )--> 이 생성된 객체의 참조값을 OrderServiceImpl 객체 생성할 때 생성자로 전달 public class OrderServiceImpl implements OrderService { private final MemberRepository memberRepository; private final DiscountPolicy discountPolicy; public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) { this.memberRepository = memberRepository; this.discountPolicy = discountPolicy;OrderServiceImpl 에 생성자 호출 - 참조값이 넘어감 OrderServiceImpl 객체의MemberRepository 에 MemoryMemberRepository 할당DiscountPolicy 에 FixDiscountPolicy 할당나중에 할인 정책이 변경되어 수정해야한다면 OrderServiceImpl 변경하지않고 AppConfig 에서만 변경하면 됨 public OrderService orderService() { return new OrderServiceImpl(new MemoryMemberRepository(), new FixDiscountPolicy()); } 제가 자바 기초 문법 (생성자? ) 을 깊이 몰라서 ,, ㅜ 이렇게 이해했는데맞는지 확인 부탁드립니다 !!
-
해결됨스프링 시큐리티 OAuth2
OAuth2 로그인 이후 통신 방법
안녕하세요.OAuth2 로그인 이후에 검증 방식에 대해 궁금한 점이 있어서 질문 드려봅니다.현재 프로젝트에서 OAuth2 를 이용하여 로그인 하는 기능을 사용하고자 하여, 강사님의 강의를 통해 OAuth2 Login을 적용시켰습니다.OAuth2 를 이용하여 회원가입을 하고, 회원가입이 완료되어 OAuth2로 로그인하면, 자체적으로 생성한 JWT Token 을 이용하여 Client 와 통신을 하는 방식으로 구현하였습니다.API 호출 마다 JWT 토큰만으로 인증을 하고 있었는데, JWT 토큰 이후 이 유저가 OAuth2(예를들어 네이버 같은 서버)에서도 유효한 회원인 지 검증이 필요하지 않을까 생각이 들었고,유저가 OAuth2 서버에서 유효한 회원인 지 검증 하는 부분을 만들고자 하는데, 내부적으로 이용할 수 있는 기능이 있는지 문의 드립니다.ClientRegistration 에 user-info-uri 를 통해 유저 정보를 가져오기 때문에, 예를 들어 oauth2_authorized_client의 accessToken을 이용하여 Naver(OAuth2)에서 회원을 간단하게 조회하고 검증 작업을 진행하면 되지 않을까 해서 내부적으로 이용할 수 있는 기능이 있을 것 같아서요..아니면 OAuth2 로그인 이후에 검증 방식에 대해서 제가 잘못 이해한 부분이 있다면 말씀 부탁 드리겠습니다감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
sql파일 보는법이 궁금합니다.
[질문 내용]7분 23초 쯤에 member테이블 sql파일 보신다고 무엇인가를 누르시면서 sql파일을 보신거 같은데 어떻게 보신건지 궁금합니다.