inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

데이타소스없이 JpaRepository 작동하는 이유

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

안녕하세요. 문득 스프링 데이타 JPA로 테스트 진행 중 없는 테이블을 만들어주는 기능을 보니 db에 커넥션이 없이 이 모든 게 진행된다는 게 갑자기 낯선 느낌이 들었습니다. 쿼리를 만들고 날리는 과정이 커넥션 여부와 관계없이 실행되는 것인가요? 어떻게 데이타소스 없이 작동하는건지 조금 이상하다는 생각이 듭니다. 트랜잭션과 관련있는 내용은 아니지만 강의에서 설명을 들으니 문득 궁금해져 질문 드립니다. 감사합니다.

  • spring
  • jpa
아름 댓글 3 좋아요 0 조회수 836

작업형2 모의문제1 질문

해결됨

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

작업형2 문제마다 어떤문제들은 n_train, c_train, n_test, c_test로 나누는 문제들이 있고 그렇지 않은 문제들이 있어서 헷갈리는데요. 수치형변수를 스케일링하는 과정을 거치려면 n_train, c_train, n_test, c_test로 나눠야 하고, 스케일링 과정을 생략하고 범주형 변수 인코딩 과정만을 진행할때는 나눌필요가 없는게 맞나요? 작업형 모의문제 1을 혼자 풀어보는 와중 MinMaxScaler로 스케일링을 해보는중인데 from sklearn.preprocessing import MinMaxScaler cols = ['CLIENTNUM', 'Customer_Age','Dependent_count', 'Months_on_book', 'Total_Relationship_Count', 'Months_Inactive_12_mon', 'Contacts_Count_12_mon', 'Credit_Limit', 'Total_Revolving_Bal', 'Avg_Open_To_Buy', 'Total_Amt_Chng_Q4_Q1', 'Total_Trans_Amt', 'Total_Trans_Ct', 'Total_Ct_Chng_Q4_Q1', 'Avg_Utilization_Ratio'] scaler = MinMaxScaler() for col in cols: n_train[col] = scaler.fit_transform(n_train[col]) n_test[col] = scaler.transform(n_test[col]) ValueError Traceback (most recent call last) <ipython-input-38-b70edfd82bf0> in <cell line: 5>() 4 scaler = MinMaxScaler() 5 for col in cols: ----> 6 n_train[col] = scaler.fit_transform(n_train[col]) 7 n_test[col] = scaler.transform(n_test[col]) 8 5 frames /usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in check_array(array, accept_sparse, accept_large_sparse, dtype, order, copy, force_all_finite, ensure_2d, allow_nd, ensure_min_samples, ensure_min_features, estimator, input_name) 900 # If input is 1D raise error 901 if array.ndim == 1: --> 902 raise ValueError( 903 "Expected 2D array, got 1D array instead:\narray={}.\n" 904 "Reshape your data either using array.reshape(-1, 1) if " ValueError: Expected 2D array, got 1D array instead: array=[0.58522152 0.08465774 0.60121236 ... 0.06531669 0.06194963 0.52375209]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample. 위와 같은 오류가 발생합니다. 혹시 어떤 부분이 잘못된걸까요? 반면에 아래와 같이 실행할 경우 오류가 발생하지않습니다. 강의에서는 cols안에 컬럼값이 여러개이므로 반복문을 써야한다고 배웠는데 제가 잘못알고있는걸까요? from sklearn.preprocessing import MinMaxScaler cols = ['CLIENTNUM', 'Customer_Age','Dependent_count', 'Months_on_book', 'Total_Relationship_Count', 'Months_Inactive_12_mon', 'Contacts_Count_12_mon', 'Credit_Limit', 'Total_Revolving_Bal', 'Avg_Open_To_Buy', 'Total_Amt_Chng_Q4_Q1', 'Total_Trans_Amt', 'Total_Trans_Ct', 'Total_Ct_Chng_Q4_Q1', 'Avg_Utilization_Ratio'] scaler = MinMaxScaler() n_train[cols] = scaler.fit_transform(n_train[cols]) n_test[cols] = scaler.transform(n_test[cols])

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
김태범 댓글 1 좋아요 1 조회수 468

default_batch_fetch_size 설정을 지워도 지연로딩이 적용되지 않습니다.

미해결

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

default_batch_fetch_size 설정을 주었을때 쿼리가 나가는것과 default_batch_fetch_size 설정을 주석처리 했을때 쿼리 나가는것을 비교해보고 싶어서 테스트 코드를 아래와 같이 작성해봤습니다. @Test @DisplayName("회원 불러와서 getFriends 할때, default_batch_fetch_size 설정 여부에 따른 쿼리 개수 확인") public void findOne() throws Exception { //given Member member = Member.builder() .name("userA") .build(); Friend friendA = Friend.builder() .name("friendA") .member(member) .build(); Friend friendB = Friend.builder() .name("friendB") .member(member) .build(); Friend friendC = Friend.builder() .name("friendC") .member(member) .build(); Friend friendD = Friend.builder() .name("friendD") .member(member) .build(); Friend friendE = Friend.builder() .name("friendE") .member(member) .build(); //when memberRepository.save(member); friendRepository.save(friendA); friendRepository.save(friendB); friendRepository.save(friendC); friendRepository.save(friendD); friendRepository.save(friendE); em.flush(); em.clear(); //then Member findMember = memberRepository.findById(member.getId()); List<Friend> friends = findMember.getFriends(); for (Friend friend : friends) { log.info("getClass: " + friend.getClass()); // 프록시객체를 기대.. log.info("getClass: " + friend.getName()); } } Member와 Friend는 일대다 관계이며, Member 클래스에 있는 연관관계 필드는 다음과 같고, @OneToMany(mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true) private final List<Friend> friends = new ArrayList<>(); Friend 클래스에 있는 연관관계 필드는 다음과 같습니다. @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="member_id") private Member member; 테스트코드에서,, Member findMember = memberRepository.findById(member.getId()); 이 부분에서 member를 조회하는 쿼리가 한번, log.info("getClass: " + friend.getClass()); 이 부분에서 프록시객체가 찍히고, log.info("getClass: " + friend.getName()); 이 부분에서 원본 객체를 조회하기 위해 쿼리가 한번 나가서, for문을 돌면서 총 1 + 5 개의 쿼리가 나가기를 기대했습니다. 그리고 default_batch_fetch_size:100 를 글로벌설정에 주게 되면 멤버 조회하는 쿼리 1번, 해당 멤버와 관련된 전체 friend 들을 다 조회하는 쿼리 1번이 나가고 더이상 안나가게 되지 않을까 기대했습니다. 그런데, 글로벌설정을 주기도 전에 1+5개의 조회 쿼리가 나가지가 않고 2개의 조회쿼리만 나가고 끝이 나네요.. default_batch_fetch_size:100 이 옵션을 주석처리도 해보고, 아예 지워도 보고 default_batch_fetch_size:1 로도 값을 변경해보기도 하였지만 결과는 같았습니다. 로그는 다음과 같습니다. 2023-06-09 21:35:26.695 INFO 1106 --- [ Test worker] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@1bdaa23d testClass = MemberRepositoryTest, testInstance = com.example.myvers.member.MemberRepositoryTest@7ae75ba6, testMethod = findOne@MemberRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@79f227a9 testClass = MemberRepositoryTest, locations = '{}', classes = '{class com.example.myvers.MyversApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@42f48531, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@ea9b7c6, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@a8e6492, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@60dce7ea, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@f73dcd6, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@43015c69], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.orm.jpa.JpaTransactionManager@7b6b466a]; rollback [true] 2023-06-09 21:35:26.749 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 2023-06-09 21:35:26.749 INFO 1106 --- [ Test worker] p6spy : #1686314126749 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b call next value for hibernate_sequence call next value for hibernate_sequence; 2023-06-09 21:35:26.750 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 2023-06-09 21:35:26.750 INFO 1106 --- [ Test worker] p6spy : #1686314126750 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b call next value for hibernate_sequence call next value for hibernate_sequence; 2023-06-09 21:35:26.750 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 2023-06-09 21:35:26.750 INFO 1106 --- [ Test worker] p6spy : #1686314126750 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b call next value for hibernate_sequence call next value for hibernate_sequence; 2023-06-09 21:35:26.750 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 2023-06-09 21:35:26.750 INFO 1106 --- [ Test worker] p6spy : #1686314126750 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b call next value for hibernate_sequence call next value for hibernate_sequence; 2023-06-09 21:35:26.750 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 2023-06-09 21:35:26.750 INFO 1106 --- [ Test worker] p6spy : #1686314126750 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b call next value for hibernate_sequence call next value for hibernate_sequence; 2023-06-09 21:35:26.750 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : call next value for hibernate_sequence 2023-06-09 21:35:26.750 INFO 1106 --- [ Test worker] p6spy : #1686314126750 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b call next value for hibernate_sequence call next value for hibernate_sequence; 2023-06-09 21:35:26.751 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : insert into member (created_date, email, grade, login_id, name, password, talk_count, member_id) values (?, ?, ?, ?, ?, ?, ?, ?) 2023-06-09 21:35:26.752 INFO 1106 --- [ Test worker] p6spy : #1686314126752 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b insert into member (created_date, email, grade, login_id, name, password, talk_count, member_id) values (?, ?, ?, ?, ?, ?, ?, ?) insert into member (created_date, email, grade, login_id, name, password, talk_count, member_id) values (NULL, NULL, NULL, NULL, 'userA', NULL, 1, 33); 2023-06-09 21:35:26.752 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) 2023-06-09 21:35:26.752 INFO 1106 --- [ Test worker] p6spy : #1686314126752 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (0, NULL, NULL, NULL, NULL, 33, 'friendA', 34); 2023-06-09 21:35:26.752 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) 2023-06-09 21:35:26.752 INFO 1106 --- [ Test worker] p6spy : #1686314126752 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (0, NULL, NULL, NULL, NULL, 33, 'friendB', 35); 2023-06-09 21:35:26.753 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) 2023-06-09 21:35:26.753 INFO 1106 --- [ Test worker] p6spy : #1686314126753 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (0, NULL, NULL, NULL, NULL, 33, 'friendC', 36); 2023-06-09 21:35:26.753 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) 2023-06-09 21:35:26.753 INFO 1106 --- [ Test worker] p6spy : #1686314126753 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (0, NULL, NULL, NULL, NULL, 33, 'friendD', 37); 2023-06-09 21:35:26.753 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) 2023-06-09 21:35:26.753 INFO 1106 --- [ Test worker] p6spy : #1686314126753 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (?, ?, ?, ?, ?, ?, ?, ?) insert into friend (age, created_date, gender, image_name, mbti, member_id, name, friend_id) values (0, NULL, NULL, NULL, NULL, 33, 'friendE', 38); 2023-06-09 21:35:26.759 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : select member0_.member_id as member_i1_1_0_, member0_.created_date as created_2_1_0_, member0_.email as email3_1_0_, member0_.grade as grade4_1_0_, member0_.login_id as login_id5_1_0_, member0_.name as name6_1_0_, member0_.password as password7_1_0_, member0_.talk_count as talk_cou8_1_0_ from member member0_ where member0_.member_id=? 2023-06-09 21:35:26.760 INFO 1106 --- [ Test worker] p6spy : #1686314126760 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b select member0_.member_id as member_i1_1_0_, member0_.created_date as created_2_1_0_, member0_.email as email3_1_0_, member0_.grade as grade4_1_0_, member0_.login_id as login_id5_1_0_, member0_.name as name6_1_0_, member0_.password as password7_1_0_, member0_.talk_count as talk_cou8_1_0_ from member member0_ where member0_.member_id=? select member0_.member_id as member_i1_1_0_, member0_.created_date as created_2_1_0_, member0_.email as email3_1_0_, member0_.grade as grade4_1_0_, member0_.login_id as login_id5_1_0_, member0_.name as name6_1_0_, member0_.password as password7_1_0_, member0_.talk_count as talk_cou8_1_0_ from member member0_ where member0_.member_id=33; 2023-06-09 21:35:26.765 DEBUG 1106 --- [ Test worker] org.hibernate.SQL : select friends0_.member_id as member_i8_0_0_, friends0_.friend_id as friend_i1_0_0_, friends0_.friend_id as friend_i1_0_1_, friends0_.age as age2_0_1_, friends0_.created_date as created_3_0_1_, friends0_.gender as gender4_0_1_, friends0_.image_name as image_na5_0_1_, friends0_.mbti as mbti6_0_1_, friends0_.member_id as member_i8_0_1_, friends0_.name as name7_0_1_ from friend friends0_ where friends0_.member_id=? 2023-06-09 21:35:26.766 INFO 1106 --- [ Test worker] p6spy : #1686314126766 | took 0ms | statement | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b select friends0_.member_id as member_i8_0_0_, friends0_.friend_id as friend_i1_0_0_, friends0_.friend_id as friend_i1_0_1_, friends0_.age as age2_0_1_, friends0_.created_date as created_3_0_1_, friends0_.gender as gender4_0_1_, friends0_.image_name as image_na5_0_1_, friends0_.mbti as mbti6_0_1_, friends0_.member_id as member_i8_0_1_, friends0_.name as name7_0_1_ from friend friends0_ where friends0_.member_id=? select friends0_.member_id as member_i8_0_0_, friends0_.friend_id as friend_i1_0_0_, friends0_.friend_id as friend_i1_0_1_, friends0_.age as age2_0_1_, friends0_.created_date as created_3_0_1_, friends0_.gender as gender4_0_1_, friends0_.image_name as image_na5_0_1_, friends0_.mbti as mbti6_0_1_, friends0_.member_id as member_i8_0_1_, friends0_.name as name7_0_1_ from friend friends0_ where friends0_.member_id=33; 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: class com.example.myvers.domain.Friend 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: friendA 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: class com.example.myvers.domain.Friend 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: friendB 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: class com.example.myvers.domain.Friend 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: friendC 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: class com.example.myvers.domain.Friend 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: friendD 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: class com.example.myvers.domain.Friend 2023-06-09 21:35:26.768 INFO 1106 --- [ Test worker] c.e.myvers.member.MemberRepositoryTest : getClass: friendE 2023-06-09 21:35:26.771 INFO 1106 --- [ Test worker] p6spy : #1686314126771 | took 0ms | rollback | connection 16| url jdbc:h2:mem:bd08892f-1de8-4235-819c-08b14b2b1f5b ; 2023-06-09 21:35:26.772 INFO 1106 --- [ Test worker] o.s.t.c.transaction.TransactionContext : Rolled back transaction for test: [DefaultTestContext@1bdaa23d testClass = MemberRepositoryTest, testInstance = com.example.myvers.member.MemberRepositoryTest@7ae75ba6, testMethod = findOne@MemberRepositoryTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@79f227a9 testClass = MemberRepositoryTest, locations = '{}', classes = '{class com.example.myvers.MyversApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@42f48531, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@ea9b7c6, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@a8e6492, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@60dce7ea, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@f73dcd6, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@43015c69], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]] 결론: default_batch_fetch_size 설정을 지워도 지연로딩이 적용되지 않는 이유를 알고싶습니다. 감사합니다.

  • java
  • spring
  • spring-boot
  • jpa
Shin Berg 댓글 2 좋아요 0 조회수 809

JS 함수형 프로그래밍

미해결

[ 개발 스터디 모집 ] 기존 스터디의 한계를 보완하고자 코치가 리딩하는 유료 스터디를 기획했습니다. 제대로 한번 달려볼려구요. 스터디 하나의 주제를 가지고 다양한 공부자료를 살펴 볼 겁니다. 책, 강의를 매번완료할 때마다 결과물을 낼거구요. 최종적으로는 직접 적용해보는 토이프로젝트도 진행 해 볼겁니다. 이 모든 과정은 스스로 공부합니다. 다만! 중간에 지치거나 그룹 분위기가 쳐지지 않게 코치가 잡아 줄 겁니다. 난 그런 코칭 필요없다 하시면, 그냥 지나가시면 됩니다. 적든 많든 돈이 드는 과정이기 때문에 잘 살펴보고 신청해주세요. 스터디 주제 : JS 함수형 프로그래밍 스터디 목표 : 함수형 프로그래밍을 이해하고 정리한 결과물 만들어내기 독서 2권 결과물 -> 블로그 총 6개 강의 3개 완강 결과물 -> 예제 코드 레포 총 3개 + 회고 README.md 파일 총 3개 함수형 프로그래밍을 적극 활용한 토이 프로젝트 1개 배정된 코치 : 박동조 코치 (직방 프론트 개발자로 재직중) 최대 모집인원 : 8명 최소 모집인원 : 4명 모임 장소 : 디스코드 (온라인 모임) 모임 일정(횟수) : 주 3회 (점검 미팅 2회 + 학습 모임 1회) 기간 모집 기간 : 6.10 ~ 6.18 선발기간 : 6.19 ~ 6.21 활동기간 : 6.26 ~ 더 자세히 알고 싶다면 기술 블로그 : https://shorttrack.tistory.com/11 상세 설명 노션 : https://chestnut-bat-4d9.notion.site/9476b596ff61448ea2c2d9d252f7f009?pvs=4 1:1 문의 채널 : https://pf.kakao.com/_cxgvgxj/chat 참여하고 싶다면 참여 신청 폼 : https://docs.google.com/forms/d/e/1FAIpQLSdz-6cME0etI56plI5tNNnwWYQp0OemwoDTvu241swWTvMxWA/viewform

Charles Park 댓글 0 좋아요 0 조회수 132

섹션 2 - 강력한 CSS의 "grid 속성" 강의에 오타가 있는 것 같습니다.

해결됨

[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스

섹션 2 - 강력한 CSS의 "grid 속성" 강의에서 15분 30초쯤에 보이는 grid 레이아웃이 그림 예시와 적용된 속성값이 다른 것 같습니다. grid-item에게 grid-column: 1 / 3; grid-row: 2 / 3; 속성을 주고 실행했을 경우 아래의 레이아웃으로 나눠지고 ex) HTML <div class="container"> <div class="item item1">box</div> <div class="item">box</div> // ... </div> CSS .container { box-sizing: border-box; border: 2px solid pink; display: grid; grid-template-columns: 200px repeat(3, 1fr); grid-template-rows: 1fr 2fr; } .item { font-size: 1.3em; font-weight: 500; border: 2px solid powderblue; } .item1 { grid-column: 1 / 3; grid-row: 2 / 3; } result) ㅁ ㅁ ㅁ ㅁ [ㅁ ㅁ]ㅁ ㅁ 강의에서 보여지는 레이아웃처럼 만드려면 grid-column: 1 / 4; grid-row: 2 / 3; 처럼 입력해 주어야 아래처럼 적용이 되었습니다. ex) CSS /* ... */ .item1 { grid-column: 1 / 4; /* 3 -> 4 */ grid-row: 2 / 3; } result) ㅁ ㅁ ㅁ ㅁ [ㅁ ㅁ ㅁ]ㅁ 제가 잘못 입력된 부분이 있는지 혹은 강의 내용의 값이 오타였던 건지 알고싶습니다.

  • react
  • node.js
  • seo
  • graphql
  • next.js
joka 댓글 1 좋아요 0 조회수 324

input 함수를 통해서 만든건데 이게 왜 작동하는지 모르겠어요

미해결

파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자

def std_weight(height, gender): if gender == "남자": weight = (int(height)*0.01) ** 2 * 22 print(f"키 {height}cm {gender}의 표준 체중은 {weight:.2f}kg입니다") elif gender == "여자": weight = (int(height)*0.01) ** 2 * 21 print(f"키 {height}cm {gender}의 표준 체중은 {weight:.2f}kg입니다") else: print("성별, 키 정보를 정확히 입력해 주세요") height = input("키가 몇 cm인가요? ") gender = input("성별이 어떻게 되나요(남자, 여자)? ") weight = std_weight(height, gender) 제가만들어본 input 함수인데요 마지막줄 weight = std_weight(height, gender) 이걸 지우면 작동하지 않는데 왜 저걸 지우면 작동하지 않고 지우지 않으면 작동을 하는지 이해를 못하겠어요 마지막줄이 의미하는건 뭔가요?

  • python
gnfmcmxosel 댓글 1 좋아요 0 조회수 402

테스트에서 @Slf4j 를 따로 선언하는 이유가 궁금합니다.

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 테스트 클래스에 @Slf4j를 붙이고 그 아래 static 클래스에도 붙이셔서 그 이유가 궁금합니다. 테스트 클래스에만 선언하면 되지않나? 라는 생각이 들어서 static 클래스에 있는 @Slf4j를 지워 보고 했는데 로그는 잘 나오더라구요. 혼자 찾아보려 했는데 잘 안돼서 질문남깁니다 ㅠ

  • spring
물병97 댓글 1 좋아요 0 조회수 477

Kafka 등의 메시지 브로커를 사용하는 이유에 대해 질문있습니다!

미해결

실습으로 배우는 선착순 이벤트 시스템

안녕하세요, 좋은 강의 올려주셔서 잘 배우고 있습니다 :) 강의에서 Kafka 도입 이유에 대한 궁금증이 생겨 질문 드립니다. 'Redis를 활용하여 문제 해결하기' - '문제점' 강의에서 해당 쿠폰 API에 요청이 몰리면 DB 서버에 부하가 갈 수 있다고 설명해주셨는데요. 그 해결방법으로 Kafka를 사용하셨고 API에서 직접 쿠폰을 생성할 때와 다르게 처리량을 조절해서 부하를 줄일 수 있다고 하였습니다. 이 내용 중 "처리량을 조절한다"는 의미는 어떻게 이해하면 좋을까요? 컨슈머 애플리케이션에서 처리량을 조절하는 로직을 추가하여 RDB 부하를 분산시키는 걸까요? 혹은 카프카에서 그러한 기능을 지원하는 걸까요? 혹은 마지막 강의에 있는 에러를 발생했을 때, 백업 데이터를 통해 실패 처리를 하는 경우에 대한 이야기일까요?

  • java
  • docker
  • spring-boot
  • kafka
  • redis
ep 댓글 2 좋아요 0 조회수 1377

야생형 코스

미해결

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

안녕하세요. 스프링 김영한님 로드맵 따라갈려고 합니다. 그런데 원래 알려주셨던 아래 루트로 공부 할려고 했는데 기본편 -> HTTP -> MVC 1편 -> MVC 2편 -> DB 1편 -> DB 2편 -> JPA 활용 1편 -> JPA 기본편 -> JPA 활용 1편 복습 -> JPA 활용 2편 -> 실전 스프링 JPA -> 실전 Query DSL 게시판을 먼저 만들어보고싶은데 스프링 기본편 -> HTTP -> MVC 1편-> JPA 활용 1편 -> JPA 기본편 JPA 활용 1편 -> JPA 기본편 1번 루트가 더 괜찮을까요? 아니면 2번으로 바로 시작해두 될까요?

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

빌드/디버깅 시 JTEG 관련 문

미해결

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

안녕하세요. 다름이 아니라 혹시 Debug As 나 Run As 실행 시 아래와 같은 에러가 발생 하는 경우에는 어떻게 해결해야 하는지 도움을 주실 수 있으실까요? 저는 현재 아래 사진의 ZYBO Z7 보드를 사용하고 있습니다.

  • fpga
  • 임베디드
박현영 댓글 1 좋아요 0 조회수 481

회귀문제에서 이런 오류 났을 때 어떻게 해결해야 하나요?

해결됨

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

pred1 = pred1.astype(int) y_val = y_val.astype(int) pred1 = np.log1p(pred1) y_val = np.log1p(y_val) rmse(np.exp(y_val),np.exp(pred1)) MSE loss가 기하급수적으로 증가해서 NaN값이 발생하는 것 같은데 어떻게 해결해야할지 모르겠어요! ㅠㅠ 에러는 아래에 있습니다. <ipython-input-35-aacfc97a4692>:3: RuntimeWarning: invalid value encountered in log1p pred1 = np.log1p(pred1) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-35-aacfc97a4692> in <cell line: 6>() 4 y_val = np.log1p(y_val) 5 ----> 6 rmse(np.exp(y_val),np.exp(pred1)) 4 frames /usr/local/lib/python3.10/dist-packages/sklearn/utils/validation.py in _assert_all_finite(X, allow_nan, msg_dtype, estimator_name, input_name) 159 "#estimators-that-handle-nan-values" 160 ) --> 161 raise ValueError(msg_err) 162 163 ValueError: Input contains NaN.

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

선생님 배열을 잘 모르겠습니다...

미해결

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

선생님 여기 와일문에서 tmp변수를 소인수분해 하는 과정까진 이해를 했습니다.. 근데 분해 될 때마다 ch [j]++을 하라고했는데 이건 j배열의 인덱스값을 늘려서 3 1 1 이런식으로 j배열이 저장되는거 아닌가용? 프린트문에서는 ch[i]로해서요! 물론 컴파일해보면 선생님이 설명해주신게 맞습니다! 다만 제가 이해가 잘 안되어서요 ㅠㅠㅠ

  • c++
  • 코딩-테스트
강태의 댓글 2 좋아요 0 조회수 332

국비학원과 독학에 관한 질문입니다

미해결

비전공자를 위한 개발자 취업 올인원 가이드 [통합편]

안녕하세요 현재 대학을 휴학하고, 다음년도에 다른학교 it계열학과로 편입을 목표로 하고 있습니다. 혼자서 공부를 할때 제대로 하고 있는지에 대한 확신이 들지 않고, 열심히 하려는 의지가 떨어져서 국비학원에서 배우는게 나을 것 같아 서울의 국비과정을 찾아보고 있는 중입니다. 그런데 제가 지방에서 살아 교육을 받게 된다면 서울로 올라가야 하고, 원하는 강사님의 과정이 열리지 않아서 다른 강사님을 찾아야 하는 상황이라 시간과 돈이 많이 소비될 것 같아 걱정이 됩니다. 서울에서 자취를 하며 국비 학원에 다니는 게 좋을까요? 아니면 편입준비에 집중하며 인강으로 독학하는 게 나을까요? 감사합니다!

  • 포트폴리오
  • 면접
다람쥐 댓글 2 좋아요 0 조회수 987

5.4 그람슈미트과정 질문입니다.

미해결

선형대수학개론

14:20초쯤 설명해주시는 vj = cvj로 치환해도 orthogonal basis라는 부분에서 c = 0 일때는 안되는거죠? basis에 0벡터가 들어가면 linearly dependent해져버리니까 Basis에는 절대 0벡터가 들어갈 수 없다고 기억하고있어요 따로 c = 0 일때는 안된다는 언급이 없어서 헷갈려서요

  • 선형대수학
허룡 댓글 1 좋아요 0 조회수 471

Controller Test 시 Repository 사용 관련 질문입니다.

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

안녕하세요 호돌맨님 !! 강의 하면서 항상 궁금했던 점인데, 저는 Controller Test 를 End-To-End Test 용도로 자주 활용하고 있는데요, 이러면 Repository Method 를 Controller Test 에서 직접적으로 사용하는 것보다 Service 단 로직을 거쳐 Repository 의 Method 가 호출되도록 하는게 맞는걸까요 ? 호돌맨님은 항상 Controller Test 로직 짜실 때 Repository 의 save() 와 같은 메서드를 한번에 호출해서 사용하는 걸보고 질문 드립니다 !

  • spring-boot
  • test
전병준 댓글 1 좋아요 1 조회수 1012

이 강의를 수강 하면 1.25 버전 강의는 할인 안되나요?

미해결

그림으로 배우는 쿠버네티스(v1.35)

안녕하세요 책과 강의 잘 봤습니다. k8s 1.25 버전 강의가 새롭게 올라 왔더라구요~ k8s가 버전이 릴리즈 될때마다 기능적으로 변경되는 부분이 적지 않던대요... 1.24 강의를 수강한 수강생은 1.25 할인 같은거 안되나요?

  • docker
  • kubernetes
신영우 댓글 1 좋아요 0 조회수 298

강의 도중 질문사항있어 글 남깁니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 프로젝트 생성부분 강의에서 openjdk 11.0.19 버전과 스프링부트 2.7.12버전으로 start.spring.io 사이트에서 파일을 받아서 진행하고 있는데 요런 warning이 나오고 있어서 질문드립니다.

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

인기 태그

인프런 TOP Writers

주간 인기글