묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
같은 계층에서의 의존성 관리 질문
안녕하세요 Toby!먼저 좋은 강의 올려주셔서 감사 말씀 드립니다.열심히 강의를 듣던 와중에 궁금한 점이 있어서 질문드립니다. 회원 애플리케이션 기능 추가 강의에서 보면,MemberModifyService 클래스에서 MemberFinder 빈을 주입받아 사용하도록 구현해주셨습니다. 관련해서 같은 application 계층에서 서로 DI 받는 구조로 구성하게 될 경우, 발생하는 순환 참조와 같은 문제점들에 대해서는 어떻게 관리하는게 좋을까요? 그리고 그런 문제점이 발생하지 않도록 예방하기 위해서는 어떤 방법이 있을까요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
welcome-page
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]보통 tomcat을 사용하면 web.xml에 welcome-page 관련한 설정을 하는 것으로 알고 있는데, 스프링부트 내장 톰캣 또한 자동으로 welcome-page가 /webapp/index.html으로 설정이 되어 있어서 index.html이 렌더링 되는지 아니면 다른 곳에 welcome-page가 설정되어 있는지 궁금하여 문의드립니다.
-
미해결스프링 핵심 원리 - 기본편
application.properties 수정을 해줘도 에러가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]에러메시지와 AutoAppConfig, AppConfig를 보여드릴게요 ***************************APPLICATION FAILED TO START***************************Description:Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined by method 'memberRepository' in class path resource [hello/core/AutoAppConfig.class] - memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class]This may be due to missing parameter name informationAction:Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumedEnsure that your compiler is configured to use the '-parameters' flag.You may need to update both your build tool settings as well as your IDE.(See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x#parameter-name-retention) package hello.core; import hello.core.member.MemberRepository; import hello.core.member.MemoryMemberRepository; import org.springframework.context.annotation.*; @Configuration//설정정보니까 @ComponentScan//스프링빈을 쫙 긁어 가지고 자동으로 스프링 빈으로 끌어올려야 된다. ( basePackages = "hello.core.member",//이 위치에서부터 찾아서 들어가는 것 이렇게 해갖고 멤버부터 컴포넌트 스캔 대상이 된다 basePackageClasses = AutoAppConfig.class,//지정한 클래스의 패키지를 탐색 시작 위치로 지정한다. 지정 안하면 디폴트 excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) )//컴포넌트 스캔을 사용하면 @Configuration 이 붙은 설정 정보도 자동으로 등록되기 때문에, AppConfig, TestConfig 등 앞서 만들어두었던 설정 정보도 함께 등록되고, 실행되어 버린다. 그래서 excludeFilters를 이용해서 설정정보는 컴포넌트 스캔 대상에서 제외했다. public class AutoAppConfig {//테스트 결과 memberService2, memoryMemberRepository 이두가지만 입력 됨 @Bean(name= "memoryMemberRepository") //@Primary //한 빈을 기본적으로 사용하고 싶다면 그 빈에 @Primary 어노테이션을 추가하세요. public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } }// 설정 정보 클래스의 위치를 프로젝트 최상단에 두는 것, 프로젝트 시작루트에 두는게 좋음, componentScane->스프링 빈 자동 등록 SpringBootApplication ctrl+클릭해보면 알수 있다. //컴포넌트 스캔 기본 대상 컨트롤러, 서비스, 리포지터리, 컨피규레이션 다 스프링 빈 등록 어노테이션 상속이나, 연동되는 기능없다.package hello.core; import hello.core.discount.DiscountPolicy; import hello.core.discount.RateDiscountPolicy; import hello.core.member.MemberRepository; import hello.core.member.MemberService; import hello.core.member.MemberServiceImpl; import hello.core.member.MemoryMemberRepository; import hello.core.order.OrderService; import hello.core.order.OrderServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; @Configuration //안붙여도 스프링 컨테이너에 스프링 빈로 다 등록됩니다 애를 빼고 테스트시 순수한 앱구성이 출력됨 근데 이렇게 되면 다른 싱글톤이 깨짐 출력이 5개 전체 출력됨 public class AppConfig { //@Bean memberService -> new MemoryMemberRepository() //@Bean orderService -> new MemoryMemberRepository() 이렇게 하면 싱글톤이 깨지지 않을까요?? //이 골뱅이 빈이면 컨텐츠 앱이 들어와요 //call AppConfig.memberService //call AppConfig.memberRepository //call AppConfig.memberRepository //call AppConfig.orderService //call AppConfig.memberRepository //실제 테스트 돌려보니 //call AppConfig.memberService //call AppConfig.memberRepository -> 이게 세번호출되어야 하는데 한번만 호출 된 신기한 상황 스프링이 정말 어떠한 방법을 써서라도 싱글톤을 보장해 주는구나 라는 걸 아실 수 있음 //call AppConfig.orderService //appconfig에 비밀이 있다. //이 골뱅이 빈이 붙은 메서드마다 이미 스프링빈이 존재하면 존재하는 빈을 //반환하고 스프링빈이 없으면 새로 생성해서 스프링빈으로 등록해서 반환하는 코드가 동적으로 //만들어지는 거예요 이덕분에 싱글톤이 보장되는거에요 없으면 스프링빈등록, 있으면 기존에 꺼내서 반환 그렇기 때문에 세번 호출되는게 아니라 한번만 호출 이미 등록이 되있어서 // @Autowired MemberRepository memberRepository;//이렇게하면 Configuration 없애도 해결이됨 의존관계 주입 그러면 스프링에서 다시 끌어온 거를 집어넣어 주는 거거든요 @Bean public MemberService memberService(){// 멤버서비스가 빈의 이름 System.out.println("call AppConfig.memberService");//soutm return new MemberServiceImpl(memberRepository());// ctrl+alt+m 리턴해서 new해서 반환하는 요 객체를 빈 객체로 등록해준다. 요거를 스프링 빈이라고 한다. }// 빈 이름은 항상 다른 이름을 부여 @Bean public MemberRepository memberRepository() { System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public OrderService orderService() { System.out.println("call AppConfig.orderService"); return new OrderServiceImpl(memberRepository(),discountPolicy());//이렇게 주입된걸 넣어주면 테스트 통과됨, 주소값도 같음 } @Bean public DiscountPolicy discountPolicy() { //return new FixDiscountPolicy();// 할인 정책에대한 객체를 바꾼다. return new RateDiscountPolicy(); } }
-
미해결스프링 핵심 원리 - 기본편
applcation.properties 수정해도 에러가 납니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found: - memoryMemberRepository: defined by method 'memberRepository' in class path resource [hello/core/AutoAppConfig.class] - memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class]This may be due to missing parameter name information이런 에러메시지가 뜨고.. AutoAppConfig 클래스 @Bean(name= "memoryMemberRepository") MemberRepository memberRepository(){ return new MemoryMemberRepository(); } 그리고 AppConfig 클래스 @Bean public MemberRepository memberRepository() { System.out.println("call AppConfig.memberRepository"); return new MemoryMemberRepository(); }이렇게 두 메서드 이름이 같아서 생기는 거 같은데 원래 여기 까지 들을때 다른 이름으로 수정 되어있어야 하나요?
-
미해결스프링부트 시큐리티 & JWT 강의
JWT를 구현한 다음 이 API를 호출해서 사용하는 것은 프론트엔드 쪽에서 하는 역할인가요?
안녕하세요. 현재 강의를 통해 JWT를 구현하여 전체적인 개념을 익힌 백엔드 개발 취준생입니다. 배운것을 저의 웹 프로젝트에 적용하려고 했지만 이 api를 호출해서 하는 것은 자바스크립트를 사용해서 하는 것이 있길래 백엔드 개발자라면 어디까지 구현해야할지가 참 어려운 것 같습니다. RestController로 API 개발까지는 수업을 통해 구현할 수 있지만 나머지를 웹에 적용하는 것은 어려운 것 같습니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
프로젝트 오픈 에러
제공된 소스 폴더 itemservice-db-start 를 itemservice-db로 변경 후 openProject 하였더니 다음과 같은 빌드 에러가 납니다..질문 답변 봐도 별 내용 없는거로 보아 저만 이런거같은데 어떻게 해결하나요
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
콘솔창 한글 깨짐 해결법
[상황]분명 다른 강의들에선 한글 잘 나왔는데 왜 갑자기 한글이 깨질까? 달라진 점을 생각해보니 gradle로 설정을 바꾼 후로 깨진 것 같았음실제로 IntelliJ IDEA로 바꾸니까 한글 출력 잘됨.[이유]IntelliJ는 실행할 때 JVM 인코딩을 UTF-8로 설정해주지만, Gradle은 인코딩을 시스템 기본값에 맡기기 때문이라고 함 -gpt-[해결 방법]제어판 - 국가 또는 지역 - 관리자 옵션 - 시스템 로캘 변경 - Beta 체크박스 체크 후 재부팅다들 이것부터 해보시길
-
미해결스프링 핵심 원리 - 기본편
main 패키지와 test 패키지의 컴포넌트 스캔 범위
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] @Test void findAllBean() { ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class); // 생략... } @Component static class DiscountService { // 생략 }DiscountService.class를 new AnnotationConfigApplicationContext()의 인자로 대입하는 대신에, 클래스에 @Componant를 붙였는데 정상적으로 테스트가 통과됐어요.제가 알기로는 AutoAppConfig는 main 패키지에 속하며, DiscountService는 test 패키지에 속하니깐 DiscountService는 컴포넌트 스캔의 대상이 아니지 않나요? 그런데 어째서 정상적으로 의존관계 주입이 된 건가요?
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
DB 설정 문제
안녕하세요 프로젝트 초기 설정을 토비님 강의 진행대로 따라하고 있는 중입니다.제가 docker 는 잘 몰라서 강의 자료에 있는 Rancher Desktop 을 그냥 설치했구요서버 구동하기 전에 먼저 켜고 토비님 강의 순서 대로 진행했습니다 compose.yaml 의 내용을 수정하기 전에는 오류없이 잘 되는데 토비님이 작성하신 대로 수정을 해서 서버를 구동하면 계속 오류가 발생하고 있습니다 제 디비에 문제가 있나 싶어서 mysql를 완전 삭제하고 재설치 까지 해서 다시 해봐도 이전과 계속 같은 오류가 발생하는데 ai 를 통해서 해결해보려고 해도 해결을 못하고 있습니다 혹시 확인해보시고 알려주셨으면 합니다
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실행시 콘솔? 계속 돌아가요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]실행하게 되면 8080과 /hello같은 곳에 접속은 잘 되는데 영한님 화면과 다르게 이 실행창의 톱니바퀴가 계속 돌아가고, 밑에 ServletApplication.main()의 빌드가 되고있는 듯이 보이고, 실행 종료시에는이렇게 뜹니다.메세지:* 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 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.14.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 4m 10s3 actionable tasks: 2 executed, 1 up-to-date
-
미해결스프링 핵심 원리 - 기본편
강의 순서 문의(자주 묻는 질문 완독 완료)
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 김영한 강사님.마지막 수업 "65. 다음으로" 강의에서 스프링 입문, 스프링 핵심 원리 기본편 수강 후 스프링부트 JPA 로드맵을 진행해도 된다고 말씀해주셨었는데요. 이 말씀이 지금 2025년 7월 기준에도 적절한지 여쭙고자 질문 드립니다. 지금 현재 학습을 해야하는 상황은 아래와 같습니다. 스프링 데이터 JPA와 QueryDsl 을 사용하는 프로젝트에 8월 초 투입이 될 예정영한 선생님 로드맵 중 스프링 관련 학습은 입문편과 핵심 원리 기본편 까지 학습함이전에 Spring + Mybatis로 개발경험이 있어서 1번 기술 스택을 우선적으로 추가해야 할 필요를 느낌 자주 하는 질문에 작성되어있는 백엔드 개발자 로드맵 유튜브 영상은 확인했습니다. 해당 로드맵은 핵심 원리 고급편 전 까지 듣고 JPA 로드맵을 청강 후 남은 고급편 등을 청강하는 것으로 알고있는데요. 이 로드맵을 8월 초까지 다 듣기는 현실적으로 어렵다보니, 스프링부트 JPA를 먼저 장착해도 되는지 궁금합니다. 좋은 강의 늘 감사드리며 질문 마칩니다.감사합니다 :D
-
미해결스프링 핵심 원리 - 고급편
ThreadLocal 사용시 부작용이 있을수 있을까요? (ThreadLocal.remove()를 잘한다고 해도..)
안녕하세요ThreadLocal 에 관련된 질문입니다.------- 가정 -------Component A가 ThreadLocal을 사용합니다. ( myThreadLocal = ThreadLocal<Long>)Component B가 ThreadLocal을 사용합니다. ( otherThreadLocal = ThreadLocal<Long>)질문1. JVM 내부에는 2개의 ThreadLocal 객체가 생성되는게 맞을까요?2. 그러면 톰켓에서 시동시 만드는 스레드풀에 있는 200개 스레드 모두에 말씀하신 "스레드 내부의 저장소" (ThreadLocalMap with 2개의 key)가 생성이 될 것 같은데 맞을까요?3. 만약 2번이 맞다면, 코드 이런 저런곳에서 LocalThread를 사용하게 되면 3.1 시동시에 좀 더 오래걸릴것 같은데, 혹시 시동시 부하가 걸리는가 3.2 시동시 부하가 걸리지 않는다고 해도, 부작용이 있을수 있는가?4. ProtoType의 Bean을 동적으로 만들고 그 Bean이 내부에서 ThreadLocal을 사용한다면 다른 Thread의 저장소(ThreadLocalMap)에서는 그 ThreadLocal의 저장공간이 없을것 같은데 맞을까요?감사합니다.
-
해결됨Practical Testing: 실용적인 테스트 가이드
고전파의 테스트 대역 사용 대상, 공유 의존성
안녕하세요복습을 진행하면서 단위 테스트(블라디미르 코리코프)를 같이 공부하는데, gpt와 씨름해 보아도 모르겠어서 질문 드립니다 ㅠㅠ책에 따르면 고전파의 테스트 대역 사용 대상은 공유 의존성으로 유일하고, 이것의 예로 데이터베이스를 들고 있는데요.우빈님의 강의에 따르면 이것은 고전파의 방식과는 거리가 멀어 보여서 혼란이 옵니다테스트 대역을 쓰고 싶다면, 공유 의존성(데이터베이스)은 가능하다라는 뜻 인걸까요?만약 그렇다면, 고전파가 테스트 대역 사용에 엄격한 방식이라고 이해했었는데, 데이터베이스를 유일한 모킹 가능성 영역이라고 보는 것이 납득하기 어렵습니다강의에서 가르쳐주신 것처럼 외부 서비스(메일)을 모킹 처리 하는 것이 더 나은 방식, 혹은 고전파 다운 방식이라고 생각되어서 혼란스럽습니다..
-
미해결Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
빌드 문제
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 1) 여기만 3.3.0(또는 3.2.5 등)으로 변경 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>3.3.0</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>demo</artifactId> <version>0.0.1-SNAPSHOT</version> <name>demo</name> <description>demo</description> <properties> <java.version>21</java.version> <lombok.version>1.18.36</lombok.version> </properties> <dependencies> <!-- Spring Boot Starters --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> <!-- 기타 의존성 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>6.0.3</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency> <dependency> <groupId>com.mysql</groupId> <artifactId>mysql-connector-j</artifactId> <scope>runtime</scope> </dependency> <!-- Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> <scope>provided</scope> </dependency> <!-- Jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> </dependency> <dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> <version>2.14.1</version> </dependency> <!-- Springdoc --> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId> <version>2.0.2</version> </dependency> <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.6.14</version> </dependency> <!-- Test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <!-- (선택) JDK 툴체인 강제 설정 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-toolchains-plugin</artifactId> <version>3.1.0</version> <executions> <execution> <goals> <goal>toolchain</goal> </goals> </execution> </executions> <configuration> <toolchains> <jdk> <version>${java.version}</version> </jdk> </toolchains> </configuration> </plugin> <!-- 자바 21 + Lombok 어노테이션 프로세서 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <release>${java.version}</release> <annotationProcessorPaths> <path> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>${lombok.version}</version> </path> </annotationProcessorPaths> <fork>true</fork> </configuration> </plugin> <!-- Spring Boot Maven Plugin: Lombok 제외 유지 --> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <exclude> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build> </project>
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
시작하려는데 계속 오류가 발생합니다.
Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "drop table if exists [*]user cascade "; expected "identifier"; SQL statement:버전도 맞췄는데 뭐가 문제일까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 JdbcTemplate에서 H2에 테이블이 없다는 오류 발생
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]
-
미해결[1.5탄] 옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
섹션 5 의 18 대췅
커리큘럼 섹션 5 의 강의 18제목에 대췅 이라고... 의도 하신 거라면 괜찮습니다 ㅎㅎㅎ 혹시나 해서 알려 드려요.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO 대신 Form 사용은 안되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용]회원 등록 api 에서 아래 코드 처럼 saveMemberV1 메서드의 반환값은 new CreateMemberResponse(id)입니다. @PostMapping("/api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member){ Long id = memberService.join(member); return new CreateMemberResponse(id); } 근데 MemberForm.java 에 id를 추가하고 이걸로 리턴받으면 안되나요?왜 굳이 DTO 를 만들어서 리턴하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실무에서 테스트 케이스 작성 시
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 강의 수강 잘 하던 도중 질문이 생겨 여쭤봅니다. 강의에서는 Service 계층에서만 테스트를 하고 있고 Repository 계층에서는 따로 진행하지 않고 있습니다.실무에서도 어차피 Service 계층이 Repository 계층을 당겨서 사용하는 것이기에 Service 계층에 대해서만 테스트 케이스를 작성하면 충분할까요 ?그리고 강의에서 Member의 Name을 unique로 잡으라고 말씀하시고 있는데, 실무에서는 id로 검증하는 것이 올바른 방법이겠죠 ?
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
Spring Cloud 버전 관리 문제
자바 21, 스프링 부트 3.4.5로 하는데dependencyManagement { imports { mavenBom "org.springframework.cloud:spring-cloud-dependencies:2024.0.1" } }이 부분이 에러가 나는거 같아요Execution failed for task ':dependencies'.> Could not resolve all artifacts for configuration ':detachedConfiguration3'. > Cannot resolve external dependency org.springframework.boot:spring-boot-dependencies:3.4.5 because no repositories are defined. Required by: root project :Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html빌드가 안되네요 ㅠㅠ