묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결코딩테스트 [ ALL IN ONE ]
linkedList - BrowserHistory 코드 질문
안녕하세요 linkedList에서 BrowserHistory 코드를 구현할 때저는 처음 linkedList 개념에서 생각했던 대로 linkedList + idx로 접근하는 방향으로 생각했습니다.# idx로 생각한 예시 # O(n) def insert(self, idx): current = self.head NewNode = Node() # insert하려는 앞 노드까지 for i in range(idx - 1): current = current.next NewNode.next = current.next current.next = NewNode그런데, BrowserHistory에선 linkedList + class 속성?(current)으로 풀이를 하신 것 같은데 맞을까요?문제 풀이할 때, visit을 할때마다 현재 idx를 global 변수로 저장해둬야 하나?라는 고민을 했어서 혹시 잘못 생각한 부분이 있는지 알려주시면 감사하겠습니다..!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
귀무,대립가설
대립가설과 귀무가설은 대응표본검정의 모든 문제에서 동일한 설정인가요 ?? 귀무가설: 뮤d >= 0 대립가설: 뮤d <0 2. 그리고 정규성 검정(샤피로윌크)할 때 df['diff'] = df['after'] - df['before']로 항상 계산하는건가요 ??대응표본검정은 뮤d가 before- after였는데 뮤d와 diff값은 아예 다른값이라고 생각하면 되는걸까요 ??
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
useActionState 사용 시 라우팅 처리 방법
안녕하세요! 회원가입 시 서버 액션을 작성 중인데 궁금한 점이 있어 질문드립니다.현재 서버 액션 함수는 아래와 같이 작성하였고, 클라이언트에서는 useActionState를 사용하여 액션의 반환 값을 받아 에러 메세지를 처리하고 있습니다. if (!id || !nickname || !password) { return { status: false, messages: "정보를 입력해주세요." } } try { const response = await fetch(`${baseUrl}/api/users`, { method: "POST", body: formData, }) return { status: true, messages: "" } } catch (err) { return { status: false, messages: "회원가입에 실패했습니다." } } // redirect("/home")을 여기에 위치 했었음 }회원가입 성공 시에는 /home 으로 이동시키고 싶어서 redirect를 사용하려고 하는데, redirect는 return문 때문에 실행되지 않는 문제가 있습니다.이런 상황에서는 다음 중 어떤 게 더 적절한 방법인지 궁금합니다..! 1) 서버 액션에서 회원가입 성공 시 return { status: true, messages: "" } 형태로 값을 반환하고, 클라이언트에서 성공 여부를 판단해 라우팅을 처리하는 방식 2) 서버 액션 내부에 let isSignupSuccess = false 같은 변수를 선언한 뒤,회원가입 성공하면 return문 없이 isSignupSuccess = true로 값을 변경하고, try-catch문 이후에 if (isSignupSuccess) redirect("/home") 형태로 라우팅을 처리하는 방식
-
미해결TS/JS 디자인 패턴 with Canvas: 제로초에게 제대로 배우기
커맨드 패턴 적용
디자인 패턴을 공부하면서 실제 구현중인 서비스에 적용해보려고 노력중인데(위 이미지는 예시 코드)예시 처럼 작성했을 때의 실효성이 invoker에서 audit log 같은 공통 코드 추출하는것 이외에 잘 느껴지지 않는데, 적절하지 않은 부분에 적용하려해서 그런것일까요?-> 단축키 예시처럼 해당 커맨드를 다른곳에서'도' 사용한다면 유용할것도 같네요!!추가로 ValidateLeadFieldCommand, CreateLeadCommand 이런식으로 여러 커맨드가 순차로 실행해야하는 경우에 invoker도 커맨드마다 만들어야할까?하는 고민도 듭니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
8회 작업형2 원핫인코딩
기출 8회 작업형2 내용 중원핫인코딩을 하는 부분이 있는데먼저 cols에 train의 object타입 컬럼을 담아놓고train = pd.get_dummies(train,columns=cols) test = pd.get_dummies(test,columns=cols)이런식으로 작성을 하는데,다른 영상에서는 columns=cols 이 부분을 안 넣는 것도 본 것 같아서요!저 구문의 의미와 넣었을 때와 안 넣었을 때의 차이점이 궁금합니다!
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2 파일 생성전 pred 순서에 오류
안녕하세요 8회 작업형 2번을 간단한 방법을 풀다가 오류가 발생했는데 도통 뭐 잘못작성한지 모르겠습니다..확인 부탁드리겠습니다! import pandas as pd train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/8_2/churn_train.csv") test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p4/8_2/churn_test.csv") # print(train.shape, test.shape) # train.head() # train.isnull().sum() # train = train.drop('CustomerID', axis = 1) # tesT = test.drop('CustomerID', axis = 1) target = train.pop('TotalCharges') # cols = train.select_dtypes(include = 'O').columns # # print(cols) # from sklearn.preprocessing import LabelEncoder # for col in cols : # le = LabelEncoder() # train[col] = le.fit_transform(train[col]) # test[col] = le.transform(test[col]) train = pd.get_dummies(train) test = pd.get_dummies(test) from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state = 0) # print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) # from sklearn.ensemble import RandomForestRegressor # rf = RandomForestRegressor(random_state = 0) # rf.fit(X_tr, y_tr) # pred = rf.predict(X_val) # print(pred) # 937.577739684466 import lightgbm as lgb model = lgb.LGBMRegressor(random_state = 0, verbose=-1) model.fit(X_tr,y_tr) pred = model.predict(X_val) # 946.7024808036148 from sklearn.metrics import mean_absolute_error print(mean_absolute_error(y_val, pred)) pred = model.predict(test) submit = pd.DataFrame({'pred':pred}) submit.to_csv('result.csv',index = False) # result = pd.read_csv('result.csv')
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pd.to_datetime 적용시 오류 문의
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요df['날짜']=pd.to_datetime(df['날짜']) df['연도']=df['날짜'].dt.year 으로 변환해서 짜고 싶은데, 오류가 나는 이유가 뭘까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
범주형변수 처리관련
ols사용할때 독립변수가 범주형이면C()로 감싸는데문제를풀면서 이 변수가 범주형인걸 알더라도문제에서 특정변수가 범주형이라고 주어지지않는한C()를 사용하지 않는게 낫나요? 자의로판단해서 C()를 하는건지 문제에서 주어진것만 하는지 질문드립니다. 왜냐면케글문제를 푸는데 특정변수가 범주형이라고 주어졌는데, 다른 변수도 범주형인 경우가 있었습니다https://www.kaggle.com/code/agileteam/t3-2-example-py
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
강사님 안녕하세요!
캐글 t1-38.pivot-py 질문이 있습니다. # - 1) 총가입금액 컬럼을 생성하세요. (총가입금액 = 보험상품_가입금액 + 저축상품_가입금액)df['총가입금액'] = df['보험상품_가입금액'] + df['저축상품_가입금액']# print(df.head())# - 2) 각 지점코드와 연령대별로, 성별에 따른 총가입금액 합계를 구하세요.(단 합계 결측치일 때는 0으로 대체하시오)df_pv = df.pivot_table(index=['지점코드', '연령대'], columns='성별', values='총가입금액', aggfunc='sum', fill_value=0).reset_index()# print(df_pv) # C303 50대 2 컬럼 => NaN# # # help(pd.pivot_table) # fill_value 여기서 확인 가능# - 3) 연령대가 40대 또는 50대인 경우에 한해, 성별 간 총가입금액 차이(절댓값 기준)가 가장 큰 지점코드를 구하세요. (정답은 지점코드 1개 예: B204)# print(df.head())cond40 = df['연령대'] == '40대'cond50 = df['연령대'] == '50대'df = df[cond40 | cond50]# print(df.head())df_pv2 = df.pivot_table(index=['지점코드', '연령대'], columns='성별', values='총가입금액', aggfunc = 'sum', fill_value=0).reset_index()# print(df_pv2)df_pv2['diff'] = abs(df_pv2[1] - df_pv2[2])# print(df_pv2['diff'].idxmax())cond = df_pv2['diff'].idxmax()# print(df_pv2.loc[cond]['지점코드'])# C303# - 4) 3번에서 찾은 지점과 연령대에서, 총가입금액이 더 높은 성별의 금액은 전체 고객 총가입금액의 몇 %를 차지하나요? (반올림 후 소수 셋째자리 구하기)# print(df_pv2)# print(df_pv2.loc[cond]['연령대']) # 50대# print(df.head())total = df['총가입금액'].sum()# print(total) # 150333657# print(df_pv2)cond_a = df_pv2['지점코드'] == 'C303'cond_b = df_pv2['연령대'] == '50대'df3 = df_pv2[cond_a & cond_b]# print(df3) # 12353774diff = 12353774result = diff / total * 100print(round(result, 3)) 제가 작성한 코드입니다.강사님께서 풀이로 올려주신 코드와 약간의 차이가 있지만, 결국 차이(diff)값과 total값은 똑같을텐데저는 결과값이 8.218이 출력되고있습니다.잘못 코딩한 부분 지적해주시면 감사하겠습니다!매번 감사드립니다.내일 모레 시험 잘 보고 오겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예제 작업형2 관련 질문드립니다.
아래와 같이 코드를 작성했는데, rmse값이 선생님께서 푸신거랑 다르게 너무 작게 나와서 질문드려요. 제가 봤을 땐 선생님이 작성하신 코드랑 똑같이 한 것 같은데.. 어떤 부분에서 달라진 건가요? 제가 어디서 실수한지 모르겠습니다 import pandas as pd train = pd.read_csv("data/customer_train.csv") test = pd.read_csv("data/customer_test.csv") pd.set_option('display.max_columns',None) pd.set_option('display.float_format','{:.10f}'.format) # 총구매액 예측 -> 회귀. RandomForestRegressor & predict # root_mean_squared_error # csv파일명 : result.csv / 타겟 칼럼명 : pred (2482개!) # EDA # 데이터전처리 # 환불금액 결측치 0으로 처리 train['환불금액'] = train['환불금액'].fillna(0) test['환불금액'] = test['환불금액'].fillna(0) # 레이블 인코딩 from sklearn.preprocessing import LabelEncoder lb = LabelEncoder() cols = train.select_dtypes(include = 'O').columns for col in cols: train[col] = lb.fit_transform(train[col]) test[col] = lb.transform(test[col]) target = train.pop('총구매액') # 데이터분할 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size = 0.2, random_state = 0) # 모델학습 및 평가 from sklearn.ensemble import RandomForestRegressor rf = RandomForestRegressor(random_state = 0, n_estimators = 400) rf.fit(X_tr,y_tr) pred = rf.predict(X_val) from sklearn.metrics import root_mean_squared_error print(root_mean_squared_error(y_val, pred)) # 베이스라인 : 808.1092610336881 # n_estimators = 400 : 793.0646436460113 # 결과 계산 및 제출 pred = rf.predict(test) result = pd.DataFrame({'pred': pred}) result.to_csv('result.csv', index = False) submit = pd.read_csv('result.csv') print(submit)
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 제1유형 문제 풀이 답안
작업형 제1유형은 문제 풀이 화면(python) 출력에서도 답안에 제출할 숫자만 출력이 되어야 하는건지 궁금합니다. 작업형 제1유형은 문제 풀이 화면(python)에서 문제를 푼 후, 답안 제출 화면에서 답을 입력하고 제출한다고 되어 있는데, 문제 풀이 화면(python) 속 출력 값도 채점에 포함되는지 여쭤보고 싶습니다. 섹션 16. 67. 6회 기출문제(작업형3) 강의 중 3분 49초 쯤에 작업형3은 작업형1과 달리 출력을 답안에 맞게 할 필요가 없다는 말씀을 하셨는데 작업형 제1유형은 python 출력에서도 답안에 제출할 숫자만 출력이 되어야 하는건지 혼란스러워 질문합니다.
-
미해결graphRAG - Neo4J로 구현하는 지식 그래프 기반 RAG 시스템 (feat. LangChain)
AuraDB 연동 안되는 현상 질문
vscode에서 uv로 가상환경 생성후 .env 파일에서# Neo4J 설정 - AuraDB NEO4J_URI=neo4j+s://{id}.databases.neo4j.io NEO4J_USERNAME=neo4j NEO4J_PASSWORD={PASSWORD} NEO4J_DATABASE=neo4j해당 방식 적용 후, AuraDB 연동을 해도 적용이 안되고 아래와 같이 에러가 뜹니다. ValueError: Could not connect to Neo4j database. Please ensure that the url is correct 해결책 문의 드립니다. P.S colab에서는 올려주신 KG_P1_01_neo4j_Introduction.ipynb 실행하니 동작하네요. 왜 저의 로컬에서는 이런 현상이 일어나는 걸까요?
-
미해결
🎸기타동아리 「클래시아」에서 동아리원을 모집합니다⚡
🎸기타동아리 「클래시아」에서 동아리원을 모집합니다⚡️🎸기타동아리 「클래시아」에서 동아리원을 모집합니다⚡️🎼 소개클래식 기타를 연주하면서 클래식 음악의 이해를 넓혀보자는 취지에서 시작됐다고 합니다. 클래시아(classia)라는 이름은 ‘classic’(고전) ‘music’(음악)에서 따왔고, 부드러운 이미지를 위해 ‘sia(시아)’라는 접미사를 붙였습니다. 기존에는 클래식 기타와 통기타에 한정해 활동했지만, 최근에는 합주팀 제도를 도입해 베이스, 일렉, 키보드, 드럼, 보컬까지 포용하며 스펙트럼을 확장해가고 있습니다. 시대에 맞춰 매년 변화하는 게 클래시아만의 매력이라고 생각합니다. 🎼운영주체저희는 정치, 종교, 시민단체와는 무관하며, 한양대, 명지대, 홍대, 연세대 등등 원래 기타 모임을 갖던 대학생들끼리 만든 동아리입니다😆2. 활동내용/계획🎼활동지- 신촌/홍대/합정 근방 연습실(연습실 대여 상황에 따라 위치 조정될 수 있음)- 여의도, 선유도 등등 한강에서 기타 낭만😎- 같은 학교 학생끼리 대학교 캠퍼스에서 기타치는 낭만😎- 가끔은 기타 쇼핑하러 낙원상가~🎸🎼활동일시-4인 1조 구성 및 상황에 따라 2인 1조-단톡방 및 공지방 운영-격주 화요일 저녁 6시 활동 (조별 조정가능)-활동없는 주 자율연습/친목모임 가능🎼회비-가입비/회비 X-연습실 대여비 더치페이🎼조편성- 기타 실력에 따라 A(고급), B(중급), C(입문) 조로 나누어 활동예정- 공연 준비 때는 전체 연습도 있을 예정🎼조별활동고급, 중급조은 각 조원들과 마스터 원하는 곡을 자율선정, 연습하게 되며기타를 칠 줄 모르는 입문자분들은 특강자분 통해 기초부터 가르쳐드립니다.(고급,중급조에서도 특강자분과 활동 원하실 경우 따로 요청 부탁드립니다.)🎼입문자 커리큘럼1회차- 기타 기본 세팅(조율, 명칭)- A key major chord (A, E, D)- 4비트 스트로크 연습*기타 없으신 분들 같이 기타 사러가요~!!2회차- G key chord (G, C, Am, Em)- 코드체인징- 8비트 스트로크(칼립소, 셔플)3회차- "바래"라는 것에 도전을 해보자...!!!- A key minor chord(F#m, Bm, C#m)- C key chord(C, F, G, Dm...)3. 지원자격-서울권 대학생/휴학생(신촌/홍대/합정 이동 가능하신 분만 지원부탁드립니다.)-기타를 배우고 싶으신 분-기타 실력을 기르고 싶으신 분-기타가 아니더라도 다른 악기도 배워보고 싶으신 분4. 모집절차🎼모집기간 : 6월 07일~6월 30일🎼활동기간 : 7월 01일~2월 예정지원폼 작성 - 전화면접 - 대면면접 - 활동*각 단계별 3일 이내로 연락이 없다면 불합격입니다.5. 지원방법🎼지원폼: https://buly.kr/FhNsIDn🎼사이트: https://buly.kr/DPU1Xbh🎼Q&AQ1. 악기 연주를 못 하는데 들어갈 수 있나요?저희 동아리 선발 기준은 ‘음악과 관련된 활동을 하고 싶어 하는 사람’이에요. 특별한 자격요건은 없어요. 음악을 사랑하고 좋아하는 사람이면 무조건 환영합니다! 악기를 못 다뤄도 강좌팀에서 다 가르쳐줘요. 동아리방에 공용 기타를 5대나 구비하고 있어서 악기가 없어도 활동할 수 있고요.Q2. 정규 활동은 어떻게 이뤄지나요?강좌팀과 2개의 합주팀으로 나눠서 활동하고 있어요. 먼저 강좌팀은 제가 맡고 있는데요. 기타를 처음 접하는 사람 위주로 강습을 진행하고 있어요. 동아리방에서 매주 금요일과 토요일에 합니다.강좌팀에서 실력이 늘면 합주팀에 들어갈 수 있는 기회가 주어져요. 학기 시작 전과 신입부원 모집 후 합주팀을 재구성하는데 이때 신청하면 돼요. 이 외에도 콘서트, 뮤지컬 관람 등 다양한 음악 관련 활동을 하고 있습니다.
-
미해결김영한의 실전 자바 - 기본편
Student student1
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Student student1 은 쓰는데 Student student2는 안해도 되는 이유가 뭔가요여기에 질문 내용을 남겨주세요.
-
미해결Next.js 15로 완성하는 실전 YouTube 클론 개발
Link component의 legacyBehavior 속성이 deprecated
next15 의 Link component의 legacyBehavior 속성이 deprecated 되었습니다. 대체하기 위해 강의영상에서처럼 useRouter 를 사용하면 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형3 (ver.2025)의 결과값이 다르게 나옵니다.
예시문제 작업형3 (ver.2025)의 두번째 문제를 풀었는데, 저는 답이 0.442 가 나오는데요.. 이건 정답이 있는거라 다르면 안되는거잖아요..ㅜㅜ 정말 똑같이 했는데.. 뭐가 문제일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
캐글 작업형1 t1-39 2번 문제 질의
아래와 같이 처리할 경우 결측치가 모두 채워지지 않고, 결과값이 60.0으로 산출됩니다.혹시 cond에 따른 df[cond].groupby.transform을 바로 result로 받으면 안되는 이유가 있을까요? cond = df['총 학습 시간'] >= 500 result = df[cond].groupby(['학습 카테고리'])['완강률'].transform('mean') #print(df['완강률'].isnull().sum()) == 6 df['완강률'] = df['완강률'].fillna(result) #print(df['완강률'].isnull().sum()) == 2 df[df['학습 카테고리'] == '디자인']['완강률'].mean().round(1)
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
예시문제 작업형2(ver.2025) rmse 문의드립니다
rmse는 sklearn에서 지원하지 않아 mse를 구한다음 따로 다시 구해야되는 걸로 알고 있는데요,해당 강의 영상을 보면 from sklearn.metrics import root_mean_squared_error 로 바로 사용하고, root_mean_squared_error(y_val,pred)로 사용하셔서요. 만약 문제에서 rmse 문제가 나오면 이 코드를 그대로 써도 되는 건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
체험환경에서 데이터.csv
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요체험환경에서 데이터.csv 클릭하면 데이터 보이던데, 시험장에서 이렇게 확인해도 되는건가요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 답안제출 관련 질문
작업형2 제출 할 때 답안 확인 차 코딩했던 pd.read_csv("result.csv")요 부분까지 냅둔채로 제출해도 상관없나요?