172만명의 커뮤니티!! 함께 토론해봐요.
미해결
토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
안녕하세요 토비님 배운 내용을 바탕으로 기존 프로젝트 구조를 변경하는 연습하고 있습니다. 기존 프로젝트가 멀티 모듈로 되어있어 멀티모듈 구조는 그대로 가져가고 싶은데 분리한다면 어떻게 나누어야 할까요? 모듈을 두개로 나누어 api와 core로 구성했는데 adapter, application, domain를 api 모듈에 adapter core 모듈에 application, domain 이렇게 구성하였는데 이렇게 구분해도 괜찮은지 잘 모르겠습니다
java spring spring-boot jpa 리팩터링 ddd
rhdrlehf5
2025-09-19T05:19:50.440Z
댓글 2
좋아요 0
조회수 133
미해결
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
일단 인강을 보기전에 혼자 스스로 풀어보고 제출을해서 정답을 여러번 맞췄는데 선생님하고 코드가 좀 많이 다릅니다.(제 코드는 채점사이트에서는 정답은 나옴) 그래서 정답으로 나오긴하지만 선생님코드랑은 다르니..이게 올바는 코드인지..제가 푼게 잘푼건지..잘모르겠습니다..ㅠ 선생님코드로 공부를해야하는지..
임다정
2025-09-19T05:12:48.812Z
댓글 1
좋아요 1
조회수 121
해결됨
38군데 합격 비법, 2026 코딩테스트 필수 알고리즘
1. 현재 학습 진도 23. 2-9 재귀함수 - 2 2. 어려움을 겪는 부분 재귀함수-2 의 영상 6분 쯤에 "for i in range(n)" 부분이 이해가 안 가서요! 문자열 길이만큼, 끝까지 연산해야하는 로직인가요? 3. 시도해보신 내용 range(n)이 range(n/2) 이런식으로 절반까지만 연산해야하는게 아닌가 헷갈려서 질문드립니다 ㅠㅠ! 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
python 코딩-테스트 알고리즘 data-structure
당황한 치타
2025-09-19T01:36:50.763Z
댓글 2
좋아요 0
조회수 92
미해결
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}")
최미희
2025-09-18T14:28:54.601Z
댓글 0
좋아요 0
조회수 66
미해결
실전! Querydsl
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 보시다시피 sum()은 아예 없어요. NumberExpression 클래스에서 집계 함수들을 살펴보니깐 sum() 은 private로 되어있고, 나머지 sum 함수들은 내부에서 sum()을 호출해요. 구글에 검색해보면 다들 sum을 쓸 수 있는 것처럼 보이던데 왜 저만 이럴까요? 그리고 sumBigInteger()는 있는데 정작 sumInteger()는 왜 없을까요?
매콤한각설탕
2025-09-18T12:25:30.087Z
댓글 2
좋아요 0
조회수 197
미해결
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
위에서 입력하면 터미널 창에 나와야 되는데 안나와요ㅠ
2025-09-18T12:19:29.972Z
댓글 2
좋아요 0
조회수 800
미해결
[AI] 프롬프트만으로 아이디어 구현하기_바이브코딩 입문
강의에서는 폴더를 선택하고 main.py를 만든 다음 venv를 세팅하는데, 폴더를 만든 다음 venv를 설정한 후 main.py를 만드는 것과의 차이가 있나요?
python 업무-생산성 인공지능(ai) 바이브코딩
남현욱
2025-09-18T12:11:07.839Z
댓글 0
좋아요 0
조회수 76
미해결
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
vscode 명령 팔레트에서 파이썬(다운로드한 파이썬 최신버전 64-bit 클릭한 후 test.py 파일생성하는데 오류뜨면서 실행할 수 없다고 나옵니 다
CH Charming
2025-09-18T11:54:19.879Z
댓글 2
좋아요 0
조회수 103
미해결
토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
엔티티를 쓰지 못하는 상황 JDBC Template나 nativeQuery처럼 직접 조회가 필요한 경우에는 엔티티를 사용하기 힘들 것 같은데 이런 경우에 DTO를 사용하게 되면 서비스 레이어에 해당 부분이 생길거 같은데 이 정도는 괜찮은 걸까요?
java spring spring-boot jpa 리팩터링 ddd
klord
2025-09-18T09:12:33.317Z
댓글 2
좋아요 0
조회수 135
해결됨
[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
노션의 학습자료 제 개인 노션에서 수정은 안되는건가요?
react node.js seo graphql next.js
강유정
2025-09-18T09:01:34.149Z
댓글 2
좋아요 0
조회수 101
미해결
RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)
안녕하세요. krag를 통해 검색기법들을 평가하는 방법에서 질문이 있습니다. 이렇게 검색기법을 통해서 검색기에 대한 성능을 평가하려면, 우선적으로 question과 answer에 대한 평가셋을 직접 만들어야 하는걸까요?
아이테킨
2025-09-18T08:14:50.071Z
댓글 2
좋아요 0
조회수 110
미해결
김영한의 실전 자바 - 중급 2편
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 공부한 내용을 블로그(노션)에 작성하려 하는데, PDF에 있는 그림 이미지 같은 것들을 캡쳐해서 사용해도 괜찮을까요?
조지헌
2025-09-18T07:47:06.093Z
댓글 1
좋아요 0
조회수 202
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
h2-console 웹에 접속하려고 하니 Whitelabel Error Page 오류가 뜹니다. 그래서 구글링하니 Spring Security에서 h2 console을 허용하라는데 어떻게 하는지 잘 모르겠습니다 ㅜㅜ.. 도와주세요 ㅜㅜ
java spring aws mysql spring-boot jpa
seongmin2053
2025-09-18T07:06:33.820Z
댓글 2
좋아요 0
조회수 232
미해결
copilot과 함께 파이썬 찍어먹기 (크롤링 , 데이터시각화 )
안녕하세요. python에서 강의하신대로 코드 입력후 터미널에 python 파일이름.py를 실행하면 아무런 반응이 없이 PS D:\Dev\PYTHON> PS D:\Dev\PYTHON> 글만 다시 뜹니다. (에러코드도 없음) 해결방법을 몰라 진행이 안되는데 코파일럿 통해 질의해도 환경이나, 코드는 정상이라고 합니다. 해결방법을 알려주시면 감사하겠습니다...
javascript python 인공지능(ai) microsoft-copilot
송가영
2025-09-18T07:04:47.794Z
댓글 2
좋아요 0
조회수 106
해결됨
알고리즘 트레이딩의 비밀, AI가 주가를 맞추는 법
DB에 데이터를 관리하지 않고 csv 파일로 관리 하는 이유가 뭔지 궁금합니다. 데이터가 방대해서 처리 하기가 힘들어서 그런건가요?
python 딥러닝 재테크 lstm transformer
sagara12
2025-09-18T06:51:26.869Z
댓글 1
좋아요 1
조회수 133
미해결
Airflow 마스터 클래스
안녕하세요 선생님, 현재 데이터 엔지니어 직무 면접을 준비하고 있는 수강생입니다. 저는 이번 면접에서 ETL 아키텍처 및 데이터 파이프라인 구성 과 관련된 주제를 중심으로 준비하고 있습니다. 수업을 통해 많은 내용을 배우고 있지만, 솔직히 말씀드리면 양이 너무 방대하다 보니 모든 부분을 다 소화하기가 쉽지 않습니다. 시간도 빠듯해 점점 불안감이 커지고 있습니다. 그래서 정말 간절한 마음으로 도움을 부탁드립니다. 혹시 면접에서 특히 중요한 핵심 개념 이나 자주 나오는 질문 , 그리고 실제 사례 중심으로 정리하면 좋은 부분 이 무엇인지 방향을 잡아주실 수 있을까요? 혹은 강의만 따로 추천 해주시면 감사하겠습니다. 제가 부족한 부분을 더 보완해서 면접에서 꼭 좋은 결과를 내고 싶습니다. 늘 열정적으로 가르쳐주시는 것에 감사드리며, 간절히 도움을 청합니다. 감사합니다.
min0
2025-09-18T06:44:47.058Z
댓글 2
좋아요 0
조회수 117
해결됨
[4주 완성] AI 바이브코딩으로 수익형 앱/웹 만들기
mcp 연동하면 첨부한 이미지처럼 나오는데 제가 혹시 잘 못 한 걸까요? ?
flutter next.js cursor supabase 바이브코딩
skylinehj
2025-09-18T01:15:21.910Z
댓글 2
좋아요 0
조회수 102
미해결
[개정판] 파이썬 머신러닝 완벽 가이드
6번 강의에 패키지, 파이썬, 아나콘다 버전 강의와 일치 안 시키고 진행해도 되나요? 하다가 버전 때문에 안되면 어떡하나요?
matdongseok
2025-09-17T18:04:52.756Z
댓글 2
좋아요 0
조회수 127
해결됨
비개발자 4주만에 수익화 서비스 만들기: AI 바이브코딩 웹 + 앱 ALL IN ONE
안녕하세요 .env 혹은 .env.local 환경변수를 써서 커서가 api 값들을 불러와 쓰게 하려면 못읽더라구요,보안상 규칙이라며..그럼.,, 다른식으로 우회하여 불러오는 방법있을까요~?
flutter next.js cursor supabase 바이브코딩
화이팅!
2025-09-17T15:47:59.104Z
댓글 2
좋아요 0
조회수 85
해결됨
파이썬으로 나만의 블로그 자동화 프로그램 만들기
19강 챗gpt api로 디지털노가다 타파하기(1) 강의 에서 오픈api 키 값은 어떻게 받는건가요? 선생님은 개인 키를 넣었다고 하셨는데 실제로 저는 어떻게 키값을 넣고 활용 할 수 있을까요?
python wordpress 웹-크롤링 selenium
yujin hwang
2025-09-17T14:25:37.938Z
댓글 2
좋아요 0
조회수 107