하나의 토픽, 하나의 파티션으로 순서보장을 하는 Consumer 처리를 알고싶습니다. kafka paraller-consumer 처리를 하고 싶은데 마땅한 예제가 나와있지 않아서요. 해당 예제를 찾아보면 보통 multi thread 방식이라 순서보장이 되지않은것 같아 사용을 못할것 같습니다. 최종적으로 순서보장을 하는 consumer 병렬처리 방법을 알고 싶어 질문드렸습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 동적쿼리 - builder 사용편 강의를 들으며 return query .select(new QMemberTeamDto( member.id.as("memberId"), member.username, member.age, member.team.id.as("teamId"), team.name.as("teamName"))) .from(member) .leftJoin(member.team, team) .where(builder) .fetch(); 이 쿼리를 따라 치고 생각해보았습니다. 원래 jpa라면 member객체를 조회해와서 member.getTeam()이나 팀 객체에 액세스 할때 지연로딩이 일어난다고 학습하였습니다. 위 쿼리에서 fetch 조인을 사용하지 않았는데 어떻게 쿼리가 한방에 조회가 됐나 갑자기 의문이 들었습니다. 제가 도출해낸 결과는 반환값이 dto이고 team 객체와 join해서 필요한 값만(team 포함) select 하기때문에 teamId, teamName까지 한방쿼리로 조회가 되는건가요?
비트나미 이전에 다른 프로그램 설치되신 분들은 아마 비트나미 설치 프로그램 실행 시에 아파치 포트와 mysql 포트가 80, 3306이 아닌 81,3307등으로 될텐데 그렇게 설치하시면 설정을 또 바꿔줘야 하니까 cmd 실행 후 "netstat -ano | findstr :3306" 그리고 "netstat -ano | findstr :80" 두개 입력하시면 LISTENING 이라고 포트 실행중인게 나옵니다. LISTENING 옆에 숫자가 나오는데 해당 숫자가 PID가 되며 작업관리자 실행 뒤에 PID 정렬버튼 눌러서 해당 PID에 맞는 프로세스 종료시킨 뒤 다시 아파치와 MySQL 포트를 80과 3306으로 설정하시면 됩니다.
강의 정말 잘 보고 있습니다. 얼티밋 버전 이용 중이여서 내장 tomcat 기능을 이용하여 구동하였습니다. / 로 진입 시 index 에서 template.jsp로 변경하는 작업 중인데요. 얼티멋 버전에서 제공해주는 tomcat Server를 사용하면 index페이지만 노출되더라고요 반대로 선생님과 동일하게 smart tomcat 플러그인을 다운로드하여 이용하면 index 대신 template.jsp가 루트 진입 시 노출됩니다. 혹시 얼티밋 버전에서 어떻게 세팅하는지 안내해 주실 수 있을까요 아래는 제가 세팅한 얼티밋 버전에서 기본 제공해 주는 tomcat입니다.
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 이번강의에서 후반부까지는 잘 되었다가 마지막 과정에서 막혀서 질문 드립니다. 우선 오류가 났다고 생각하는곳은 Id와 BookName으로 대출기록을 불러오고 doReturn을 불러오는 과정에서 예외가 발생되었고 예외가 발생되었기때문에 아이디와 책 이름이 일하는기록이 없어서 예외가 나왔다고 생각했습니다. 하지만 터미널로 sql문을 이용해 찾아봐도 user_loan_history의 user_id와 user의 id가 같았습니다. 이 이상 Id대신 이름을 getName을 해봐도 오류가 나서 진행을 못하는 상황입니다.. 오류의 원인이 뭔지 알 수 있을까요 2024-03-22 17:03:37.674 ERROR 84411 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.IllegalArgumentException] with root cause java.lang.IllegalArgumentException: null at java.base/java.util.Optional.orElseThrow(Optional.java:403) ~[na:na] at com.group.libraryapp.Service.book.BookService.returnBook(BookService.java:71) ~[classes/:na] at com.group.libraryapp.Service.book.BookService$$FastClassBySpringCGLIB$$1faa236c.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:793) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.24.jar:5.3.24] at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.24.jar:5.3.24] at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.24.jar:5.3.24] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:763) ~[spring-aop-5.3.24.jar:5.3.24] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:708) ~[spring-aop-5.3.24.jar:5.3.24] at com.group.libraryapp.Service.book.BookService$$EnhancerBySpringCGLIB$$892e8bee.returnBook(<generated>) ~[classes/:na] at com.group.libraryapp.controller.book.BookController.returnBook(BookController.java:32) ~[classes/:na] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1071) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:964) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) ~[spring-webmvc-5.3.24.jar:5.3.24] at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:920) ~[spring-webmvc-5.3.24.jar:5.3.24] at javax.servlet.http.HttpServlet.service(HttpServlet.java:699) ~[tomcat-embed-core-9.0.69.jar:4.0.FR] at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) ~[spring-webmvc-5.3.24.jar:5.3.24] at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) ~[tomcat-embed-core-9.0.69.jar:4.0.FR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-5.3.24.jar:5.3.24] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117) ~[spring-web-5.3.24.jar:5.3.24] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) ~[tomcat-embed-core-9.0.69.jar:9.0.69] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-5.3.24.jar:5.3.24]
플라스크에서 머신러닝 웹 서비스 예제를 실행해보려고 하는데 에러가 발생합니다 import flask import joblib import numpy as np from flask import Flask, request, render_template from scipy import misc app = Flask(__name__) # 메인 페이지 라우팅 @app.route("/") @app.route("/index") def index(): return flask.render_template('index.html') # 데이터 예측 처리 @app.route('/predict', methods=['POST']) def make_prediction(): if request.method == 'POST': # 업로드 파일 처리 분기 file = request.files['image'] if not file: return render_template('index.html', label="No Files") # 이미지 픽셀 정보 읽기 # 알파 채널 값 제거 후 1차원 Reshape img = misc.imread(file) img = img[:, :, :3] img = img.reshape(1, -1) # 입력 받은 이미지 예측 prediction = model.predict(img) # 예측 값을 1차원 배열로부터 확인 가능한 문자열로 변환 label = str(np.squeeze(prediction)) # 숫자가 10일 경우 0으로 처리 if label == '10': label = '0' # 결과 리턴 return render_template('index.html', label=label) if __name__ == '__main__': # 모델 로드 # ml/model.py 선 실행 후 생성 model = joblib.load('./model/model.pkl') # Flask 서비스 스타트 app.run(host='0.0.0.0', port=8000, debug=True) import scipy.io from sklearn.utils import shuffle from sklearn.ensemble import RandomForestClassifier from sklearn.model_selection import train_test_split import joblib # Google 주소 숫자 인식 모델 생성 # 로드 mat 파일 train_data = scipy.io.loadmat('extra_32x32.mat') # 학습 데이터, 훈련 데이터 X = train_data['X'] y = train_data['y'] # 매트릭스 1D 변환 X = X.reshape(X.shape[0] * X.shape[1] * X.shape[2], X.shape[3]).T y = y.reshape(y.shape[0], ) # 셔플(섞기) X, y = shuffle(X, y, random_state=42) print("Model Export Running") # 학습 훈련 데이터 분리 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.05, random_state=42) # 랜덤 포레스트 객체 생성 및 학습 clf = RandomForestClassifier() clf.fit(X_train, y_train) # 모델 저장 joblib.dump(clf, '../model/model.pkl') 위 코드가 main.py 이고 아래 코드가 model.py 입니다 코드를 실행하면 Traceback (most recent call last): File "/Users/jeonghaechan/PycharmProjects/flaskML/main.py", line 48, in <module> model = joblib.load('./model/model.pkl') File "/Users/jeonghaechan/PycharmProjects/flaskML/venv/lib/python3.9/site-packages/joblib/numpy_pickle.py", line 658, in load obj = unpickle(fobj, filename, mmap mode) File "/Users/jeonghaechan/PycharmProjects/flaskML/venv/lib/python3.9/site-packages/joblib/numpy_pickle.py", line 577, in _unpickle obj = unpickler.load() File "/Users/jeonghaechan/opt/anaconda3/lib/python3.9/pickle.py", line 1212, in load dispatch[key[0]](self) File "/Users/jeonghaechan/opt/anaconda3/lib/python3.9/pickle.py", line 1528, in load_global klass = self.find_class(module, name) File "/Users/jeonghaechan/opt/anaconda3/lib/python3.9/pickle.py", line 1579, in find_class import (module, level=0) ModuleNotFoundError: No module named 'sklearn.ensemble.forest' 이렇게 뜨는데 어떻게 해야하나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. public Long join(Member member){ validateDuplicateMember(member); System.out.println(member.getId()); memberRepository.save(member); System.out.println(member.getId()); return member.getId(); } 위 코드는 멤버 가입 시 MemberService의 join 메소드 입니다. member의 아이디가 부여되는 시점은 memberRepository.save (member);가 호출되어 저장이 되는 시점입니다. 위 코드에서 return member.getId();의 member는 컨트롤러에서 넘어온 member왜 같은 인스턴스라고 생각됩니다. 1. memberRepository.save (member);가 아닌 member = memberRepository.save (member); 2번의 코드의 경우 id가 생긴 member를 다시 member에 저장하게 되어 member.getId()를 호출하면 아이디가 나오는 것이 맞다고 생각되는데 1번처럼 코드를 작성해도 member에 id가 왜 저장되어 있는지 궁금합니다.
안녕하세요. 메모장에서 글을 쓰고 저장해 보는 작업을 했는데요, 처음 실행했을 때 메모장에서 글 작성 --> 저장까지 잘 되었는데, 실행을 다시 하니 텍스트 엘리먼트를 찾을 수 없다는 오류메시지가 확인됩니다. 어떤 부분을 놓치고 있는 지 확인 가능할까요? 이 부분 때문에 진도가 잘 나가지 않고 있습니다. ㅠㅠ 확인 부탁 드립니다.
안녕하세요~ 문의 드립니다~ pyinstaller로 실행파일 생성후 다른 PC에서 실행할 때 아래와 같은 메시지가 나오며 안됩니다. 해결방법이 없을까요? Traceback (most recent call last): File "pyhwpx.py", line 6237, in register_regedit File "subprocess.py", line 466, in check_output File "subprocess.py", line 548, in run File "subprocess.py", line 1026, in init File "subprocess.py", line 1538, in execute child FileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다 During handling of the above exception, another exception occurred: Traceback (most recent call last): File "hwptopdfgui.py", line 29, in <module> File "pyhwpx.py", line 143, in init File "pyhwpx.py", line 6195, in register_module File "pyhwpx.py", line 6241, in register_regedit File "subprocess.py", line 466, in check_output File "subprocess.py", line 548, in run File "subprocess.py", line 1026, in init File "subprocess.py", line 1538, in execute child FileNotFoundError: [WinError 2] 지정된 파일을 찾을 수 없습니다
public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); //code EntityTransaction tx = em.getTransaction(); tx.begin(); try { Member findMember1 = em.find(Member.class, 101L); Member findMember2 = em.find(Member.class, 101L); tx.commit(); } catch (Exception e) { tx.rollback(); } finally { em.close(); } emf.close(); } } 위 코드를 실행하면 select 쿼리가 한번만 나가야 하는데 저 같은 경우는 두번 나가고 h2에서 id가 101인 엔티티도 사라집니다. 왜 그런가요? 아래는 실행했을 때 로그에 뜨는 쿼리입니다 Hibernate: select m1_0.id, m1_0.name from Member m1_0 where m1_0.id=? Hibernate: select m1_0.id, m1_0.name from Member m1_0 where m1_0.id=?
24번 lecture에서 List Slicing에 대해 설명하실 때 a:b가 수학적으로 말하자면 [a,b)를 의미한다 라고 하셨는데 결과를 보면 list의 a+1번째 원소부터 b번째 원소까지 출력하는 걸로 보입니다. **내용 수정하겠습니다! 첫번째 원소를 원래 0번으로 부르는 건지 아니면 강의 내용에 착오가 있는 건지 알려주시면 감사하겠습니다!
강의 너무 잘 듣고 있습니다. 감사합니다. <상황> 리액트 배포, express 배포(nginx 강의 기준 3000번 포트)를 각각 완료했고 화면에 https://로 뜨는 것까지 확인 하였습ㄴ다. <문제점> 현재 문제가 로드 밸랜서를 잘 못다뤄서 두개가 이어지지 않는 부분입니다. <원인 분석> 나름의 원인을 집어 봤는데 1.cloudfront 포트 설정할 때 포트 설정을 3000으로 안해줘서?(강의 그대로 https는 443으로 했습니다.) (리액트 코드는 https://api.도메인 주소로 요청하게끔 바꿨습니다.) ex) https://api.ge-rang.com/user/add-income node.js 서버가 3000번이지만 cors 설정을 https://도메인 주소로 변경했습니다. cors 설정을 따로한게 원인인가? app.use(cors({ origin: " https://ge-rang.com ", credentials: true })); 로드 밸랜서를 설정안해서. 로드 밸런서 문제가 맞다면. 인증서 받을 때 서울 기준으로 받는것이 맞나요? 그 레코드를 인증서에 등록할 때 cloudfront용의 버지니아 북부 인증서는 강의대로 잘 찾아서 레코드 설정까지 잘 했는데 로드 밸런서를 위한 서울용 인증서는 레코드 발급을 제가 못햇고 하는게 맞나 싶어서 우선은 로드 밸랜서 없이 진행했다가 결국 연결이 안됬습니다. 혼자 계속 해보다가 안되서 질문 요청드립니다.