묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
@MappedSuperclass 에 기본키를 명시해도 되나요?
안녕하세요.User, Company class 에서 모두 BasicColumn 을 상속받아 사용할때에둘다 sId 라는 기본키를 가진다고 하면 해당 컬럼도 BasicColumn 내에 작성해도 되는지 궁금합니다!공통된 컬럼을 @MappedSuperclass에 작성할 때에 기본키/외래키에 관계없이 작성해도 되는건가요?User.java@Entity public class User extends BasicColumn { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="S_ID", updatable=false) private Long sId; ... } Company.java@Entity public class Company extends BasicColumn { @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name="S_ID", updatable=false) private Long sId; ... }BasicColumn.java@MappedSuperclass public abstract class BasicColumn { ...// 이부분에 sId작성 후 User/Company 내에서 제거해도 되나요? }
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
socialLoginApiService map 주입
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. @Servicepublic class SocialLoginApiServiceFactory {private static Map<String,SocialLoginApiService> socialLoginApiServices;public SocialLoginApiServiceFactory(Map<String,SocialLoginApiService> socialLoginApiServices) {SocialLoginApiServiceFactory.socialLoginApiServices = socialLoginApiServices;}public static SocialLoginApiService getSocialLoginApiService(MemberType memberType){String socialLoginApiServiceBeanName = "";if(MemberType.KAKAO.equals(memberType)){socialLoginApiServiceBeanName = "kakaoLoginApiServiceImpl";}return socialLoginApiServices.get(socialLoginApiServiceBeanName);}} 여기서 생성자로 socialLoginApiServices 를 주입해서 사용 하는 것 같은데 주입하는 부분이 보이지 않아서 질문 드립니다 어디서 주입 되는 것일까요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
api 엔드포인트 관련 질문
안녕하세요 강의를 수강한 뒤 프로젝트를 진행해보는 와중에 의문이 생겨서 질문 드립니다.api 엔드포인트 설정할 때 "/resume" 이런식으로 설정했습니다. 어떤 사용자의 이력서인지에 대해서는 토큰에서 토큰 안에 저장되어 있는 uId(userId)를 받아서 인식하게 했습니다. 근데 팀원이 엔드 포인트에 "/resume/{uId}" 이렇게 노출 시켜야하는거 아니냐고 질문을 했습니다. 제가 jwt 토큰 공부할 때 클라이언트가 토큰을 가지고 서버에 보내면 서버 측에서 토큰을 통해 사용자를 인증해주는 거라고 이해했기 때문에 uId를 엔드포인트에 노출 시킬 필요가 없다고 생각했고 보안상 문제에도 좋다고 생각했습니다.만약 다른 사용자의 이력서를 조회하고 싶은 것이라면 엔드포인트에 uId를 노출시키는 것이 맞지만 본인의 이력서에는 필요가 없다고 생각합니다."/resume" 과 "/resume/{uId}" 어떻게 하는게 맞나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.remove 관련 질문입니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.em.remove() 사용하면 1차 캐시와 db에 있는 값 둘 다 지워지는 건가요?
-
해결됨실전! 스프링 데이터 JPA
JPQL로 페이징을 제공하지 않는 이유.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]방언때문에 그런건가요? DB마다 메커니즘이나 사용 방법이 너무 상이해서 추상화 하기 어려운 건가요?근데 JPQL은 다 방언 참고해서 나가지 않나요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
DB질문입니다
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] Mybatis 강의에서 수업을 쭉 따라가다보면-의존성 추가-@Mapper 인터페이스 생성-xml 파일 생성;이후에 바로 테스트를 실행하시는데이 과정에는 H2 DB의 url, id, pw를 넣어주는 설정 작업이 없는것 같은데 dataSource랑 connection은 어떻게 얻어오고 mybatis는 어떻게 db와 연결이 되는건가요???
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
CASCADE
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의의 부모와 자식의 관계 코드에서 부모가 OneToMany이고 자식이 ManyToOne으로 매핑되고 Many에 연관관계의 주인이 있으므로 자식이 연관관계의 주인으로 보입니다. 이말은 자식을 save만 해도 디비에 부모테이블에 save되고 업데이트 또한 자식만 update해도 부모 테이블에도 update 쿼리가 나가는 것으로 알고있습니다. 그렇다면 부모에 CASCADE.ALL을 해주었을 부모만 영속해도 자식도 연속되는 것으로 보아 부모에게도 연관관계의 주인과 비슷하다고 봐도 될까요?? 즉 서로 연관관계의 주인이 되는 것인가요??
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
github에서 파일을 받고 다시 커밋을 하려면
제가 컴퓨터를 포맷할 일이 생겨서 포맷 후 진도를 이어서 따라 가려고github에 올려둔 파일을 다운 받아서 이어서 하고 있었습니다. 그러다가 aws에 비밀번호를 바꾸고 두 번째 커밋을 할 때 막혔는데요.. 다시 git 등록하는 강의도 듣고 이것저것 해보았지만 push할 때 막혀서 그냥 github에 새로운 library2-app 레포지터리를 만들고 처음 저장한 것처럼 저장했습니다. 일단 이렇게 해결하긴 했는데 위에 상황처럼 만약 github에서 파일을 다시 받고 이어서 커밋 하려면 어떻게 해야 하나요?? 그리고 방법들을 찾다가 pull이라는 명령어도 찾았었는데pull 명령어를 입력할 때 origin과 master는 무엇을 의미하나요? origin은 library-app을 입력했었고 master는 제 github 닉네임인지 이게 맞는 건지도 알고 싶습니다!!
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
DB관련
[질문 내용]궁금해서 schema.sql에 mysql 문법으로 테이블을 생성했는데, 문제 없이 돌아가긴 했습니다. 이것은 Spring boot 내부적으로 mysql을 h2 database 문법으로 변경해줘서 가능한건가요? 추가적인 질문으로, 사이드 프로젝트로 Spring-MySQL으로 개발을 진행하려고 합니다. 근데 5명의 팀원들이 있는데 보통 실무에서는 데이터베이스를 각자의 로컬에다가 테이블을 다 생성하고 개발을 진행하는지, 아니면 RDS 같은 클라우드 서비스를 이용하여 공용 DB 서버를 만드는지 궁금합니다.
-
미해결실전! Querydsl
QueryDSL관련 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]본 강의에서도 영한님께서 JPA를 querydsl로 바꾸셨는데! 조회쿼리만 바꾸셨습니다. QueryDSL로는 주로 조회작업만 하는건가요?
-
미해결[초급] 찍어먹자! 코틀린과 Spring Security + JWT로 회원가입 만들기
DTO 생성 과정에서 궁금한 점이 있어요!!
DTO를 생성할 때 코드가 너무 많이 생성되는데 더 간편하고 쉽게 벨리데이션 처리할 수 있는 방법은 없을까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
jpa 프로그래밍-기본편 (Hello JPA-프로젝트 생성) 강의 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요. 김영한 선생님의 jpa 프로그래밍-기본편 (Hello JPA-프로젝트 생성)강의에서 10:20 쯤에서 pom.xml 작성하는데 자꾸 빨간줄이 떠서 올립니다 ,,링크 올리겠습니다.https://drive.google.com/drive/folders/1K2BpXMt59xgFDv-a_SNS2qz3VLhtHkFT?usp=sharing
-
미해결더 자바, 코드를 조작하는 다양한 방법
Annotation processor에서 element type을 제한했는데도 다른 타입으로 컴파일이 됩니다...이상하게도..
안녕하세요, 애노테이션 프로세서에서 테스트하는 @Magic 을 테스트하면서,process 메소드에서 분명 inteface element에서만 작동되고 아니면 erorr를 발생하도록 했는데...실제로 제가 프로젝트를 만들어서 class에다가 @Magic을 적용해도, 에러없이 정상적으로 컴파일이 됩니다.... 빌더는 gradle을 사용하고 있구요... 지금까지 한번도 실패한적이 없이 테스트 잘 되고 있었는데.. 실패해야할 컴파일이 정상이되어서 이해가 않되서 질무을 올려봅니다..아래는 process method:class에 @Magic 적용했는데도 정상인 화면입니다혹시 몰라서 다시 한번 똑같이 프로젝트 만들었습니다. 이번엔 빌드 정보까지 스크린캡쳐했습니다.
-
미해결실전! Querydsl
EntityManagerFactory를 활용한 페치조인 예제 에러(해결법있음 - 이유모름)
환경 조인 - 페치 조인 강의를 듣던 중이 부분 예제를 따라 하다가 보니java.lang.illegalstateexception: specified field type [interface jakarta.persistence.entitymanagerfactory] is incompatible with resource type [jakarta.persistence.entitymanager]이라는 exception이 발생했습니다.강의에서 새로운 프로젝트를 생성하거나 파일을 생성하지 않았으므로 상단에@PersistenceContext EntityManager em; 가 있고 추가적으로@PersistenceContext EntityManagerFactory emf;를 넣어주고 테스트 코드에서emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam());를 실행하였습니다. 일단 entitymanagerfactory는 yml에 있는 설정을 바탕으로 1개가 생성되고 해당 factory에서 요청에 의해 entitymanager를 생성해서 제공하는 형태라는 글을 발견하여 추가적인 의존성 주입에서 2개의 factory 생성되는 이슈가 발생해서가 아닌가 추측을 하고 우선적으로는 사용중인 em에서 factory를 가져올 수 있길래 이렇게 접근했는데em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded(findMember.getTeam());정상작동은 하긴 하지만 강사님의 경우 추가적인 entitymanagerfactory 주입에도 테스트코드가 돌아갔으므로 정확한 동작 이유를 잘 모르겠어서 혹시 확실한 이유를 알 수 있을까 하여 문의합니다.바탕
-
해결됨실전! 스프링 데이터 JPA
[질문 X] @Setter에 일괄적으로 AccessLevel 설정
@Setter에 왠만하면 private로 해두고 필요할 때만 그 개개별만 열어두고 싶었는데,@Setter(AccessLevel.PRIVATE)이렇게 클래스레벨에 넣어두면 다 private로 생성되는 듯 해요.만약 따로 @Setter를 열어두고 싶은 필드가 있다면 @Setter(AccessLevel.PUBLIC) private String username;그 필드에 이렇게.. 자세할 수록 우선 반영이니..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
m2 폴더 질문
현재 maven이 아닌 gradle로 빌드 환경을 구성하고 있습니다.m2/repository/org 폴더는 존재하지만 그 안에 mariaDB가 없습니다. build.gradle에서 mariadb-client를 추가해준다고 해서 제 PC 환경에 설치되는 것이 아닌것 같은데 어떻게 해야 할까요..
-
해결됨실전! 스프링 데이터 JPA
flush() 와 clear()
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. 스프링 데이터 JPA 가 지원하는 save를 호출하면 flush()가 나가는건가요 아니면 save를 하고 bulkAgePlus()를 호출하면서 bulkAgePlus() 에 있는 JQPL이 실행되서 flush() 가 나가는건가요 ? bulkAgePlus()를 실행하면 JPQL 실행이되고, JPQL 이 실행이 되면 flush() 가 호출이 되는데 이때 SQL쿼리문이 DB에 전송이대서 DB에는 업데이트가 되어있지만 영속성 컨텍스트는 업데이트가 안되기 때문에 clear()를 해주는게 맞는건가요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
질문
@requestHeader 에 first-request를 지우면 filter 가 안되니 분기가 안되려나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
setter 관련 함수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. // item.setName(name); // item.setPrice(price); // item.setStockQuantity(stockQuantity); //요런식으로 바꿔라 item.change(name,price,stockQuantity); 라고 강의에서 봤는데 그러면 item 엔티티 클래스에서 change 함수에서 item.setName(name); // item.setPrice(price); // item.setStockQuantity(stockQuantity);이걸 넣는건가요 ??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
최신 버전으로 프로젝트 생성하고, JPA 하이버네이트랑 H2 데이터베이스 설정시 하이버네이트 버전 오류가 생겨요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 제가 생성한 Spring은 버전이 3.1.5라h2버전 최신 2.224 버전은 되는데spring 3.1.5버전 하이버네이트6.2.13.Final이 없다고 뜨네요 ㅜ <?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 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpa-basic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>1.0.0</version> <dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>6.2.13.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.2.224</version> </dependency> </dependencies> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> </project>어떻게 해야 하는지 모르겠습니다 +) 근데 또 5.6.15.Final은 오류가 안 뜨네요