학습 관련 질문을 최대한 상세히 남겨주세요! 고민 과정도 같이 나열해주셔도 좋습니다. 먼저 유사한 질문이 있었는지 검색해보세요. 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 강의 잘 들었습니다! 궁금한 점이 있어서 문의 드립니다. 강의에서는 상위 1000건에 대해서 articleId를 기준으로 Redis 캐시를 해두었는데 혹시 키워드(제목, 작성자, 내용등)에 대한 검색 페이징 처리도 캐시가 가능한걸까요? 제가 생각했을 때는 아래와 같은 방법으로 처리가 가능할 것 같은데 보통 대용량 트래픽 환경에서 해당 케이스를 어떻게 처리하는지 궁금합니다! 키워드 검색이 있을 경우 RDB에서 직접 조회 키워드 검색 조건 별로 Redis 캐시 Elasticsearch 도입 후 동기화하여 키워드 검색시 Elasticsearch에서 조회
안녕하세요! 10회 시험 대비 강의 업데이트 관련해서 문의드립니다. 기왕이면 업데이트 완료된 강의를 수강하고 싶어서요..! ‘작업형2’의 최종 업데이트 예정일이 어떻게 될까요? ‘작업형3’도 업데이트 예정이실까요? 그렇다면 업데이트 일정이 어떻게 될까요? 1,2번 문의 외 업데이트 예정인 강의가 또 있을까요?
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 1-11 어떤 알고리즘을 학습하고 계신가요? 소수 나열하기 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 소수 나열하기 2차 개선 조건식 위치 input = 20 def find_prime_list_under_number(number): prime_list = [] for n in range(2, number + 1): for i in prime_list: if n % i == 0 and i * i <= n: break else: prime_list.append(n) return prime_list result = find_prime_list_under_number(input) print(result) 코드의 어떤 로직이 이해가 안 되시나요? if n % i == 0 and i * i <= n: # 강의 노트 if i * i <= n and n % i == 0: # 수업 어떤 개념이 헷갈리시나요? 강의 노트와 수업에서의 개선된 로직이 어떤 연산을 줄여서 시간복잡도가 개선되는 건가요? i가 n의 제곱근보다 클 경우 나머지 연산을 수행할 필요가 없어 불필요한 나머지 연산을 수행하지 않기 위해 제곱근에 대한 조건식을 먼저 검사하지 않아도 되는건가요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 input = 20 def find_prime_list_under_number(number): prime_list = [] for n in range(2, number + 1): is_prime = True for i in prime_list: if i * i > n: break if n % i == 0: is_prime = False break if is_prime: prime_list.append(n) return prime_list result = find_prime_list_under_number(input) print(result)
listbox = [15, 46, 78, 24, 56] def answer(listbox): result = max(listbox) - min(listbox) return result answer(listbox) 마지막 퀴즈 문제에서 저렇게 풀어도 문제는 없는건가요 ?? 저는 함수명을 answer로 설정하고 data 대신 listbox를 바로 받았는데 이렇게 풀어도 문제가 없는지 궁금합니다.
몇시간째 이유를 모르겠네요. 아래와 같은 에러로 airflow에서 postresql로 접속이 안되는것 같습니다. File "/opt/airflow/dags/dags_python_with_ postgres.py ", line 17, in insrt_postgres with closing(psycopg2.connect(host=ip, dbname=dbname, user=user, password=passwd, port=int(port))) as conn: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/airflow/.local/lib/python3.12/site-packages/psycopg2/__init__.py", line 122, in connect conn = connect(dsn, connection factory=connection_factory, **kwasync) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ psycopg2.OperationalError: connection to server at "172.28.0.3", port 5432 failed: Connection timed out Is the server running on that host and accepting TCP/IP connections? from airflow import DAG import pendulum from airflow.operators.python import PythonOperator with DAG( dag_id='dags_python_with_postgres', start_date=pendulum.datetime(2023,4,1, tz='Asia/Seoul'), schedule=None, catchup=False ) as dag: def insrt_postgres(ip, port, dbname, user, passwd, **kwargs): import psycopg2 from contextlib import closing with closing(psycopg2.connect(host=ip, dbname=dbname, user=user, password=passwd, port=int(port))) as conn: with closing(conn.cursor()) as cursor: dag_id = kwargs.get('ti').dag_id task_id = kwargs.get('ti').task_id run_id = kwargs.get('ti').run_id msg = 'insrt 수행' sql = 'insert into py_opr_drct_insrt values (%s,%s,%s,%s);' cursor.execute(sql,(dag_id,task_id,run_id,msg)) conn.commit() insrt_postgres = PythonOperator( task_id='insrt_postgres', python_callable=insrt_postgres, op_args=['172.28.0.3', '5432', 'emuce', 'emuce', 'emuce'] ) insrt_postgres
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강사님, 강의하시는 건 그대로 따라하는 건 문제가 안되는데, VBA 하다가 넘어와서 그런지, 이게 속성인지, 메서드인지... 변수인지 객체인지 구분이 안가네요 ㅠ 사실 이걸 고민하지 않고 이해보다 ! 암기인 것 같은데요...
안녕하세요 168. TMDB5000 데이터 세트를 이용한 콘텐츠기반 필터링 구현 실습 - 02 강의에서 9:50 부분을 보면 find_sim_movie() 함수가 있습니다 강의 동영상에서는 The Godfather 와 유사도가 높은 순으로 결과가 나왔는데 The Godfather 가 유사도가 가장 높아야 되는데 The Godfatehr 가 아니고 다른 영화가 유사도가 가장 높은 것으로 나옵니다 왜 이런 결과가 나오는지 설명 부탁드립니다
안녕하세요 지금 4-4까지 들은 수강생입니다. 제가 데이터 사이언스 대학원 진학을 앞두고 있는데, 개인적으로 장고기반으로 한 웹페이지 + AI 프로젝트를 하고 싶어 장고를 배우고 하려고 하는데, 이게 솔직히 좀 많이 어렵고, 지금 코드를 따라치는 것만 하는 것 같아서 학습방향이 맞나해서 질문드립니다. 소스코드는 거의 주신 걸 이용해서 복붙하고, 이제 하신 코드를 따라서 치고 결과 확인을 하는 건데, 강의하면서 말씀하시는 DOM,,등등을 잘 알아듣기가 힘들어서요,,자바같은 경우에는 공부를 했어서 MVC 패턴같이 백에서 큰 그림을 그려가며 좀 자세하게 설명을 해주시는 줄 알았는데 그게 아니여서 조금 고민이 되는 것 같습니다. 저는 모델, 뷰 또는 urls가 서로 어떻게 작용을 해서 프론트로 뿌려주는 것인지에 대한 답답함, 그리고 각 코드가 어떠한 의미를 지녔는지 잘 모르겠는 부분에 대한 답답함을 지닌 것 같습니다. for문 또는 전체적으로 함수가 어떠한 역할을 하는지는 이해했으나 어떠한 방식으로 요청하고 받고 하는지에 대해 몰라서 조금 답답한 것 같습니다. 음 예를 들자면, songlist에 있는 거를 for문으로 해서 가져오는구나,,라는 건 이해를 했는데, view와 model은 어떠한 역할을 하기에 이걸 프론트로 뿌리는거지..?라는 질문도 생기고, html은 솔직히 거의 전부 이해가 안가기도 합니다. 혹시 다른 강의를 들어야할까요? 조언을 주시면 감사하겠습니다. 긴 글 읽어주셔서 감사합니다!
다음과 같이 코드를 작성했는데, 결과값에 .0 이 붙어서 출력됩니다. 왜 그런 걸까요? df['출동시간'] = pd.to _datetime(df['출동시간']) df['도착시간'] = pd.to _datetime(df['도착시간']) df['time'] = df['도착시간'] - df['출동시간'] result = df.groupby('소방서')['time'].mean() result = result.sort_values(ascending=False) result = round( result.dt.total _seconds() / 60) # round 함수에 반올림 위치를 명시하지 않으면 정수를 반환해야 하지 않나요?) print(result[0])
안녕하세요. 단건 update관련 질문이 있습니다. update +연산 update Member m set m.stock = m.stock + 1 where m.id = :id 이런식으로 해야하는 연산은 어떻게 처리하나요? 벌크작업은 아니지만 개수를 증가시킬 때 할당으로 쓰면 덮어씌워질 수 있느니 + 1 로 처리하는 경우도 있는 것으로 아는데, 이런 경우는 영속성 컨텍스트에 반영이 안되는걸로 알고 있습니다. 객체를 기반으로 업데이트 하는 경우 m.stock = n으로 할당이 되어서 이런 경우는 객체지향관점에서 어떻게 처리하고 설계하시는지 궁금합니다. 업데이트 전 조회 업데이트 전에 findOne 조회를 하시던데, 전 업데이트할 때 요청받은값만 덮어쓰면 되고 그게 더 안전할때도 있다고 생각이 듭니다. 이런 경우에는 어떻게 처리하시는지 궁금합니다. 또한, 객체를 기반으로 업데이트하기에는 요청받은 데이터가 객체랑 필드가 정확히 매핑될것 같지 않아서 결국 update문 하나만 요청하는 방식으로 처리해야 할 것 같은데 어떻게 처리하시는지 궁금합니다. 감사합니다.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 2-10 챕터 어떤 알고리즘을 학습하고 계신가요? 더하거나 빼거나 문제 여기까지 이해하신 내용은 무엇인가요? 2. 어려움을 겪는 부분 어느 부분에서 막히셨나요? 재귀함수 코드의 어떤 로직이 이해가 안 되시나요? get_all_ways_by_doing_plus_or_minus(array, current_index + 1, current_sum + array[current_index]) get_all_ways_by_doing_plus_or_minus(array, current_index + 1, current_sum - array[current_index] 제가 이해 안가는것은 처음에 cur_index = 0 , cur_sum = 0 부터 시작하잖아요 get_all_ways_by_doing_plus_or_minus(array,1,2) get_all_ways_by_doing_plus_or_minus(array,1,-2) 그러고 다음 cur_index = 1 , cur_sum = 2 이렇게 흘러가는데, 왜 get_all_ways_by_doing_plus_or_minus(array,1,-2) -2 가 안가고 +2 가 가는지 궁금합니다. get_all_ways_by_doing_plus_or_minus(array, current_index + 1, current_sum + array[current_index]) 계산이 전부 끝난 뒤에 get_all_ways_by_doing_plus_or_minus(array, current_index + 1, current_sum - array[current_index] 가 이어서 오는건가요 ? 어떤 개념이 헷갈리시나요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
강의 21:06에서 작성하신대로 LAZY로 설정한 객체에 접근하면 프록시 객체가 초기화되면서 필요한 때에 DB에 쿼리를 날린다고 하셨는데요. 반복문 횟수만큼 order.getMember().getName()을 사용하니 여기서 N+1 문제가 발생하는건가요? (LAZY 로딩의 객체를 초기화할 때는 테이블 전체를 가져오는 게 아니라 객체 하나만 로딩해오는거죠?) 감사합니다.