안녕하세요, 수강생 여러분 학습 관련 내용을 질문해주세요! 영상에나온 Gmail Api python 샘플 코드와 현재 구글에서 제공하는 샘플 코드가 다른거같아요. 영상에서 나온 코드를 직접 타이핑 하면될까요? 참고로 구글에서 제공하는 샘플코드는 아래와 같아요. import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # If modifying these scopes, delete the file token.json. SCOPES = ["https://www.googleapis.com/auth/gmail.readonly"] def main(): """Shows basic usage of the Gmail API. Lists the user's Gmail labels. """ creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists("token.json"): creds = Credentials.from_authorized_user_file("token.json", SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file( "credentials.json", SCOPES ) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open("token.json", "w") as token: token.write(creds.to_json()) 개인적으로 스크래핑/크롤링하는 사이트에 대한 질문에 대해서는 답변을 드리지 않아요!
기존 노트북에서는 잘 되었다가 다른 노트북에서 깃허브에서 pull해서 설정잡고 실행시키니 404에러가 뜹니다. yarn dev시 http://localhost:3000로 접속하면 잘 접속이 되지만 http://localhost:3000/section0909-04-boards 이렇게 접속하면 404에러가 뜹니다. 실행은 cs class로 이동 후 했습니다~
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 처음 강사님께서 save 메서드에서는 @Test public void save(){ Member member = new Member(); member.setName("Spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); Assertions.assertThat(member).isEqualTo(result); } 처럼 assertThat(member) 를 넣고 그 다음 isEqualTo(result)를 넣어 사용하셨는데, 이후에 findByName 에서는 @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring2").get(); Assertions.assertThat(result).isEqualTo(member1); } 이처럼 result가 먼저 나오고 그 다음 member를 넣어 사용하십니다. 혹시 무슨 차이일까요?
수업을 듣는 중에 가상 클래스의 정의가 이해가 가지 않아서 질문을 드려요수업에서는 가상 클래스의 정의를 ' 별도의 클래스를 정의하지 않아도 지정한 것처럼 ' 이라는 문구가 적혀있는데,가상 클래스의 사용할 때는 '클래스의 이름: 가상 클래스의 이름' 으로 작성을 하는 데, 이러면 클래스를 정의한 상태인 것 같아서 이해가 되지 않습니다. 혹시 좀 더 풀어서 설명해 주시면 안될까요?
안녕하세요, 아래에 다른분께서 질문하신 내용의 답변을 토대로 다시 궁금증이 생겨 여쭙니다. 타입에러가 아닌 상태에서 바인딩이 된 상태에서 필드오류가 발생한다면 bindingResult 의 fieldError에 오류내용이 담기는것은 이해했습니다. 만약 , 타입에러가 난다면 바인딩 이 안되는데, 이부분도 validation 과 마찬가지로 스프링이 필드오류보다 먼저 binding result 에 오류값이 담기나요?
실제 적용 방법 차시에서 질문드립니다. (1분 28초 부분) asset 폴더 main 안이 아닌 다른곳에 생성되어 있던데, 그걸 main 폴더로 옮기면 되나요? 안드로이드 스튜디오에 열어놓으신 페이지가 3개 있던데, 따로 설정해야 하는게 있는건지... 영상이 중간에 건너뛴 느낌이라... 이 부분 부터 못따라 가겠어요. ㅠ /Gradle Scripts/build.gradle(Module:app) 저는 이 폴더가 없어요. 뭘 잘못한걸까요?ㅠ 좀더 자세한 설명 부탁드립니다.
@Component 애노테이션을 사용하여 스프링 빈에 자동으로 클래스를 등록하고, 각 스프링 빈 간의 의존관계를 주입하는 방법에 대해 이해했습니다. 의존관계 주입의 목적이, SOLID원칙에서 특히 DIP원칙을 위반하지 않기 위함이라고 생각됩니다. 추상화에 의존하고, 클라이언트 코드의 변경을 줄이기 위함입니다. 그렇다면 실제 런타임에서 인스턴스(구현체)간의 의존 관계를 주입해주는 로직은 AppConfig에서 진행되는 건가요? @Configuration public class AppConfig { @Bean public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } @Bean public OrderService orderService() { return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public MemberRepository memberRepository() { return new MemoryMemberRepository(); } @Bean public DiscountPolicy discountPolicy() { return new FixDiscountPolicy(); } } 위 코드는 기존에 사용하던 AppConfig클래스입니다. 여기서는 @Bean을 사용하여 수동으로 빈 등록을 해주므로 충돌이 존재할 것이라 무언가 수정이 필요하다고 생각되고 @Bean만 제거한 코드를 사용하면 되나요? 생성자 주입을 통해 DI를 하는 것은 이해가 되었으나, AppConfig처럼 하나의 파일에서 런타임에 사용 될 의존관계를 정하는 코드가 궁금합니다
프로토콜이란 것이 참 추상적이어서 감이 잘 잡히지 않는데요, HTTP, FTP, SMTP, POP3 -------------------------- TCP, UDP TCP와 UDP의 차이는 어떻게 구현하는 것이며, HTTP, FTP, SMTP, POP3 프로토콜과 TCP, UDP의 관계에서 비롯된 차이가 궁금합니다. 예를 들어, HTTP 프로토콜을 TCP로 구성한다고 했을 때, 또는 HTTP 프로토콜을 UDP로 구성한다고 했을 때 TCP 프로그래밍은 3 Hand - Shake 구조만 갖추면 TCP 프로토콜이라 할 수 있을지요? 또는 UDP 구조만 갖추면 UDP 프로토콜이라고 할 수 있을지요? HTTP, FTP, SMTP, POP3 프로토콜의 차이는 Client / Server 소켓 프로그래밍으로 프로그래밍을 달리 구성하는것에서 차이가 오는지요? 또 그것을 구현 중에 TCP 구조 UDP 구조를 택하는 것에서 차이가 발생하는지요? TCP/IP프로토콜이라는 말은 IP프로토콜 기반 TCP 프로토콜을 말하는 것이라 알고 있는데, HTTP/UDP 또는 HTTP/TCP 이렇게도 표기하는지요? 고맙습니다.
선생님 안녕하세요 좋은 강의 감사합니다. 강의 내용에 대한 질문은 아니고요. 혹시 실습1에서 Rshiny를 사용하신 이유가 따로 있으실까요? Airflow는 파이썬이고, Rshiny를 처음 보는 것이어서 파이썬으로 된 시각화 라이브러리를 왜 사용하지 않는지 궁금합니다. plotly의 dash 같은 것은 airflow와 연동이 안되는건가요?
ComboTimer의시간을 설정하는 float ComboEffectiveTime = (ComboActionData->EffectiveFrameCount[ComboIndex] / ComboActionData->FrameRate) / AttackSpeedRate; 이 코드가 1초를 30Frame으로 잡고 원하는 Frame까지 시간을 체크하기위해서 시간계산 용으로 이해했는데 위같은 방법 대신 Animation Montage BluePrint 에서 Notify로 설정하고 함수를 호출하는 방법은 성능적 차이가 클까요?? 아니면 그냥 개발자의 선택에 따른 차이일까요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. java jdk 버전 확인 21 gradle 버전은 8.5입니다. 빌드 설치 후 jar 실행하면 안되네요. 다른 질문에 답변으로 환경변수 설정이 있길래 링크에 적힌 대로 다시 다 확인했는데도 안됩니다. 혹시 다른 방법이 있을까요? https://minstar0410.tistory.com/3
안녕하세요 강사님, Daily temperatures 문제 시간 복잡도에 의문이 생겨서 질문 드립니다. 강의에서 말씀해주신 코드가 아래와 같은데요 def daily_temperatures(temperatures): ans = [0] * len(temperatures) stack = [] for day, temp in enumerate(temperatures): while stack and stack[-1][1] < temp: prev_day = stack.pop()[0] ans[prev_day] = day - prev_day stack.append((day, temp)) return ans 첫번째 for 부분에서 시간 복잡도가 O(n)이고, 두번째 while문이 왜 시간복잡도가 O(1)인지 좀 헷갈립니다. list의 pop의 시간복잡도가 O(1)이긴 한데, 이것도 n번 반복하면 O(n)이지 않나요? while문에서 최대한 pop이 일어날수 있는 수가 n번 ? 같아서 질문 드립니다. 감사합니다.