인프런 커뮤니티 질문&답변

초보무한님의 프로필 이미지

작성한 질문수

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

API 개발 고급 소개

[문의] 비동기 처리

작성

·

233

0

안녕하세요?
강의 잘 듣고 있습니다.
 
강사님 톤과 실무를 염두에 두고 강의하시는 점이 특히 좋네요
 
지금 강의를 기반으로 실무에서 답답함이 하나씩 해소가 되고 있습니다.
하지만 API 를 순차적으로 하나씩만 호출하는 것이 아니기에 비동기에 대한 부분도 추가가 되면 좋을거 같은데요
해당 강의에는 언급이 안되는거 같아 문의드립니다.
 
현재의 예제코드를 동기방식으로는 정상 동작하지만 비동기로 동시 호출을 할때는 안되는데 이에 대한 가이드는 어떤 강의를 참고하면 될까요?
 
casacade 에 대한 detach 처리가 필요한거 같은데, 그걸 수정하니 여러가지 오류가 발생해서 이렇게 로직을 만든 서비스에 대한 비동기 처리가 너무 궁금하네요 ㅠ
 
답변 부탁드립니다.

답변 2

0

초보무한님의 프로필 이미지
초보무한
질문자

빠른 답변 감사합니다 :)

저도 모든 내용을 말씀드린게 아니고, 본 강의가 아니더라도 비동기에 대해서 설명이 있는 강의가 있는지도 문의드린것이었습니다.

 

JPA 를 처음 접하는 입장에서 동시에 동일 API 호출 시 문제가 발생되는 점에 대해서 어려워서 문의드린 내용이예요.

실무에서는 비동기처리하지 않고 지금처럼 사용하면 문제가 없을지를 잘 몰라서요.

application.yml 이나 config 등을 통해서 pool 을 설정하거나 해서 최대한 문제 없도록하는 방법을 문의드렸습니다(제가 지식이 얕아서 검색해도 못 찾아서요 ㅠ)

 

(만족하면서 강의 수강 중이고, 전달하는 과정이나 단어 선택에서 오해가 있었다면

더욱 조심해서 문의드릴게요.)

 

다른 언어 다른 플랫폼에서 개발할때는 코드 상으로가 아닌 WAS 의 설정 또는 DB 연결자의 옵션 등으로 이부분 해결해서 JPA/Spring 에서는 어떻게 하는지 문의드린 내용입니다.

자세히 설명해주셔서 감사합니다.

질문은 편하게 주시되 질문하시고자 하는 것들의 맥락을 자세하게 풀어서 설명해주시면 답변 드리는데 큰 도움이 될 것 같습니다:)

 

DB 커넥션 풀과 관련된 내용이라면 영한님 강의 스프링 DB 1편 - 데이터 접근 핵심 원리 에서 설명하고 있습니다. 풀과 관련된 설정은 스프링 커넥션 풀 설정이란 키워드로 검색해서 학습해주세요.

JPA에 대한 내용은 아니지만 스프링에서 동시적으로 발생하는 요청 처리에 대한 부분은 스프링 MVC 1편 - 멀티쓰레드 편을 참고해주세요.

그리고 JPA 비동기의 경우 본 강의에서 다루지 않기 때문에 해당 키워드로 검색하셔서 관련된 용어들을 추가로 찾아가며 학습하시면 좋을 것 같습니다. 일반적으로 자바에서 제공하는 비동기 api를 사용하는 것으로 알고 있습니다.

그리고 스프링에서는 비동기 처리를 위해 WebFlux라는 기술도 제공하고 있으니 관심있으시면 해당 키워드를 참고해주세요.

0

안녕하세요. 초보무한님, 공식 서포터즈 David입니다.

비동기를 고려한 JPA 코드를 강의에서 언급하지 않으므로 별도로 검색하셔서 학습하셔야 합니다.

아래 글도 한 번 참고해주세요.

 

https://freedeveloper.tistory.com/139

감사합니다.

초보무한님의 프로필 이미지
초보무한
질문자

답변 감사합니다.

만약 비동기를 사용하지 않고 동기로 순차적으로 처리하도록 하는 방법은 있을까요?

그러한 방법이 언급된 강의가 있다면 어느 강좌에서 하는지 혹은 다른 어떤 강의일지 확인 부탁드릴게요~

 

실무 기반으로 강의해주시는데, 이러한 고민이 중요하지 않나 싶은데 강의 통해서 힌트를 얻으면서 구현하는데 동일한 API 를 순차적으로만 처리한다는 제약이 현실성이 없을거 같아서요.

 

우연히 동시간에 동일 메서드를 호출하는 상황이 있을때 내부적으로 큐에 넣어 순차적으로 처리한다던지 비동기로 멀티로 처리 가능하도록 하는지에 대한 방법 문의드립니다.

"현재의 예제코드를 동기방식으로는 정상 동작하지만 비동기로 동시 호출을 할때는 안되는데 이에 대한 가이드는 어떤 강의를 참고하면 될까요?"를 보면 이미 본 과정의 예제코드는 동기 방식임을 인지하신 것 같은데

질문자 분께서 말씀하시는 동기로 순차적으로  처리하는 방법은 어떤 과정에서의 방법을 말씀하시는걸까요?

 

동시성에 대한 문제는 멀티스레드를 키워드로 학습하시면 좋을 것 같습니다.

 

아울러, 영한님께서 진행하시는 강의가 최대한 실무에 가까운 것들을 전달하고자 합니다만, 여러가지 제한으로 인해 모든 내용을 다 전달할 수 없는 점 참고해주세요.