묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
싱글톤 패턴 문제점에서 구체클래스 의존해서 DIP위반한다고 하셨는데 이건 싱
싱글톤 패턴 문제점에서 구체클래스 의존해서 DIP위반한다고 하셨는데 이건 싱글톤 아니여도 마찬가지 아닌가요?밑에 처럼 싱글톤을 안써도 , MemberServiceImple이라는 구체구현 클래스가 드러납니다..public MemberService memberService(){ return new MemberServiceImpl(memberRepository()); }
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@ResponseBody를 쓰더라도 어댑터가 ModelAndView를 반환하나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@ResponseBody나 HttpEntity를 사용하면 뷰 리졸버를 사용하지 않는다고 기억하고 있습니다. 그러면 핸들러 어댑터에서 반환하는 건 ModelAndView가 아닌 건가요?저는 아래 DispatcherServlet의 doDispatch() 코드를 보고mv = ha.handle(processedRequest, response, mappedHandler.getHandler()); if (asyncManager.isConcurrentHandlingStarted()) { return; }(mv 타입은 ModelAndView)핸들러 어댑터는 항상 ModelAndView를 반환한다고 이해했던 거로 기억합니다. 일단 ModelAndView를 반환하지만, 뷰 리졸버까지 가진 않는다고 생각했었습니다.그런데 HttpMessageConverter를 배울 때 뷰 리졸버를 사용하지 않는다고는 배웠지만 ModelAndView에 대한 언급이 없었던 거 같아서 확신이 안 듭니다.@ResponseBody를 사용할 경우 아래 그림은 어떤 식으로 바뀌는 걸까요? 핸들러 어댑터가 ModelAndView를 반환하고, 뷰 리졸버나 뷰 render() 호출 없이 DispatcherServlet에서 바로 응답을 보낸다. 이렇게 생각하면 될까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실행된 결과에 ?라고 뜨는 이유가 무엇일까요??
html로 하던 포스트맨으로 하던 결과 출력이 문자형태가 안나오고 ? 로 다 뜨는데 이유가 무엇일까요?html 파일내에는 utf-8 로 되어있습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Failed to load ApplicationContext 오류
[질문 내용]h2 db랑 연결이 되지 않는 것 같은데어제 gradle에서 TRUE 설정을 뺐을 때는 작동이 잘 됐는데 오늘 다시 작동시켜보려 하니 작동이 안됩니다.. 오류는10000자가 넘어가서 사진으로 첨부합니다.. zip파일 드라이브에 첨부하겠습니다.https://drive.google.com/file/d/126dOVMwaCPYOSqD4f7XOC0BkCUqtONAK/view
-
미해결스프링 핵심 원리 - 기본편
[질문] > Task :compileJava FAILED 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]항상 고생이 많으십니다. > Task :compileJava FAILED 오류에 대해서 여쭤보고자 합니다.구글링 결과는 java 버전이 맞지 않아서 나오는 문제라고 했는데,다 찾아본 결과 JAVA 17버전으로 맞추고 했는데도 계속 오류가 나는 문제가 있습니다. 현재 윈도우 환경에서 공부하고 있습니다.오류 내용 - 사진 오류 내용 - 코드오류 내용Starting Gradle Daemon... Gradle Daemon started in 2 s 802 ms > Task :compileJava C:\Users\woon7\OneDrive\���� ȭ��\Spring �ٽ� ���� - �⺻��\core\src\main\java\hello\core\AutoAppConfig.java:19: error: illegal start of type <<<<<<< HEAD ^ C:\Users\woon7\OneDrive\���� ȭ��\Spring �ٽ� ���� - �⺻��\core\src\main\java\hello\core\AutoAppConfig.java:19: error: > expected <<<<<<< HEAD ^ C:\Users\woon7\OneDrive\���� ȭ��\Spring �ٽ� ���� - �⺻��\core\src\main\java\hello\core\AutoAppConfig.java:24: error: illegal start of type ======= ^ C:\Users\woon7\OneDrive\���� ȭ��\Spring �ٽ� ���� - �⺻��\core\src\main\java\hello\core\AutoAppConfig.java:29: error: illegal start of type >>>>>>> origin/master ^ C:\Users\woon7\OneDrive\���� ȭ��\Spring �ٽ� ���� - �⺻��\core\src\main\java\hello\core\AutoAppConfig.java:29: error: <identifier> expected >>>>>>> origin/master ^ C:\Users\woon7\OneDrive\���� ȭ��\Spring �ٽ� ���� - �⺻��\core\src\main\java\hello\core\AutoAppConfig.java:29: error: <identifier> expected >>>>>>> origin/master ^ 6 errors > Task :compileJava FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileJava'. > Compilation failed; see the compiler error output for details. * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. See https://docs.gradle.org/7.6/userguide/command_line_interface.html#sec:command_line_warnings BUILD FAILED in 12s 1 actionable task: 1 executed ``` project Structure - Project placform settings - SDKs 시스템 환경변수 설정 자바 버전 Settings - Gradle 버전 Settings - Java Compier 버전build.gradleplugins { id 'org.springframework.boot' version '2.3.3.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' } group = 'hello' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' //lombok 설정 추가 시작 configurations { compileOnly { extendsFrom annotationProcessor } } //lombok 설정 추가 끝 repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter' //lombok 라이브러리 추가 시작 implementation 'org.projectlombok:lombok' annotationProcessor ("org.projectlombok:lombok:1.18.20") testImplementation ("org.projectlombok:lombok:1.18.20") testAnnotationProcessor ("org.projectlombok:lombok:1.18.20") //lombok 라이브러리 추가 끝 testImplementation('org.springframework.boot:spring-boot-starter-test') { exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' } } test { useJUnitPlatform() } ``` 다 찾아서 이렇게 설정해보았지만.. 테스트 코드를 돌려도 갑자기 컴파일이 되지 않는 문제가 있습니다..
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
재고시스템 동시성 문제 해결에 redis incr을 사용해도 되나요?
재고 시스템 강의 듣고 난 이후에 쿠폰시스템 강의 들었는데요,재고시스템 강의에서 사용한 lock 방식은 성능에 영향이 있으니 쿠폰발급 강의에서 사용했던 redis incr 명령과 set을 사용해서 재고시스템 문제도 해결할 수 있지 않을까 생각이 드는데요. 가능한 방법인가요?
-
미해결3. 웹개발 코스 [스프링 프레임워크+전자정부 표준프레임워크]
EA + egovframe 신규 강의 무료쿠폰 메일
EA + egovframe 신규 강의 무료쿠폰 메일 드렸는데. 답변이 없어서 글 남겨 봅니다.
-
미해결스프링 핵심 원리 - 기본편
의존성 주입과 빈의 관계
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 수동으로 빈을 등록 할 때 빈이 등록되는 순서는 개발자가 작성한 순서대로 보장되지 않음을 수동 빈 등록 강의에서 배웠습니다. 그렇다면, 자동으로 빈을 등록할 때는 빈의 등록 순서가 어떻게 되나요? 만약 컴포넌트 스캔의 basePackages가 hello.core라면, 해당 패키지부터 하위로 차례대로 내려가면서 등록하나요?만약 생성자로 의존 관계를 주입할 때, 주입해야 하는 빈이 등록되어 있지 않으면 어떡하나요? 빈을 찾는데 없다면, 생성자를 호출하고 있는 동시에 빈을 등록하나요? 예를 들어, OrderServiceImpl 빈 등록을 위해 생성자 호출 -> 생성자를 통해 의존 관계 주입 시도 -> 그런데 MemberRepository 빈이 없음 -> MemberRepository 빈 등록. 이런 방식인건가요?
-
해결됨스프링 핵심 원리 - 기본편
[정보글] HelloLombok 실행 시 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]질문 하려다가 제가 해결한 내용을 공유합니다.build.gradle도 다 실행이 되었는데, 제가 겪는 에러 내용은 HelloLombok을 실행할 때에 문제가 발생한다는 점입니다.오류 내용 :Cause: class lombok.javac.apt.LombokProcessor (in unnamed module @0x26eb169f) cannot access class com.sun.tools.javac.processing.JavacProcessingEnvironment (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.processing to unnamed module @0x26eb169f찾아보니 이는 JDK 16버전의 경우, Lombok과는 호환이 안된다는것이 원인이었습니다.따라서 https://icea.tistory.com/16이 링크를 참조했고, build.gradle을 이렇게 바꾸어서 해결할 수 있었습니다.해결 전 ://lombok 라이브러리 추가 시작 implementation 'org.projectlombok:lombok' annotationProcessor ("org.projectlombok:lombok") testImplementation 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' //lombok 라이브러리 추가 끝 해결 후 : //lombok 라이브러리 추가 시작 implementation 'org.projectlombok:lombok' annotationProcessor ("org.projectlombok:lombok:1.18.20") testImplementation ("org.projectlombok:lombok:1.18.20") testAnnotationProcessor ("org.projectlombok:lombok:1.18.20") //lombok 라이브러리 추가 끝HelloLombok 코드package hello.core; import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class HelloLombok { private String name; private int age; public static void main(String[] args) { HelloLombok helloLombok =new HelloLombok(); helloLombok.setName("qwer"); String name = helloLombok.getName(); System.out.println("name = " + name); System.out.println("helloLombok = " + helloLombok); } } 혹시라도 안되셨던 분들은 참고하시길 바랍니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
localhost:8001/hello 할떄마다 오류가 납니다(8080실행중)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.localhost:8001 할때는 문제가없이 404오류가 잘 나왔는데 localhost:8001:hello 할때 갑자기 405 에러페이지가 되었습니다 도와주세요!HelloServlet.javaServletApplication.java무료버전입니다 혹시 몰라 세팅도 올립니다
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
@ControllerAdvice HTTP 405 처리
@ControllerAdvice("com.test.controller") 이렇게 패키지명을 명시하고전역 @ControllerAdivce가 없는 경우405가 발생하면 핸들러 어댑터에서 처리해야 할 핸들러를 찾지 못해서 ( handler = null )예외 처리가 안되더라구요.405라고 인식한거 자체가 handler 의 정보는 가지고 있을 줄 알고 @ControllerAdvice("com.test.controller") 에서 처리가 될 줄 알았는데 말이죠이 문제 해결할려면 무조건 @ControllerAdvice 전역처리기나 아니면 /error 로 포워딩되는곳에서 처리를 해줘야 할까요?
-
미해결스프링 배치
chunk 처리 기반에서 cursor 방식과 메모리 사용
안녕하세요. 비전공자로 배치 프로그램에 관심이 많아서 해당 강의를 듣다가 커서 방식과 페이징 방식을 스프링 배치에서 사용할 때 고려사항과 관련하여 질문이 있습니다. 커서가 페이징 방법에 비해 데이터 일관성이 보장이 쉽고 속도도 더 빠른 것으로 알고 있습니다. 그리고 청크 기반 배치 처리 로직으로 구현한다면, 커서 기법을 사용하는 경우에도 페이징 방법처럼 트랜잭션 단위를 청크 크기만큼 나눌 수 있을 텐데요.(페이징에서 chunk와 paging 단위를 같이 하는 것처럼 커서에서도 chunk와 fetchsize를 같게 해주면 될 것으로 고려합니다.)그리고 멀티 스레드를 고려한다면,SynchronizedItemStreamReader로 reader 영역을 감싸서 처리할 수도 있는 걸로 알고 있습니다. 그렇다면, 이러한 상황 속에서 커서와 페이징을 사용함에 고려해야할 트레이프 오프가 커넥션 타임 뿐인 걸까요??이런 상황에서도 커서가 메모리 할당 방식으로 인해서 메모리 사용량이 커진다는 단점이 있는 건가요??( 더 정확하게 말하자면 결과를 메모리에 할당한다는 점이 명확히 와닿지 않습니다.제 나름 추론하자면,커서가 fetch size나 chunk로 전체 데이터를 분할하여 메모리에 올리고 읽고나서도 모든 결과값이 메모리에 쌓여 한번에 write(ex- db에 저장) 되기 때문에 메모리 사용량이 많아 진다는 것인가여??반면에, 페이징은 기반 처리는 페이징 단위로 데이터를 읽고 읽은 데이터 크기를 처리 후 메모리에 올리고 write한 후에 다시 정해진 크기 만큼 읽는 방식인건가요??즉, 이것이 커넥션을 맺고 끊는 것 방식과 관련이 깊은 것인지 궁금합니다.)이상 cs적인 지식이 부족한 비전공자의 긴 질문을 읽어주셔서 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
파라미터 로깅 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Hibernate: drop table if exists memberHibernate: create table member ( id bigint not null auto_increment, username varchar(255), primary key (id) ) engine=InnoDBHibernate: insert into member (username) values (?)insert시에 id 값이 보이지 않는 이유가 무엇일까요 ㅠㅠ파라미터는 id, username 2개가 나와야 하는데 1개만 나와서 질문 드립니다.spring.jpa.properties.hibernate.show_sql=true spring.jpa.properties.hibernate.format_sql=true spring.jpa.properties.hibernate.type=trace p6spy도 똑같이 하나만 나오더라구요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
findById 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]왜 에러가 나는 걸 까요? 그리고강사님과 창이 다르게 뜨는데 어떻게 설정해야하나요?
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
namespace
혹시 namespace가 안보이면 해결방법이 있을까요?? 업데이트를 해도 안되고 sts 를 깔아보려고 해도 계속 오류가 나오네요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 오류 관련 질문 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 내용]오류 내용application.ymlMemberMemberRepositoryMemberRepositoryTestMysql 접속으로 변경ddl-auto: create@GeneratedValue위와 같은 조건으로 수행했는데 usermember_seq 테이블을 생성하지 못하고 존재 하지 않는 다는 오류가 발생합니다. 고민고민 하다 도저히 찾을수 없어 질문 드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강의에서 JpaRepository를 상속받는 방식은 사용하지 않으시는지 궁금합니다!
제가 배웠던 JPA는 Member를 예로 들면 public interface MemberRepository extends JpaRepository<Member, Long> 이런 식으로 JpaRepository를 상속받아서 쓰는 것이었는데, 영한님 강의 초반부 수강 중인데 이런 내용이 없더라구요..! 강의 뒷부분에 이런 내용이 나오나요? 아니면 이 방식은 사용하지 않으시나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Item, OrderItem 연관관계
안녕하세요 엔티티 연관관계에대해 공부하던 중 질문이 생겨 글 남깁니다!Order에서 주문이 들어가면 Item에있는 stockQueantity가 하나씩 줄어든다고 했는데 OrderItem->Item의 단방향 연관관계이면 Item에서는 어떤게 주문이 들어갔는지 어떻게 알고 하나씩 줄어드나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getName() 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]getName()이 왜 에러가 뜨는 것일까요?아무리 찾아봐도 모르겠어요...요
-
해결됨실전! 스프링 데이터 JPA
디펜던시 설명에서 아쉬운점이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 아니오[질문 내용]implementation, compileOnly, runtimeOnly 등 각각이 어떻게 작동하는지와 어떤 경우에 어떤 라이브러리를 어떤 방식으로 등록하는지에 대한 설명이 없는것 같아서 조금 아쉬운 마음입니다. 혹시 새로운 강의에서는 좀 더 디테일한 설명이 있었으면 좋겠다는 의견 드립니다. 감사합니다.