묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
컨트롤러를 서블릿 의존적이지 않도록 하는 이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님께서 컨트롤러가 서블릿 의존적이지 않도록 리팩토링하셨는데요. 서블릿에 의존하지 않는 것이 어떤 장점이 있어서 그렇게 하신건지 이유가 궁금합니다 :)
-
해결됨쥬쥬와 함께 하루만에 시작하는 백엔드 - 스프링, 도커, AWS
TestRepositoryImpl 질문이요
where(QTestEntity.testEntity.name.eq(name)과 같이조건을 넣어줘야되지 않나요..?
-
미해결스프링 부트 - 핵심 원리와 활용
강의자료 오탈자 제보입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]선생님 좋은 강의 항상 감사합니다.!스프링 부트 라이브러리 강의 듣던 도중에 오탈자가 있는것 같아서 제보 드립니다.4. 스프링 부트 스타터와 라이브러리 관리.pdf 의 5페이지.버전정보 - BOM 의 설명 중, "id 'org.springframework.boot' version '3.0.2' : 여기에저징된스프링부트버전참고" 에서'저징된' 이라는 오탈자가 있습니다. 아마도 설명 흐름 상'지정된' 이 오탈 처리 된 것 같습니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
소켓 질문드려요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]안녕하세요 강의를 듣던 중에소켓의 개념이 궁금하여 서칭을 해봤는데..여러 곳에서 확인해본 결과 소켓이 정확히 무엇인지 명확하게 개념이 잡히질 않아서질문을 남깁니다.. 소켓이 정확히 뭔지 모르겠습니다...
-
미해결토비의 스프링 부트 - 이해와 원리
proxyBeanMethods=false 와 관련해서 질문이 있습니다.
proxyBeanMethods=false 을 사용하면 Bean 오브젝트가 싱글톤 빈처럼 같은 오브젝트가 리턴되는 것이 아니라 매번 새로운 오브젝트가 생성된다고 하셨는데 이렇게 굳이 새로운 오브젝트를 매번 생성하는 이유가 있을까요?새로운 오브젝트를 생성하는 비용보다 프록시 생성을 해서 싱글톤 방식으로 같은 오브젝트를 리턴하는 비용이 더 크기 때문일까요?왜 그렇게 설정을 하는 것인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드하고 실행하기가 안됩니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]PS D:\hello-spring\build\libs> java -jar hello-spring-0.0.1-SNAPSHOT.jarError: Unable to access jarfile hello-spring-0.0.1-SNAPSHOT.jar 계속 찾아보다가 안 돼서 도움 요청해요.. plain만 있어서 혹시나 plain으로 해봤는데도 안 되고 계속 없다고 뜨거든요 clean 했다가 해봤는데도 계속 이 상태입니다
-
미해결실전! 스프링 데이터 JPA
더미 데이터 추가 후 pk 겹침
실제 구현을 하는 도중 더미 데이터가 있으면 좋겠다 싶어서 data.sql을 만들어서 다음과 같이 sql을 추가했습니다. 5개의 레코드를 추가했습니다.insert into BASKET_FOOD_ENTITY(bakset_food_id, bakset_id, food_id, food_quantity)values ( 1,1,1,3 ),(2,1,2,2),(3,1,3,5),( 4,2,1,2 ),(5,2,2,4); 그 후, 테스트에서 new로 basketFoodEntity를 만들어 add메소드를 통해 DB에 객체를 persist하도록 만들었습니다. BasketFoodEntity basketFood = new BasketFoodEntity(foodEntity,basketRepository.findBasketId(2L),5);basketRepository.addFood(basketFood,userId); addFood 메소드는 다음과 같습니다.public void addFood(BasketFoodEntity basketFood , Long userId){ Long inBasketId = isAlreadyInBasket(basketFood.getFood().getId(), userId); if(inBasketId > 0) updateFoodQuantityToBasket(inBasketId,getFoodQuantity(inBasketId)); else em.persist(basketFood); }추가된 BasketFoodEntity의 Id는 GeneratedValue로 인해 6이 되어야 하는 것으로 알고 있는데, 왜 1이 될까요? 계속 1로 잡혀서 pk가 겹칩니다. GeneratedValue를 빼고 직접 ID를 6으로 설정하면 테스트는 통과됩니다.
-
미해결스프링 핵심 원리 - 고급편
프로젝트 생성시 자바 버전 관련
2023-11-25 기준으로 spring initializer 에 자바 11버전이 지원이 안되는건지 그림과 같이 21,17 버전만 있습니다 ㅜㅜ 혹시 왜그런건지...그리고 11버전으로느 ㄴ다운받을 수 없는건지 궁금합니다.
-
미해결스프링 부트 웹 개발 입문 - 따라하며 배우기
스프링 부트 2.x 버전 지원 중단, myBatis 추가가 안돼요
https://start.spring.io/사이트에서 더 이상 2.7x 버전을 지원하지 않는 것 같습니다. 인텔리제이에서도 마찬가지로 선택이 안되서3.2 버전으로 하고 있기는 한데 myBatis가 설치지원이 안되서초반에 설치하다가 강의가 막혔어요.. 추후에 myBatis로 dm 연결을 하는 것 같은데어떻게 해야 할까요??
-
미해결스프링 핵심 원리 - 기본편
Map형식으로 빈 주입 시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]@Autowiredpublic DiscountService(Map<String, DiscountPolicy> policyMap, List<DiscountPolicy> policies) {this.policyMap = policyMap; this.policies = policies; System.out.println("policyMap = " + policyMap); System.out.println("policies = " + policies);}여기 생성자 주입을 통해서 각 빈들이 Map타입과 List타입에 담기는건 알겠는데 실제로 스프링이 빈들을 모아서 어떤 구현체에 담아주는 것인가요 ?
-
미해결스프링부트 시큐리티 & JWT 강의
컴파일 오류가 뜹니다.
따라 쳤는데 왜 이런 오류가 뜨는지 알고 싶습니다. 깃허브에 코드도 없는 것 같아서 질문 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@Component 에 관한 질문
@Controller @RequestMapping("/basic") public class BasicController { @GetMapping("text-basic") public String textBasic(Model model){ model.addAttribute("data","Hello <b>Spring!</b>"); return "basic/text-basic"; } @GetMapping("text-unescaped") public String textUnescaped(Model model){ model.addAttribute("data","Hello <b>Spring!</b>"); return "basic/text-unescaped"; } @GetMapping("/variable") public String variable(Model model){ User userA = new User("userA", 10); User userB = new User("userB", 20); List<User> list = new ArrayList<>(); list.add(userA); list.add(userB); Map<String,User> map = new HashMap<>(); map.put("userA",userA); map.put("userB",userB); model.addAttribute("user",userA); model.addAttribute("users",list); model.addAttribute("userMap",map); return "basic/variable"; } @GetMapping("/basic-objects") public String basicObjects(HttpSession session ){ session.setAttribute("sessionData","Hello Session"); return "basic/basic-objects"; } @Component("helloBean") static class HelloBean { public String hello(String data){ return "Hello "+data; } } -> 왜 클래스로 따로 뺴주는지? public String hello(String data){ return "Hello "+data; } 이렇게 클래스내부에 메서드를 만들어서 사용하면되는거 아닌가요? 가 질문컨트롤러클래스에 hello메서드를 만들지 않고 따로 내부에 클래스를 만들어 주는 이유가 뭔가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@PathVariable 의 사용방식
@GetMapping("/music/{itemid}")public String ~~ (@PathVariable long itemid){} @GetMapping("/music/{price}")public String ~~ (@PathVariable long price){} 이렇게 두개가 있다고 칠때 만일 url 값이 /music/2 이 들어오면 어디에 맵핑 되나요?? 둘다 가능하지 않나요??? 이런식으로는 보통 코딩하지 않는 건가요??
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
시작 오류 입니다 .. 자주하는질문 해결방법 해도 잘됩니다 ㅠ
저 자주하는질문에 있는대로 해봤는데 계속 오류가 나네요 ..뭐가 문제인가요? .. ㅠ재시작도 해봤는데 계속 뜹니다 ..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 프로젝트 생성 강의 오류
build.gradle 파일을 열면 인텔리제이 아래에 빨간색으로 아래와 같이 뜨며 또 다른 문제로 프로젝트 생성강의 13:38초경 처럼 run 버튼이 활성화가 되지 않습니다.A problem occurred configuring root project 'hello-spring'.> Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.0.등등
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
start.spring.io가 업데이트 되었는지 2.점대가 없는데 3.대로 해도 되너ㅏ요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.3점대는 자바 17부터 쓴다고 알고 있는데 다시 깔아서 해야 하나요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
메모리에 올린다에서 메모리가 영속성 컨텍스트 인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예[질문 내용]메모리에 올린다는 내용이 등장하는데, getter로 조회해서 영속성 컨텍스트에 올려놓는 다는 뜻인가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Spring boot 버전 선택
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.2023 11월 시점으로 스프링부트 버전이 이렇게 밖에 없습니다. Java도 21 또는 17 중에서 선택해야 하는데, 어떤 걸 선택해야 시행착오를 덜 겪을 수 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 부트 3.0
자바 11버전을 가급적으로 다운로드 하라고 하셨는데 다운로드 하는 방법을 잘 모르겠습니다.2.x버전이 없으면 자바 17을 사용해야 할까요?
-
해결됨스프링 핵심 원리 - 기본편
싱글톤과 쓰레드
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]새로고침을 통해 Request를 반복적으로 수행함에있어서 각 요청의 원자성이 유지되는 이유가 궁금합니다.LogDemoService와 LogDemoController는 싱글톤으로 관리되고 스프링 컨테이너에 유일무이하게 존재한다고 이해하였습니다.sleep을 걸어준 후 로그를 확인해보면, 각 요청에 따른 request의 정보가 일관됨을 확인할 수 있는데,스프링 자체적으로 멀티쓰레드를 실행하여 각 request에 대응하는 Controller와 Service인스턴스를 따로 만드는 것인가요? 그럼에도 불구하고 싱글톤이라고 칭할 수 있는 것인가요?MyLogger를 Controller에서도 provider.getObject();하고 Service에서도 provider.getObject();를 하는데, 많은 Request가 있을때 MyLogger빈도 많이 생성이 될텐데 Contoller와 Service에서 같은 MyLogger빈을 사용하는 이유는 하나의 쓰레드에서 처리하기 때문으로 이해하였습니다. 제가 이해한게 맞나요? Controller와 Service간 파라미터 등으로 MyLogger와 관련된 정보를 교환하지 않았는데, 어떻게 수많은 MyLogger사이에서 일치하는 MyLogger를 DL해오는 것인지 이해가 잘 안됩니다. 만약 각 요청이 쓰레드별로 관리되고 각 쓰레드마다 단 하나의 MyLogger만 존재하는 것인지요...?