묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
의존관계 순서
코드에서는 NetworkClient 객체를 생성하고 setUrl을 통해 의존관계 주입 후 해당 객체를 return하는데 return 함과 동시에 스프링 컨테이너에 key : networkClient, value : 의존관계 주입이 완료된 싱글톤 객체이렇게 되는 건가요?그니까 즉 스프링 컨테이너에서 빈으로 관리 되려면 의존관계 주입이 끝나야만 관리 되는지 궁금합니다.그리고 의존관계 주입이 끝났기 때문에 afterPropertiesSet함수가 자동으로 호출되는 건지도 궁금해요
-
미해결스프링 핵심 원리 - 기본편
의존관계 트리거
객체 생성 후 의존관계 주입이 일어나잖아요?코드에서는 setUrl함수를 이용해서 의존관계 주입을 해주는데 afterPropertiesSet 함수는 어떤 걸 보고 의존관계 주입이 완료되었구나라고 인식 후 메소드가 실행되는건가요? 그냥 클래스의 필드들(수업자료에서는 String url)의 값이 할당되면 실행되는건가요?그렇다기엔 setUrl을 주석처리하니 그래도 afterPropertiesSet 함수가 실행되는데
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
강의를 듣다가 알림전송 관련 궁금한 점이 생겨 질문드립니다!
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 5-15. 비동기 처리 - 대표적인 사례 (22분~23분)여기까지 이해하신 내용은 무엇인가요? 여러개의 알림을 전송 할 때 비동기로 알림을 전송하게 된다면 n개의 알림을 1개의 알림을 전송하는 시간과 같은 시간으로 전송할수 있다. 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?100만개의 알림을 1개의 알림 전송 시간으로 보내려면 어떻게 해야하나요? 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요? 제 생각에는 메세지 큐를 중간에 두어서 100만개의 알림을 일단 메세지 큐에 넣고 알림 서버의 리소스를 고려해서 토픽?을 주면 될거 같은데 맞나요?갑자기 궁금해져서 질문드립니다! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
한글 깨짐
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.콘솔창이 깨지는데 관리자 옵션으로 beta체크도 해보고 gradle.properties도 해보고 build.gradle에 넣어보라는거 전부 넣어보고 코드 명시로도 해봤는데 안됩니다. 어떻게 해야 할까요
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
GetMapping -> newItem 에서 @modelAttribute 가 있는 이유가 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.@GetMapping("/items/new") public String newItem(@ModelAttribute ItemForm form){ return "item-form"; }이부분에서 @ModelAttribute 로 itemForm 을 받아오는데, 왜 ModelAttribute 가 있는지 모르겠습니다. html 에 보면 item-form 도 ModelAttribute 에서 받아온 값을 안쓰는 것 같은데 따로 사용하는 이유가 있을까요
-
미해결스프링 핵심 원리 - 기본편
MemberRepository 타입의 빈이 2개 이상 있다고 뜹니다.
AutoAppConfig를 만들고 필요한 곳들에 @Autowired를 지정하는데MemberRepository (AppConfig.java)memoryMemberRepository (MemoryMemberRepository.java) 강의에선 해당 에러가 뜨지 않는데 저는 이렇게 두개가 해당 타입 빈이 2개가 있다고 뜹니다. https://drive.google.com/file/d/1TuILr869FHhisS-IJEQHxtfNldO9fhjg/view?usp=sharing
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
메서드 추출에 대해서 궁금한게 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================FrontControllerServletV5 코드에서 메서드 추출을 많이 하셨는데 실제 프로젝트를 진행할 때도 이런 형식으로 많이 진행을 하나요? 아직 공부만 하고 실제 프로젝트를 진행해보지 않아서 잘 모르겠습니다.. getHandler와 같은 메서드는 짧은 코드인데도 추출을 해서 신기한 마음에 여쭤봅니다. ..그리고 어떤 기준으로 메서드를 추출하는 것이 좋은건지도 궁금합니다!!!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Item객체안에 UploadFile과 MultipartFile이 공존할수는없나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. Item객체를 처음에 만들때 강의에 있는 4가지 파라미터 이외에 ItemForm에 있는 MultipartFile과 List<MultipartFile>을 Item클래스 안에서 같이 사용할 수는 없는걸까요?? html의 form에서 받아오는 item 과 실제 repository에 저장되거나 가져오는 역할을 하는 item을 구분하기 위해 ItemForm 과 Item이 나눠졋다고 생각하면 맞을까요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
IntelliJ 초기 설치 파일 설치 실패
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]IntelliJ에서 hello-spring 프로젝트 열고 혼자 알아서 설치하더니 갑자기 이렇게 오류 뜨면서 아무것도 안되길래,,, 챗지피티한테 물어봤어용 그랬더니 build.gradle 파일에서 java { toolchain { languageVersion = JavaLanguageVersion.of(17) }}이 부분을 주석 처리 하라길래 주석 처리하고 재시작했더니 오류가 안뜨네욤 그냥 주석처리 해도 괜찮은 부분인가요?
-
해결됨스프링 핵심 원리 - 기본편
@Qualifier로 관리하기 힘들어지는 경우에 대한 질문
@Qualifier를 통해 특수한 경우에 대해 @Primary보다 우선적으로 빈 주입을 하게 되는데, 만약 DiscountPolicy가 수십~수백개를 넘어가고 예외 사항 또한 그만큼 늘어나는 상황에서는 @Qualifer로도 처리하기 힘든 상황이 오지 않나요?이런 상황에서는 어떻게 해결하게 되는지 궁금합니다. 혹은, 이런 상황 자체가 실제로는 잘 나오지 않는 사례인가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
HTML 문법
HTML 문법을 잘 모르는데 타임리프를 잘 사용하려면 HTML 문법을 알아야 한다고 생각이 들어서 질문드립니다. HTML 문법을 따로 공부하고 듣는게 좋을까요 ?
-
미해결스프링 부트 - 핵심 원리와 활용
localhost:8080/hello-servlet 404오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]제가 윈도우 환경에서 강의 내용 대로 container/AppInitcontainer/AppInitV1Servletcontainer/MyContainerInitV1servlet/HelloServletservlet/TestServlet를 작성하고 그 외 html이나 jarkarta.servlet.ServletContainerInitializer도 물론 다 작성한 상태에서 localhost:8080/hello-servlet 해당 url로 이동하면 404 오류가 뜹니다 혹시나 제가 잘못 코드르 작성했나 싶어서 강의 자료의 complete안의 server를 압축 풀고 앞서 말씀드린 해당 클래스만 남기고 다 지우고 gradlew explodedWar을 실행하고 톰캣 설정했는데도 똑같이 404오류가 떠서 질문드립니다 바뀐 점은 스프링 3.x버전 그리고 gradle 8.5인데 왜 이렇게 되는 걸까요...?(물론 클래스가 다 작성된 상태에서는 잘 호출됩니다)
-
미해결실전! 스프링 데이터 JPA
bulk연산 후 flush하는 이유를 모르겠어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 bulk연산을 하면 영속성 컨텍스트의 내용을 flush하는 동시에 영속성 컨텍스트의 내용을 변경하지 않고 DB에서 값을 변경해버려서 1차 캐시와 데이터가 다르게 된다고 이해했습니다.그렇다면 bulk연산 할 때 기존에 1차캐시 값들을 flush한다고 이해를 했습니다. 그런데 저희 코드에서 벌크한 뒤에 flush와 clear를 해주는데 clear만 해주면 되는 것 아닌가요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
질문있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]HTML 코드나 다른 코드에서도 Item 클래스 내부에 있는 regions 에 값을 따로 넣어주는게 없는데 체크박스 체크를 한 상태로 전송하게 되면 list에 값이 들어가는데 이게 어떤 로직을 통해 값이 채워지는지 궁금합니다
-
미해결스프링 부트 - 핵심 원리와 활용
내장톰캣2 서블릿 톰켓 실행이 안됩니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.섹션 4 내장톰켓2 -서블릿 강의를 진행중인데요 강사님하고 똑같이 진행하는데 run이 실행되지 않습니다gpt에 물어봐도 내장 톰캣을 실행할 때, 웹 애플리케이션 리소스 경로(webapps 디렉토리)를 찾지 못해서 발생한 에러하는데 해결이안되는데 어떻게 하나요?이건 내장 톰캣을 실행할 때, 웹 애플리케이션 리소스 경로(webapps 디렉토리)를 찾지 못해서 발생한 에러예요.정확히 말하면 다음과 같은 톰캣 리소스 설정 오류입니다.❗ 요약해서 말하면톰캣이 시작되긴 했지만, 웹 애플리케이션 루트를 지정한 경로가 실제로 없어서 톰캣 내부에서 시작 실패 → 전체 애플리케이션 실패가 된 상황입니다.🔍 대표 에러 메시지Caused by: java.lang.IllegalArgumentException: The main resource set specified [C:\Users\c91sy\IdeaProjects\boot-source-20230228\start\embed\tomcat.8080\webapps\] is not a directory or war file, or is not readable 톰캣이 저 경로(webapps)를 "웹 루트"로 사용하려 했는데:디렉토리가 없거나,접근 권한이 없거나,읽을 수 없는 파일이거나 해서톰캣의 StandardRoot 객체 생성이 실패한 겁니다.🛠 이 에러 이름을 붙이자면:✅"Tomcat 리소스 경로 오류 (Missing or invalid docBase for embedded Tomcat)"또는✅"내장 톰캣 구동 실패 - 웹 리소스 경로 없음 오류"✅ 해결 방법 (정리)경로 확인 및 생성다음 경로 확인:C:\Users\c91sy\IdeaProjects\boot-source-20230228\start\embed\tomcat.8080\webapps 이 경로가 존재하지 않으면 만들어줘야 함.mkdir C:\Users\c91sy\IdeaProjects\boot-source-20230228\start\embed\tomcat.8080\webapps 또는 코드 수정EmbedTomcatServletMain.java 내에 톰캣에 docBase를 지정하는 부분이 있다면, 그 경로를:String webAppPath = "src/main/webapp"; context.setDocBase(new File(webAppPath).getAbsolutePath()); 처럼 실제 존재하는 디렉토리로 바꾸는 것도 방법입니다.✨ 참고로이건 빌드 에러나 문법 오류가 아니라, 실행 시 발생한 런타임 에러입니다.따라서 코드 컴파일은 잘 됐지만, 톰캣 구동 중 내부 리소스 설정 오류로 인해 실패한 것이죠.강사님 코드랑 달리 경로를 추가하라는것 같은데 ,,,에러 메시지는 너무 길어서 천자가 넘어서 어떻게 해야할지 모르겠습니다 ....
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Category 엔티티 계층 질문드립니다.
@Entity @Getter @Setter public class Category { @Id @GeneratedValue @Column(name = "catagory_id") private Long id; private String name; @ManyToMany @JoinTable(name = "category_item",joinColumns = @JoinColumn(name = "category_id"),inverseJoinColumns = @JoinColumn(name = "item_id")) private List<Item> items = new ArrayList<>(); @ManyToOne @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); }이 부분에서, 카테고리의 계층? 을 표현하기위해 카테고리 엔티티를 위와 같이 하셨는데요. 여기에서@OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>();이 부분이 무슨 의미로 사용되는지 이해가 잘 되지않습니다.. 연관관계의 주인이 아닌쪽이기 떄문에 mappedBy를 적어준거같은데, 해당 코드가 필요한 이유와 사용되는 목적이 무엇인지 질문드립니다. 그리고 private Category parent와 private List<Category> child = new ArrayList<>();가 어떤 연관관계가 있길래 연관관계를 맺는것인지 이해가 잘 되지않아서 질문드립니다. 감사합니다.
-
미해결스프링 핵심 원리 - 기본편
자동 빈 등록 vs 자동 빈 등록시 충돌이 안 생기는 문제
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.OrderServiceIMpl에서의 Component("service")와 MemberServiceImpl에서의 service 실행시 로그화면 service가 하나만 등록되면서 충돌이 안생기네요 ㅜㅜ
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
테스트 코드 save 함수의 반환값
itemRepository 클래스에서 save() 함수 반환 타입을 item 으로 만들었는데 테스트 코드에서 itemRepository.save(item1)itemRepository.save(item2)에서 에러가 왜 안나오는 건가요?Item saveItem1 = itemRepository.save(item1);이라고 해야 되는거 아닌가요 ? GPT한테 물어봐도save() 메서드가 원본 인스턴스를 그대로 변형 후 반환하도록 구현돼 있기 때문에, 반환값을 무시해도 되는 것입니다이라고 하는데 인스턴스를 반환하도록 구현했으면 반환값이 있어야 오류가 안 생긴다고 생각하는데 왜 무시해도 된다는지 잘 모르겠습니다..
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?
3000 ms 인 줄 알았는데 그냥 second 던데 저렇게 길게 설정해도 괜찮을까요?
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
MemberRepository의 JPA 종속성에 관하여
쉽게 이해할 수 있게 설명해주셔서 강의 잘 봤습니다. 👍 강의 후반부(39. 문서와 코드 다듬기)에 MemberRepository에 @Query를 사용하면서 JPA 종속성이 추가되었는데 이 부분에 대해서 언급 없이 2가지 조인 방식과 관련하여 설명하고 넘어갔습니다.강의 중반부(23. 회원 애플리케이션의 포트 정의)의 MemberRepository 설명과 같이 spring-data-commons의 Repository라는 마커 인터페이스를 사용하는 것은 동의하나 application layer에 기술 종속성이 추가된 내용 관련하여 부가 설명 요청 드려도 될까요? 물론 다음 강의에 해당 설명이 있을것으로 생각되지만.. MemberQueryRepository로 분리하고 adapter layer에서 구현하는 방향이 더 좋아보이는데 개선 방향도 같이 부탁드립니다.