학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 다른분이 질문하신거 보고 서버, 클라이언트 객체간 의미는 파악했습니다. 여기보면 DiscountPolicy를 서버 객체라고 하시는데 new FixDiscountPolicy의 생성자 메소드를 호출했으면 FixDiscountPolicy를 서버객체라고해야되는거 아닌가요?? 그리고 밑에서 int discountPrice = discountPolicy.discount(member, itemPrice); 이러한 코드에서 실제로 호출되는 메소드는 FixDiscountPolicy()의 메소드가 호출되는거잖아요? 근데 왜 인터페이스를 서버객체라고 하는거죠? (A객체가 B객체의 메서드를 호출하면 A클래스가 클라이언트, B클래스가 서버가 됩니다.)
안녕하세요. 디비버를 설치하고 orcl3를 클릭하면 Loading이 돌고 다음과 같은 문구가 되며 설치가 안됩니다. Got minus one from a read call 구글링 해보니 오라클 리스너 포트가 달라서 그럴 수 있다는데.. TNS포트 쪽에 뭘 변경해야하는게 있는걸까요? 혹시 방법을 아시면 구체적으로 설명해주시면 감사하겠습니다.
for(int i = 0; i < T; i++){ getline(cin, s); cout << s << "\n"; } p30페이지에서요 getline을 처음설명하실때 getline은 cout과 달리 개행문자는 상관하지 않고 출력을 해준다고 하셨는데 그렇다면 이미 "\n"은 getline이 없애준다고 생각해도 무방하지 않을까요?? 그렇다면 위에 있는 코드는 왜 기술해주신건가요?
안녕하세요, 강사님. 좋은 강의 올려주셔서 감사합니다. 보면서 열심히 따라하고 있습니다. 저는 비전공자라서 처음 들을 때는 물음표의 연속이었지만 신기하게 두번째 들을 때는 이해가 되고 점점 따라하기 수월해지고 있습니다. 다름이 아니라 두가지 질문이 있어서 문의드립니다. 1. ec2 linux/Ubuntu를 ssh로 접속한 상태에서 크롬페이지를 새창으로 뿅 띄우는 것이 안됩니다 ㅠㅠ 처음에 스크립트를 실행했을 때는 아래와 같은 에러 때문에 실행이 안되었습니다. AttributeError: 'str' object has no attribute 'capabilities' 여러가지 찾아보니 이유는 셀리니움이 업데이트 되어서 이제 크롬 드라이버를 다운받지 않아도 된다고 하더라구요. 그래서 아래와 같이 추가하고 경로를 비우고 실행하면 된다고 합니다. chrome_options = webdriver.ChromeOptions() driver = webdriver.Chrome () 그랬더니 에러를 뿜지 않고 그냥 스크립트가 종료되어 버리는 것 같아요. 다만 sudo를 이용해서 스크립트를 실행하면 아래와 같은 에러가 나타납니다. ===== ubuntu@ip-172-31-43-47:~/bigdata$ sudo python3 5_ chrome.py Traceback (most recent call last): File "/home/ubuntu/bigdata/5_chrome.py", line 4, in <module> driver = webdriver.Chrome() File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/chrome/webdriver.py", line 45, in init super().__init__( File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/chromium/webdriver.py", line 61, in init super().__init__(command_executor=executor, options=options) File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 209, in init self.start_session(capabilities) File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 293, in start_session response = self.execute(Command.NEW_SESSION, caps)["value"] File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/webdriver.py", line 348, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.10/dist-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: session not created: Chrome failed to start: exited normally. (session not created: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x562ff172ef83 <unknown> #1 0x562ff13e7cf7 <unknown> #2 0x562ff141f60e <unknown> #3 0x562ff141c26e <unknown> #4 0x562ff146c80c <unknown> #5 0x562ff1460e53 <unknown> #6 0x562ff1428dd4 <unknown> #7 0x562ff142a1de <unknown> #8 0x562ff16f3531 <unknown> #9 0x562ff16f7455 <unknown> #10 0x562ff16dff55 <unknown> #11 0x562ff16f80ef <unknown> #12 0x562ff16c399f <unknown> #13 0x562ff171c008 <unknown> #14 0x562ff171c1d7 <unknown> #15 0x562ff172e124 <unknown> #16 0x7fc769a94ac3 <unknown> ==== 혹시나 해서 linux 인스턴스에서 다시 수행해보았지만 linux에서는 sudo 일 때와 아닐 때 모두 에러 메시지는 똑같네요... ㅠㅠ 뒤에 실습 2에서 linkedIn을 제어할 때에도 새롭게 창이 뜨는 것으로 보이니 해결하고 넘어가야 할텐데 답을 찾을 수가 없습니다 ㅠㅠ 무엇이 문제일까요? 도와주세요 선생님 ㅠㅠ 2."https://docs.python.org/3.5/library/"페이지를 크롤링해오는 스크립트가 에러 없이 일부만 실행되는 현상이 있는데 이유를 모르겠습니다. 스크립트를 실행하면 딱 이렇게 pygments.css 까지만 크롤링이 되고 그 다음 단계인 /library/intro.html 아래 페이지 정보는 크롤링되지 않은 상태에서 작업이 끝납니다. ====================== (venv) [ec2-user@ip-xxx-xxx bigdata]$ python3 practice1.py downloaded = https://docs.python.org/3.5/library/ analyzed html = https://docs.python.org/3.5/library/ downloaded = https://docs.python.org/3.5/_static/pydoctheme.css downloaded = https://docs.python.org/3.5/_static/pygments.css ====================== 몇번이나 공유해주신 코드와 비교해보아도 틀린 부분을 못찾겠네요 ㅠㅠ 스크립트가 에러를 뿜지도 않고 일단 일부 정보라도 가져오는 상태라 더 확인이 어렵습니다 ㅠㅠ 혹시 이런 경우에 대해 어떻게 해결하는지 아실까요? 새해 복 많이 받으세요!
그런데 작동은 잘 됩니다 배열 0번째, 1번째 1번째, 2번째 2번째, 3번째 . . 1번째, 2번째 2번째,3번째 이런식으로 비교해나가면서 가장 큰 수를 앞으로 보내고 가장 작은 수를 뒤로 보냈어요 그럼 배열의 가장 앞에 있는 숫자가 가장 큰 수 일 거고 가장 뒤에 있는 숫자가 가장 작은 수가 될 테니까요 작동은 똑바로 되는거 같은데 피드백 부탁드립니다!
시작하자마자 나오는 09_getcharSample을 직접 작성해보려하는데, 선생님 화면과 동일하게 파일을 만드는 방법을 모르겠습니다. 아예 처음인 사람은 사실 이렇게 시작하는방법부터 학습이 필요한데.. 어떻게 실행하면 될까요? 상단에 파일 - 새로만들기 - 프로젝트 - 빈 프로젝트 - 프로젝트이름 : 09_getcharSample 까지 하고 만들기 눌렀는데 코드를 입력하는곳이 안뜨네요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 안녕하세요. 김영한님의 강의를 들으며 스프링 부트를 활용한 웹 어플리케이션 개발을 진행하고 있는데, 단위 테스트 코드 작성 시 모범 사례(?)가 있는지 궁금해 질문하게 되었습니다. 영한님의 강의에서 "좋은 테스트는 단위 테스트부터 출발하며, 단위 테스트를 잘 만드는 것이 좋은 테스트의 출발이다."라는 의미의 말을 기억하며 단위 테스트 코드를 다음과 같이 작성해보았습니다. AppConfig 코드 @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } // ... } 단위 테스트 대상 (서비스 컴포넌트) @Component public class MemberServiceImpl implements MemberService{ private final MemberRepository memberRepository; @Autowired public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } // ... } 위 서비스 컴포넌트를 단위 테스트 하기 위해 아래와 같은 테스트 코드를 작성했습니다. class MemberServiceImplTest { @Test @DisplayName("사례1") void case1() { // @SpringBootTest를 사용하진 않지만 ApplicationContext를 사용 ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); // Bean 가져오기 MemberService memberService = ac.getBean(MemberService.class); MemberRepository memberRepository = ac.getBean("memberRepository", MemberRepository.class); // 가져온 것 확인하기 Assertions.assertThat(memberService).isInstanceOf(MemberService.class); Assertions.assertThat(memberRepository).isInstanceOf(MemberRepository.class); } @Test @DisplayName("사례2") void case2() { // 순수 자바로 가져오기 MemberRepository memberRepository = new MemoryMemberRepository(); MemberService memberService = new MemberServiceImpl(memberRepository); // 멤버 서비스 테스트 세팅 Member newMember = new Member(1L, "Test", Grade.VIP); memberService.join(newMember); // 멤버 서비스 테스트 검증 Member findMember = memberService.findMember(1L); Assertions.assertThat(newMember.getId()).isEqualTo(findMember.getId()); } }// 두 테스트 모두 테스트를 통과합니다.제가 궁금한 것은 사례1은 과연 유닛 테스트라고 할 수 있을까요? @SpringBootTest 를 붙여주지 않았을 뿐이지 스프링 컨테이너를 사용하기 때문에 유닛 테스트가 아닌 스프링 부트를 사용하는 통합 테스트라고 봐야하는거 아닌지 궁금합니다. 사례2는 순수하게 자바로 인스턴스를 생성해 테스트를 진행합니다. 따라서 완전히 스프링에서 독립된 유닛 테스트라고 볼 수 있을 것 같습니다. 그런데 이 경우, 스프링의 도움을 받지 않기 때문에 의존성 주입을 직접 해줘야 한다는 점이 걸립니다. 따라서 사례2 처럼 직접 인스턴스를 선언하여 생성자로 주입해주는 것이 좋은 코드인지 의문이 듭니다. MemberServiceImpl 코드를 보면 생성자에 자동 의존 주입이 명시되어있는데, 만약 사례2처럼 생성할때 직접 수동으로 삽입한다면 @Autowired 는 무시되는 것인가요?
안녕하세요. 기존에 제가 코딩할 때는 provider 파일에서 모든 동작, 상태변화를 한번에 처리했는데, 이 강좌에서는 이를 세분화하여 state, provider, repository 파일로 나눈 것 같습니다. 제가 초보여서 잘 모르겠지만, 플러터 업계에서는 이러한 작업패턴이 존재하는 것인가요? 정확한 명칭이 있나요? 제가 각 파일의 역할을 이해하지 못해서 구글링을 해봐도 원하는 답변을 찾을 수가 없어서 문의드립니다. 혹시 UI - State - Provider - Repository 관계를 개념적으로 설명해주시면 많은 도움 될 것 같습니다.
loginForm 컴포넌트에서 로그인시 '/' path로 보내려고 하는데 위와같은 오류가 뜨면서 진행대지 않습니다. baseUrl 찾아보니 default 값이 localhost:3000 으로 설정된걸 확인했습니다. 진짜 이리저리 찾아봤는데도 해결방법을 찾아볼수없어서 문의드립니다. 구글링한 방법중에 await 말고 then catch로 하면 댄다는글도 봐서 해봤는데도 오류가 그대로 나왔습니다. 서버랑 문제없이 잘됩니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
강의에 올려주신 대로 int a = 10; int b = ++a; 결과값이 11이 나오는걸로 이해했습니다 심심해서 추가적으로 작성을 좀 해보았는데 int a = 10; int b = ++a; // 10 + 1 == 11 int c = ++b; // 11 + 1 == 12 int d = ++c; // 12 + 1 == 13 Console.WriteLine(a); Console.WriteLine(b); Console.WriteLine(c); Console.WriteLine(d); 라는 식으로 코딩을 했을 때 주석처리 한게 제 예상 결과값 인데 실제로는 a,b,c,d에 11, 12, 13, 13 이라는 숫자가 저장되서 보여주더라고요 혹시 코드를 읽는 흐름이 제가 이해하는 것과 다른걸까요?