inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

강의를 다 들은 후 공부는 어떻게 하는게 좋을까요?

미해결

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

강의를 들으면서 코드를 다 따라 쳐보고, 적당히 필기하면서 듣고... 그러고 있는데 강의를 다 들으면 해당 내용들에 대해 어떻게 공부를 해야하나요?? 강의 전체 한바퀴를 다 돌린 후에 어떻게 공부를 해야하는지 궁금합니다 안보고 직접 만들기에는 제가 너무 실력이 딸리는데.... 추천하시는 공부법이 있을까요???

  • 공부법
  • java
  • spring
  • 공부
  • spring-boot
  • MVC
팡휘 댓글 1 좋아요 2 조회수 1474

Page를 1부터 시작하기(Pageable, Page 커스텀) 질문 있습니다.

미해결

실전! 스프링 데이터 JPA

안녕하세요. 강의 열심히 듣는 중에 궁금한 점이 있습니다. 17:30초 쯤에 Page를 1부터 시작하기 부분에서 1. Pageable, Page를 파리미터와 응답 값으로 사용히지 않고, 직접 클래스를 만들어서 처리한다. 그리고 직접 PageRequest(Pageable 구현체)를 생성해서 리포지토리에 넘긴다. 물론 응답값도 Page 대신에 직접 만들어서 제공해야 한다. 이 부분을 직접 구현해보려고 했는데 제가 놓치는 부분이 있는 건지 잘 안 되더라구요. 그래서 https://inflearn.com/questions/201572 이 질문에 답변해주신 분의 블로그를 참고하여 커스텀을 해봤습니다. package study.datajpa.dto; import lombok.Getter; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Slice; @Getter public class PageableCustom { private boolean first; private boolean last; private boolean hasNext; private int totalPages; private long totalElements; private int page; private int size; public PageableCustom() { } public PageableCustom(PageImpl page) { this.first = page.isFirst(); this.last = page.isLast(); this.hasNext = page.hasNext(); this.totalPages = page.getTotalPages(); this.totalElements = page.getTotalElements(); this.page = page.getNumber() + 1; this.size = page.getSize(); } public PageableCustom(Slice slice) { this.first = slice.isFirst(); this.last = slice.isLast(); this.hasNext = slice.hasNext(); this.page = slice.getNumber() + 1; this.size = slice.getSize(); } } package study.datajpa.dto; import lombok.Getter; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.SliceImpl; import java.io.Serializable; import java.util.List; @Getter public class PageCustom<T> implements Serializable { private List<T> content; private PageableCustom pageableCustom; public PageCustom(List<T> content, Pageable pageable, long total) { this.content = content; this.pageableCustom = new PageableCustom(new PageImpl(content, pageable, total)); } public PageCustom(List<T> content, Pageable pageable, boolean hasNext) { this.content = content; this.pageableCustom = new PageableCustom(new SliceImpl(content, pageable, hasNext)); } } @GetMapping("/memberscustom") public PageCustom<MemberDto> listCustom(Pageable pageable) { Page<MemberDto> map = memberRepository.findAll(pageable).map(MemberDto::new); return new PageCustom<MemberDto>(map.getContent(), map.getPageable(), map.getTotalElements()); } 결과적으로는 커스텀에 성공했지만 코드 내용부분에서 뭔가 아쉬운 부분이 있더라구요. 이게 블로그 보면서 작성한 MemberController 단 내용인데, 보시면 listCustom(Pageable pageable) 에서 Pageable pageable 이 파라미터를 그대로 하지말고 이 부분 또한 커스텀해서 PageRequest.of()를 이용하라고 설명하시더라구요. 혹시 PageRequest.of()를 활용해서 코드를 좀더 최적화 할 수 없을까요? 제가 놓치는 부분이 있는 것 같은데 잘 떠오르지 않아서 이렇게 질문 드립니다! https://drive.google.com/file/d/1I__dQwuBmtkUdvT5RahN8ksF3Tr21UP8/view?usp=sharing 아! 제 프로젝트 구글 링크 드립니다!ㅎㅎ 항상 양질의 강의 감사합니다!

  • spring-boot
  • java
  • JPA
  • spring
Mr.Lee 댓글 1 좋아요 0 조회수 3092

jpa 업데이트 해도 hibernate가 생성 되지 않습니다.

해결됨

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

강의 따라 코끼리 모양을 눌렀는데 external libraries에 hibernate도 안뜨고 그래서 그런지 member클래스 위에 Entity도 사용하지 못 합니다

  • spring-boot
  • spring
  • MVC
  • java
박준형 댓글 1 좋아요 0 조회수 674

하나의 컨슈머가 서로 다른 토픽을 subscribe하면

미해결

카프카 완벽 가이드 - 코어편

강의 예시로 들어주신 것 처럼 하나의 컨슈머가 서로 다른 토픽을 subscribe해서 서로 다른 메시지를 취합(?)해서 새로운 데이터를 생성하여 DB에 적재하거나 다른 토픽으로 전송하신다고 하셨는데요. A 토픽에 들어오는 메시지와 B 토픽에 들어오는 메시지의 짝(?)을 어떻게 맞출 수 있나요...? 예시처럼 A 토픽에서 poll한 메시지의 order-id 는 1인데, B토픽에서 poll한 메시지의 order-id는 2인 경우에는 취합할 수 없는 데이터이기 때문에, B토픽에서 poll하는 메시지의 order-id가 1이 나올 때까지 어떠한 조치를 취해야 하지 않을까라는 생각이 들었습니다.

  • 데이터 엔지니어링
  • Kafka
이화평 댓글 2 좋아요 0 조회수 651

강제초기화 후, hibernate5Module 미주입시 오류에 대해

해결됨

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

@SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } //@Bean // Hibernate5Module hibernate5Module() { // Hibernate5Module hibernate5Module = new Hibernate5Module(); // return hibernate5Module; // } } hibernate5Module을 의존성 추가하지 않고 강제초기화를 해보았는데 오류가 나더라구요. 강제 초기화를 했고 sql문은 나갔을텐데 오류가 나는게 의아하더라구요. @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1() { List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName();//강제 초기화 order.getDelivery().getAddress(); } return all; } 디버깅을 해보았는데 Member와 Delivery의 sql이 나가고 return에서 오류가 나더라구요. order->프록시->영속성컨택스트로 이어지고 강제초기화를 해서 Member와 Delivery는 영속성 컨택스트에 담겼지만 return에서 Order의 Member와 Delivery에는 프록시값이 가리키는 영속성컨택스트가 아닌, 프록시까지만 json으로 변환하기때문에 오류가 난다고 생각하는게 맞는 걸까요? 그리고 그 프록시를 영속성컨택스트로 바꿔서 변환해주는게 hibernate5Module의 역할이라고 보면 될까요?

  • spring
  • java
  • JPA
  • spring-boot
김재준 댓글 1 좋아요 3 조회수 740

sql문

해결됨

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

findById 함수에서 select * from member where id = ? 라는 sql 문이 나오는데 위 sql문에서 ?는 무슨 조건을 뜻 하는 조건 인가요??

  • spring
  • java
  • MVC
  • spring-boot
박준형 댓글 1 좋아요 0 조회수 429

cmd창에서 build시 에러

해결됨

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

안녕하세요 인텔리제이에서 실행시에는 오류 없이 잘 작동하는데 cmd창에서 gradlew build 입력후 빌드 진행하면 아래와 같은 에러가 뜹니다 자바 버전 관련 에러인 것 같아서 설정도 모두 바꿔보고 아예 스프링 프로젝트도 삭제해서 java11로 다시 만들어도 동일한 오류로 빌드가 안되고 있습니다 아래는 인텔리제이 설정입니다. 자바 버전입니다 프로젝트 dir입니다 스프링 프로젝트 다시 만들어도 안돼서 idea 파일 지우고 다시 재실행해보았는데도 안되네요.. 인텔리제이에서는 잘 실행되지만 cmd빌드시에만 해당 오류가 뜨는게 답답해서 문의글 올려봅니다 감사합니다

  • MVC
  • spring-boot
  • spring
  • java
올로 댓글 3 좋아요 0 조회수 1054

서비스 로직에서 saveAndFlush 질문입니다.

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요. 먼저 알차고 좋은 강의 만들어 주셔서 감사하단 말씀을 드리고 싶습니다 ㅎㅎ 강의를 보다보니 서비스 로직에서 saveAndFlush 를 해주고 있는데 @Transactional 어노테이션이 있어서 디비에 반영이 잘 될거 같은데 saveAndFlush 를 해주는 이유가 따로 있을까요? 그리고 저는 보통 save 를 사용했는데 saveAndFlush 를 사용하는 다른 특별한 이유가 있는지 궁금합니다.

  • spring
  • java
  • 동시성
opensesame 댓글 2 좋아요 0 조회수 2588

윈도우에서 카프카 토픽 삭제 시, 카프카가 실행이 안됩니다..

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

https://www.inflearn.com/questions/644825 제가 예전에 올린 글입니다. 질문한 글에 댓글을 또 달았었는데 도저히 해결을 할 수 가 없어서 다시 질문올립니다. 제가 윈도우 환경에서 카프카 토픽을 삭제 했는데 그 뒤로 답글로 제시해주신 해결책을 해보려고 해도 해볼 수가 없었습니다.. 즉, C:\Temp 디렉토리 하위에 zookeeper, kafka 폴더가 전혀없고 저의 C:\Temp 아래는 폴더 구조는 다음과 같습니다.. 2020(폴더) HncDownload(폴더) Service.log AUtempR(폴더 - 안에 아무것도 없음) 그리고 기존 에 사용하고 있던 Kafka환경 폴더(강의에서 제공해주신 폴더)를 삭제하고 다시 압축을 풀어서 압축을 푼 경로에 zookeeper와 kafka를 실행해도 zookeeper는 실행되고 kafka는 실행되지 않습니다... 즉, 동일한 에러가 발생하네요.. 대체 어떤 걸 지워야지 다시 kafka서버가 정상 실행될까요? 참고로 자료 올려주신 윈도우용 카프카 파일 전부 삭제하고 다시 압축 풀고 설정해도 토픽목록은 동일한 에러로 안보이고, 카프카 역시 동일한 에러로 켜지지 않습니다.. 감사합니다.

  • 카프카
  • Kafka
  • kafka
  • msa
  • spring-boot
  • JPA
  • architecture
  • spring-cloud
리자몽 댓글 2 좋아요 0 조회수 894

카프카 토픽안쓰고 저장하면 대용량 처리에 불리한 이유가 있나요?

미해결

Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)

안녕하세요 강의를 듣다가 궁금증이 카프카 토픽을 안쓰고 저장하면 대용량 처리에서 불리한 이유가 있나 싶어 궁금해 졌습니다. 우선 인터넷에서 검색해서 찾아본 봐로는 그러면 카프카 사용하면 대용량 처리에 유리한 이유가 병렬처리에 의한 데이터 처리율 향상 : 카프카는 아래 보실 아키텍처에 보면 데이터를 병렬로 처리함으로서 데이터를 빠르고 효과적으로 처리할 수 있습니다. disk에 순차적으로 데이터를 적재하기 때문에 임의 접근(random access) 방식보다 훨씬 더 빠르게 데이터를 처리합니다. 데이터 유실 방지 : disk에 적재되기 때문에 만약 불의의 사고로 서버가 다운되었을 시에도 데이터가 유실되는 일 없이 재시작하여 기존 데이터를 안정적으로 처리 가능합니다. 클러스터링에 의한 고가용성 서비스 : Scale-out이 가능하여 시스템 확장이 용이하며 어떤 하나 혹은 몇 개의 서버가 다운되도 서비스 자체가 중단될 일 없이 시스템이 운용가능합니다. 출처 : https://engkimbs.tistory.com/691 정도로 보이는데요 그렇다면 토픽을 사용하는 경우와 카프카 커넥트를 사용하는 경우가 있었는데 (프로듀서, 컨슈머를 파이프라인을 매번 구성하기 힘들어서 사용하는 것으로 알고 있습니다.) 그러면 우선 첫번째 질문 은 토픽을 사용할 때와 카프카 커넥트를 사용할 때 모두 카프카가 알아서 병령처리를 해주고 데이터 유실 방지를 해주는 건가요?? 또한 두번째 질문 은 강의에서 order-service를 여러 개 띄우고 주문 요청을 여러 번 하면 여러 개의 order-service의 db에 나눠서 저장을 하는 식으로 했는데요 현업에서 MSA환경에서 프로젝트할 때도 예를들면 order-service, user-service, catalog-service 각각 db를 하나씩 사용하는게 일반적인 방법인가요? 즉, 각 서비스마다 db를 하나씩 두는 것이 일반적인 방법인가요? 세번째 질문 은 강의에서 order-service를 여러개 띄우고 하나의 db에 저장하는 방식을 사용했는데 즉, Kafka Topic에 설정된 Kafka Sink Connect를 사용해 단일 DB 에 저장 했서 데이터를 동기화 했는데. 그러면 카프카 커넥트를 사용하지 않고는 여러개의 order-service를 단일 db에 저장할 수 없나요?

  • 카프카
  • architecture
  • kafka
  • spring-boot
  • JPA
  • spring-cloud
  • Kafka
  • msa
리자몽 댓글 1 좋아요 0 조회수 630

yolo v5 labelimg 사진추가 오류

미해결

yolov5에서 labelimg를 사용하는데 labelimg로 라벨링 작업을 한 후, 새로운 이미지들이 생겨 이전에 라벨링 작업을 했던 이미지 폴더에 새로운 이미지들을 추가하여 라벨링 작업을 이어서 했더니, 전에 작업했던 라벨링들이 다 지워지는 현상이 발생했습니다. labelimg를 사용하여 전에 라벨링 작업했던 것과 새로 라벨링 작업한 것을 합쳐도 이런 현상이 발생하는데, labelimg에서 새로운 이미지를 추가하려면 모든 이미지들을 처음부터 라벨링 다시 해야 하나요? 아니면 해결방법이 있을까요?

  • 욜로
  • yolov5
  • labelimg
  • 라벨링
  • labeling
  • 인공지능
  • 파이썬
  • python
  • 욜로v5
wnsgur0473 댓글 0 좋아요 0 조회수 477

양방향 연관관계 편의 메소드, 생성 메소드에 대해 질문드립니다.

해결됨

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

안녕하세요. 항상 강의 잘 보고 있습니다. https://www.inflearn.com/questions/16235의 답변을 보면 setter를 외부에 노출을줄이기위해 Entity의 setter의 사용을 지양하는거로 이해했고, 워낙 복잡하게 엔티티들을 사용하실텐데 강의 예제에서 사용하는 Member와 Order, OrderItem의 엔티티를 실무에서 사용하는거처럼 연관관계메소드랑 생성메소드를 임의로 작성해봤습니다. @Entity @Getter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @OneToMany(mappedBy = "member") private List<Order> orders = new ArrayList<>(); @Builder private Member(String name) { this.name = name; } /== 생성 메소드 == / public static Member createMember(String name) { return Member.builder().name(name).build(); } } @Entity @Getter public class Order { @Id @GeneratedValue @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; //주문 회원 @OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @Builder private Order(Member member) { /== 연관관계 메소드 ==/ this.member = member; member.getOrders().add(this); } /== 생성 메소드 == / public static Order createOrder(Member member) { return Order.builder().member(member).build(); } } @Entity @Table(name = "order_item") @Getter public class OrderItem { @Id @GeneratedValue @Column(name = "order_item_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; //주문 @Builder private OrderItem(Order order) { /== 연관관계 메소드 ==/ this.order = order; order.getOrderItems().add(this); } /== 생성 메소드 == / public static OrderItem createOrderItem(Order order) { return OrderItem.builder().order(order).build(); } } 제가 예제를 실무에서 setter를 제거하고 builder를 사용하는 방법인거처럼 생각하고 바꿔보았는데, 연관관계 메소드를 저렇게 변경하는게 맞는방법인가요? @OneToMany를 가진엔티티에서 생성자에 아무것도 안해줘도 되는것인지? 아니면 어떻게 setter를 제거하고 연관관계메소드를 정의하시는지 궁금합니다.

  • spring
  • spring-boot
  • java
  • 웹앱
  • JPA
승윤 댓글 1 좋아요 0 조회수 660

레티나 디스플레이 관련 질문

미해결

공공데이터로 파이썬 데이터 분석 시작하기

윈도우에서는 레티나 디스플레이 코드로 설정을 해도 표에서 달라진게 없는거같은데 혹시 맥 전용 기능인가요..?

  • numpy
  • python
  • pandas
연합시스템 dev 계정 댓글 1 좋아요 0 조회수 300

main문 실행

미해결

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

Spring Project 처음 open해서 열었는데 위와 같이 경로를 찾을 수 없다고 나옵니다 ㅠㅠ 또 강의에서 main문 실행하는 초록색 커서가 나타나지 않습니다.

  • spring
  • spring-boot
  • MVC
  • java
alsrb3560 댓글 11 좋아요 0 조회수 1407

워드클라우드 실행 오류

미해결

공공데이터로 파이썬 데이터 분석 시작하기

이와같은 오류메시지로 실행이 안되는데 해결책 알수 있을까요 선생님 ㅜ

  • numpy
  • python
  • pandas
능함가 댓글 1 좋아요 0 조회수 453

비쥬얼 스튜디오 2017은 어서 다운받나요??

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

비쥬얼 스튜디오 2017은 어서 다운받나요?? 현재버젼은 좀 다른점이 있어 k번쨰 출력 셋팅부분에서 나아가질 못하네요

  • python
  • 코테 준비 같이 해요!
이우연 댓글 2 좋아요 0 조회수 2698

JAVA class객체 사용 시 에러 질문입니다

미해결

수강 중인 강의와 완전 똑같게 하고 몇 번을 봐도 오타는 없는 것 같은데 x에 대입하는 부분에서 자꾸 에러가 나네요. 강의가 구버전이라 그사이 업데이트가 된건지 구글링을 어떻게 해야 될지도 모르겠네요 도와주세요. 선배님들!

  • java
  • class
김규민 댓글 0 좋아요 0 조회수 200

[재질문] 왜 num은 int로 바꾼 후에 다시 str() 로 바꿔줘야 하나요 ?

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

입력 받을 때 부터 num은 str으로 받고, m은 int 로 바꿀 수는 없는 걸까요? -- 어떻게 하면 num은 str으로 받고, m은 int로 받을 수 있을까요?

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

중복회원예외 test fail

미해결

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

안녕하세요 MemberServiceTest실행 도중에 계속 이러한 에러가 발생하여 질문 드립니다! 제 memberservicetest 코드입니다 감사합니다! import jpagroup.jpashop.domain.Member; import jpagroup.jpashop.repository.MemberRepository; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Autowired EntityManager em; @Test public void 회원가입() throws Exception { //given Member member = new Member(); member.setName("kim"); //when Long savedId = memberService.join(member); //then assertEquals(member, memberRepository.findOne(savedId)); } @Test(expected = IllegalStateException.class) public void 중복_회원_예외() throws Exception { //given Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); //when memberService.join(member1); try { memberService.join(member2); //예외가 발생해야 한다!!! } catch (IllegalStateException e) { System.out.println("test실패"); return; } //then Assert.fail("예외가 발생해야 한다."); } }

  • 웹앱
  • JPA
  • spring
  • spring-boot
  • java
김아리 댓글 1 좋아요 0 조회수 742

강의가 너무 맥 위주라서 힘드네요..

미해결

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

솔직히 현업 들어가면 노트북으로 개발하는 거 아닌 이상 다 윈도우로 개발 할 건데.. ㅠ 회사에서 맥지원해주지 않는 한엔.. 윈도우는 경로를 어떻게 들어가야 하는 건가요..? 맥에선 ll쓰고 뭐쓰면 되는데.. 윈도우는 따로 뭘 해야 하는 건가요? 강의가 너무 맥 위주라서 막히지 않아도 될 곳에서 막히는 것 같습니다.. 혹시 앞으로 다른 결제해서 보는 것들도 다 맥 위주인가요..? 단축키도 그렇고.. 사용법도 그렇고.. 보통은 윈도우 개발 환경에서 배우지 않나 싶습니다.. 해외사람이면 몰라도요.. 강의를 위해서 제가 맥을 구비해야 하는 걸까요-_-;; 아니면 윈도우 설명이라도 좀 해주셔야 하는 거 아닌지.. 이럴때마다 죄송한 말이지만 너무 스트레스 받습니다 ㅜㅜ 그래도 강의는 너무 재미있게 잘 보고 있습니다 ㅠ 기분 상하셨다면 죄송합니다.

  • MVC
  • java
  • spring-boot
  • spring
코딩이재미있어! 댓글 2 좋아요 7 조회수 1522

인기 태그

인프런 TOP Writers

주간 인기글