inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

TypeError: nextCallback is not a function (next-redux-wrapper 7.0)

미해결

[리뉴얼] React로 NodeBird SNS 만들기

next-redux-wrapper가 7.0.0 버전으로 업데이트되면서 수정사항이 생겼습니다. 에러 Server Error TypeError: nextCallback is not a function 해결 방법(변경사항) version 6.0.2 > const getServerSideProps = wrapper.getServerSideProps(async (context) => { context.store.dispatch(~~~); context.store.dispatch(END); await store.sagaTask.toPromise(); }); version 7.0.0 > const getServerSideProps = wrapper.getServerSideProps( (store) => async ({ req, res, ...etc }) => { store.dispatch(~~~); store.dispatch(END); await store.sagaTask.toPromise(); } ); 추가적으로 동적라우팅 (강의 : 다이나믹 라우팅) 할 때도 (req, res, ...etc) > (req, res, params, ...etc) 로 수정하시면 됩니다. next-redux-wrapper 참고 자료(getServerSideProps) (https://github.com/kirill-konshin/next-redux-wrapper#getserversideprops) 변경사항 (https://github.com/kirill-konshin/next-redux-wrapper#upgrade-from-6x-to-7x)

  • express
  • nodejs
  • react
  • redux
  • Next.js
ws00 댓글 6 좋아요 11 조회수 1333

회문문자열 질문

미해결

자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비

public String mysolution(String str) { Boolean answer = true; str = str.toLowerCase(); char[] c = str.toCharArray(); int lt = 0 , rt = str.length()-1; while(lt<rt) { if(c[lt]!=c[rt]) { answer = false; break; } lt++; rt--; } return answer ? "YES" :"NO"; } 위처럼 문자열바꾸기 할떄 썼던 방법을 쓰는것 보다 강의에서 풀어주신 방법이 더 효율적인 이유가 궁금합니다!!

  • java
  • 코테 준비 같이 해요!
댓글 1 좋아요 0 조회수 298

양방향 관계에서 '주인이 아닌쪽은 읽기만 가능'의 의미가 궁금합니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요, 김영한 강사님. 양방향 매핑 관계에서 '주인이 아닌쪽은 읽기만 가능하다' 라고 설명해 주셨는데요, 이 의미가 잘 이해가 가지 않습니다. 저는 이를 이해하기로, Member(하인) - Order(주인) 관계에서 List<Order> orders = member.getOrders(); 로 가져온 order 객체들에 대해 수정이 불가능하다라고 이해를 했는데요, 간단한 실험을 해보니 orders.forEach(order -> { order.setOrderStatus(OrderStatus.CANCEL); entityManager.persist(order); }); 의 방법으로 order들이 update 되는 것을 확인할 수가 있었습니다. 반대로 order.getMember(); 로 가져온 member들에도 수정이 가능했고요. 혹시 제가 잘못 이해하고 있는것일까요? 감사합니다.

  • JPA
  • java
이남규 댓글 1 좋아요 1 조회수 235

p6spy 성능 질문 드립니다.

해결됨

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

안녕하세요. 강의를 듣고 사이드 프로젝트를 하면서 `p6spy` 를 잘 활용하고 있는데요. 강의 내용 중에 prod 에서는 성능 관련을 확인 후 사용해야 된다는 내용을 보고 궁금해졌습니다. 처음에는 그냥 `build.gradle` 에서 prod 설정에만 안뜨게 하면 되겠지 (dev, test 에서는 되는 것을 의도) 라고 생각했는데, profile 에 따라 `build.gradle` 이 동적으로 움직이는 건 application.xml 이랑은 다르게 좀 어렵더라구요; 그래서 질문은 2개 입니다. 1. profile 에 따라 `build.gradle` 의 설정 (특히 dependency) 이 동적으로 움직이게 하는 것을 어떻게 하면 좋을까요? 2. `p6spy` 와 같은 외부 라이브러리의 성능 검증은 어떻게 하는 것이 좋을까요?

  • p6spy
  • JPA
  • java
  • spring-boot
  • spring
  • 웹앱
Byung Hyun Choi 댓글 1 좋아요 0 조회수 424

size 함수 관련

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요. 영한님. size 함수의 결과값을 확인하고 싶어서 똑같이 입력했는데 for(Integer s : result) 부분에서 s = 0 이 출력되지 않습니다. 아래 코드에서 어느 부분이 잘못됐는지 알려주시면 감사하겠습니다. try { Member member1 = new Member() ; member1.setUsername( " 관리자 1" ) ; em.persist(member1) ; Member member2 = new Member() ; member2.setUsername( " 관리자 2" ) ; em.persist(member2) ; em.flush() ; em.clear() ; String query= "select size(t. members ) from Team t" ; List<Integer> result = em.createQuery(query , Integer. class ) .getResultList() ; for (Integer s : result){ System. out .println( "s = " + s) ; } ; tx.commit() ; }

  • java
  • JPA
지은 댓글 3 좋아요 0 조회수 334

OrderController에 대해서 궁금한게 생겼어요

미해결

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

안녕하세요!! 컨트롤러를 보다가 단순 호기심이 생겨서요 MemberController와 ItemController에서는 회원가입을 하거나 상품을 등록할때, MemberForm클래스나 ItemForm클래스를 만들어서 파라미터값으로 넘겨주셨습니다. 그런데 OrderController에서는 주문을 할 때 OrderForm을 만들지 않고, 하나하나 @RequestParam으로 넘겨준 특별한 이유가 궁금해서 질문드렸어요 별다른 이유가 없으면 OrderForm을 만들어서 넘겨도 되는거죠??

  • spring-boot
  • java
  • spring
  • JPA
  • 웹앱
김은재 댓글 1 좋아요 3 조회수 329

vscode 터미널창에서 node 명령어 질문이 있습니다!

해결됨

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

npm run start 해서 mongoDB connected.. 됐다고 뜨고 다시 그아래 뭔가 명령어를 칠만한게 작동이 안되더라구요. 따로 되는 방법이 있을까요..?

  • react
  • nodejs
Nat 댓글 2 좋아요 0 조회수 339

map<Long,Member>를 넣은 이유가 궁금합니다!

미해결

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

Member class에는 long id, String name을 가지고 있어서 id값에 Long을 주는건 이해가 되는데 name값을 넣어주려면 Member가 아니라 String이 들어가야되는게 아닌가요?? 잘 이해가 안되서 설명 부탁드리겠습니다!

  • java
  • spring
  • spring-boot
  • MVC
wjdtlr0604 댓글 1 좋아요 1 조회수 721

기본키 전략 max + 1 문의

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 영한님 JPA 책 부터 인프런의 여러 좋은 강의들 항상 잘 듣고 배우고 있습니다. 간혹 기본키를 숫자 형태로 max + 1로 하는 레거시한 프로젝트를 만나는 경우가 있는데요. 이 경우 동시성 이슈 관련하여 JPA에서 어떤 전략을 사용해야하는지 궁금합니다. (Spring Data JPA 사용 중입니다) 구체적인 예시를 들면 * 사용자 - 식단카드라는 두 개의 테이블이 존재합니다. * 식단카드에는 card_key, user_id를 복합키로하며 그 외 카드 식단 정보가 있습니다. * 식단카드 생성시 user_id를 조건으로 검색하여 가장 높은 card_key를 가져와 + 1해서 card_key를 만들어 저장합니다. 이 때 클라이언트 단에서 비동기 처리로 여러 식단카드를 등록하려다보니 먼저 실행된 요청 쓰레드의 트랜잭션이 성공하고, 두번째 실행된 요청 쓰레드가 먼저 실행된 쓰레드랑 같은 최근값을 읽고 + 1해서 커밋하려니 중복된 키 오류가 발생합니다. 제가 시도해본 방법은 여러가지였는데, 모두 잘 안되더라고요. MariaDB innoDB 엔진 사용하고요. 기본적으로 JPQL을 사용하여 max + 1 값을 가져오는 Repository 인터페이스 메서드 선언 시도 해본 방법 1. @Transactional isolation level을 SERIALIZBLE 로 변경 * 해결 되지 않음 2. 비관적 락 @Lock(LockModeType.PESSIMISTIC_WRITE) * 해결 되지 않음 * 구글링 찾아보니 기본키 인덱스 이외의 다른 인덱스가 있을 경우 동작하지 않는다고 하는데, 정확한 공식 문서 내용을 찾아볼 수가 없네요. 3. JPQL NATIVE QUERY 사용하고 FOR UPDATE로 LOCK * 해결 되지 않음 결국 Spring Retry 연결하여 실패시 계속 재시도하여 들어가게끔 처리는 했는데, 어거지로 해결한 느낌이라 계속 속에 남아있네요 ㅜㅜ 트랜잭션이나 LOCK에 대해서 공부해서 적용해봐도 안되는 이유를 모르겠습니다ㅜㅜ

  • JPA
  • java
훈마로 댓글 2 좋아요 10 조회수 4121

강사님 프로그램 시작시 질문있습니다

미해결

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

제가 야생형 코스를 따라가고 있어서 아직까지 이해가 잘 가지 않고 그냥 따라치기 바쁘네요 ㅎㅎ 다름이 아니라 JPA를 사용하면 어플리케이션 실행 할때마다 테이블을 계속해서 만들고 시작하나요 ?? 그리고 제가 디비가 약해서 디비 관계에대해 잘 이해 못하는 부분들이 조금씩 있고 각 어노테이션들의 기능들을 기본편을 보지않고 와서 그런지 모르고 가고 있는데 계속해서 진도 진행해도 될까요?

  • 웹앱
  • JPA
  • java
  • spring
  • spring-boot
원석나 댓글 2 좋아요 0 조회수 201

extends JpaRepository<> vs @Repository 질문

미해결

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

안녕하세요 기본편 강의 잘 들었습니다! 질문이 하나 있는데, DB에 접근하는 클래스를 만들 때 스프링 공식 사이트에서는 extends JpaRepository<> 있고 현재 강의에서는 @Repository로 접근을 하는데 둘의 차이가 있는 것 인가요? 추상적인 질문이었다면 죄송합니다 ㅠㅠ

  • spring
  • java
  • JPA
  • spring-boot
  • 웹앱
차가운물 댓글 3 좋아요 2 조회수 2336

@Transactional 어노테이션 질문드립니다

미해결

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

안녕하세요 영한님 Jpa 로 단순 조회기능을 이용하게될때 Service Layer 에서 @Transactional(readOnly=true) 를 메소드에 선언해서 사용했었는데요 테스트하다보니 @Transactional 어노테이션 없이 사용해도 조회도되고 controller 단에서도 영속성컨텍스트가 살아있는걸로 확인이 되었습니다 (osiv 는 켜놓았습니다) findById or findAll 같은 단순 조회기능에서는 @Transactional 은 없어도 되는건가요? spring 에서는 기본적으로 트랜잭션범위와 영속성컨텍스트의 범위가 동일하다고 알고있는데 @Transactional 설정을 안해줘도 조회기능에선 영속성컨텍스트가 유지된다고 보면될까요 ? 아니면 @Transactional(readOnly=true) 는 @Transactional 없이 동작하는것과 어떤 차이가 있는걸까요 ㅠㅠ

  • jpa
  • spring-boot
  • db
  • JPA
  • java
  • spring
chiyodad 댓글 3 좋아요 6 조회수 2440

ItemServiceImpl.java 클래스를 만들지 않은 이유

해결됨

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

강사님 안녕하세요, 강의를 듣다 궁금한 점이 있어서 글 올립니다. 보통 ItemService 같은 서비스 클래스는 구현체를 만드는 것으로 알고 있는데, 혹시 강의처럼 ItemServiceImpl 클래스를 안만들고 바로 구현해도 크게 문제되지는 않는건지 궁금합니다. (JPA라서 그런건지 아니면 예제이기 때문에 단순화 시키신건지 등 ..) 답변 부탁드리겠습니다! 감사합니다!!

  • ServiceImpl
  • mvc
  • JPA
  • java
  • 인터페이스
  • 웹앱
  • spring-boot
  • spring
쿠카이든 댓글 1 좋아요 2 조회수 634

handleChangeInput에서 handleReset함수를 return하는 이유가 궁금합니다.

해결됨

[React 1부] 만들고 비교하며 학습하는 React

handleChangeInput 함수에서 handleReset 함수를 실행하는 것은 이해가 되는데요. 왜 return 구문을 쓰신건지 잘 모르겠습니다 ^^;; handleChangeInput 함수 자체도 별도의 return을 해주는 것이 없는것 같아서요. handleChangeInput(e) { const searchKeyword = e.target.value; if (searchKeyword.length <= 0) { return this.handleReset(); // 이 부분 입니다! } this.setState({ searchKeyword }); }

  • MVC
  • react
yodj 댓글 1 좋아요 3 조회수 250

자료실에서 코드 확인하려고 다운 받았는데

미해결

Do it! 자바 프로그래밍 입문 with 은종쌤

이지스퍼블리싱에서 자료실에서 연습문제 답 확인 겸 다운 받았는데 이걸 어떻게 열어서 볼 수 있나요? 이클립스로 열어보려고 하는데 오류만 뜨네요

  • java
김당고 댓글 0 좋아요 0 조회수 313

@MappedSuperclass 질문

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 조금 초보적인 질문인데 @MappedSuperclass 를 추상 클래스로 사용했는데 인터페이스로 사용을 할 수 있나요? 만약 기존 엔티티가 이미 상속을 받고 있을 때 추상클래스 상속이 안되면 어떤식으로 풀어가야할지 궁금합니다.

  • java
  • JPA
lee3534255 댓글 3 좋아요 1 조회수 447

포스트맨에서 아래와 같은 오류가 발생합니다.

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

구글링을 해봐도 모르겠네요 ㅠㅠ POST http://http:/localhost:5000/register Error: getaddrinfo ENOTFOUND http ▶ Network ▶ Request Headers Content-Type : text/plain User-Agent : PostmanRuntime/7.28.0 Accept : */* Cache-Control : no-cache Postman-Token : 08248e94-9645-4529-9d87-bb1278bcb7f8 Host : http: Accept-Encoding : gzip, deflate, br Connection : keep-alive ▶ Request Body ▶ POST http://http:/localhost:5000/register ▶ POST http://http:/localhost:5000/register ▶ POST http://localhost:5000/register ▶ POST http://localhost:5000/register ▶

  • nodejs
  • react
학생1 댓글 0 좋아요 0 조회수 322

값 타입에서 나오는 사이드 이펙트

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

인스턴스 공유로 인해 발생될수 있는 문제점은 값 타입이 아닌 entity로 구현될시에는 발생되지 않나요? 발생되지 않으면 어떤점이 달라서 발생되지 않는지 설명 부탁드리겠습니다

  • JPA
  • java
이진석 댓글 1 좋아요 0 조회수 392

선생님 CRA를 통해 만들었을때 생긴 .git은 삭제하는게 맞을까요?

미해결

따라하며 배우는 노드, 리액트 시리즈 - 기본 강의

서버를 만들때 gitinit을 통하여 프로젝트를 관리하고있는데 CRA를 실행하면 내부에 또 하나의 .git이 생기는것은 어떻게 하는것이 좋을까요? 외부폴더에서 관리하고있느니 내부에있는 .git은 삭제하면 될까요?

  • cra
  • git
  • react
  • nodejs
ChipmunkDev 댓글 1 좋아요 0 조회수 481

자바 코드로 직접 스프링 빈 등록하기 예제에서 에러가 발생합니다.

미해결

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

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 스프링 빈과 의존관계에서 자바코드로 직접 스프링빈 등록하기부분을 듣고있습니다. 회원 서비스와 회원 리포지토리의 @Service, @Repository, @Autowired 애노테이션을 제거하고 @bean 설정할때 @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } 에서 에러가납니다. 에러 메시지는 ' java: incompatible types: hello.hellospring.repository.MemberRepository cannot be converted to hello.hellospring.repository.MemoryMemberRepository' 입니다. 캐스팅해야한다고 뜨는데, 수업화면에서는 별도 캐스팅없어도 오류가 발생하지않더라구요 ㅠ 제가 어느부분을 놓친건지 모르겠습니다 ㅠㅠ package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { Member save(Member member); Optional<Member> findById(Long id);//널일경우 대비 Optional<Member> findByName(String name); List<Member> findAll(); } package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.springframework.stereotype.Repository; import java.util.*; public class MemoryMemberRepository implements MemberRepository{ private static Map<Long,Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(),member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } public void clearStore(){ store.clear(); } } package hello.hellospring.service; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class SpringConfig { @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } }

  • java
  • spring-boot
  • spring
  • MVC
hk 댓글 2 좋아요 0 조회수 1509

인기 태그

인프런 TOP Writers

주간 인기글