inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

DDD 적용시 JPA 설계에 대해 궁금한 사항

해결됨

실전! 스프링 데이터 JPA

안녕하십니까 강사님. 좋은 강의 정말 감사합니다. 이번에 강사님께 강의를 듣고 현업에 적용하는 도중 궁금한 사항이 있어 문의하게 되었습니다. 저희는 현재 DDD 를 적용하려고 합니다. DDD 에서는 애그리거트끼리의 관계를 맵핑하는 것을 지양하는 것으로 알고 있습니다. 따라서 저희는 ERD 기준으로 도메인을 설계해보니 실제 나온 도메인을 보면 테이블이 전부 도메인 클래스가 되었고 서로간의 관계를 코딩으로 맺는 부분 (@ManyToOne 등)이 존재 하지 않습니다. 현업에서도 ERD 를 기준으로 도메인 클래스를 나누면 테이블 당 하나의 애그리거트가 나오는 것이 보편적인 사항일까요? DDD 로 개발하다보면 도메인 클래스에 관계를 맺는 부분이 없는게 보편적일까요?

  • java
  • spring
  • spring-boot
  • jpa
김가가가 댓글 2 좋아요 0 조회수 1310

IoC != DI에 대한 질문입니다.

해결됨

Java/Spring 주니어 개발자를 위한 오답노트

안녕하세요,선생님 습하고 더운 여름 몸 건강히 계시길 바랍니다. 강의를 듣는 도중 궁금한 부분이 생겼습니다. DIP와 IoC가 다르다고 말씀하신 부분이, DIP가 의존성 주입을 역전함으로써 제어의 흐름을 바꾸지만 IoC가 의존성을 주입해주는 것은 아니어서 그렇다고 이해되는데 제대로 이해한 게 맞을까요? ㅜㅜ 또, Open-Closed 법칙을 설명해주시는 1:32초 부분에 수정에는 열려있어야 한다는 말씀을 하셨는데 수정 시 많은 메소드 혹은 클래스를 수정해야 하는 경우가 수정에 열려있는 것이 아닌지요 ㅜㅜ... 제가 잘 모르다보니 헷갈려서 질문드립니다!

  • java
  • spring
  • 객체지향
  • 소프트웨어-테스트
nsonestudy2 댓글 2 좋아요 1 조회수 855

database is locked.

미해결

실리콘밸리 엔지니어가 가르치는 파이썬 장고 웹프로그래밍

sqliteBrowser 사용하는 수업에서 db.sqlite3를 열려고 하니, database is locked 라는 메시지가 뜹니다. 그래서 ChatGPT나 Bard... Googling을 이용해봤지만, 저에게 해당될만한 내용이 없네요. 혹시 몰라 재부팅도 해봤습니다. 이거 DB부분만 지웠다가 다시 까는 방법이 있을까요? (makemigrations, migrate 부분)

  • python
  • django
  • bootstrap
  • rest-api
  • drf
bigseoul 댓글 3 좋아요 1 조회수 2711

예외 처리 리팩토링 질문

해결됨

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

안녕하세요. 강의 들으며 재밌고 공부하고 있습니다. 감사합니다. 예외 처리를 util패지키에 모아서 처리하는 것은 이해했습니다. 약간 궁금증 생겨서 문의 남겨봅니다! BookService의 코드 일부분 입니다. 여기서 보면 UserRepository 와 BookRepository 의 findByName 에서 모두 fail()로 예외 처리를 하는데요, 이걸 그냥 리포지토리 계층의 메서드 자체에서 예외를 처리해주면 더 깔끔하지 않을까 하는 궁금증이 생겼습니다. 제가 지금까지 공부하면서는 리포지토리 계층에서 디폴트 메서드를 통해서 처리하는 코드도 봤고, 서비스 계층에서 처리하는 코드도 봐서 어떤 방식을 선호하시는지, 권장 하시는지 궁금합니다! 좋은 강의 감사합니다!

  • java
  • spring
  • kotlin
  • spring-boot
  • 리팩토링
장대영 댓글 1 좋아요 4 조회수 936

인텔리제이 같이 설치하는 과정부터 좀 알려주시면 안될까요 너무 답답하고 짜증나죽겠습니다

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 몰라요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네 [질문 내용] 여기에 질문 내용을 남겨주세요. 처음하는 초심자 입장에서 너무 어렵습니다 일단 설치부터 jdk까지는 꾸역꾸역 구글링해서 깔고했는데 인텔리제이를 설치하고 설치하는 과정에서 어떤 체크사항을 체크해야하고 어디에 저장하고 하는지 하나도 모르고 그냥 "인텔리제이 설치하시오", "자바 jdk 설치하시오" 미리 준비물로 딸랑 해놓고 지금 혼자 깔고 인텔리제이 실행해서 강사님이랑 똑같이 하려는데 처음 run하는것부터 run이 보이지도 않고 막히네요 무료강의도 아니고 돈내고 듣는데 너무 짜증나고 답답합니다 이 질문도 한참있다가 질문답변이 달릴테고... 극초심자를위한 설치부터 하나하나 같이 알려주고 하는방법좀 설명해주셨으면 좋겠습니다 시간아깝고 짜증납니다 정말

  • java
  • spring
  • mvc
  • spring-boot
임규영 댓글 0 좋아요 2 조회수 1026

회귀 실습 중 rmse 결과값 질문

해결됨

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

안녕하세요 선생님 현재 모델링 및 평가(회귀)부분을 학습하고 있습니다. 코드를 따라가면서 실습을 진행하고 있는데, rmse 값이 선생님과 달라 질문 드립니다. 제가 알기로는 모델링을 하는 과정에서 예측한 값이 달라질 수 있고, 이에 따라 평가지표인 rmse 값이 다를 수 있다...라고 알고 있습니다. 그런데 값의 차이 뿐만이 아니라 baseline과 scaler 적용 결과가 좋은지 나쁜지가 달라 질문드립니다. 예를 들어, 선생님께서 하셨을때는 RandomForestRegressor의 baseline이 rmse값이 가장 좋았고(작았고), scaler를 적용했을 때 rmse가 커져서 scaler 적용은 하지 않는게 좋다~라는 내용의 실습이었는데 제가 했을 때는 baseline의 rmse보다 scaler를 적용했을 때의 rmse가 작아 scaler를 적용하는 것이 좋다..는 결론이 나옵니다. 질문을 정리하자면, 모델링을 하는 과정에서 선생님과 제가 실습한 예측값과 rmse가 다른게 맞는지 다른게 맞다 해도 scaler 적용여부 등을 바꿀 수 있을 정도로 예측값과 rmse가 달라질 수 있는지 (추가질문)달라지더라도 선생님 실습값 : 4728.xx 제 실습값 6025.174022213681 이정도로 달라질 수 있는지... (추가질문) 모델링 및 평가(회귀) 24:56에서 수험자는 알 수 없는 영역>y_test로 rmse로 구하시고 결과값이 17909.xx로 나왔는데 여기에서도 charges에 로그변환 한 이후기 떄문에 원래는 np.exp(pred)로 rmse를 구했어야 하는지 일 것 같습니다. 감사합니다.

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

낙관 락 vs 비관 락 실무에서 구체적인 예시를 들어주실 수 있을까요?

미해결

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

낙관 락과 비관 락을 정확히 언제 사용하는지 궁금한데요, 충돌이 잦을 때는 비관 락을 사용한다고 이해하기엔 막연한 느낌이 있어서요, 혹시 실무에서 구체적인 예시를 들어주실 수 있을까요?? 비관적 락이 구현이 훨씬 간단할 것 같은데, 실제로 실무에서 비관적 락이 아닌 낙관적 락을 직접 구현해서 사용할 일이 있는지도 궁금합니다. 충돌이 빈번하게 일어난다면 비관적 락이 더 적합할 수 있다고 하셨는데 이유가 뭔가요? 어떤 부분에서 성능상 이점이 있는지 궁금합니다. 자세하게 설명해주시면 정말 감사할 것 같습니다. 감사합니다!!

  • java
  • spring
  • 동시성
니나니노 댓글 2 좋아요 0 조회수 5534

1 - k 반례가 무엇인지 모르겠습니다. (JAVA)

미해결

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

안녕하세요. 큰돌님 강의 잘 듣고있습니다. 다름이 아니라 아래 코드에서 어떠한 이유로 통과가 안되는지 이유를 모르겠습니다. 감사합니다. public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] cnt = new int[26]; br.readLine().chars().forEach(i -> cnt[i - 'A']++); boolean checkOdd = false; char oddChar = '0'; StringBuilder sb = new StringBuilder(); for (int i = cnt.length - 1; i >= 0; i--) { if (cnt[i] == 0) continue; if (checkOdd && (cnt[i] & 1) == 1) { sb.setLength(0); // sb.append("I'm Sorry Hansoo"); break; } if ((cnt[i] & 1) == 1) { oddChar = (char) (i + 'A'); checkOdd = true; cnt[i]--; } for (int j = 0; j < cnt[i] / 2; j++) { sb.append((char) (i + 'A')); sb.insert(0, (char) (i + 'A')); } } if (Character.isLetter(oddChar)) { sb.insert(sb.length() / 2, oddChar); } System.out.print(sb.toString()); }

  • c++
  • 코딩-테스트
  • java
최찬호 댓글 2 좋아요 0 조회수 513

마이바티스와 테스트 코드

해결됨

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요 강사님 강의 너무 잘 듣고있습니다. 회사에서 Mybatis로 개발 중인데 테스트 코드 작성에 어려움이 있어 질문 드립니다. JPA의 경우 CRUD가 기본적으로 구현되어 있지만, Mybatis의 경우 xml(또는 인터페이스)에 정의된 메서드를 사용하기 때문에 테스트 코드 작성이 어렵더군요.. 만약 Money 테이블이 있고, 해당 Repository에 Select 코드가 없는 경우 어떻게 검증을 해야 좋을까요? 테스트를 위해 xml이나 인터페이스에 새로운 코드를 작성하는 것은 좋은 방법이 아닌 것 같고, Jdbc Template를 이용해봤는데 이 경우에는 데이터가 롤백되지 않는 등의 문제가 있었습니다.( 아마 잘못 사용해서 그런 것 같기도 합니다..) Repository 부분을 Mock으로 Stub하여 테스트를 진행하는 것도 생각해 보았습니다. 이 경우에는 Repository 쿼리를 수정할 때마다 Service에 정의된 Stub도 그에 맞게 계속 수정해야 하는 문제가 있어서 이 방법도 적합하지 않다고 생각이 들었습니다..(이 케이스도 A,B 각각 모듈 단위의 테스트는 성공하나 결합하여 테스트할 때 실패하는 경우라고 볼 수 있을까요?) 회사가 테스트 코드를 작성하는 문화는 아니어서 물어볼 사람이 없어 질문 남깁니다.. 좋은 강의 감사하합니다. 앞으로도 좋은 강의 기대하겠습니다!!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
endeavor 댓글 1 좋아요 4 조회수 1094

도메인 테스트 코드 작성을 해봤습니다.

해결됨

Practical Testing: 실용적인 테스트 가이드

도메인 //Order 도메인 @Entity @Table(name = "orders") @Getter @Setter @NoArgsConstructor public class Order { @Enumerated(EnumType.STRING) private OrderStatus status; @OneToMany(mappedBy = "order",cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); /* 주문 취소 */ public void cancel(){ this.setStatus(OrderStatus.CANCEL); /** 재고 원복 */ for (OrderItem orderItem : orderItems) { orderItem.cancel(); } } } //OrderItem public class OrderItem { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") private Order order; public void cancel() { getItem().addStock(count); // 재고수량을 늘려준다. } } //Item public class Item { private int stockQuantity; public void addStock(int quantity) { this.stockQuantity += quantity; } } 불필요한 코드는 제거 했습니다. 테스트 코드 @DisplayName("주문을 생성하고, 주문 취소시 주문 취소로 상태를 변경하고, 감소된 상품 재고를 수량을 추가한다.") @Test void cancelOrder(){ //given OrderItem orderItemMock1 = Mockito.mock(OrderItem.class); OrderItem orderItemMock2 = Mockito.mock(OrderItem.class); BDDMockito.doNothing().when(orderItemMock1).cancel(); BDDMockito.doNothing().when(orderItemMock2).cancel(); //OrderItem 가변인자는 내부에서 List로 보관 Order order = Order.createOrder(orderItemMock1,orderItemMock2); //when order.cancel(); //then assertThat(order.getStatus()).isEqualByComparingTo(OrderStatus.CANCEL); Mockito.verify(orderItemMock1,Mockito.times(1)).cancel(); Mockito.verify(orderItemMock2,Mockito.times(1)).cancel(); } Order 도메인의 cancel() 을 테스트 코드를 작성해야한다고 할때 cancel 호출로 변경된 상태(enum)와 내부 List<OrderItem> 필드에 하나씩 취소 요청을 할때 Mock으로 OrderItem 도메인을 만들고 호출을 했는지만 검사를 했습니다. Mock 객체를 만드니까 간단한 단위테스트 인데도 속도가 많이 느려지더라구요 이런 경우에 Order.cancle 로직에 대한 테스트이기 때문에 나머지는 Mock으로 처리 관련된 OrderItem.cancle(),Item.addStock()은 별도 단위테스트로 검증했기때문에 추가 검증이 필요없다. Order.cancle 로직에 대한 테스트이지만, OrderItem.cancle(),Item.addStock() 테스트 검증이 끝났다고 해도 비즈니스 계층 통합테스트 느낌으로 given에서 데이터를 준비하고 연관된 데이터를 전부 검증한다. 1번으로 할경우 테스트 목적은 한눈에 들어오지만 2번으로 할경우 이 로직이 어디까지 관련이 되어있는지 테스트 코드로 알수 있을거같아서 강사님이 말씀하신 테스트를 문서처럼 사용할 수 있는거같습니다. 고민을 해보니 Order.cancel() 은 서비스 계층에서 호출을 할텐데 1번으로 테스트를 하고, 서비스 계층에서 통합 테스트를 하는게 맞을까요? 더 나은 방법이 있을까요?

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
티벳로보 댓글 1 좋아요 0 조회수 955

synchronized 와 @Transactional

미해결

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

안녕하세요 재고관리시스템 강의를 복습하며 내용을 정리하는 중 의문이 생겨 질문을 드립니다. 가장 처음에 application code 레벨에서만 동시성을 해결하기 위해 syncrhonized 를 사용할 경우 해당 메서드에는 @Transactional 을 붙여서는 안된다고 설명해 주셨습니다. 실제로 이를 붙일 경우, 동시에 decrease 메서드가 호출되고 해당 로직 내부로 들어가는 것이 가능함을 확인하였습니다. 그런데 여기서 제가 의문이 들었던 것이 있습니다. @Transacitonal 을 사용할 경우 Spring AOP 에 의해 매 번 다른 proxy 인스턴스를 통해 target object 로의 호출을 하게 됩니다. proxy 객체에 대한 lock 은 서로 다른 프록시들 사이에 공유되지 않는다고 하더라도, 내부적으로 호출되는 target 객체에 대한 decrease 메서드는 결국 동일한 객체에 대한 호출을 하기 때문에, 공유되는 lock 에 대한 경쟁이 일어나는 것이 아닌가 생각이 들었습니다. 최종적으로는 target 객체에 대한 synchronized 메서드를 호출하는 것이라면, 단 하나의 스레드만 임계 영역에 들어갈 수 있어야 할 것 같은데, 그렇지 않음을 확인하였습니다. 왜 이런 일이 일어나는 것인지 이해가 잘 되지 않습니다 ㅠㅠ 이와 관련해서 어떤 키워드로 공부해보면 좋을지 추천 가능할까요..?

  • java
  • spring
  • 동시성
  • synchronized
  • @transactional
스빈스빈별 댓글 2 좋아요 0 조회수 1315

Service에 @Transactional(readOnly=true)는 필수적으로 넣어줘야 하는 것인지 궁금합니다.

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 클래스 영역에서 트랜잭션을 걸어두는 것이 필수적인 내용인지 궁금합니다! 실무에서도 마찬가지로 동일하게 클래스 영역에 사용해서 적용하게 되는 것일까요? 저는 작업할 때 수정이 필요한 메서드에만 @Transactional을 선언해줬었는데 이렇게 처리했던 부분들이 잘못된 부분이었던 것인지 고민이 되어 질문드리게 되었습니다. 정리하자면 클래스단에서 무조건 '@Transactional(readOnly=true)' 를 작성해주는 것을 권장한다면 그렇게 해야하는 이유가 무엇인지 궁금하고, 무조건 걸었을 때 매번 '@Transactional(readOnly=true)' 값을 작성해줘야 하는데 매번 작성하지 않을 수 있는 방법은 없을지 궁금합니다. 감사합니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
chaerin920 댓글 1 좋아요 0 조회수 722

분산 락 질문드립니다.

미해결

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

안녕하세요 강의 잘 들었습니다! 완강하고 나서 몇 가지 궁금증이 생겨 질문드립니다. 분산 락을 "분산" 락이라고 부르는 이유가 뭔가요? Redis가 인메모리 DB이다보니 서버마다 Redis를 가지고 있어 여러 서버에서 모두 가지고 있어 분산 락이라고 부르는 걸까요? Redis가 여러 서버에 분산되어 있다보니 서로 싱크를 맞추기가 쉽지 않을 것 같은데 이런 부분은 어떻게 해결할 수 있나요? 서로 싱크가 맞지 않는다면 synchronized 키워드의 문제점처럼 여러 프로세스에서 접근할 수 있어 정합성이 보장되지 않을 것 같아서요! Redis는 인메모리 DB라 휘발성인데 서버가 다운될 경우 복구는 어떤식으로 이뤄지는지 궁금합니다!

  • java
  • spring
  • 동시성
니나니노 댓글 1 좋아요 0 조회수 567

Persistence Layer(2) 강의 질문있습니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. Persistence Layer(2) 강의를 수강 중에 질문이 있습니다. 먼저, 저는 h2 database 대신 mysql을 사용하기로 해서, 아래와 같이 application.yml 파일을 작성했습니다. 그리고 build.gradle에 mysql import 부분 역시 등록하였습니다. spring: profiles: default: local datasource: url: jdbc:mysql://localhost:3306/testing?useSSL=false&characterEncoding=UTF-8 username: root password: [생략] driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: none sql: init: mode: always --- spring: config: activate: on-profile: local jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true defer-datasource-initialization: true # (2.5~) Hibernate 초기화 이후 data.sql 실행 # h2: # console: # enabled: true --- spring: config: activate: on-profile: test jpa: hibernate: ddl-auto: create show-sql: true properties: hibernate: format_sql: true sql: init: mode: never 그리고 ProductRepositoryTest를 실행한 결과, @SpringBootTest 어노테이션 상에서는 테스트가 정상적으로 작동이 되나, @DataJpaTest를 사용하면 아래와 같은 오류가 발생합니다. Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Failed to replace DataSource with an embedded database for tests. If you want an embedded database please put a supported one on the classpath or tune the replace attribute of @AutoConfigureTestDatabase. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Failed to replace DataSource with an embedded database for tests. If you want an embedded database please put a supported one on the classpath or tune the replace attribute of @AutoConfigureTestDatabase. 제 생각에는, application.yml 파일 설정에서 제가 잘못 하고 있는 것 같은데요, 혹시 어느 부분을 제가 놓치고 있는지 알고 싶습니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
km6914 댓글 2 좋아요 1 조회수 781

리눅스 mysql 설치 오류 뜨시는 분들

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

저도 설치할 때 아래와 같은 문제가 발생 했었는데요 Error: Problem: conflicting requests - nothing provides libcrypto.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libssl.so .10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libcrypto.so .10( libcrypto.so .10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 ...... 아마존 리눅스 2023을 쓸 때는 el9 버전 레포지토리를 사용해주어야 한다고 합니다! [ wget dev.mysql.com/get/mysql80-commuity-release-e17-5.noarch.rpm rpm -ivh mysql-community-release-e17.5.noarch.rpm ] 이렇게 작성하던 부분을 [ sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm sudo dnf install mysql-community-server ] 이렇게 작성하시면 잘 설치 돼요! 출처: https://dev.classmethod.jp/articles/ec2-mysql-install-confilicting-requests-error-kr/

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
한지면 댓글 3 좋아요 8 조회수 5494

DTO에 Entity 포함

해결됨

실전! Querydsl

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. public class MemberTeamDto { private Member member; private Team team; @QueryProjection public MemberTeamDto(Member member, Team team) { this.member = member; this.team = team; } } 이런식으로 DTO에 엔티티를 직접 포함해도 되나요?? 실행은 잘되는거 같은데 이렇게 활용해도 되는지 궁금합니다

  • java
  • jpa
11 댓글 1 좋아요 0 조회수 1567

컨트롤러 반환 타입 질문입니다.

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

안녕하세요, 강사님. 컨트롤러 코드 관련 질문입니다. 작성한 코드는 컨트롤러의 메소드 반환 타입을 void로 해서 아무것도 반환하지 않는데요, 만약 postmapping 관련 메소드 작성 시, 작성한 게시글의 id값을 반환해주는 코드와 큰 차이가 있을까요? 그리고 찾아보던 중, ResponseEntity를 사용해서 반환해주는 메소드를 보았는데, 메소드의 반환 타입에 따라 기능에 큰 차이가 있는지, 아니면 API 명세의 차이만 있고 기능에는 크게 차이가 없는지 궁금합니다!

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
jd 댓글 1 좋아요 1 조회수 842

memberServiceTest 회원가입 NullPointerException 오류

해결됨

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의를 한 번 완주한 후 개별적으로 예제와 다르게 다시 공부하고 있는데 오류가 나서요..ㅜㅜ https://drive.google.com/file/d/1Fe9hZbwSCKFYyQtmj_TU2Sl9VwqeXCsO/view?usp=sharing 무엇 때문에 오류가 났는지 알 수 있을까요??

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
새싹 댓글 2 좋아요 0 조회수 604

파이썬 합계 오류

미해결

파이참으로 100~200 까지 3의 배수 인쇄하고, 그의 합 구하고 있는데 3의 배수 5개씩 인쇄는 잘 했는데 합계가 이상하게 구해집니다. 오류가 어디에 있는 건지 모르겠어요.. 고치면 오류떠서 아예 실행이 안되는데 ㅜㅜ for문이랑 while문 두개로 만들고 있는데 둘다 합계만 이상하게 뜹니다. ㅠ <<for문>> a = 0 hap = 0 count = 0 for a in range(100, 201) : if a % 3 == 0 : print(a) count = count + 1 if count % 5 == 0 : print() a = a + 1 hap = hap + a print("100~200 중 3의 배수의 합 : %d" % hap) <<while문>> a = 100 count = 0 hap = 0 while a <= 200 : if a % 3 == 0 : print(a) count = count + 1 if count % 5 == 0 : print() a = a + 1 hap = hap + a print("100~200 중 3의 배수의 합 : %d" % hap)

  • 파이썬
  • python
열공123 댓글 1 좋아요 0 조회수 422

인증 관련 테스트 할 때 질문드립니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 수업 내용과는 관련 없지만 테스트 코드를 짤 때 벽을 만나서 물어볼 곳이 마땅하지 않아 이 곳에 질문을 하게 됐습니다. 문제 있다면 바로 삭제하도록 하겠습니다. 프로젝트를 진행하고 있는데 Spring Security를 적용해서 하고 있습니다. Service 쪽에서 Authentication 객체를 생성을 하고 JWT 를 만들어 줄 때 Authentication authentication = authenticationManagerBuilder.getObject() .authenticate(new UsernamePasswordAuthenticationToken(username, password)); 이렇게 생성을 하고 있습니다. 그래서 테스트코드를 짤 때 @Mock private AuthenticationManagerBuilder authenticationManagerBuilder; 이런 식으로 Mocking 해주고 Authentication authentication = mock(Authentication.class); given(authenticationManagerBuilder.getObject().authenticate(any())).willReturn(authentication); 이런 식으로 Stubbing 해주고 있는데요. java.lang.NullPointerException: Cannot invoke "java.util.concurrent.atomic.AtomicBoolean.get()" because "this.building" is null 이런 에러가 나타나고 있습니다. AuthenticationManagerBuilder 를 좀 살펴보니 타고타고 가다보면 AbstractSecurityBuilder 라는 것을 상속하고 있더군요. AbstractSecurityBuilder를 보면 private AtomicBoolean building = new AtomicBoolean(); 이런 필드가 있습니다. 에러에서 나온 building이 이걸 말하는 것 같습니다. 여기 나오는 building이 null 이어서 public final O getObject() { if (!this.building.get()) { throw new IllegalStateException("This object has not been built"); } return this.object; } 여기서 if 조건문을 탈 때 this.building이 null이기 때문에 NPE가 발생하는 것 같습니다. AuthenticationManagerBuilder를 Mocking을 해서 이런 결과가 생기는것인가 하는 의심이 들고 있는 상황입니다. 혹시 이런 경우에는 어떤 식으로 Mocking을 하고 Stubbing을 해줘야 테스트가 통과될 지 궁금합니다. 구글링해도 자료가 거의 없고 gpt도 계속 이상한 말을 반복해서..ㅠㅠ 어쩔 수 없이 여기에 질문 올려봅니다. 도움 주시면 감사하겠습니다..!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
비가싫어요 댓글 2 좋아요 0 조회수 1298

인기 태그

인프런 TOP Writers

주간 인기글