inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

findAll

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

테스트 끝나고나서 데이터를 클리어해주는 방법을 설명하시기 전에 findAll()함수에서 오류가 나타나야 하는데 전 왜.. 다 초록불이 뜰까요 package com.example.hello_spring.repository; import com.example.hello_spring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; import static org.assertj.core.api.Assertions.*; public class MemoryMemberRepositoryTest { MemberRepository repository = new MemoryMemberRepository(); @Test //실행할 수 있게함 public void save() { Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); //Assertions.assertEquals(result, member); // result와 member가 같은지 확인 assertThat(member).isEqualTo(result); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll(){ Member member1 = new Member(); member1.setName("spring"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); assertThat(result.size()).isEqualTo(2); } }

  • java
  • spring
  • mvc
  • spring-boot
muzi 댓글 1 좋아요 1 조회수 216

User Service - 프로젝트 생성 강의 듣고 있는데요.

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

User Service - 프로젝트 생성 강의 듣고 있는데요. 저는 yml에서 아래처럼 주었는데요. server: prot: 8761 http://localhost:8761/eureka/ 뜨다가 포트는 8080으로 시작한다는 메세지가 조회되는데요. 컴퓨터 내부에서 포트를 8761쓰다가 자동으로 8080으로 바꿨다는 얘기인가요? 2024-07-17T18:27:14.441+09:00 INFO 11100 --- [discover] [ main] c.n.eureka.cluster.PeerEurekaNodes : Adding new peer nodes [http://localhost:8761/eureka/] 2024-07-17T18:27:06.225+09:00 INFO 11100 --- [discover] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '' 2024-07-17T18:52:42.764+09:00 INFO 10484 --- [discover] [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 8080 2024-07-17T18:52:43.848+09:00 INFO 10484 --- [discover] [ main] c.e.d.DiscoveryApplication : Started DiscoveryApplication in 13.147 seconds (process running for 16.512)

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
zzzzz 댓글 2 좋아요 0 조회수 214

update 메서드의 매개변수 작성 스타일?

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

// a. public void update( String password, String nickname) { this.password = password; this.nickname = nickname; } // b. public void update(UpdateContent content) { this.password = content.getPassword; this.nickname = content.getNickname; } 안녕하세요 update 방식에 대해 궁금한점이 생겼는데, Member 엔터티 클래스 내부에 위와 같이 update 메서드를 둔다고 했을 때, 매개변수의 개수가 많다고 가정하면, 별도의 클래스를 만들어서 b.처럼 전송해주는 방식을 사용해도 괜찮을까요? 엔터티 클래스와 별도의 클래스가 결합?되는 느낌이라 찝찝한데, a.와 b.중 좀 더 정석적인 방식이 있는지 궁금합니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
ycllyo 댓글 2 좋아요 0 조회수 210

서버가 이중화 되었을때 MemberService.java join()과 관련된 질문

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] MemberService.jav a 내에서 join() 함수입니다. @Transactional public Long join(Member member) { validateDuplicateMember(member); //중복회원 검증 memberRepository.save(member); return member.getId(); } 이때 member를 저장하면 persist하게 되고, commit까지는 일어나지 않는다고 이해하고 있습니다. db에 저장이 되어 있지 않은 상태라면 이중화 시 각 was에 jpa persist된 값이 있을 것 같은데, validateDuplicateMember을 호출할 때 name 컬럼에 unique 제약조건을 줘서 저장이 안되게 한다고 하더라도. validateDuplicateMember는 통과가 되고, 아래 save에서 오류가 나게될 것 같은데요. 제가 생각하는 로직이 맞는지 궁금합니다. 맞다면 여기에 대한 코드 보완이 따로 필요할 것으로 보여서요. (강의 보완이 아니라, 제가 나중에 코딩할 때 보완을 하려고 합니다:) )

  • java
  • spring
  • spring-boot
  • jpa
  • 이중화
이사라 댓글 1 좋아요 0 조회수 162

영한님 좀 더 실무적인 메트릭 수집하는 방법과 운영환경이 궁금합니다

미해결

스프링 부트 - 핵심 원리와 활용

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 1. 멀티스레드에 안전하게 처리하기 위해 Atomic.. 을 사용하셨는데, 실무에서는 데이터베이스같은곳에서 정보를 받아와야 하는데, 프로메테우스에서 데이터베이스의 테이블을 접근중일때 READ가 발생할텐데, 현재 유저한테 서비스되는 클라이언트단에서 READ, WRITE가 발생할때 lock이 발생하는 경우는 없나요? 2. 1번 질문과 이어서.. 아래와 같은 곳에서 정보를 수집하는데 동시성/데드락/경합 문제가 발생하지는 않나요? 아래에서 정보를 가져올때는 어떻게 하는게 best practice인지 궁금합니다 - State DB(Mysql, postgresql, mongodb) - InMemory DB(Redis) - Kafka Topics 3. 현재는 설치형으로 강의를 진행해주셨는데, docker나 k8s 환경에서 수집을 한다면 같은 네트워크에도 묶여야되는 등 신경써야 할 부분이 많은 것 같은데요.. 베어메탈에서 wget 등으로 받아서 띄우는거 말고 컨테이너 환경에서는 어떻게 하는지 또 궁금합니다!

  • spring
  • spring-boot
  • prometheus
  • grafana
보키 댓글 2 좋아요 0 조회수 460

PageResponseDTO 오

미해결

코드로 배우는 React 19 with 스프링부트 API서버

TodoServiceImpl에서 PageResponseDTO<TodoDTO> getList 부분에서 오류가 발생합니다. PageResponseDTO 혹시 PageResponseDTO 에서 제가 놓친 부분이 있을까요??

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
hk.moon 댓글 1 좋아요 0 조회수 208

WebServer , WebApplicationServer, Server 관련 질문

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

Server = 하드웨어 = OS가 없는 PC 서버의 역할은 하드웨어 재원을 제공한다로 이해하고 있습니다. 웹서버는 80포트를 열어줌,도메인설정, 정적 컨텐츠 서빙, 로드밸런싱, SSL인증서 설치... 등등의 역할 WAS는 동적 콘텐츠 생성, HTTP 메서드 ,비지니스 로직 , 세션처리...등등의 역할 웹서버 , WAS 둘 다 Server 위에서 동작하는 소프트웨어로 서버는 하드웨어 재원을 제공하며 서버 위에서 돌아가는 소프트웨어인 웹서버,WAS는 위에 명시된 역할을 수행. 예를들어 Nginx , Tomcat 사용하고 있으면 실제로 서버가 2개 띄워져있어야 함 SpringBoot는 WAS로 톰켓을 내장 그럼 우리가 배포를 한다고 했을때 서버에 SpringBoot Application을 올리고 boot가 Tomcat을 내장하여 WAS로 사용하는 구조 간략히 말하면 "xx서버에는 SpringBoot 올라가있어" 라고 말할 수 있음 이렇게 정리를 하였는데 혹시 잘못 이해한 부분이 있을까요?

  • java
  • spring
  • mvc
  • spring-boot
masiljangajji 댓글 2 좋아요 0 조회수 142

함수선언과 화살표 함수

해결됨

코드로 배우는 React 19 with 스프링부트 API서버

안녕하세요 강사님 강의에서 react는 대부분 함수로 선언하지 않고, 화살표 함수를 선언해서 사용해주고 계시는데요, 함수가 아닌 화살표 함수를 사용하는 이유가 따로 있는지 궁금합니다. 함수를 사용하지 않는 이유가 있다면 그 이유도 설명해주시면 감사하겠습니다.

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
촉촉한 갈매기 댓글 1 좋아요 0 조회수 122

@PostMapping("/book")같은 걸 html에 연결하는 건 어떻게 하는 건가요

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

"book", "user"이런 거 연결하는 부분은 어떻게 하는 건지 항상 궁금했습니다ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
yuntyu01 댓글 1 좋아요 1 조회수 163

컴퓨터를 재시작 했더니 작동을 안 하네요

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

인텔리제이로 실행했을때도 서버내부 오류라 뜨고 aws로 구동했을 때도 그냥 서버 연결이 안 됩니다ㅠㅠ aws에 확인해보면 git,sql,java다 설치되어있었고 44강부터 차근차근 다시 해봐도 똑같네요 왜 그럴까요 ㅠㅠ

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
yuntyu01 댓글 1 좋아요 0 조회수 210

섹션 6 진행 도중 오류

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

강의자료를 기반으로 코드를 작성하여 왔는데, 실행하는 것에는 문제는 없으나, 회원 목록 조회 기능에서 whitelabel error page가 발생하였습니다. 어떻게 해야하나요? github 저장소: https://github.com/devcjw/Spring-Boot-Study

  • java
  • spring
  • mvc
  • spring-boot
devcjw 댓글 1 좋아요 0 조회수 158

enum 질문

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Order status 는 enum으로 만들었는데 이게 왜 그런건지 까먹었어요 스프링 기본에서 썼었던거 같은데…

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
tjdwlsdn2020 댓글 1 좋아요 0 조회수 205

jpa 강의 회원 기능 테스트에서 오류나서 진행이 안돼요ㅠㅠ

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

MemberServiceTest하는데 오류가 납니다.. 어떻게 해야할지 계속 찾아보는데 못하겠네요 다음은 오류 내용입니다. java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) at jdk.proxy3/jdk.proxy3.$Proxy135.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Suppressed: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:84) at jdk.proxy3/jdk.proxy3.$Proxy135.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:67) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:487) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:278) ... 2 more Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:50) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:27) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:22) at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:73) at org.mockito.Mockito.<clinit>(Mockito.java:1683) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) ... 2 more Caused by: java.lang.reflect.InvocationTargetException at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ... 15 more Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker. It appears as if your JDK does not supply a working agent attachment mechanism. Java : 21 JVM vendor name : Oracle Corporation JVM vendor version : 21.0.2+13-58 JVM name : OpenJDK 64-Bit Server VM JVM version : 21.0.2+13-58 JVM info : mixed mode, sharing OS name : Windows 10 OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ... 18 more Caused by: java.lang.IllegalArgumentException at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method) at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:280) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177) ... 19 more Caused by: [CIRCULAR REFERENCE: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker] Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:50) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:27) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:22) at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:73) at org.mockito.Mockito.<clinit>(Mockito.java:1683) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: java.lang.reflect.InvocationTargetException at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ... 15 more Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker. It appears as if your JDK does not supply a working agent attachment mechanism. Java : 21 JVM vendor name : Oracle Corporation JVM vendor version : 21.0.2+13-58 JVM name : OpenJDK 64-Bit Server VM JVM version : 21.0.2+13-58 JVM info : mixed mode, sharing OS name : Windows 10 OS version : 10.0 at app//org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) at app//org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ... 18 more Caused by: java.lang.IllegalArgumentException at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method) at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:280) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177) ... 19 more

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 419

한번만 도와주세

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

commit and push 하면 저는 자꾸 이게 뜨는데 구글링 해도 잘안되는데 혹시 방법이있을까요?

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
댓글 1 좋아요 0 조회수 135

application.properties파일내 프로퍼티 이름

해결됨

토비의 스프링 부트 - 이해와 원리

안녕하세요. 다시 스프링부트의 자동 구성으로 전환하는 강의에서 application.properties 에 server.~ 과 data.~ 로 정의했던 것들을 아래 코드와 같이 스프링의 자동구성에서 사용하는 프로터피 이름으로 변경하라고 하셨습니다. spring.servlet.context-path=/app spring.servlet.port=9090 spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem: spring.datasource.username=sa spring.datasource.password= 근데 위와같이 변경하지 않아도 아래 자동주입 및 @PostConstruct가 문제없이 동작되듯 실행이 잘 됩니다.. @SpringBootApplication public class HellobootApplication { JdbcTemplate jdbcTemplate; public HellobootApplication(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @PostConstruct void init() { jdbcTemplate.execute("create table if not exists hello(name varchar(50) primary key, count int)"); } public static void main(String[] args) { SpringApplication.run(HellobootApplication.class, args); } 직접만든 자동구성클래스를 삭제했으니 datasource나 JdbcTemplate또한 spring의 자동구성이 필요할텐데, 실행로그를 보면 기존 datasource정보를 읽어서 동작하더라구요. 왜 그런걸까요?

  • spring
  • spring-boot
  • spring-jdbc
hooni 댓글 1 좋아요 0 조회수 238

MemberForm을 받아오는 것과 Member에 바로 저장하는 것의 차이

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에서 답변을 보면, @PostMapping("/members/new") public String create(MemberForm form){ Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } 위와 같이 코드를 작성하면, "members/new"로 POST 메소드가 호출되었을 때, 스프링이 create() 메서드를 실행하기 위해 MemberForm 객체를 만들어야 하고, setter를 불러와서 멤버변수에 파라미터를 주입한다고 이해했습니다. 그런데, 한가지 의문이 들었습니다. MemberForm에 name을 저장하고, 그 값을 다시 Member 객체에 저장할거면, 한번에 Member에 저장하면 안되나? Member에도 멤버변수로 name이 있고, setter도 있으니, 안될 건 없다고 생각했습니다. 그래서 아래와같이 코드를 작성했습니다. @PostMapping("/members/new") public String create(Member member){ memberService.join(member); return "redirect:/"; } 이렇게 작성하고 회원가입, 회원목록 기능을 모두 수행해본 결과, 똑같이 잘 작동했습니다. 혹시 강사님께서 굳이굳이 MemberForm을 거쳐서 Member 객체를 만드신 이유가 있나요? 어떤 성능상의 이점이 있는 건가요? 아님 두번째 방법이 위험한 방법이라서 그런건가요? 왜 그런건가요?

  • java
  • spring
  • mvc
  • spring-boot
raewoo0908 댓글 1 좋아요 0 조회수 207

회원가입 테스트에서 중복회원 에러가 뜨지 않고 통과됩니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] MemberServiceIntegration 클래스서 회원가입 test를 실행시켰을 때, '이미 존재하는 회원입니다.'라는 에러가 뜨지 않고 "A Java agent has been loaded dynamically" 이런 경고만 뜨면서 test가 실행됩니다. 버전 업그레이드 문제일까요?

  • java
  • spring
  • mvc
  • spring-boot
dddkh 댓글 2 좋아요 0 조회수 363

MyDataSourcePropertiesV1 스프링 빈으로 등록

미해결

스프링 부트 - 핵심 원리와 활용

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 좋은 강의 잘 듣고 있습니다!! 이번 강의를 들으면서 @EnableConfigurationProperties(MyDataSourcePropertiesV1.class)를 통해 MyDataSourcePropertiesV1.class 클래스를 스프링 빈으로 등록해야지 외부 설정을 읽어서 해당 클래스에 바인딩하고 Config에서는 그걸 주입 받아 DataSource에 주입하는 걸로 이해를 했습니다. 여기서 저는 단순히 스프링 빈으로 등록하는 거라면 @Import를 사용하거나 MyDataSourcePropertiesV1.class에 @Component를 붙여서 컴포넌트 스캔 대상이 되도록 하는 등의 방법으로 해도 잘 동작하는게 아닐까? 라는 생각에 2가지 다 사용해서 테스트를 진행했는데 별문제가 없었습니다. 분명히 @EnableConfigurationProperties을 만든 이유가 있을듯한데 저의 짧은 지식으로는 잘 모르겠습니다. @ConfigurationPropertiesScan은 @ConfigurationProperties가 붙은 클래스를 마치 컴포넌트 스캔과 같이 간편하게 스프링 빈으로 등록할 수 있다는 장점이 보이지만 @EnableConfigurationProperties 이 친구는 정말 모르겠습니다

  • spring
  • spring-boot
  • prometheus
  • grafana
bae jewoo 댓글 1 좋아요 1 조회수 296

테이블 생성

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

엔티티를 만들면 엔티티의 형식에 맞게 테이블이 생성이 되던데 테이블 생성하는 sql을 직접 작성한 후 엔티티 코드를 작성하는 이유가 무엇인가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
박도현 댓글 1 좋아요 1 조회수 148

kafka 관련해서 궁금한 점이 있습니다..

해결됨

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요. 현재 강의 너무 재밌게 듣고있습니다. 아무래도 제가 카프카에 대해 잘 모르다보니 감이 없어 이해도가 낮습니다. 조금 부족한 질문이라도 이해 부탁드립니다. ㅠㅠ 현재 강의에서 프로젝트에서 생성한 구조는 kafka source connector가 없이 kafka sink connector만 만들고 직접 kafka topic에 저장하고 이를 동기화시키는 방식이라고 이해했습니다. 혹시 제가 이해한 구조가 맞을까요? 혹시 현업에서도 source connector가 굳이 필요 없다면 위와 같은 구조로 사용해도 상관 없을까요? 현재 MSA 관련 프로젝트를 준비하고있으며. DB를 서비스별로 어떻게 분리해야할지 굉장히 고민하고 있습니다. 만약 배포되는 모든 서비스가 각자 다른 db를 가지고 있는 방식으로 구성해야한다면, 동일한 도메인 내에 있는 서비스는 db를 동기화를 시켜주는 작업이 필요할 것 같은데요. 제가 테스트해본 결과 source connector쪽 db에 데이터를 삽입했을 때는 sink connector쪽 db에도 데이터가 똑같이 삽입되지만, source connector쪽 db 데이터를 삭제하거나 수정하는 경우는 반영이 안되는 것을 확인했습니다. 혹시 이런 상황에서 참고할만한 키워드나 문서가 있을까요? ㅠㅠ

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
박정선 댓글 1 좋아요 0 조회수 290

인기 태그

인프런 TOP Writers

주간 인기글