inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

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 조회수 261

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 조회수 218

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

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 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 조회수 370

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 조회수 305

테이블 생성

미해결

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

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

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

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 조회수 297

API gateway에서 user service 라우팅시에 회원가입, 로그인, 그외로 나누는 이유가 궁금합니다

미해결

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

routes: - id: user-service # 로그인 uri: lb://USER-SERVICE predicates: - Path=/user-service/login - Method=POST filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>,*), /$\{segment} - id: user-service # 회원가입 uri: lb://USER-SERVICE predicates: - Path=/user-service/users - Method=POST filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>,*), /$\{segment} - id: user-service # 그 외 uri: lb://USER-SERVICE # ???? ?? predicates: - Path=/user-service/** - Method=GET filters: - RemoveRequestHeader=Cookie - RewritePath=/user-service/(?<segment>,*), /$\{segment} /**로만 넘겨도 될거같은데 회원가입, 로그인, 그 외 기능을 나누는 이유가 따로 있을까요 ?

  • spring-boot
  • jpa
  • 아키텍처
  • spring-cloud
  • kafka
  • msa
  • rabbitmq
yjk9805 댓글 1 좋아요 0 조회수 376

OneToMany와 테이블 칼럼 관련 질문드립니다.

미해결

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

안녕하세요 @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); } 이렇게 엔티티를 JPA 매핑을 시키면 테이블이 자동으로 생성되면서 컬럼들을 생성해주는데 id, name ,address는 칼럼으로 생성되는데 @OneToMany 어노테이션이 붙은 필드는 왜 컬럼으로 생성이 되지 않는 것인지 궁금합니다!!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
s2사랑해요s2김영한s2 댓글 1 좋아요 0 조회수 157

RequestMatcherDelegatingAuthorizationManager 로 인가 설정 응용하기에서 질문이 있습니

미해결

스프링 시큐리티 완전 정복 [6.x 개정판]

안녕하세요. 선생님 SpringConfig에서 어떤 요청이든 인정 허용하려고 ".anyRequest().authenticated())"로 설정하셨는데 해당 강의에서는 ".anyRequest().access(authorizationManager(null)))"으로 해주셨는데 혹시 이유가 있을까요? CustomRequestMatcherDelegatingAuthorizationManager에서 introspector에 대한 return 값이 맞는 게 없어서 강제적으로 null로 처리하신건가요? 아니면 모든 요청을 인정 허용하니 introspector을 null로 해서 authorizationManager에 대한 모든 값 (null 포함)해서 허용한다는 의미인가요? 바쁘시겠지만 확인 부탁드립니다~

  • spring
  • spring-boot
  • spring-security
  • security
  • web-security
kljmi55 댓글 3 좋아요 0 조회수 353

애플리케이션 재시작시 테이블 정보 사라짐

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 애플리케이션 재시작시 db정보가 모두 사라지는데 이유가 뭘까요??

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
김철준 댓글 1 좋아요 0 조회수 194

혹시 코드 리뷰 신청해도 될까요...?

미해결

견고한 결제 시스템 구축

안녕하세요! 강의 너무 잘 봤고 강의에서 학습한 내용을 사이드 프로젝트에 적용했는데요! 뭔가... 찝찝하고... 리팩토링을 어떻게 해야할지 잘 모르겠어서요... 당연히 보수는 드릴 예정입니다! 고려해주시면 정말 감사하겠습니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
이채림 댓글 1 좋아요 0 조회수 349

@SpringBootTest 오류

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 에러를 다 찾아서 수정을 하였으나 마지막인 Test단계에서 계속 무시해버리네요 왜 그런건지 구글링을 해도 이해가 안됩니다. h2를 킨 상태에서도 이렇게 에러가 뜨는데 어떻게 해야할까요?

  • java
  • spring
  • mvc
  • spring-boot
형종 댓글 1 좋아요 0 조회수 1600

엔티티에는 validatin을 안하는 게 좋나요?

미해결

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

@Column(nullable = false) 이런 것들을 엔티티 클래스에 하는 것 대신에 dto나 도메인 레이어에서 검증을 하는 게 좋다는 말을 들었는데 엔티티내부에서 검증을 하는 것을 안해도 되는 건가요?

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

assaultThat의 동등성 비교 질문

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] findByName()의 테스트 부분을 보면 아무리 봐도 member1의 밸류값과 result의 밸류값이 "spring1"로 동일한데 테스트에 실패했다고 뜹니다 근데 한 가지 의문인 건 테스트 값 결과를 보면 동등성이 아닌 동일성 비교를 하는 거 같은데, MemoryMemberRepository의 store가 HashMap을 사용하기 때문에 equals()와 HashCode()를 재정의 해줘야 하는 걸까요? 강의 내용엔 따로 기재되지 않아 질문합니다!

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

jpa 자바 버전

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 제껏 스프링 버전이 3점대라서 자바 버전인 source를 쓰지를 못하고 toolchain만 가능 하더라고요 그래서 그런지 실행을 하려고 했으나 위에 경고문과 같이 18버전이상부터 실행을 할 수 있게 만들어 놓은것 같은데 이런 상황에서는 어떻게 처리해야 할까요?

  • java
  • spring
  • mvc
  • spring-boot
형종 댓글 2 좋아요 0 조회수 243

인텔리J 무료버전 Smart Tomcat 설정관련

미해결

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

해당 경로에 build폴더가 있는데 Deplyment directory에서 아래 사진과 같이 나오지가 않습니다.

  • spring
  • spring-boot
  • prometheus
  • grafana
김태훈 댓글 1 좋아요 1 조회수 1045

동의 후 인증 절차의 구현이 변경됐습니다.

미해결

스프링 시큐리티 OAuth2

Scope 동의단계2, 즉 최종사용자의 동의가 이루어졌을 경우 이 요청은 POST /oauth2/authorize 로 보내지는데요 이 과정에서 내부구현의 차이가 강의 버전과 맞지 않아서 코드를 확인해봤습니다. 1. 0.4.0 버전부터 이때 작동하는 AuthenticationConverter 는 OAuth2AuthorizationConsentAuthenticationConverter 입니다. 여기서 OAuth2AuthorizationConsentAuthenticationToken 가 구성됩니다. 2.OAuth2AuthorizationConsentAuthenticationToken 의 처리는 OAuth2AuthorizationConsentAuthenticationProvider 가 맡게 됩니다. 여기서 code 생성 절차가 진행되는 차이가 있습니다.

  • java
  • spring
  • spring-boot
  • oauth
땃쥐 댓글 1 좋아요 1 조회수 252

소스가 전혀 실행이 안됨

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

강의 1편때의 소스로도 실행이 안되서, 다시 2편 소스로 수행하면 에러메시지가 잔뜩 나오는데 너무 시작부터 불성실하게 시작하는거 아님? 지금 소스 받아서 환경을 맞춰주고 강의를 시작해야지 대뜸시작하면 실행도 안되는 소스로 뭐 어떡하라고.

  • java
  • spring
  • spring-boot
  • jpa
오진희 댓글 1 좋아요 -11 조회수 372

@Transactional 했는데 롤백 문구가 안 떠요

미해결

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

다음과 같이 코드를 실행하면 강의 화면처럼 "Rolled back transaction for test"가 나와야 하는데 그렇지 않고 H2에서도 컬럼만 있는 빈 테이블입니다. 뭐가 문제일까요? package jpabook.jpashop; import com.fasterxml.jackson.databind.deser.std.StdKeyDeserializer; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.annotation.Rollback; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; @RunWith(SpringRunner.class) @SpringBootTest public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional public void testMember() throws Exception { //given Member member = new Member(); member.setUsername("memeberA"); //when Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } }

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
sichelmond 댓글 5 좋아요 0 조회수 371

톰캣설정 인텔리J 무료버전 설정

미해결

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

윈도우에서 가이드데로 진행했는데 실행이 실패했습니다. bulid.gradle에는 아래와 같이 똑같이 코딩했습니다.

  • spring
  • spring-boot
  • prometheus
  • grafana
김태훈 댓글 1 좋아요 0 조회수 304

인기 태그

인프런 TOP Writers

주간 인기글