묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결토비의 스프링 6 - 이해와 원리
수업 자료가 다운로드 되지 않습니다
제 개인적인 문제인지는 모르겠습니다만,수업 자료를 다운로드 하는 버튼을 클릭 시다운로드 된 압축 폴더(zip) 내에 아무것도 들어가 있지 않고,압축 풀기시에도 오류가 발생하고 있는데,어떻게 해결할 수 있는 방법이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
@Autowired 기반 필드 주입 관련 질문 드립니다
안녕하세요, Springboot 관련 프로젝트 진행 중 계속 해결되지 않는 문제가 있어 연락드립니다. 문제가 되는 클래스는 아래와 같은 추상클래스입니다. @Getter @Setter public abstract class A implements B { @Autowired private String proxyUrl; }@Configuration public class proxyUrlConfig { @Value("${environment_variable_name}") String proxyAddress; @Bean public String proxyUrl() { return proxyAddress; } } 해당 추상클래스에서는 위와 같이 @Configuration으로 스프링 컨테이너에 bean으로 등록된 url을 필드 주입으로 관리하도록 구현이 되어 있습니다. IntelliJ IDE에서도 해당 변수 옆에 bean 모양이 생겨 일단 스프링 컨테이너에서 인식은 되고 있는 상황인데, A 클래스에서 proxyUrl을 출력하면 null값이 나옵니다. 다른 클래스에서도 동일한 방식으로 필드주입으로 url을 사용하고 있는데, 다른 클래스에서는 문제없이 환경 변수에 입력된 url이 정상 출력됩니다. 혹시 A 클래스에서 추가적으로 작업해야 할 부분이 있을까요?? (@Service 어노테이션도 추가해보았지만 문제는 해결되지 않았습니다)
-
미해결스프링 핵심 원리 - 기본편
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'beanA' available 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 정확히 오류가 무엇인지 모르겠어요 ㅠㅠ
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
itemRepository의 itemAll 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.public List<Item> findAll(){ return new ArrayList<>(store.values()); }이게 강의 내용의 코드인데 이런식이 아니고 말씀하신 컬렉션으로 그대로 반환해준다는게 어떤 방식인지 궁금합니다. 그런식으로도 한번 짜보고싶어서요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
hello 페이지가 안나옵니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.뭐가 문제일까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
mybatis적용2테스트시 오류발생
https://drive.google.com/file/d/1rDjuTFQjZZOER9yTzPuAWsmouu9D_p26/view?usp=sharing미치겠네요. 그대로 따라했는데 왜오류일까요
-
미해결스프링 핵심 원리 - 고급편
CallServiceV1
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]강의와 자바 버전이 다르긴 합니다. 자바 버전이 다른 이슈로 다른 정상 작동 되는 테스트에서도 아래 경고가 발생하긴합니다.WARNING: A Java agent has been loaded dynamically (/Users/yunsang-won/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.17/e3c251a39dc90badaf71c83427ba46840f219d8d/byte-buddy-agent-1.14.17.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseCallserviceV1 생성 후 테스트 코드 실행해보면 아래와 같은 에러가 발생합니다 뭐가 문제일까요 ?ApplicationContext failure threshold (1) exceeded: skipping repeated attempt to load context for [MergedContextConfiguration@6fc29daa testClass = hello.aop.internalcall.CallService0Test, locations = [], classes = [hello.aop.AopApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@65a15628, [ImportsContextCustomizer@2f66f0d0 key = [hello.aop.internalcall.CallService0]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7d1cfb8b, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@39655d3e, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@6138e79a, org.springframework.boot.test.context.SpringBootTestAnnotation@373420a5], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드 오류
이런 화면만 뜨고 빌드가 안돼요. 어떻게 해결해야할까요?? 도와주세요ㅜ
-
미해결스프링 프레임워크는 내 손에 [스프1탄]
spring security 이후 Spring MVC06
80강 이후 업데이트나 사진 등록 부분이랑 업데이트하는 부분의 강의는 없는 거 같아서요 그냥 내용 들은 거랑 깃허브 비교해서 코드수정하면 되나요??
-
미해결스프링 핵심 원리 - 기본편
7분29초 단일책임원칙
7분29초에 말씀하신게 단일책임원칙을 지킨게 아니라개방 폐쇄 원칙을 지킨게 맞지않나요?단일책임원칙도 지킨건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링jpa 작업 중 오류
작업파일 링크 드라이브에 담아 공유합니다. 어느 점에서 오류가 나는지 잡을 수 없어 질문드립니다. 감사합니다https://drive.google.com/file/d/1UqI2_8bN8k4yq1Zww3OVkDLQ_yS_tsPS/view?usp=drive_link
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
컨트롤러 패키지명
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컨트롤러를 두는 패키지명을 controller가 아닌 web으로 하신 이유가 궁금합니다
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
No message found under code 'totalPriceMin' for locale 'ko_KR'. 오류
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]'오브젝트 오류' 강의 3:53 경에 '필드가 아닌 복합 룰 검증' 관련 코드들을 복붙한 후 실행한 결과 아래 사진과 같이 Caused by: org.springframework.context.NoSuchMessageException: No message found under code 'totalPriceMin' for locale 'ko_KR'.라는 오류가 출력됩니다.몇시간동안 관련 내용들을 구글링해도 해결되지 않아 문의드립니다. 답변 부탁드립니다.아래 링크는 압축파일입니다.https://drive.google.com/file/d/1BvnXi4zMz54nFj2op-MlvGw8czjP7DAB/view?usp=sharing
-
해결됨토비의 스프링 6 - 이해와 원리
기술에 의존적이라는 것에 대해서 조금 질문드립니다.
spring data jpa를 사용하면, JpaRepository 를 상속한 인터페이스를 보통 정의하게 되잖아요? 이 경우에도 특정 기술에 의존한다고 볼 수 있는건가요? 이런 경우, 실질적으로 spring data jpa 와 관련된 import 구문이 들어오기는 하지만, 구현체의 내용이 없기 때문에 코드 변경에 따른 여파가 없다고 느껴지긴 하거든요. 만들면서 배우는 클린 아키텍처라는 책에는 이를 persistence layer 로 분류하고 있더라구요. 이 인터페이스는 어떤 레이어에 속한다고 보시나요?질문을 드린 이유는 실제 헥사고날 아키텍처나 이런 것들을 다루는 곳에서 보면, 비즈니스 레이어에 인터페이스를 선언하고 이를 상속하는 인터페이스를 구현하는 경우들이 있는데, 실제 구현내용이 없는데 persistence layer 라고 봐야하나? 라는 생각이 문득 들었습니다. 예시:// business layer 에 선언interface BusinessRepository {}// persistence layer에 선언interface DataAccessRepository: JpaRepsitory<생략>, BusinessRepository
-
해결됨토비의 스프링 6 - 이해와 원리
클래스 필드 레벨에서의 객체 생성에 대해 질문있습니다.
안녕하세요. 좋은 강의 감사합니다.기존에는 PaymentService 클래스의 prepare 메서드 내부에서 provider 객체를 생성했었습니다.강의 중간에 토비님께서 provider를 클래스 필드로 변경하시고, 생성자에서 객체 생성을 하셨습니다.변경 이후에 Provider는 PaymentService와 생명주기를 함께합니다.(생명주기라는 단어가 올바른지 모르겠네요.) PaymentSerivce가 메모리 해제되지 않으면, Provider도 계속 메모리를 차지하게 됩니다.하지만 메서드 레벨에서 객체 생성을 한다면, Provider는 GC에 의해 비교적 일찍 메모리 해제가 될 수 있을 것 같습니다. 제 생각에는 클래스와 메서드의 호출 패턴에 따라서 선택이 달라질 것 같은데,토비님께서는 클래스 필드 레벨 선언과 메서드 레벨 선언을 정하시는 룰이 있으신지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
http://www.thymeleaf.org 가 실행이 안되는 것 같아요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]gradle에도 있고build.gradle에도 있는데hello.html을 실행하면 저렇게 에러 페이지가 뜹니다.
-
해결됨토비의 스프링 6 - 이해와 원리
의존성 방향과 관련된 질문이 있습니다.
안녕하세요 토비님.OrderRepository 인터페이스가 application layer에 있고,이걸 구현한 구현체가 persistence layer에 있는데요. 일반적인 layered 아키텍처라고 하면, 의존성의 방향이 아래로 향해야하는데, 이 경우라면 의존성이 application 으로 향하게 되는거 같은데요. 만약에 이런식으로 구성한다면 port & adapter 같은 개념을 별도로 두지 않더라도, 의존성방향에 의하면 헥사고날 (혹은 클린 아키텍처) 라고 부를 수 있는건가요? 아니면 그럼에도 layered 아키텍처라고 부르나요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
회원가입 PRG
@GetMapping("/join") public String addMemberForm(@ModelAttribute("form") MemberSaveForm form) { return "members/join"; } @PostMapping("/join") public String join(@Valid @ModelAttribute("form") MemberSaveForm form, BindingResult bindingResult, RedirectAttributes redirectAttributes) { //복합 룰 검증 validateObjectError(form, bindingResult); if (bindingResult.hasErrors()) { return "members/join"; } //회원가입 Long memberId = memberService.join(form); redirectAttributes.addFlashAttribute("memberId", memberId); return "redirect:/members/join/complete"; } @GetMapping("/join/complete") public String joinComplete(@ModelAttribute(name = "memberId") Long memberId, Model model) { NewMemberInfo newMemberInfo = memberService.getNewMemberInfo(memberId); model.addAttribute("member", newMemberInfo); return "members/join_complete"; }안녕하세요. 회원가입 완료페이지(/join/complete)에서 뒤로가기로 다시 회원가입하는 페이지(/join)로 이동했을 때 필드의 값(MemberSaveForm)들이 유지되는데 값들을 없애려면 어떻게 해야하나요?POST /join 에서 리다이렉션으로 /join/complete로 이동할때 memberId를 addFlashAttribute가 아닌 세션을이용하려하는데 흔히 사용하는 방식인지 궁금합니다. 다른 좋은 방법이 있나요?
-
해결됨스프링 핵심 원리 - 기본편
섹션7. 옵션처리
영상 6분 30초쯤에 TestBean을 스프링 빈으로 등록 된다고 하셨는데, 어노테이션 없이도 빈으로 등록되나요? 그리고 @Component이 추가 된거랑 같은지 궁금합니다. 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO의 사용 범위와 Controller에서 엔티티 생성 가능 여부
안녕하세요.해당 강의를 수강하다 궁금증이 생겨 질문 드립니다.강의에서는MemberService 같은 경우에@Transactional public Long join(Member member) { validateDuplicateMember(member); // 중복 회원 검증 memberRepository.save(member); return member.getId(); }이런식으로 엔터티를 파라미터로 받고,MemberApiController 같은 경우에는@PostMapping("/api/v2/members") public CreateMemberResponse saveMemberV2(@RequestBody @Valid CreateMemberRequest request) { Member member = new Member(); member.setName(request.getName()); Long id = memberService.join(member); return new CreateMemberResponse(id); }별도의 DTO를 파라미터로 받아 member 엔티티 객체를 생성하여 set 해주는 식으로 진행하였는데,(set 말고 생성메소드를 이용해야하는건 알아요!) 1. 엔티티를 외부에 노출하면 안되고, API 스펙이 바뀌어도 문제가 생기지 않기 위해 Controller단에 파라미터 및 반환값에 DTO를 사용하는 것은 당연하다. 그렇다면 서비스나 리포지토리에서는 파라미터로 엔티티를 받아야 하나요? DTO를 받아야 하나요??2. 만약 DTO를 Controller에서만 받고, Service단에서 파라미터로 엔티티를 받는다면, Controller 단에서 엔티티 객체를 생성하여 Dto의 정보를 넣어준 뒤 Service단으로 보내줘야하는데, Controller단에서 엔티티를 생성하는 것이 괜찮은 방법인가요? 어떤게 더 좋은 방법이고, 실무에서 더 많이 쓰는 방법인지, 어떤 장단이 있는지도 궁금합니다.