inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Runwith, springboottest어노테이션이 없이 테스트 하면 어떻게 되나요?

미해결

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

이전에는 그 어노테이션 없이 test를 진행했던것같은데 이번에는 저 어노테이션이 추가가되어있네요 어떤 차이인거죠? runwith 어노테이션은 junit에 내장된 러너를 사용하는 대신 어노테이션에 정의된 러너 클래스(springrunner.class)를 사용한다는데.. junit에 내장된 러너랑 어노테이션에 정의된 러너클래스랑은 무슨차이인건가요?

  • JPA
  • 웹앱
  • spring
  • java
  • spring-boot
김민지 댓글 1 좋아요 1 조회수 1953

영속성 컨텍스트와 트랜잭션에 대한 질문입니다.

해결됨

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

안녕하세요 영한님. 늘 강의 잘 듣고 있습니다. 강의에서는 Controller단에서 찾아서 넘기면 JPA와 관계가 없는 애가 넘어온다고 하셔서 아래 코드로 테스트 해보았는데, 값이 변경되길래 조금 찾아보았고, 제가 이해한 것이 맞는건가 확인차 질문 올립니다. 1. Spring에서 Controller단의 경우 트랜잭션 범위 밖이기 때문에 읽기만 가능하며, 읽을때에도 영속성 컨텍스트에 등록은 된다. (기본적으로 open-in-view : true이기 때문에) 2. 하지만 말 그대로 "읽기"이기 때문에 persist / merge / flush 등을 호출시 에러를 터트려 트랜잭션 범위 밖에서는 값을 변경할 수 없다. 3. 그럼에도 아래의 코드로 item의 price와 name이 변경되는 것은 1번에 의해 item은 영속성 컨텍스트로 관리되고 있었기 때문이고 orderService의 order()가 종료될 때 플러시 발생 -> 더티체킹 동작시 DB에서 불러왔을때와 다르니 정상적으로 update 발생 4. 만약 application.yml에서 open-in-view : false로 변경 시 컨트롤러단에서 find 한 엔티티들은 영컨에 등록되지 않아 더티체킹도 안될 뿐더러 넘겨받은 member / item을 service단에서 그대로 사용하려 할 경우 에러 발생 (org.hibernate.LazyInitializationException: could not initialize proxy ) ``` @PostMapping ( "/order" ) public String order ( @RequestParam ( "memberId" ) Long memberId , @RequestParam ( "itemId" ) Long itemId , @RequestParam ( "count" ) int count) { // orderService.order(memberId, itemId, count); // 테스트 Member member = memberRepository .findOne(memberId) ; Item item = itemRepository .findOne(itemId) ; item.setPrice( 88888 ) ; // 더티체킹이 일어나는 시점은 트랜잭션 종료 지점이라 해당 지점에서는 변경이랑 관련이 없다 . // 그래서 트랜잭션이 있는 서비스 메소드 부분을 주석쳐버리면 변경은 일어나지 않는다 . // 얘네는 다 에러 // entityManager.flush(); // memberRepository.save(member); // itemRepository.save(item); orderService .order(member , item , count) ; return "redirect:/orders" ; } @Transactional public Long order (Member member , Item item , int count) { item.setName( " 변경된 책 이름 " ) ; // 배송정보 생성 Delivery delivery = new Delivery() ; delivery.setAddress(member.getAddress()) ; delivery.setStatus(DeliveryStatus. READY ) ; // 주문상품 생성 OrderItem orderItem = OrderItem. createOrderItem (item , item.getPrice() , count) ; // 주문 생성 Order order = Order. createOrder (member , delivery , orderItem) ; // 주문 저장 orderRepository .save(order) ; return order.getId() ; } ``` 으로 이해했는데 맞는지 모르겠습니다...

  • spring-boot
  • spring
  • java
  • 웹앱
  • JPA
kim.min.seok 댓글 1 좋아요 8 조회수 495

회원 관리 예제 - 웹 MVC 개발 / 회원 웹기능 - 조회를 듣고있는데

미해결

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

강사님 께서는 회원목록 버튼을 클릭하면 이러한 창이 뜨지만 제가 누를때는 이렇게 오류 창이 뜹니다 딱히 오류로 잡히는것도 없어서 단순히 제 코드 실수인가 싶어서 강의를 여러번 돌려가며 최대한 강사님의 코드를 그대로 타이핑 했는데도 오류가 계속 납니다. 다른분들 보니 H2관련해서 오류가 뜨는데 저는 아직 H2파트를 들어가기도 전이고 강사님도 아직 강의내에서 H2를 건드리지 않고 초기 제가 올렸던 사진 처럼 창이 떴는데 도대체 왜 오류가 나는지 궁금합니다 https://drive.google.com/file/d/187dnQjeFv08hwhpoNglqi6TrnZpRXZYI/view?usp=sharing

  • java
  • spring-boot
  • MVC
  • spring
댓글 1 좋아요 0 조회수 291

실행 에러..

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

에러 발생 이유를 모르겠습니다.. 해결방안을 알 수 있을까요?

  • Connector강좌
  • C#
  • 실행안됨
  • unity
  • network
정준혁 댓글 2 좋아요 0 조회수 332

프록시 초기화 시 만들어지는 실제 엔티티

미해결

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

프록시 객체가 초기화 할 때 영속성 컨텍스트를 통해서 실제 엔티티를 생성하고 생성된 실제 엔티티를 프록시 객체의 target 변수에 참조해준다고 하셨는데 이 때 만들어진 실제 엔티티는 영속성 컨텍스트에 존재하고 있는 건가요? 그렇기 때문에 getReference() -> 초기화 -> find()의 과정을 했 을 때 find() 시점에 select 쿼리문이 안나오는 게 맞나요?

  • JPA
  • java
나 좀 도와줘요 댓글 1 좋아요 0 조회수 248

비지니스 로직

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 안녕하세요. 좋은 강의 감사합니다. url 설계시 post는 저장 수정하고 get은 조회를 한다는 기본 개념을 잘 알게되었습니다. 그런데 실제로 실무에서 비지니스 로직을 조회할 때, 단순한 조회, 저장이 일어나는 경우는 거의 없다고 생각됩니다. 예를 들면 로그인 하는 상황이라고 가정했을 때 입니다. 1. 로그인 시도를 위해 아이디 패스워드 여부를 조회한다. 2. 아이디 패스워드가 일치한다면 로그인 히스토리 등 각종 정보성 테이블에 update를 한 후 로그인 처리를 한다. 이런 경우에 클라이언트에서 get api 호출 후 리턴 값을 받아서 post api로 저장을 한 후 후속 처리를 한다면 api를 여러번 호출하는 상황이 발생하게 됩니다. 아래 두가지 시나리오 중 어떤 방식이 최적인지 궁금합니다. 1. 로그인 api 한번 호출 ( get or post로 한번 던진 후 모두 처리 ) - 아이디/패스워드 일치 여부 확인 ( 조회 ) - 타 서버에 흩어진 회원 정보 조회 및 병합 ( 조회 ) - 각종 정보 업데이트 ( 수정 ) - 토큰 처리 등등 2. 로그인 api 여러번 호출 - GET 아이디/패스워드 일치 여부 확인 - SOAP 타 서버에 흩어진 회원 정보 조회 및 병합 - POST 각종 정보 업데이트 - POST 토큰 처리 등등 설명이 부족할 경우 댓글 주시면 더 자세히 설명해 보도록 하겠습니다. 감사합니다.

  • network
jhc 댓글 1 좋아요 1 조회수 490

Handler 질문 + 11분 질문

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

강사님이 13분 쯤에 실행 하는 부분에서 똑같이 cmd창에 10명이 입장은되는데 클라에서 보낸 메세지를 서버가 받아서 BroadCast하는 부분이 계속 호출이 안되었었습니다. 거의 3시간동안 뭐가 문제지?? 하다가 찾은 부분이 Server > PacketHandler부분에서 C_chatHandler부분이 이렇게 ClientSession clientSession = new ClientSession(); 되어 있어서 if문에 걸려서 그냥 return 을 해버린거 같은데 인자에 받은 session을 new ClientSession()으로 하게되면 새로 "빈" 갓난아기의?? ClientSession을 다시 만들어 버리기때문에 ClientSession의 Room이 항상 비어있는 상태라 retrun 으로 끝내버리게 되어서 ServerSessionManager의 Register하는 부분에서 _onRecv를 한다음 어떤 행동을 할것인가 == _handler 부분에서 매핑해놓은 C_chatHandler가 호출 되기는 하지만 new ClientSession 때문에 if에 걸려서 바로 return 을 하게 되어서 클라에 뿌려줄 수가 없었다.... 그래서 new ClientSession을 하면 안되고 여기서 이어서 받이온 session을 ClientSession으로 캐스팅을 하고 (안에 정보가 있으니까) 이어서 사용을 해야한다. 라고 이해를 했는데 어느정도 맞는 흐름일까요..??

  • unity
  • C#
  • network
starkshn 댓글 1 좋아요 0 조회수 314

api 응답객체 네이밍 및 new에 대해

해결됨

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

안녕하세요. 강의 너무 잘 보고 있습니다. 좋은 컨텐츠를 제공해주시는 인프런과 영한님, 서포터분들께 감사드립니다. api응답 객체 네이밍에 대해 질문이 있습니다. 등록,수정의 경우 응답객체 네이밍이 ~~Response 조회의 경우 MemberDTO 를 Result로 래핑해서 보내는데 DTO와 Response로 네이밍하는 기준이 있는지 궁금합니다. 또 하나는, 좀 엉뚱한 질문일 수도 있는데 응답시마다 new를 통해 응답객체를 생성하는데 대규모 시스템에 성능에 크게 문제가 없는지와 응답 객체를 싱글톤으로 만드는 패턴같은것도 있는지 궁금합니다. 감사합니다.

  • spring-boot
  • spring
  • java
  • JPA
cw k 댓글 1 좋아요 0 조회수 655

UDP

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

영한님 께서 TCP는 이미 모두 구축되어 있고 데이터의 크기도 크고 무겁기 때문에 UDP를 손대서 사용하시라 하셨는데 이 전송계층에서 UDP와 TCP가 공존하는건가요? 아니면 TCP를 이용해 통신을 할때가 있는거고 UDP를 이용해 통신을 할때가 있는건가요? 그리고 UDP를 손대서 사용하시라 하셨는데 UDP에 관해서 손댈 점이 무엇인가요?

  • network
김태민 댓글 1 좋아요 1 조회수 353

Connection is closed 에러발생(해결)

미해결

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

안녕하세요 강사님! 덕분에 수업 잘 듣고있습니다. 스프링 통합 테스트 강의에서, 테스트 코드의 join함수를 실행시켰더니 java.lang.IllegalStateException: java.sql.SQLException: Connection is closed 에러가 발생했습니다. 원인파악을 위해 join함수 처음부터 천천히 디버깅을 시도했는데, JdbcMemberRepository 클래스의 save함수에서 try 구문의 conn을 할당받는 첫번째 pstmt변수에서 IllegalStateException을 발생시켰습니다. 어떤 원인으로 에러가 발생했으며, 해결방법이 궁금합니다. 아래에 제가 작성한 오류와 연관된 코드들과 에러메시지 첨부합니다. *close함수에서 conn.close()를 close(conn)으로 수정했더니 해결됐습니다. [테스트코드] [JdbcMemberRepository 클래스] [MemberService 클래스] [에러메시지]

  • spring-boot
  • spring
  • MVC
  • java
한종승 댓글 4 좋아요 2 조회수 6699

왜 리소스와 행위를 분리해야할까요??

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

영한님이 예시에서 들어주신 회원 목록 조회 /read-member-list 이런 방식으로 API 설계를 하면 안되는 이유가 무엇인가요?

  • network
shef 댓글 1 좋아요 0 조회수 423

Stateful, Stateless 질문드립니다.

미해결

모든 개발자를 위한 HTTP 웹 기본 지식

안녕하세요. 제가 이해한게 맞는지 확신이 서지 않아 질문 남깁니다. 인프런 강의 동영상을 예로 들었을 때, - 사용자가 인프런에 로그인 후, 동영상을 시청하다가 02분24초에 동영상을 종료 > 다시 재생 시 > stateful : - 사용자가 종료한 시점이 서버에 저장되어 있고, 다시 동영상을 재생시켰을 때 서버에서 동영상 정보 및 종료 시점 등을 받아와 종료한 시점부터 재생 - 서버 증설 시 : #A 서버에 사용자 종료한 시점이 저장되어 있을 경우, #B서버에서는 종료한 시점을 보내줄 수가 없다. > stateless : - 다시 동영상을 재생시켰을 때, 동영상 정보 및 동영상 종료 시점 등의 정보를 같이 서버에 보내서 종료한 시점부터 재생 3) 서버 증설 시 : 요청 시 정보를 보내므로, 서버 증설 시 문제가 되지 않는다. 간단하게 이렇게 정리를 했는데 맞는건지 모르겠네요^^;; 잘못 이해한 부분이 있다면 답변 부탁드리겠습니다 :) 감사합니다.

  • stateful
  • stateless
  • network
댓글 1 좋아요 1 조회수 329

Repository와 Service의 이해

미해결

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

안녕하세요! 강의를 다시 보다보니 제대로 이해한건지 확실히 하고 넘어가고 싶어서 글을 쓰게 되었습니다. Repository에서 interface로 선언한 것은 각 기능별로 저장할 때 어떤 타입? 으로 저장할지(list 등) 이며 이를 가지고 class에서 implements를 하여 실제 구현체를 만드는데 각 기능별로 저장한 값을 어떻게 반환할지 단순히 데이터의 저장을 위한 기능 Service에서는 앞서 Repository와 Domain에서 정한 것을 가지고 실제로 동작하는 기능(조건이 있다면 조건 로직, 검증을 해야한다면 검증 로직 포함)을 작성하는 것으로 이해했습니다. 실제 구현 할 때 Service 부분을이 아무래도 비즈니스 로직이다보니 해당 부분에서 오류가 발생한다면 전반적인 작동에도 문제가 생기겠죠?

  • spring-boot
  • spring
  • MVC
  • java
SeatSTAR 댓글 1 좋아요 1 조회수 860

8080포트 사용

미해결

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

.

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

SetterInjection 사용 지양에 대한 문의입니다.

미해결

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

안녕하세요 영한님. 강의 늘 잘 듣고 있습니다. 이번 강의를 듣던 중 Setter Injection 사용 지양에 대한 이유를 제가 제대로 이해하지 못해 질문 올립니다. Repository의 경우 런타임에 한 번 주입시켜놓으면 수정할 일이 없는데 굳이 그것을 Setter 메소드로 열어놓아 유지보수시 추적을 힘들게 할 필요 없다... 이런 느낌으로 이해했는데 맞는지 알고 싶습니다.

  • jpa
  • JPA
  • spring-boot
  • java
  • spring
  • 웹앱
kim.min.seok 댓글 1 좋아요 0 조회수 231

컨트롤러 단에서 프록시 객체 초기화

미해결

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

안녕하세요. 강의를 듣다 궁금하게 있어서 질문드립니다. 강의 중 for문을 돌려서 강제로 프록시를 초기화하는 부분이 있는데요. 제가 프록시 강의를 듣기로는 영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때는 프록시를 초기화하면 문제가 발생하는 것으로 알고 있습니다. 그리고 트랜잭션이 걸려있는 서비스단에 트랜잭션이 끝나면 영속성 컨텍스트가 끝나는 것으로 알고 있는데요. 현재 코드는 서비스가 아닌 Repository에서 바로 값을 가져오고 있고 해당 클래스는 트랜잭션이 걸려있지 않기 때문에 아직 영속성 컨텍스트가 끝나지 않아 컨트롤러에서 프록시 초기화가 가능한 것인가요?

  • java
  • spring-boot
  • spring
  • JPA
노성규 댓글 1 좋아요 3 조회수 380

DTO 사용 범위에 대한 질문

미해결

실전! Querydsl

강의에서 일반적으로 repository에서 만든 dto를 service와 controller에서 사용한다고 하셨습니다. 그런데 이전 강의에서 tuple은 repository계층에서만 사용하고 service나 controller에서 사용하는건 비추한다고 하셨습니다. tuple의 경우엔 하부 구현기술에 class이니 앞단에서 알면 좋지 않다.(jpa를 바꾸게 되는 경우 수정할 로직이 많아진다) 라고 이해했는데요. dto도 비슷하지 않을까 생각이 들었습니다. repository에서 만든 dto를 바꾸게 될 경우 앞단에서 수정할 로직이 많으니까요. dto와 tuple(resultset 등)은 다르게 보아야 하는걸까요? repository에서 만든 dto는 repository나 service에서까지만 사용하고 controller에서는 새로운 dto로 매핑하는게 맞을까요? 아니면 repository는 뒷단(안쪽) 영역이니 앞쪽에서 의존성을 가져가도 된다고 생각하는게 맞을까요?

  • java
  • JPA
edu5 댓글 2 좋아요 3 조회수 738

7분 질문

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

현재 2022 버젼인데 프로젝트 파일은 이경로 있구요 PacketGenerator를 들어가보면 현재 이런 상태입니다 그런데 속성에 들어가서 이런식으로 출력 경로를 바꾸어 주어도 강사님이 하신것처럼 bin 산하에 생성이 안됩니다 .. 메모장으로 Append이거도 똑같이 했는데두요 오히려 이런 이상한 파일이 더 생겨 버렸습니다 ㅠ

  • unity
  • C#
  • network
starkshn 댓글 3 좋아요 0 조회수 807

(String)getServletContext().getAttribute 여기에 담고 바로 Servlet.Get 서버 실행에서 null값 나오는분들 ServletEx 서버 들렸다가 다시 오면 값 나와요

미해결

실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프(String)getServletContext().getAttribute 여기에 담고 바로 Servlet.Get 서버 실행에서 null값 나오는분들 ServletEx 서버 들렸다가 다시 오면 값 나와요런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • java
  • jsp
김성일 댓글 2 좋아요 3 조회수 494

TimeTraceAop를 SpringConfig에 Bean으로 등록시 에러

미해결

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

[SpringConfig] [TimeTraceAop] [ERROR] 어떤문제인지 잘모르겠습니다

  • MVC
  • spring
  • java
  • spring-boot
yamyam_Y 댓글 1 좋아요 1 조회수 432

인기 태그

인프런 TOP Writers

주간 인기글