dummyClient측에서 sendAsync를 하려고 할 때.. 에러가 발생합니다. 에러 내용 Unhandled exception. System.ObjectDisposedException: Cannot access a disposed object. Object name: 'System.Net.Sockets.Socket'. at System.Net.Sockets.Socket.SendAsync(SocketAsyncEventArgs e, CancellationToken cancellationToken) at System.Net.Sockets.Socket.SendAsync(SocketAsyncEventArgs e) at ServerCore.Session.RegisterSend() in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/ServerCore/Session.cs:line 71 at ServerCore.Session.Send(ArraySegment`1 sendBuff) in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/ServerCore/Session.cs:line 57 at DummyClient.GameSession.OnConnected(EndPoint endPoint) in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/DummyClient/Program.cs:line 20 at ServerCore.Connector.OnConnectCompleted(Object sender, SocketAsyncEventArgs args) in /Users/mini/Desktop/projects/Game/MMO_Server_Tutorial/ServerCore/Connector.cs:line 42 그리고 찍히는 로그가.. 좀 이상한 것 같은데요.. [From Server]: 메시지 OnDisconnected: [fe80::1%1]:7777 OnConnected: [fe80::1%1]:7777 이러고 나서 바로 위 에러가 나버립니다. 도저히 원인을 찾을 수 없을 것 같아서 질문 남겨드립니다..
안녕하세요. 강의 감사히 잘 수강하고 있습니다. 푸터 내용중에 궁금한 부분이 있어서 문의 드립니다. 강의 내용대로 푸터를 작성한 화면입니다. HTML파일의 푸터 내용입니다. < footer id = "footer" > < div class = "inner" > < div class = "left" > < h2 > < a href = "#" > < img src = "img/logo_footer.png" alt = "footerlogo" > </ a > </ h2 > < div class = "footer_info_wrap" > < ul > < li > Lorem ipsum dolor sit amet. </ li > < li > Lorem ipsum dolor sit amet. </ li > < li > Lorem ipsum dolor sit amet. </ li > < li > Lorem ipsum dolor sit amet. </ li > < li > Lorem ipsum dolor sit amet. </ li > </ ul > < ul > < li > Lorem, ipsum dolor. </ li > < li > Lorem, ipsum dolor. </ li > < li > Lorem, ipsum dolor. </ li > < li > Lorem, ipsum dolor. </ li > </ ul > </ div > 적용된 css입니다. .footer_info_wrap ul:nth-child(1) { /* 첫번째 li에 대해서 설정 */ margin-right: 60px; padding-right:60px; border-right:1px solid #dcdcdc; /* li사이의 선 */ } 위 그림의 A영역은 위 css에서는 첫번째 li에 대해서만 margin-right로 60px을 줘서 설정한 부분은 이해가 됩니다. B영역은 어디서 설정되는지 궁금합니다.
현재 시점으로 npm i @types/socket.io-client하면 3.0.0 버전으로 설치가되어 2버전과 맞지 않아 에러가 나옵니다. 저 같은 경우는 제로초님의 깃헙에 올라와있는 json을 보고 1.4.35 버전으로 명시하여 설치하여 문제를 해결하였습니다. 혹시 문제 있으신 분 확인해보세요. npm i -D @types/socket.io-client@1.4.35
안녕하세요. 좋은 강의 감사드립니다. [정리 시간]의 내용을 작성해보았는데요, 제대로 이해하고 있는 게 맞을까요..? 1. function 키워드를 만나 book이라는 function 오브젝트를 생성하고, 오브젝트의 [[Scope]]에 글로벌 오브젝트 설정 2. 마지막 줄에서 book() 함수를 호출하면 3. 엔진은 실행 콘텍스트를 생성하고 실행 콘텍스트 안으로 이동 ==준비 단계 (실행 콘텍스트에서 실행할 수 있는 환경 구축)== 4. 컴포넌트를 생성하여 실행 콘텍스트에 첨부 -렉시컬 환경 컴포넌트, 변수 환경 컴포넌트, this 바인딩 컴포넌트 5. 환경 레코드를 생성하여 렉시컬 환경 컴포넌트에 첨부 6. 외부 렉시컬 환경 참조를 생성하여 렉시컬 환경 컴포넌트에 첨부하고 -book이라는 function 오브젝트의 [[Scope]]를 설정(참조) ==초기화 단계== 7. 호출한 함수의 파라미터 값이 있다면, 호출된 함수의 파라미터 값에 매핑하여 환경 레코드에 작성하나 파라미터 없음 8. function 키워드를 만나 get이라는 function 오브젝트를 만들고 [[Scope]]로 book 오브젝트를 설정 9. point라는 변수에 undefined를 할당 10. 여기까지는 외부에 실행 상태를 제공하지 않음 ==실행 단계== 11. book 함수 안의 코드를 실행 12. point 변수에 123을 할당 13. get() 함수를 호출하면 엔진은 실행 콘텍스트를 생성하고 실행 콘텍스트 안으로 이동 get()함수의 실행 콘텍스트 ==준비 단계== 15. 컴포넌트를 생성하여 실행 콘텍스트에 첨부 -렉시컬 환경 컴포넌트, 변수 환경 컴포넌트, this 바인딩 컴포넌트 16. 환경 레코드를 생성하여 렉시컬 환경 컴포넌트에 첨부 17. 외부 렉시컬 환경 참조를 생성하여 렉시컬 환경 컴포넌트에 첨부하고 -get이라는 function 오브젝트의 [[Scope]]를 설정 ==초기화 단계== 18. 파라미터가 없고 function 키워드나 변수가 없음 ==실행 단계== 19. return point를 만나고, point라는 식별자를 외부 렉시컬 환경 참조에서 찾아 123을 반환 20. get()함수의 reutrn 값이 book()함수의 return 값이므로 콘솔창에 123을 출력 감사합니다!!
강의에서 보면 memberRepository 와 discountPolicy 도 Bean 으로 등록하셨는데요, config 내부에서만 사용되고 리팩토링의 목적으로 선언된 함수인데 굳이 Bean 으로 등록할 필요가 있는건가요? 실무에서 config 내부 함수들에 대해서 선택적으로 private 로 은닉화를 하는것과, 모든 함수는 Bean 등록을 하는 것 중 어느 방법이 주로 사용되는 지 알고 싶습니다!!
안녕하세요! 매 강의마다 무릎을 치며 수업을 듣고있습니다 좋은 수업 정말 감사드립니다 "관심사의 분리"까지 수강하고 궁금한 점이 있습니다. 1. MemberServiceImpl에서, // private final MemberRepository memberRepository = new MemoryMemberRepository(); private MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } OCP/DIP의 원칙을 위해서, 주석처리된 부분이 아래와 같이 바뀌게 되는 것은 이해했습니다. 실행과 무관하게 코드 자체만 본다면, MemoryMemberRepository가 MemberServiceImpl안에 없기 때문에 구현체를 가리키지 않고, 코드의 변경없이 기능을 바꿀수 있으니 OCP/DIP를 만족한다. 이렇게 우선 이해한 상태인데, 런타임과 같이 연관지어 생각하니 조금 헷갈립니다... 실행 과정에서, 외부에서 생성자를 통한 객체 주입을 통해 memberRepository가 MemoryMemberRepository의 객체를 가리키게 됩니다. 즉, 멤버변수가 인스턴스의 주소를 가리키게 되니까, 이게 DIP의 원칙에 맞나...라는 생각이 듭니다. ('의존과 레퍼런싱이 서로 다른 개념인가' 라는 생각도 하고 있습니다...) 다시 정리하자면, 자바가 실행되면서 멤버변수(memberRepository)가 MemoryMemberRepository객체를 가리키게 되는데 DIP의 원칙에 부합하는 이유가 궁금합니다! 2. DIP의 원칙의 의미는 MemoryMemberRepository같은 구현체에 의존하는게 아니라, 인터페이스 같이 일반화된 개념을 의존하자 이렇게 이해하고 있습니다. 그런데, 멤버변수를 인터페이스로 선언하고 MemoryMemberRepository로 바로 할당하는 것과 외부에서 주입받는게 DIP관점에서 왜 다른건가요? (OCP관점에서는 코드 변경이 있으니 위배된다는 것은 이해했습니다)
안녕하세요! 강의 들으면서 잘 안되는 부분이 있어서 질문드립니다. 해당영상의 주문 추가 api를 수행하는 과정에서 kafka로 메시지가 정상적으로 보내지지 않는 문제가 발생했습니다. 에러 메세지는 다음과 같았습니다. Send failed; nested exception is org.apache.kafka.common.errors.TimeoutException: Topic example-catalog-topic not present in metadata after 60000 ms. 카프카에 example-catalog-topic이 존재하지 않아서 메세지를 전송하는 과정에서 timeout이 발생하는 것 같은데요. 혹시, 카프카에 컨테이너에 직접 접속해서 topic을 수동으로 만들어주는 과정이 필요한가 해서, 직접 docker exec ... 명령어로 카프카 컨테이너에 접속한 후 다음과 같은 명령어를 수행 시켜도 토픽 리스트를 읽지 못하고 명령어가 정상적으로 수행되지 않는 것으로 보였습니다. (172.18.0.101이 아닌 127.0.0.1 도 똑같이 수행되지 않았습니다.) 혹시 강의내용 외에, 추가적인 설정이 더 필요한 것인지 궁금합니다. 참고로, order-service의 KafkaProducerConfig 클래스에서 properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "172.18.0.101:9092"); 다음과 같이 말씀해주신대로 ip를 지정해 주었고, docker-compose-single-broker.yml 파일은 다음과 같이 강의내용과 동일하게 작성했습니다. version: '2' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" networks: my-network: ipv4_address: 172.18.0.100 kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_HOST_NAME: 172.18.0.101 KAFKA_CREATE_TOPICS: "test:1:1" KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: - zookeeper networks: my-network: ipv4_address: 172.18.0.101 networks: my-network: name: ecommerce-network # 172.18.0.1 ~
알찬 강의 감사드립니다. 초장에 막히는 부분이 있어 질문드려보아요. "mvn spring-boot:run"은 구동에 문제없는데, 옵션을 주면 Build Fail 나는 원인을 알 수 있을까요? > mvn spring-boot:run -Dspring-boot.run.jvmArguments='-Dserver.port=9003' [INFO] Scanning for projects... [INFO] [INFO] ----------------------< com.example:user-service >---------------------- [INFO] Building user-service 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.296 s [INFO] Finished at: 2021-05-22T20:43:08+09:00 [INFO] ------------------------------------------------------------------------ [ERROR] Unknown lifecycle phase ".run.jvmArguments=-Dserver.port=9003". You must specify a valid lifecycle phase or a goal in the fo rmat <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: val idate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test -sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-p ackage, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clea n, pre-site, site, post-site, site-deploy. -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException 혹시몰라서 인텔리제이 Maven 설정 캡쳐 받아보았습니다.
안녕하세요. String createForm(Model model) 에서 Model에 비어있는 memberForm 을 넣어주는 이유가 validation 을 해주기 때문이라고 하셨는데 어짜피 스프링쪽 validation 은 서버쪽으로 데이터가 왔을때 해주는거라 딱히 의미가 없을거 같아 궁금해서 질문드립니다. 제가 생각하기에 비어있는 memberFrom을 넣어서 얻는 이득은 createMemberForm.html 에서 memberForm을 쓸데 null 관련 로직을 짜야 하는것 말곤 다른 이유를 찾기 힘들어서요. 물론 위의 null 관련부분이 꽤 귀찮은 작업같긴 합니다만 혹시 제가 모르고 있는 부분이 또 있을수도 있을거 같아서 질문 드려봅니다. 주말 잘보내세요~
나머지는 동일하고 - name : Commit File 을 실행 시, 정상적으로 푸쉬가 안되는 이슈가 있습니다. 강사님의 강의에 나오는 코드대로도 써보았고 , 마켓플레이스에 있는것으로도 해보았는데 뭔가 계속해서 오류가 나오네요. 무엇을 고치면 될지 잘 모르겠습니다! Error: Invalid status code '401' for url 'https://api.github.com/repos/2innnnn0/recordGithubAction' at IncomingMessage.<anonymous> (/home/runner/work/_actions/ad-m/github-push-action/master/start.js:14:21) at IncomingMessage.emit (events.js:215:7) at endReadableNT (_stream_readable.js:1184:12) at processTicksAndRejections (internal/process/task_queues.js:80:21)
[리뉴얼] 처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part1]
혹시 학습자료폴더에서 DaveLee_20200810의 하위폴더인 __MACOSX 안에 있는 00_Material(Uploaded) 폴더와 DaveLee_20200810 폴더의 바로 하위폴더인 00_Material(Uploaded)는 어떤 차이가 있는건가요? 용량이나 세부적인 파일이 조금 다른것같긴한데 어떤점이 다른건가요?
안녕하세요 영한님. 간단한 질문을 드리고 싶어서 글 남기게 되었습니다. 강의 마지막에 " 컬렉션(일대다 관계)에 대한 fetch join은 1개만 사용 해야 한다. 2개 이상 붙이면 일대 다대 다 형태가 되어버리기 때문에... " 라고 설명해주셨습니다. 여기서 2개 이상 사용하는 케이스는 아래 두 케이스를 모두 포함하는 것인지 궁금합니다 :) - Order 클래스 내부에 일대다 관계에 대한 필드가 2개인 경우 - Order 클래스 내부에 일대다 관계에 대한 필드가 1개고, 그 필드의 객체 내부에 일대다 관계에 있는 필드가 존재하는 경우 문득 생긴 고민이라 적절한 예시가 생각나지 않네요ㅠㅠ 감사합니다!
현상 : You are running Cloudera Manager in non-production mode, which uses an embedded PostgreSQL database. Switch to using a supported external database before moving into production 클라우디아 메니져를 non-production 모드로 사용하고 있는데- 내장형 PostgresSQL 사용하는 프로덕션 이동전에 외부데이터 사용으로 전환해주세요. 진행사항. 1. 전달주신 저사양기준으로 설치 진행했습니다. 2. 클라우데라 메니저에서 큰문제없이 실행완료. 3. 모니터링 화면에서 PostgresSQL관련에러가 나옵니다. 질문 : Server01, Server02 확인해보니. PostgresSQL 설치된 흔적이 없습니다. 제가 새로 깔아야 하는걸까요? /var/lib/pgsql ... 같은 파일이 없음.