묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결독하게 시작하는 C 프로그래밍
예제파일 다운로드
어디서 받을 수 있는 건가요?
-
미해결[게임 프로그래머 도약반] DirectX11 입문
루키스님이 어떻게 공부하는지에 대한 질문
루키스님은 이런 지식같은것을 어떻게 공부하셨는지 궁금합니다 책을 보셔서 혼자 공부하셨는지 아니면 다른 강의가 있다던지 아니면 완전 코드를 처음부터 하나하나 봐가시면서 전부 분석하셨는지 궁금합니다
-
미해결[CS 기술면접 1탄] 쉽게 정리하는 컴퓨터 구조
CPU-명령어 처리 흐름
안녕하세요 강의 잘 수강하고 있습니다.강의 후반 부 6:47초 부근에서 Fetch단계에서 그림에 대해서 의문이 있습니다. 앞서 배운 시스템 버스의 구조상 메모리는 주소 버스에 접근하지 않는 걸로 이해(CPU -> 주소 버스 -> 메모리; 단방향)했습니다. 하지만 해당 그림에서는 메모리에서 기억장치 주소 레지스터에 접근하여 명령어 주소를 가져오는 것으로 이해가 되는데요. 기억장치 주소 레지스터가 메모리에 명령어 주소를 넘겨주는 단방향 흐름이 아닌가요?
-
미해결비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
결제프로필에 구글시험입금이 안되고있는 상황
안녕하세요,현재 결제수단에 입금받을 계좌를 입력하고 기다린지 이틀이 넘어가는데도 한번도 구글에서 시험입금해준 계좌가 없는데, 혹시 뭔가 다른조치를 해야될까요~?은행계좌를 하나로 한다던가, 뭔가 웹이 광고승인이 날때까지 기다려야한다던가... 입금이 100원커녕 들어온적도 없는데 어떻게 해야되는걸까요~?
-
미해결프론트엔드 개발자를 위한, 실전 웹 성능 최적화(feat. React) - Part. 2
예제 프로젝트 관련 질문입니다.
강의 보고 따라해 보고 싶은데 예제 프로젝트는 제공 되지 않는 걸까요?
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
CustomButton 코드 버튼 관련 질문
버전 차이 (RN StyleSheet, Expo)의 문제거나 안드로이드의 문제인지는 모르겠지만 강의 중 코드로 작성하면 아래와 같은 문제가 나옵니다. Pressable과 Text에 backgroundColor와 color가 스타일링이 되는 방식이나 Button 요소에 opacity가 적용이 되지 않는 듯한 이슈인 것 같아서 아래와 같이 해결했습니다. return ( <Pressable style={({ pressed }) => [ styles.container, styles[size], { backgroundColor: styles[variant].backgroundColor }, pressed && styles.pressed, ]} {...props} > <Text style={[styles.text, { color: styles[variant].color }]}> {label} </Text> </Pressable> ); ... const styles = StyleSheet.create({ container: { borderRadius: 8, justifyContent: "center", alignItems: "center", }, text: { fontSize: 14, fontWeight: "bold", }, // size large: { width: "100%", height: 44, }, medium: {}, // variant filled: { backgroundColor: colors.ORANGE_600, color: colors.WHITE, }, // Pressable props pressed: { opacity: 0.8, }, });저는 강의 코드 대신 이렇게 해서 해결은 되었는데 혹시 이 이슈가 일어나는 이유와 앞으로 코드 복잡도가 어떻게 될 지는 모르겠지만 CustomButton이 그렇게 복잡해지진 않을 것 같은데 방법이 최선일지, 아니면 더 개선할 점이 있는지 궁금합니다.
-
미해결딥러닝 기반 이미지·객체 인식: CNN에서 YOLO·DETR까지
섹션2 코드 관련하여 질의드립니다.
안녕하세요 강사님 섹션 2의 CNN 실습(100_CIFAR10_CNN.ipynb) 관련하여 질문드립니다.아래 코드에서는 train_loss에 배치별 loss를 누적한 뒤, for문이 끝나면 train_loss /= len(train_data) 로 평균을 계산하고 있습니다.그런데 loss.item()은 이미 각 배치에서 평균이 적용된 스칼라 값입니다. 따라서 다시 전체 데이터 개수(len(train_data))로 나누면 이중으로 평균이 계산되는 것 같습니다. 그래서 저는 train_loss += loss.item() * x.size(0) 형태로 배치 손실의 합계를 누적한 뒤, 마지막에 전체 데이터 수로 나누는 방식이보다 정확하다고 생각하는데, 혹시 어떻게 생각하실까요? 좋은 강의 제공해주셔서 감사합니다. for x, y in train_loader: # 훈련 데이터셋을 배치 단위로 순회 x, y = x.to(device), y.to(device) # 배치 데이터를 현재 디바이스로 이동 optimizer.zero_grad() # 이전 그라디언트를 초기화 z = model(x) # 모델을 통해 예측값 계산 loss = criterion(z, y) # 예측값과 실제 레이블 간의 손실 계산 train_loss += loss.item() # 손실 누적 y_pred = z.argmax(1) # 가장 높은 예측값의 인덱스를 정답으로 선택 train_acc += (y_pred == y).sum().item() # 정확히 예측된 개수 누적 loss.backward() # 손실에 대한 그라디언트 계산 optimizer.step() # 모델의 가중치 업데이트 train_loss /= len(train_data) # 평균 훈련 손실 계산 train_acc /= len(train_data) # 평균 훈련 정확도 계산 LOSS.append(train_loss) ACC.append(train_acc)
-
미해결Python 엑셀 프로그래밍 - with xlsxwriter
메일보내기 할 때 에러..
한글파일명인 액셀파일을 첨부하는 것은 안되나요?아니면, 액셀 내 columns value 값이 한글인 것을 가져와서 메일 헤더나 파일명으로 사용한게 에러인 것인지..궁금합니다... 메일주소와 password 는 '^^^^^' 임의 처리한 코딩입니다. 오류내용:❌ 이메일 발송 실패: 진리종합상사 - 'ascii' codec can't encode characters in position 5-7: ordinal not in range(128) import pandas as pd import os from openpyxl.utils import get_column_letter from openpyxl.styles import Font, PatternFill, Alignment, Border, Side import smtplib from email.message import EmailMessage import ssl from email.header import Header from email.utils import formataddr # ------------------------- # 설정 # ------------------------- cost_manage_path = 'cost_manage.xlsx' partner_path = 'partner.xlsx' output_dir = 'output' SENDER_EMAIL = '^^^^^^^^^^^^^^' SENDER_PASSWORD = '^^^^^^^^^^^^^^' SMTP_SERVER = 'smtp.gmail.com' SMTP_PORT = 587 # ------------------------- # 엑셀 읽기 # ------------------------- try: cost_data_df = pd.read_excel(cost_manage_path, sheet_name='Sheet1', header=1) partner_sheet1_df = pd.read_excel(partner_path, sheet_name='Sheet1') partner_sheet2_df = pd.read_excel(partner_path, sheet_name='Sheet2') except FileNotFoundError as e: print(f"오류: 파일을 찾을 수 없습니다. {e.filename}") exit() # ------------------------- # 데이터 전처리 # ------------------------- for df in [cost_data_df, partner_sheet1_df, partner_sheet2_df]: df.columns = df.columns.str.strip() cost_data_df = cost_data_df.drop(columns=['협력사ID', '협력사명']) cost_data_df['상세분류ID'] = cost_data_df['상세분류ID'].astype(str).str.strip() partner_sheet1_df['상세분류ID'] = partner_sheet1_df['상세분류ID'].astype(str).str.strip() partner_sheet2_df['협력사KEY'] = partner_sheet2_df['협력사KEY'].astype(str).str.strip() merged_df = pd.merge(cost_data_df, partner_sheet1_df, on='상세분류ID', how='left') final_df = pd.merge(merged_df, partner_sheet2_df, on='협력사KEY', how='left') final_df = final_df.drop(columns=['상세분류명_y']) final_df = final_df.rename(columns={'상세분류명_x': '상세분류명'}) final_columns = ['상세분류ID', '상세분류명', '협력사KEY', '협력사ID', '협력사명', '상품ID', '규격', '단가', 'moq', '이메일주소'] real_final_df = final_df[final_columns] grouped_by_partner = real_final_df.groupby('협력사KEY') if not os.path.exists(output_dir): os.makedirs(output_dir) # ------------------------- # 엑셀 생성 & 이메일 발송 # ------------------------- for partner_key, group_df in grouped_by_partner: # 엑셀 데이터 준비 columns_for_excel = ['상세분류ID', '상세분류명', '협력사ID', '협력사명', '상품ID', '규격', '단가', 'moq'] data_to_write = group_df[columns_for_excel].copy() header_row1 = pd.DataFrame([['', '', '', '', '', '', '▼작성', '▼작성']], columns=columns_for_excel) header_row2 = pd.DataFrame([columns_for_excel], columns=columns_for_excel) final_excel_df = pd.concat([header_row1, header_row2, data_to_write], ignore_index=True) # 파일 경로 file_name = f"{partner_key}_견적_요청서.xlsx" output_path = os.path.join(output_dir, file_name) # 엑셀 생성 with pd.ExcelWriter(output_path, engine='openpyxl') as writer: final_excel_df.to_excel(writer, index=False, header=False, sheet_name='Sheet1') worksheet = writer.sheets['Sheet1'] worksheet.sheet_view.showGridLines = False # 스타일 설정 bold_yellow_fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid') center_align = Alignment(horizontal='center') left_align = Alignment(horizontal='left') bold_font = Font(bold=True) thin_border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin')) # 1행 스타일 for cell in worksheet[1]: if cell.value == '▼작성': cell.fill = bold_yellow_fill cell.font = bold_font # 2행 스타일 for cell in worksheet[2]: cell.alignment = center_align cell.border = thin_border # 데이터 행 스타일 left_align_cols = ['상세분류ID', '상세분류명', '규격'] col_map = {col: i + 1 for i, col in enumerate(columns_for_excel)} for row_num in range(3, worksheet.max_row + 1): for col_name in columns_for_excel: cell = worksheet.cell(row=row_num, column=col_map[col_name]) cell.alignment = left_align if col_name in left_align_cols else center_align cell.border = thin_border # 열 너비 자동 조정 for column in worksheet.columns: max_length = 0 column_letter = get_column_letter(column[0].column) for cell in column: if cell.value: max_length = max(max_length, len(str(cell.value))) worksheet.column_dimensions[column_letter].width = max_length + (20 if column_letter == get_column_letter(col_map['규격']) else 5) print(f"✅ '{file_name}' 파일이 '{output_dir}' 폴더에 생성되었습니다.") # 이메일 정보 partner_email = group_df['이메일주소'].iloc[0] partner_name = group_df['협력사명'].iloc[0] if pd.isna(partner_email): print(f"❌ {partner_name}의 이메일 주소가 없어 이메일 발송을 건너뜁니다.") continue print(f"📧 '{partner_name}' ({partner_email})님에게 이메일 발송 중...") msg = EmailMessage() msg['From'] = formataddr((str(Header('보내는 사람 이름', 'utf-8')), SENDER_EMAIL)) msg['To'] = partner_email # 이 부분만 이전 코드로 되돌려 일반 문자열을 할당합니다. msg['Subject'] = f'[{partner_name}] 월간 비용 견적 요청서입니다.' body = f"""안녕하세요, {partner_name} 담당자님. 월간 비용 견적 요청서(첨부파일)를 보내드립니다. 확인 후 회신 부탁드립니다. 감사합니다. -- 보내는 사람 이름 """ msg.set_content(body) try: with open(output_path, 'rb') as f: # `filename` 인수를 일반 문자열로 전달 msg.add_attachment(f.read(), maintype='application', subtype='octet-stream', filename=file_name) except Exception as e: print(f"❌ 파일 첨부 중 오류 발생: {e}") continue try: context = ssl.create_default_context() with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server: server.starttls(context=context) server.login(SENDER_EMAIL, SENDER_PASSWORD) server.send_message(msg) print(f"✅ 이메일 발송 성공: {partner_name}") except Exception as e: print(f"❌ 이메일 발송 실패: {partner_name} - {e}")
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
C++ 전혀 모르는데 C# 서버
C++ 전혀 모르는데 C#서버 만드는데전혀 지장 없을까요?
-
미해결실전! Querydsl
querydsl sum() 메서드 없어요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]보시다시피 sum()은 아예 없어요. NumberExpression 클래스에서 집계 함수들을 살펴보니깐 sum() 은 private로 되어있고, 나머지 sum 함수들은 내부에서 sum()을 호출해요. 구글에 검색해보면 다들 sum을 쓸 수 있는 것처럼 보이던데 왜 저만 이럴까요?그리고 sumBigInteger()는 있는데 정작 sumInteger()는 왜 없을까요?
-
미해결Git & GitHub, 원리부터 차근차근 - 근본깃 [완성편]
문서가 락이 걸어져있네요.
문서가 락이 걸어져있네요. 비번 알려주세요. 강의노트에도 없어서 문의 남깁니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
vscode 터미널 출력이 안되요
위에서 입력하면 터미널 창에 나와야 되는데 안나와요ㅠ
-
미해결[AI] 프롬프트만으로 아이디어 구현하기_바이브코딩 입문
venv 설정 관련
강의에서는 폴더를 선택하고 main.py를 만든 다음 venv를 세팅하는데, 폴더를 만든 다음 venv를 설정한 후 main.py를 만드는 것과의 차이가 있나요?
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
vscode 명령 팔레트 오류
vscode 명령 팔레트에서 파이썬(다운로드한 파이썬 최신버전 64-bit 클릭한 후 test.py 파일생성하는데 오류뜨면서 실행할 수 없다고 나옵니다
-
미해결PMP(프로젝트 관리 전문가) 자격 취득과정
문서에 다 락이 걸어져있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!- 먼저 유사한 질문이 있었는지 검색해보세요.- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 문서를 다운받아서 볼려고 하는데요 Lock 이 걸어져있습니다. 비번 알려주세요.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
@media에서의 flex-direction: column으로 세로배치 관련 질문드립니다.
안녕하세요 선생님!수업 잘 듣고 있습니다.질문이 있어 글을 작성합니다.강의와 같이 코드를 작성하였습니다.@media (max-width: 768px) { .modal-content { flex-direction: column; width: 100%; } }위처럼 @media (max-width: 768px) { .modal-content { flex-direction: column; width: 100%; } }를 작성하면 모바일에서 확인 시 새로 배치가 되어야 하는 것 같은데... 하단 이미지와 같이 가로 배치 그대로 유지 됩니다. 무엇이 문제일까요 ㅠㅠ 전체 코드는 아래와 같습니다. <body> <div class="modal"> <div class="modal-content"> <div class="photo"></div> <div class="desc"> <div class="desc-header"> <h2>지금 다양한 혜택을 받아보세요.</h2> <button class="btn-close">×</button> </div> <div class="desc-content"> <input type="email" placeholder="이메일 주소를 입력하세요." /> <button>뉴스레터 구독하기</button> <p> 스타트업메이트 뉴스룸의 다양한 소식과 혜택을 이메일로 받아 보시려면 구독 신청 해주시기 바랍니다. 스타트업메이트에 대해 알고 싶은 뉴스, 꼭 알아야 할 뉴스를 신속하고 정확하게 전합니다. </p> </div> </div> </div> </div> <div class="overlay"></div> </body> * { box-sizing: border-box; font-family: "Noto Sans", sans-serif; } body { font-weight: 300; color: #222; font-size: 15px; line-height: 1.6em; } a { color:#222; text-decoration: none; } .modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: #fff; border-radius: 5px; box-shadow: 0 0 10px rgb(0, 0, 0, 00.15); z-index: 10; overflow: hidden; } .modal-content { /* border: 1px solid #000; */ width: 600px; display: flex; } .modal-content > div { padding: 20px; } .photo { flex:1; background: url(/img/office.jpg) no-repeat center right; background-size: cover; } .desc { flex:2; text-align: center; } .overlay { background-color: hwb(0 0% 100% / 0.212); position: fixed; width: 100%; height: 100%; top: 0; left: 0; } .btn-close { position: absolute; top: 10px; right: 10px; background-color: transparent; border: none; font-size: 18px; color: #999; cursor: pointer; } .btn-close:hover { color: #000; } .desc-content input[type=email] { display: block; width: 100%; text-align: center; padding: 7px; margin-bottom: 10px; border: 1px solid #ccc; outline: none; } .desc-content input[type=email]::placeholder{ color:#ccc; transition: .5s; } .desc-content input[type=email]:focus::placeholder{ visibility: hidden; opacity: 0; } .desc-content button { display: block; width: 100%; border: none; background-color: crimson; color: #fff; cursor: pointer; padding: 7px; } @media (max-width: 768px) { .modal-content { flex-direction: column; width: 100%; } }
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
DTO를 서비스 레이어에서 사용할 수 밖에 없다면
엔티티를 쓰지 못하는 상황JDBC Template나 nativeQuery처럼 직접 조회가 필요한 경우에는 엔티티를 사용하기 힘들 것 같은데이런 경우에 DTO를 사용하게 되면 서비스 레이어에 해당 부분이 생길거 같은데 이 정도는 괜찮은 걸까요?
-
미해결[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
학습자료
노션의 학습자료 제 개인 노션에서 수정은 안되는건가요?
-
미해결아바타 커뮤니티앱 만들기 (React Native Expo)
ios 시뮬로 보다가 android 시뮬로 넘어갈려니깐 오류가 생겨요
❗질문 작성시 꼭 참고해주세요에러 메세지에서 단서를 찾을 수 있는 경우가 많습니다. 에러 메세지를 읽고 한번 검색해보시는것을 추천드립니다.질문글을 작성하실때는, 현재 문제(또는 에러)와 코드나 github을 첨부해주세요.개발중인 OS, ReactNative, Node 버전 등의 개발환경을 알려주셔야합니다.에러메세지는 일부분이 아닌 전체 상황을 올려주세요. 일부만 보여주시면 답변이 어렵습니다.에러 잘라서 올리시면 안됩니다!(에러 일부만 자르거나 일부만 복사하지말아주세요) OS: MACReactNative: › Using Expo Go › Press s │ switch to development build › Press a │ open Android › Press i │ open iOS simulator › Press w │ open web › Press j │ open debugger › Press r │ reload app › Press m │ toggle menu › shift+m │ more tools › Press o │ open project code in your editor › Press ? │ show all commands Logs for your project will appear below. Press Ctrl+C to exit. › Opening on Android... › Opening emulator Medium_Phone_API_36.0 Error: could not connect to TCP port 5554: Connection refused이런 오류가 생깁니다 ㅠㅠ어떻게 해야 해결이 되는지 궁금합니다!
-
미해결RAG를 활용한 LLM Application 개발 (feat. LangChain)
Mysql과 벡터 DB를 사용해야하는 경우
안녕하세요. 실무에서 Mysql을 많이 사용하는데 Mysql 사용자 테이블을 기준으로 사용자와 비슷한 취미 이런것들을 추천 시스템을 만든다고한다면 mysql에 저장된 데이터를 벡터 DB에 계속 업데이트를 해야하는데 가능한건지 의문이듭니다. 사용자 테이블에는 탈퇴를 했다거나 취미가 바뀌었다거나 등 데이터가 업데이트가 되는데 벡터 DB에서도 해당 데이터를 찾아서 업데이트 되는게 가능한건지 아니면 배치성으로 데이터를 한번에 업데이트를 헤야하는것인지 고민이 드는데 강사님 같은 경우에 어떻게 해결하셨는지 궁금합니다.