inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

update에서 Repository.save

미해결

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

dbEntity와 도메인으로 따로 분리하면 Jpa의 기능을 쓰지 못하기에 update부분에서 더티체킹을 사용하지 않고 Repository.save를 이용해 merge로 update한다는건데 이렇게 했을 때 merge는 하나하나 다른 부분을 수정하는게 아니고 전부 덮어 쓰는거라 이로 인해 발생할 수 있는 문제에 대해 신경 쓰지 않아도 되나요? 아니면 따로 처리를 해야하나요?

  • spring
  • tdd
  • jpa
  • 소프트웨어-테스트
  • unittest
rhdrlehf5 댓글 1 좋아요 0 조회수 119

Hibernate Proxy객체가 실제객체로 변환이 안돼요

미해결

먼저 Entity Code부터 보여드리겠습니다. FieldGroupMapping(부모) @Entity @Table(name = "FIELD_GROUP_MAPPING") @Getter @SuperBuilder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class FieldGroupMapping extends CreationAuditingEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "FIELD_GRP_MPPG_ID", nullable = false) private Long id; @Column(name = "FIELD_CD", length = 50, nullable = false) private String fieldCd; @ManyToOne(fetch = FetchType.EAGER, optional = false) @JoinColumn(name = "FIELD_CD", referencedColumnName = "FIELD_CD", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT)) private FieldMetadata field; } FieldMetadata (자식) @Entity @Table(name = "FIELD_METADATA") @Getter @SuperBuilder @AllArgsConstructor @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name = "FIELD_TYPE") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class FieldMetadata extends CreationAuditingEntity { @Id @Column(name = "FIELD_CD", length = 50, nullable = false) private String fieldCd; @Column(name = "LABEL", length = 50, nullable = false) private String label; @Enumerated(EnumType.STRING) @Column(name = "DATA_TYPE", columnDefinition = "varchar(20)", nullable = false) private FieldDataType dataType; } RealFieldMetadata (상속된 자식) @Entity @Table(name = "REAL_FIELD_METADATA") @Getter @SuperBuilder @AllArgsConstructor @DiscriminatorValue(FieldDiscriminatorValues.D_REAL) @NoArgsConstructor(access = AccessLevel.PROTECTED) @PrimaryKeyJoinColumn(name = "FIELD_CD") public class RealFieldMetadata extends FieldMetadata { @Enumerated(EnumType.STRING) @Column(name = "TABLE_ALIAS", columnDefinition = "varchar(50)", nullable = false) private TableAlias tableAlias; @Column(name = "COLUMN_NAME", nullable = false, length = 50) private String columnName; @Builder.Default @Convert(converter = BooleanYNConverter.class) @Column(name = "REQUIRES_JOIN", nullable = false, columnDefinition = "char(1) default 'N'") private boolean requiresJoin = false; @Enumerated(EnumType.STRING) @Column(name = "JOIN_TABLE", columnDefinition = "varchar(50)") private TableAlias joinTable; } FieldGroupMapping 과 FieldMetadata는 1:N 관계입니다. List<String> idList = List.of("GD01", "GD02", "GD03"); // fetch join 없이 조회 List<FieldGroupMapping> fieldGroupMappings1 = fieldGroupRepository.findAllById(idList); Long gridId = 1L; // fetch join으로 조회 List<FieldGroupMapping> fieldGroupMappings2 = gridRepository.getGrid(gridId) .map(Grid::getFieldGroupMapping) .toList(); for (FieldGroupMapping mapping1 : fieldGroupMappings1) { FieldMetadata field = mapping1.getField(); // 여기서 BreakPoint로 field를 보면 Proxy 객체 } for (FieldGroupMapping mapping2 : fieldGroupMappings2) { FieldMetadata field = mapping2.getField() // 여기서 BreakPoint로 field를 보면 실제 객체 (Unproxy상태) } 위 상황에서 첫번째 fieldGroupMappings1을 조회할땐 fetch join없이 hibernate로만 조회합니다. 두번째 fieldGroupMappings2를 조회할땐 Grid -> FieldGroupMapping -> field 연관관계 모두 fetch join을 써서 조회합니다. 제 지식으로는 두개 for문에서 모두 field는 Unproxy상태여야합니다. 단, fetch join이 없는 첫번째 리스트에서는 Select Query가 나가겠죠. 하지만, 테스트 결과는 첫번째 리스트에서의 field는 계속 Proxy상태로 되어있어. field 내부의 필드들이 null로 되어있었습니다. 또, 제 어플리케이션의 설정으로 default batch size는 1000으로 되어있어. select문의 조건에 in절로 채워져서 쿼리가 1번 발생하였습니다. 제 지식으로는 Select쿼리가 발생하였으므로, 첫번째 리스트도 field는 실제 객체여야하는데 왜 프록시객체로 남아있을까요? FieldMetadata 엔티티가 상속Entity여서 발생하는 문제일까요? 정답을 알려주세요 ㅠㅠㅠ

  • jpa
  • hibernate
papakang22 댓글 1 좋아요 0 조회수 39

사정으로 인한 정지 혹은 연장 문의드립니다

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요, 먼저 항상 좋은 강의 제공해 주셔서 감사합니다 지난 연말 탈락이후 재응시예정이었지만 최근 갑작스럽게 목디스크가 있단 진단을 받아 통증이 심해지면서 강의를 제대로 소화하기 어려운 상황이 되었습니다. 이에, 혹시 인강 수강 기간을 2개월만 연장해주실 수 있을지 정중히 부탁드립니다. 몸이 회복되면 하반기 시험을 목표로 다시 차근차근 준비할 계획입니다. 너무 개인적인 사정이라 죄송하지만, 간곡히 요청드립니다. 긍정적인 검토 부탁드립니다. 감사합니다. 혹시몰라 메일주소 남깁니다 jswook93@gmail.com

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
정성욱 댓글 2 좋아요 0 조회수 57

체험2유형으로(신버전)으로 들어왔는데요

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

데이터를 불러오는 코드가 이미 있는데 저 환경에 데이터가 들어있는걸까요? train.head()해도 데이터는 안보이고.. 그리고 shift+enter가 아니라 매번 실행버튼을 눌러야하는걸까요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
이선희 댓글 2 좋아요 0 조회수 62

영속성 전이와 연관관계

미해결

실전! 스프링 데이터 JPA

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요 선생님 강의를 통해 배움을 얻고 프로젝트를 하며 성장 하고 있습니다. 프로젝트를 하던중 영속성 전이와 관련하여 궁금한점이 생겨 질문 드립니다. ( 영한님 JPA 강의에 질문 하는것이 맞으나 JPA는 책을 사서 여기에 질문 드립니다 ㅠㅠ ) 회원과 주소는 양방향 관계를 두고 있습니다. 회원과 주소를 연관관계 매핑하여 회원을 저장하면 영속성 전이를 통해 주소가 같이 저장 됩니다. 그런데 문제는 둘다 영속 상태일때 주소를 제거 하면 delete 쿼리가 나가지 않았습니다. 이런 저런 실험을 해본 결과 영속성 전이 때문에 삭제 되지 않은것으로 보았습니다. 영속 대상인 주소를 삭제 하려고 했으나 회원의 연관관계인 Address는 그대로 있기 때문에 영속성 전이로 인해 삭제가 되지 않았다로 판단 하였습니다. 영속성 컨텍스트에 주소만 있을 경우 주석 으로된 부분을 실행하면 영속성 전이를 수행할 회원이 없기 때문에 delete 쿼리가 나가게 됩니다. 제가 생각한게 맞는지 궁금하여 질문 드립니다. 밑의 예시의 경우 회원이 영속 상태인 경우 영속성 전이 때문에 연관관계를 끊지 않으면 영속 대상인 주소가 delete가 안되는게 맞을까요? @DisplayName("회원과 연관된 주소를 제거할때 자식인 주소를 제거 하면 delete 쿼리가 발생하지 않는다.") @Test void deleteAddress() { //given User user = new User("회원"); Address address = new Address("주소"); address.connectUser(user); //when em.persist(user); em.flush(); boolean isAddressManaged = em.contains(address); System.out.println("Address is managed? " + isAddressManaged); addressRepository.deleteById(address.getId()); em.flush(); em.clear(); //then //Address findAddress = addressRepository.findById(address.getId()).orElseThrow() //addressRepository.deleteById(findAddress.getId()); //em.flush(); } [ 회원 ] @Getter @Setter @Table(name = "users") @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToOne(mappedBy = "user", cascade = CascadeType.PERSIST) private Address address; protected User() {} private String name; public void connectAddress(Address address){ this.address = address; } } @Getter @Entity public class Address { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") private User user; private String addressName; protected Address() {} public Address(String addressName) { this.addressName = addressName; } public void connectUser(User user){ this.user = user; user.connectAddress(this); } }

  • java
  • spring
  • spring-boot
  • jpa
조희제 댓글 2 좋아요 0 조회수 166

작업형2 코랩파일 다운로드 받는 위치(경로) 문의

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

강의에서 알려주시는 코랩파일은 어디에서 다운로드 받을 수 있나요? 엑셀 파일이나 마인드맵 자료는 다운 받았습니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
다린 댓글 2 좋아요 0 조회수 141

얼떨결에 코드 짜서 답은 나왔는데요 0.5보다 큰걸 찾는 부분 코드가 저렇게 해도 왜 답이 제대로 나오는걸까요

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

from sklearn.preprocessing import MinMaxScaler Scaler = MinMaxScaler() df_Scaler = Scaler.fit_transform(df[['qsec']]) re=df_Scaler>0.5 re.sum()

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
이선희 댓글 2 좋아요 0 조회수 92

25년 1회 문제풀이

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

혹시 25년 1회 문제풀이는 안해주시나요?

  • python
  • java
  • c
  • 정보처리기사
melon2641 댓글 2 좋아요 0 조회수 101

사후검정 2가지를 다 숙지해야할까요?

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

사후검정방법이 꽤 여러가지있고 그 중에 두가지를 반복해서 알려주시는데, 둘중에 하나만 숙지해도 될까요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
이선희 댓글 2 좋아요 0 조회수 125

4회 작업형 2 f1_score 평가할때 rf_f1 = f1_score(y_val, rf_pred, average= 'macro') 써도 되나요?

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

강사님 안녕하세요! 두가지 질문이 두 가지 있습니다. 1) from sklearn.model_selection import cross_val_score scores = cross_val_score(train, y scoring = 'f1_macro', cv=5) 이거 대신에 train_test_split(train.drop('Segmentation',axis =1),train['Segmentation'], test_size = 0.2, random_state =0 ) 이렇게 데이터를 나눈 뒤, 평가를 해도 되는지 궁금합니다. 2)그리고 cross_val_score를 쓰지 않고, 아래처럼 기존에 쓰던 직접 f1-score를 구해 모델 평가하는 방식도 괜찮은가요? rf_f1 = f1_score(y_val, rf_pred, average='macro') 감사합니다 cols = list(train.select_dtypes(include = 'O')) cols #['Gender','Ever_Married','Graduated','Profession','Spending_Score','Var_1'] # train[cols].nunique() #(2,2,2,9,3,7) # for col in cols: # print(train[col].value_counts()) train = train.drop('ID',axis =1) test_id = test.pop('ID') # from sklearn.preprocessing import LabelEncoder # for col in cols: # le = LabelEncoder() # train[col] = le.fit_transform(train[col]) # test[col] = le.transform(test[col]) # train.head() train = pd.get_dummies(train).astype(int) #(6665,30) test = pd.get_dummies(test).astype(int) #(2154,29) # print(train.shape,test.shape) # print(train.shape,test.shape) #(6665, 29) (2154, 28) train.head() from sklearn.model_selection import train_test_split X_train, X_val, y_train, y_val = train_test_split(train.drop('Segmentation',axis =1),train['Segmentation'], test_size = 0.2, random_state =0 ) print(X_train.shape,X_val.shape,y_train.shape, y_val.shape) #(5332, 28) (1333, 28) (5332,) (1333,) from sklearn.metrics import f1_score from sklearn.ensemble import RandomForestClassifier rf = RandomForestClassifier(random_state = 0, max_depth = 9, n_estimators = 700) rf.fit(X_train,y_train) rf_pred = rf.predict(X_val) rf_f1 = f1_score(y_val, rf_pred, average= 'macro') print(rf_f1) # 0.5350437339763565 /9 700 0.543685768934749 # # from lightgbm import LGBMClassifier # # lgbm = LGBMClassifier() # # lgbm.fit(X_train, y_train) # # lgbm_pred = lgbm.predict(X_val) # # lgbm_f1 = f1_score(y_val, lgbm_pred, average= 'macro') # # print(lgbm_f1) #0.5277491575057244 pred = rf.predict(test) sumbit = pd.DataFrame({'ID':test_id, 'Segmentation': pred}) sumbit.to_csv('submission.csv', index = False) pd.read_csv('submission.csv') #0.31924

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
변재현 댓글 2 좋아요 0 조회수 87

기출 6회 작업형 2 질문입니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

07:26에서 "f1 스코어로 예측할때는 확률 값이 아니라 클래스로 나누기 때문에 predict로 예측해야한다" 라고 말씀해주셨는데 이 부분에서 질문이 생겼습니다! 1) 확률 값으로 예측하는건 평가지표 중 roc_auc_score 뿐인지 2) 만약 평가 지표로 roc_auc로 한다고 문제에 출제되었으면 제출 예시로 확률 값이 아닌 클래스 값으로 나온 것 처럼 보여도 predict_proba ()로 예측해도 되는지 궁금합니다! -> 제가 알고있기론 roc_auc_score가 평가 지표여도 predict()를 사용해서 해도 되지만, 평가 성능이 차이가 나는 걸로 알고 있는데 제대로 알고 있는건지 여쭙습니다!!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
hara0203 댓글 2 좋아요 0 조회수 55

리턴 이해 예시 질문

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

예전부터 리턴에 대해 모호하게 이해하고 있어서 질문드립니다. # 함수 정의 (리턴 값) def plus(x, y): result = x+y return result # 함수 호출 a = plus(2,3) print(a) 이러면 값이 5가 나오는데 # 함수 정의 (리턴 값) def plus(x, y): result = x+y # 함수 호출 a = plus(2,3) print(a) 이러면 값이 NONE이 나오는 이유가 리턴이 없어서 왜 a = 2+3으로 받아들이지 못하는 건지 궁금합니다. # 함수 정의 (리턴 값) def plus(x, y): result = x+y result # 함수 호출 a = plus(2,3) print(a) 이 값 또한 NONE으로 출력되는데 두번째 함수 호출 코드에서 plus(2,3) 이니까 plus(2,3) = result 이고 result 는 5이니깐 a = 5이므로 print (a) 는 5가 되어야 하는게 아닌가요? return이 없으면 함수에 무엇을 대입하든 변수에 값이 저장되지 않는 느낌이네요?

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
김민성 댓글 2 좋아요 0 조회수 71

OAUTH2 질문

미해결

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

로그인시도 -> Securty -> FILTER 사용자가 DB에있으면 OK -> JWT발급 이 흐름이 맞는지요..? 그리고 OAUTH2는 로그인시도 -> 카카오 코드받아서 인증을 받고 -> 토큰으로 사용자 정보를 가져와서 로그인 -> 로그인 후 jwt발급 근데 궁금한게 oauth2도 회원가입이 왜 필요한걸까요? 시큐리티때문이라고한다면 토큰으로 사용자정보를 가져오는걸로 db에서찾은거처럼 판단을 못하는지요 제가 헷갈리는게 jwt든 oauth2든db하고 관련이 어떻게잇는건지가 헷갈립니다 jwt도 db에서 사용자정보를 가져와서 담을수도있지않나요? oauth2가 db에 사용자정보가 왜필요한지도 헷갈립니다 만약 사용자정보가 저장이 최초에 된다면 그다음부터는 그냥 oauth2로그인으로 안타는건지 그냥 security의 로그인을 타는건지 궁금합니다. 그리고 현재 강의에서는 시큐리티를 안쓰고 openfeign를 쓰셔서 코드를 받고 그 코드로 요청을 보내서 토큰을 받고 그 토큰으로 사용자정보를 받는걸로 이해를 했습니다. 시큐리티에서는 해당과정이 없는걸로 알고있는데 맞는지요

  • spring-boot
  • jpa
  • web-api
성호 댓글 2 좋아요 0 조회수 117

학습자료나 코드는 어디서 받아볼 수 있나요?

해결됨

컴퓨터 비전 이상 탐지, 개발부터 배포까지 올인원 마스터

학습자료나 코드는 어디서 받아볼 수 있나요?

  • python
  • 머신러닝
  • 딥러닝
  • azure-databricks
  • 인공지능(ai)
전상영 댓글 3 좋아요 1 조회수 203

일원분산분석은 f_oneway 방법으로만 알고있음 안되나요?

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

일원분산분석은 f_oneway 방법으로만 알고있음 안되나요? 반드시 stats에서 제공하는 함수로 테이블로 만드는 방법까지 숙지하는것이 필수일까요 ㅜ

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
이선희 댓글 1 좋아요 0 조회수 91

2강

미해결

파이썬 프로그래밍 기초

2강 강의자료 다운경로 접속이 안됩니다.

  • python
hjko11 댓글 1 좋아요 0 조회수 46

교수님 강의에 쓰시는 구글 드라이브 사본 더 볼 수 있을까요?

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

인강 틀고 따라하고 있는데, 멈추고 쓰는게 모니터 하나로는 예시 일일이 쓰고 인강 듣기가 조금 버벅거려서요 ㅠㅠ... 일단 교수님이 강의에 활용하시는 구글 드라이브(코랩) 만 있으면 한번 돌린다음에 제가 따로 돌리고 비교하기엔 수월할 것 같아서 부탁드립니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
stomdll3 댓글 2 좋아요 0 조회수 96

인기 태그

인프런 TOP Writers

주간 인기글