묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Member Item id 차이
MemberService에서는 member.getId를 해서 id값을 가져와서 확인하는데ItemRepository에서는 item.getId가 null입니다memberService 는 memberRepository에서 저장되고 db에 있는 id를 가져오는게 아니지 않나요?
-
미해결실전! 스프링 데이터 JPA
application.yml에서 format_sql 적용이 안됩니다.
안녕하세요! 강의 수강 중 궁금한 부분이 있어 질문 남깁니다.테스트 코드 실행 시 콘솔 창의 쿼리가 여러 줄로 format된 형태가 아닌 한 줄로 나옵니다.application.yml 에서 hibernate.format_sql: true를 추가했는데도 적용이 안 되는데 이유를 잘 모르겠습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
터미널에 test.mv.db가 home 없어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]터미널에 test.mv.db가 home 없어요 그래서 찾아보니 document 에있는데 test.mv.db 파일을 home 으로 옮겨야한나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Domain별 패키지 분리에 대한 문의
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요.항상 좋은 강의 감사드립니다.현업에서 업무를 하다보면 package를 도메인별로 분리하고 도메인에 controller, repository, service, entity, dta, dao등 패키지를 구분하고 있습니다.이는 하나의 모든 controller, repository에 담게 되면 유지보수성이 떨어지기 때문인데요.강의에 강사님께서 하나의 패키지에 넣으셔서 질문을 드립니다.MSA구조로 작게 분리한다고 해도 유지보수가 용의하기 위해서는 패키지를 분리하는게 좋다고 생각되는데요.DTA를 controller에 넣는다던지 entity를 모두 하나에 넣고 있어서...현업에서도 이렇게 쓰는게 더 좋은건지,,,아니면 강의에서만 분리하지 않는 것인지 궁금합니다.혹, 강의에서만 분리하지 않는 구조라면sample로 효율적인 패키지 구성을 제공해 주실 수 있나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
선수지식 관련 질문입니다.
안녕하세요. 혹시 학습하기 전에 JAVA를 어느정도 학습을 해야 무리없이 수업을 따라갈 수 있는지 알고싶습니다. JSP부분도 필요할까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
반환타입을 Member로 한것은
public Member save(Member member)부분인데요, 반환타입을 Member로 준것이 domain의 멤버가 맞나요?그리고 이 Member안의 정보(아이디,이름)을 한번에 가져오기 위해서 반환타입을 Member로 준게 맞을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberForm 대신에 domain 내 Member가 있는데 이것을 사용하면 안되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]위 질문에 대해 김영한님이 옛날에 답해주신 내용이,create(Member member)처럼 사용이 가능은 하나, 다양한 정보를 필요로 하는 경우가 있어 MemberForm 클래스를 따로 만드는 게 낫다는 말씀이었습니다. 여기서 궁금한 점이,MemberForm 클래스가 controller 패키지에 있어도 되는건가요?, 매핑 시 스프링 컨테이너에서 controller 를 찾는다고 하던데 이 뜻이 @Controller가 붙은 클래스를 찾는다는 의미인거지 Controller 패키지를 조사한다는 의미는 아닌거죠?그래서 MemberForm도 controller 패키지 내부에 있을 수 있는거고.. 제가 이해한게 맞나요? 1번 질문과 유사한 질문입니다만,Mapping 시 @Controller 가 붙은 클래스를 전부 조사하여 해당 주소에 Maaping된 메서드가 있으면 호출하는 방식이면 클래스명은 따로 @Controller 조사할때 상관은 없는거죠?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]이렇게 실패라고 뜨는데 어떤부분이 잘못되어서 그런건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
findName 질문
이름으로 조회해서 findName을 하면 한명만 조회되지 않나요??리스트로 받는 이유가 궁금합니다
-
미해결스프링 시큐리티
csrf 토큰 질문드립니다
13강에서 한가지 여쭤볼게있어서 문의드립니다. csrf토큰값이 임의의 UUID형태의 문자열인데강의에서 헤더에 직접 추가하여 서버에 재요청하여통과하는것을 보여주셨는데요 재요청할때에는 이전 요청에서 디버깅으로 확인한 토큰을 이용하여재요청을 하였는데요.따라서, 토큰의 값이 안바뀌엇다고 생각이드는데왜 안바뀐거죠? 이부분에 대해서 문의드립니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 설치
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]현재 자바, spring 강의를 다른 곳에서 수강을 하다 이해가 가지 않아 따로 김영한 강사님의 강의를 듣게 되었습니다. 현재 컴퓨터에 설치되어 있는 spring은 maven project이고, 버전도 다른데 그냥 계속 진행해야할지, Gradle project와 2.3.1 버전으로 다시 설치하면 각각 다른 버전으로 사용할 수 있는 건지 궁금합니다. 또 인텔리제이에서 사용하는 버전 따로, 이클립스에서 사용하는 버전 따로 할 수 있는지 궁금합니다. 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강사님과 똑같이 진행하는데 이렇게 작성했을때 강사님과 다르게 import가 생성되지 않는데 어떤게 문제인건가요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd gradlew 빌드 오류
오류 문구는 아래와 같습니다. FAILURE: Build failed with an exception.* What went wrong:A problem occurred configuring root project 'hello-spring'.> Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.4. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.0.4 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.4 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.4 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.4 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')* 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 확인 부탁드립니다.
-
미해결실전! 스프링부트 상품-주문 API 개발로 알아보는 TDD
코드 스타일에 대해서 질문드립니다.
변수들에 final 키워드를 붙이시는 이유class를 만들때 접근지정자 public 을 지우시는 이유메서드를 static 으로 생성하는 이유위의 점들이 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
H2 실행 반응없음 윈도우
안녕하세요처음 강의를 들을 때 h2 데이터베이스를 설치하여 진행하였을 때는 잘 진행되었는데,강의를 다시 들으며 h2를 실행시켜보니 갑자기 실행이 되지 않습니다.환경변수는 잘 설정되어있고명령 프롬프트로 질문들 검색해서 나온 모든 해결방법을 실행해보았는데, 반응이 없고h2 console 바로가기를 클릭해도 반응이 없습니다...백신관련은 제거했습니다.14.200 말고 최근버젼으로도 도전해봤습니다.어떻게 해야 해결될까요?ㅠㅠ https://www.inflearn.com/questions/543652/%EC%9C%88%EB%8F%84%EC%9A%B0-h2-console-bat-%EC%8B%A4%ED%96%89-%EC%95%88%EB%90%A8-%ED%95%B4%EA%B2%B0%ED%95%A8*이 방법도 시도해봣으나 안됩니다 C:\tools\h2\bin>/"h2.bat"'/"h2.bat"'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는배치 파일이 아닙니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
서버 관련해서 질문이 있는데요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.데이터를 생성후 에 서버를 내렸다가 다시 서버를 켜면 데이터 가 그대로 남아있나요?
-
미해결스프링 시큐리티 OAuth2
subject type을 pairwise 변경 문의
subject_type을 pairwise로 변경 하려고 Spring Authorization Server 공식 문서(현재 1.0.1)와 소스(1.0.1과 강의에 사용된 0.31) 소스를 봐도 subject_type 를 변경하는 API는 찿지 못했는데 Spring Authorization Server 에서는 지원하지 않는 걸까요?https://docs.spring.io/spring-authorization-server/docs/current/reference/html/core-model-components.html#oauth2-token-customizer문서를 참조하여 acesss token 과 id token 의 cliams 정보를 커스터마이징한 소스에서 pairwise 유형으로 설정하고 providerConfigurationEndpoint을 커스텀 하여 openid-configuration discovery metadata 의 정보를 변경하면 될까요?@Bean public OAuth2TokenGenerator<?> tokenGenerator(JWKSource<SecurityContext> jwkSource) { JwtEncoder jwtEncoder = new NimbusJwtEncoder(jwkSource); JwtGenerator jwtGenerator = new JwtGenerator(jwtEncoder); jwtGenerator.setJwtCustomizer(jwtCustomizer()); OAuth2AccessTokenGenerator accessTokenGenerator = new OAuth2AccessTokenGenerator(); OAuth2RefreshTokenGenerator refreshTokenGenerator = new OAuth2RefreshTokenGenerator(); return new DelegatingOAuth2TokenGenerator( jwtGenerator, accessTokenGenerator, refreshTokenGenerator); } @Bean public OAuth2TokenCustomizer<JwtEncodingContext> jwtCustomizer() { return context -> {; JwtClaimsSet.Builder claims = context.getClaims(); OidcUserResponseDto user = (OidcUserResponseDto)context.getPrincipal().getPrincipal(); claims.subject(user.getEmpId()); claims.claim("dept_id", user.getDeptId()); claims.claim("locale", user.getLocale()); }; } ......... authorizationServerConfigurer.tokenGenerator(tokenGenerator); 참고 현재 설정된 openid-configuration의 subject_types_supported 정보
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceIntegrationTest 실행 오류 (join함수)
스프링 DB접근기술 섹션에 JPA 파트를 듣고 있는데 MemberServiceIntegrationTest.java 파일에서 join함수를 실행했는데 아래와 같은 오류가 발생하여 질문올립니다.Spring Boot : 2.7.9Java : 11application.propertiesspring.datasource.url= jdbc:h2:tcp://localhost/D:\\workspace\\study\\test spring.datasource.driver-class-name=org.h2.Driver spring.datasource.username=sa spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=none spring.hellomyspring.domain.Memberpackage spring.hellomyspring.domain; import javax.persistence.*; @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } spring.hellomyspring.controller.Memberpackage spring.hellomyspring.controller; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } spring.hellomyspring.repository.JpaMemberRepositorypackage spring.hellomyspring.repository; import spring.hellomyspring.controller.Member; import javax.persistence.EntityManager; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository{ private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } @Override public Member save(Member member) { em.persist(member); return member; } @Override public Optional<Member> findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } @Override public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } @Override public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class).getResultList(); } } spring.hellomyspring.service.MemberServicepackage spring.hellomyspring.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import spring.hellomyspring.controller.Member; import spring.hellomyspring.repository.MemberRepository; import spring.hellomyspring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; @Transactional public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } public Long join(Member member){ // 같은 이름 중복 회원 x validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } // 전체회원 조회 public List<Member> findMembers() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
어디에 있나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]수업들으면 똑같이 따라하려 하는데 강사님께서 보는 화면의 이런 부분들은 어디에 나와 있는지 알수있을까요?? 사소산 질문이라 죄송합니다
-
미해결스프링 부트 - 핵심 원리와 활용
직접 만든 라이브러리의 경우 어떻게 배포 되는건가요?
[질문 내용]실무 경험이 없어 제 질문이 적절한지도 잘 모르겠습니다 ㅠㅠ제가 개인 프로젝트를 할땐 항상 코드만 배포 환경에 받고 그 환경에서 빌드 > 실행 과정을 했었는데요.이번과 같이 직접 만든 jar 파일의 경우엔 libs 폴더에 있는데 이 libs 폴더를 그냥 제 프로젝트에 포함되어 배포 하면 되는 건지(예를 들어 github라면 그냥 github에 libs 폴더의 jar 파일을 업로드해도 되는지) 아니면 보통 라이브러리로 만든다면 뭔가 저장소에 등록하는 과정을 필수로 해야 하는 건지 궁금합니다.