inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

질문입니다.

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

연습 삼아 이것 저것 해보다 궁금한 점이 있어 질문 드립니다. 위 와 같이 코딩을 했을 때, 다음과 같이 출력이 됩니다. print(ex1)으로 했을 경우에는 리스트 형태로 출력이 되는데 반해, print(ex1.append(i * 10) 형태일 때는 None으로 출력이 되는걸까요?

  • python
열심학습자 댓글 1 좋아요 0 조회수 88

수강기간 멈춤 가능한가요?

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요, 이번 11/29 빅분기 시험을 사정상 보기 어려워져서 학습기간 멈춤를 신청하고 싶은데 최대 몇개월 학습 중단이 가능할까요? 내년 3월이후 다시 준비해서 시험을 치뤄야 될 것 같습니다.

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
박수민 댓글 2 좋아요 0 조회수 56

시험장 환경

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

시험장에서 자동완성은 어디까지 가능한가요? 미리정의한 변수명은 tab으로 자동완성이 되나요? 함수들도 궁금합니다. 감사합니다!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
semistone6239 댓글 2 좋아요 0 조회수 70

3강 spting 빌드환경에서 mysql 부분 질문있습니다.

해결됨

eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)

intelilJ 에서 어플리케이션 실행시 application.yml 프로파일에 default 부분이 깃허브에 올라온 파일에는 prod로 되어있고 그대로 실행하면 mysql에서 ordersystem 테이블 생성이 정상적으로 되지 않아서 강의를 상세하게 보니 코드부분에 local로 실행을 시키셔서 그것을 바꾸고 실행하니 테이블 안에 member , ordering , product는 생성되었는데 포스트맨에서 로그인 테스트시 임의로 만든 이메일 계정 조회시 404가 뜨는데 제가 어느부분을 놓쳐서 정상적으로 작동이 안되는걸까요? 그부분 상세하게 설명 부탁드리겠습니다.

  • aws
  • docker
  • kubernetes
  • github-actions
  • argocd
jerome287 댓글 2 좋아요 0 조회수 99

continue와 pass 차이점

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

예시만 봤을 때는 continue와 pass의 차이점이 명확히 구분되지 않는 것 같아 질문드립니다. 1. continue: if문에 해당하여 continue를 만나면 (print가 있다는 가정하에) 출력하지 않고 다음 반복으로 넘어감 pass: if문에 해당하여 pass를 만나면 그 부분만 지나가고 (print가 있다는 가정하에) 밑에 출력은 실행함 저는 이렇게 이해하고 있는데 오류가 있을까요? 2. pass 예제2번에 else 없이 print(i)만 있었더라면 3도 출력이 되는건가요?

  • python
  • java
  • c
  • 정보처리기사
BSI 댓글 2 좋아요 0 조회수 81

여러 줄 한꺼번에 주석처리

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

하는 방법이 있을까요?? 강의에서는 슉슉 빠르게 되는 것이 신기해서 여쭤봅니다!

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
랄랄라 댓글 2 좋아요 0 조회수 251

print(id(m) == id(n)) --> False

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

저는 False 가 나옵니다. 찾아보니 False가 정상이고 True는 캐싱으로 설명이 나옵니다. ( 256보다 큰 숫자 이므로 작은 정수 캐싱 범위에 해당하지 않음) 강사님 설명 부탁합니다. m = 800 n = 800 print(id(m)) print(id(n)) print(id(m) == id(n))

  • python
Zetta Kim 댓글 1 좋아요 0 조회수 62

서버 인프라 관련 질문 (1)

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

안녕하세요! 항상 좋은 강의 잘 듣고 있습니다! 서버 인프라를 어떻게 설계해야할 지 판단이 잘 안서서 이렇게 질문드립니다. 제가 개념이 미숙하다보니 제 생각에 대한 설명이 뭔가 중구난방할 수 있다는 점 양해부탁드립니다. 일단 첫번째로 생각하고 있는건 ELB, Nginx에 대한 고민입니다. 내용이 길어서 질문은 나눠서 올리려고 합니다. 제 머릿 속에 있는 걸 그냥 그대로 끄집어낼게요. ELB로 EC2에 직접 접근 (Client -> ELB -> Spring Boot) ELB를 80/443 으로 열고, http에 대한 타겟그룹을 8080로 설정한 후 EC2 쪽 인바운드는 8080만 열어야 하는가? ELB는 WAS가 아니라서 Nginx처럼 리액트 빌드 결과물 (정적파일)을 서빙 못하지 않을까? 그럼 S3 파트에서 배웠던 내용대로 S3 + Cloud Front 방식으로 리액트 결과물 내보내야 할까? https 설정은 Nginx 대비 이게 더 편한거같음 Nginx만 사용 (Client -> WAS (Nginx) -> Spring Boot & React) ELB 대비 https 인증이 경험 상 상당히 까다로웠음 (자동 인증사 만료 처리도 해야하고...) EC2 안에서 React까지 처리하기 좋았음 이 경우는 인바운드를 80/443 열고 nginx 에서 reverse proxy ELB + Nginx 사용 (Client -> ELB -> Nginx -> Spring Boot & React) ELB는 로드밸런서 역할과 https 인증 담당용 (로드밸런싱은 추후 확장가능성 염두, https 인증은 elb가 더 쉬우니까) Nginx는 내부에서 리버스 프록시 적용 https 처리는 elb가 쉬우니까 이거 쓰고, 리버스프록시와 정적 파일 서빙은 nginx에게 위임하겠다는 취지 만약 이럴 경우, ELB는 80/443 열고 EC2는 80만 허용하면 되는건가? 그러면 80->443 리다이렉션하고 443은 타겟그룹 80을 향해 들어가면, EC2에서 80으로 들어온 요청을 nginx가 리버스 프록시 어떤게 적절한 선택일지 고민중입니다. 서버 인프라를 구성하기 위해 참조할 만한 자료로 깃헙을 찾아보니, 다른 프로젝트 아키텍처 보면 다 2번처럼 하는 것 같았습니다. 근데 실습을 했을 때 ELB가 https 인증이 너무 쉽게 되었던게 매력적이었어서 차마 2번 방식에는 손이 잘 안갑니다. 근데 1번만 하자니, 과연 1번만으로 충분할까? 라는 의문이 들었습니다. 그래서 ELB랑 Nginx를 혼합해서 쓸까라는 생각까지 이어진건데요. 3번은 저 생각대로면 각자의 편의를 챙겨가기는 하지만 좀 더 복잡한 아키텍처같은 생각도 들어요. 우선 각각의 생각에 오류가 있는지, 그리고 전문가의 식견으로 봤을 때 어떤게 더 나은 접근인지 여쭤보고싶습니다. 어려운게 있으면 항상 박재성님 강의부터 찾습니다. 늘 도움받아갑니다. 감사합니다.

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
Hooby 댓글 2 좋아요 0 조회수 73

서버 인프라 관련 질문 (2)

해결됨

비전공자도 이해할 수 있는 AWS 입문/실전

안녕하세요! 항상 좋은 강의 잘 듣고 있습니다! 서버 인프라를 어떻게 설계해야할 지 판단이 잘 안서서 이렇게 질문드립니다. 제가 개념이 미숙하다보니 제 생각에 대한 설명이 뭔가 중구난방할 수 있다는 점 양해부탁드립니다. 고민하고 있는건 EC2 등 모델 선정입니다. 그리고 RDS, ElastiCache 도입여부 또한 고민중입니다. 제 프로젝트는 거의 싸이월드 같은 사이트를 만들어야 하는 상황입니다. 알림, 조회수, 좋아요 기능, 파일 업로드, 스트리밍, 게시판, 댓글 등이 주된 기능입니다. (이때 파일 업로드는 multipart/form-data 업로드와, 동영상과 같은 대용량 파일 처리를 위한 AWS Multipart Upload 방식으로 나뉩니다.) 한번 AWS 강의에서 배운걸 다 써먹어보고 싶어서 EC2, RDS, S3, ElastiCache 도입을 상정해봤습니다. 초기 단계 모델을 먼저 결정한 후 K6 등으로 동시접속자 수 100명 200명 300명 순으로 테스트를 진행해서 스케일업을 고려중입니다. (데모 시연도 하고, 실제로 한달 간 출시도 해봐야해서요) 구상중인건 다음과 같습니다. 1단계 (개발 중) :: CI/CD용 : t4g.small (EBS 있으니까 여기 안에서 Redis랑 DB, 서버 다 돌림) + S3 2단계 (개발 완료 후 배포) :: 실제 운영 테스트용 : Case 1. t4g.small + S3 (CI/CD용 그대로) Case 2. t4g.small + RDS + S3 (Redis는 EC2 안) (RDS는 EC2모델과 같은 사양으로) Case 3. t4g.small + RDS + S3 + ElastiCache Case 4. t4g.medium + RDS + S3 + ElastiCache 근데 Case 3까지만 가도 AWS 계산기 돌려보니 월 10만원이 조금 넘더라구요. RDS에서 프록시나 Insights 설정 빼고 SingleAZ로 변경한게 저 수준이었습니다. 너무 비싸더라구요. Case 4는 한 17만 7천원 나오더라구요... RDS가 많이 비싼 것 같습니다. 비용이 비정상적인게 아니라면, 그대로 진행해도 전 좋습니다. 배움에 돈아끼면 안된다고 생각하거든요. 근데 그게 오버스펙이나 비정상적인 설계로 비용이 많이 나오는건 별개의 문제잖아요. 그래서 결국 어떻게 서버 인프라를 구축할지에 대한 고민이 많습니다. 비용이 제 기준에서는 높지만 남들 기준에선 높은게 아닐 수도 있고, 아니면 정말로 너무 높게 나온걸 수도 있어서 정상적으로 프로젝트에 맞게 아키텍처를 구축한게 맞는지, 잘못되었다면 어떻게 조정해야할지에 대한 판단이 어렵습니다. 실례가 안된다면, 지금 제가 어떤 문제가 있는지, 제 상황에선 어떤 아키텍처가 적절한지 설명부탁드려도 될까요? 이건 저 생각이 들기까지의 내용들을 정리한 노션 페이지입니다. https://hooby.notion.site/Server-Infra-Setup-28af6c063f3e80b7a8c3d653add0c068

  • aws
  • aws-elb
  • aws-rds
  • ec2
  • s3
Hooby 댓글 2 좋아요 0 조회수 87

원하는 값이 없을 때

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요 강의 잘 수강하고 있습니다. 현재 subject, link, content, press, date를 추출하는데 만약 해당 값들 중 하나가 없다면 검증은 어떤 식으로 하시나요?? 제가 생각한 방법은 pydantic으로 검증하여 해결할 수 있지 않을까 생각하는데 너무 오버엔지니어링인지 강사님은 어떻게 유연하게 처리하는지 궁금합니다. 예시를 들기 위해 pydantic으로 한 코드 첨부합니다. from typing import Annotated import requests from bs4 import BeautifulSoup from urllib.parse import urljoin, urlencode from datetime import datetime from pydantic import AfterValidator, BaseModel, HttpUrl, field_validator def non_empty_str(v: str) -> str: s = (v or "").strip() if not s: raise ValueError("빈 문자열입니다.") return s def valid_url(url: str) -> str: try: response = requests.get(url) # throw error if status 4xx, 5xx response.raise_for_status() return url except Exception as _: raise ValueError("유효하지 않은 URL입니다.") def valid_date(date: str) -> str: v = (date or "").strip() if not v: raise ValueError("빈 문자열입니다.") try: datetime.strptime(v, "%Y-%m-%d %H:%M:%S") return date except ValueError: raise ValueError("유효하지 않은 날짜 형식입니다.") class NewsItem(BaseModel): subject: Annotated[str, AfterValidator(non_empty_str)] detail_article_url: Annotated[str, AfterValidator(valid_url)] content: Annotated[str, AfterValidator(non_empty_str)] press: Annotated[str, AfterValidator(non_empty_str)] article_date: Annotated[str, AfterValidator(valid_date)] ROOT = "https://finance.naver.com/" PATH = "news/mainnews.naver" def get_news_page_url(page: int, date: str): base_url = urljoin(ROOT, PATH) query_string = urlencode({"date": date, "page": page}) return f"{base_url}?{query_string}" def get_detail_news_url(path): return urljoin(ROOT, path) def get_current_date(format: str ="%Y-%m-%d") -> str: now = datetime.now() return now.strftime(format) def crawl_news_per_page(soup: BeautifulSoup): result = [] news_per_page = soup.select(".block1") for article_card in news_per_page: # subject subject = article_card.select_one(".articleSubject > a").text # detail article link detail_article_url = get_detail_news_url(article_card.select_one(".articleSubject > a").get("href")) # content content_tag = article_card.select_one(".articleSummary") content = content_tag.contents[0].strip() press = content_tag.select_one(".press").text.strip() article_date = content_tag.select_one(".wdate").text.strip() new_item = NewsItem(subject=subject, detail_article_url=detail_article_url, content=content, press=press, article_date=article_date) result.append( new_item.model_dump() ) return result def crawl_all_news(page_total_count: int, date: str): result = [] for page in range(1, page_total_count + 1): request_url = get_news_page_url(page, date) response = requests.get(request_url) soup = BeautifulSoup(response.text, "html.parser") result.extend(crawl_news_per_page(soup)) # 마지막 페이지 검증 if (not soup.select_one(".pgRR")): break return result all_news = crawl_all_news(20, get_current_date()) print(all_news)

  • python
  • 웹-크롤링
rlwjd31 댓글 2 좋아요 0 조회수 121

캐글 데이터 코랩에서 불러오기

미해결

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 캐글에 있는 문제들 코랩에서 풀어보려고하는데 데이터를 어떻게 불러와야하는지 모르겠어요ㅜ 깃허브 URL이나 이런건 없나요? import pandas as pd import numpy as np df = pd.read_csv('../input/titanic/train.csv')

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
댓글 1 좋아요 0 조회수 70

S3 업로드 역할 부여 질문 드려요

해결됨

eks를 활용한 spring 운영서버 배포(feat. devops의 모든것)

안녕하세요, 강의 잘 듣고 있습니다. 강의를 듣는 중 궁금한 점이 있어 문의드립니다. 현재까지는 EC2에 Spring Boot를 배포하고, EC2 인스턴스에 S3 접근 권한을 가진 IAM 역할을 부여해 S3 업로드 기능을 구현해 왔습니다. 이번에 처음으로 EKS를 사용해보려고 하는데요, EKS에서도 EC2 워커 노드에 IAM 역할을 부여해 S3 접근 권한을 줄 수 있는지 궁금합니다. 또는 일반적으로는 어떤 방식으로 S3 접근 권한을 설정하는지 알고 싶습니다.

  • aws
  • docker
  • kubernetes
  • github-actions
  • argocd
박성우 댓글 2 좋아요 0 조회수 88

기초적인 질문입니다.

미해결

프로그래밍 시작하기 : 도전! 45가지 파이썬 기초 문법 실습 (Inflearn Original)

x = ["grapes", "mango", "orange", "peach", "apple", "lime", "banana", "cherry", "tomato", "kiwi", "blueberry", "watermelon"] 라고 되어 있을때, for문과 if 문을 사용하여 apple, kiwi를 찾고 대문자로 변경하는 수업을 듣다가 궁금한 점이 생겨 질문을 드립니다. 컴퓨터에서 위와 같이 리스트된 x가 있을때, for문과 if 문을 통해 특정 단어 (apple, kiwi)를 찾게 명령하면, 컴퓨터는 apple, kiwi 라는 단어의 스펠링 모양이 일치하는지 아닌지를 가지고 찾는건가요? 아니면 x 내부에 각 각의 요소들에 고유한 값을 부여하여, 일치하는 값을 찾는 건가요? 즉, x 안에 apple = 10322, kiwi = 10323으로 값이 이미 부여되어 있고, 사용자가 apple 이라는 단어를 찾는 명령어를 코딩하는 경우 컴퓨터가 알아서 사용자가 입력한 apple을 10322로 변환후 x 내부에서 찾는지 궁금합니다. 그리고 만약 그렇다면, 이미 입력된 apple과 사용자가 새롭게 입력한 apple 사이의 고유값이 왜 같아지는지 이유도 궁금합니다. 즉, 누군가 apple을 입력해 놨을 때 10322로 지정되지만 새로운 사용자가 apple을 입력했을땐 10932로 될 수 있지 않을까 해서입니다. 누군가 apple 이라는 단어의 고유값을 지정했으면 컴퓨터가 눈이 달린것도 아닌데 무엇을 보고 apple의 고유값을 찾아내는지 궁금하네요. 기초과학 실험하는 연구자 이다보니 컴퓨터의 작동 원리가 이해가 안돼서 질문을 드립니다.

  • python
열심학습자 댓글 1 좋아요 0 조회수 78

독립성검정에서 correction 옵션과 관련하여 문의드립니다.

해결됨

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

안녕하세요. 제목과 같이 독립성검정의 경우 chi2_contingency 함수를 사용하는데 공부하다 보니 chi2_contingency(table, correction = True) 이렇게 되어있는 글을 보게 되어서 검색하여보니 correction 옵션은 자유도와 관련된 부분이라고 해서 자유도가 1인 경우에는 True이고 , True가 기본값이긴 하지만 1보다 클 경우에는 False를 사용해야 한다고 하는데 예시 문제를 살펴보면 ddof = 1인 경우에만 있었는데 혹시 실기에서도 해당 부분을 고려해야 할까요 ? 감사합니다 :)

  • python
  • 머신러닝
  • 빅데이터
  • pandas
  • 빅데이터분석기사
bbororora9 댓글 2 좋아요 0 조회수 35

생성자 호출순서

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

19분 21초 null나온 이유가 msg에 값이 초기화 되기 전에 호출해서 null이라고 하셨는데 초기화 여부를 아는 방법이 생성자? 문장이 끝나야 초기화 되는 건가요? 초기화 하려고 하는 구문이 끝나지 않은 상태이면 초기화 되지 않은 상태이다 이렇케 이해해도 되는 부분인가요?

  • python
  • java
  • c
  • 정보처리기사
jongbin7245 댓글 2 좋아요 0 조회수 78

선생님 정말 죄송하지만 수강기간 조금만 연장 안될까요?

해결됨

AWS SAA-C03 자격증 대비-문제 풀이

먼저 유사한 질문이 있는지 검색해보세요. 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 핑계지만 여러사정상 이제서야 수강 하려고 하는데 기간이 얼마 남지 않아서요... 꼭 강의 듣고 합격해서 합격 수기 수강평 남겨놓겠습니다 ㅠㅠ 부탁드립니다

  • aws
  • vpc
  • ec2
  • iam
  • s3
  • aws-saa
고트. 댓글 2 좋아요 0 조회수 131

28강 8분 54초 Electric Car 문제 질문드려요

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

ElectricCar() 이 자식이라 부모를 불러와야한다는건 알겠는데 불러오는 부모가 class Car 을 불러오는건가요, 아님 public Car() 을 불러오는건가요? public Car() 를 불러오는거라 "Car created" 만 출력하는거고 그 밑에 있는 startEngine() 은 부르지않는게 맞는건지 궁금해요

  • python
  • java
  • c
  • 정보처리기사
whks 댓글 2 좋아요 0 조회수 59

한글 자동화 삽도 삽입!!

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요 강의 보면서 한글 자동화 겉핥기 중인 수강생입니다. 현재 제가 관리카드 형식의 한글 자동화를 템플릿을 통해 만들고있습니다. 엑셀에 로우데이터 입력 후 엑셀 입력된 데이터들을 한글 템플릿 표 안에 원하는 위치에 까진 입력을 한 상태입니다만. 이후 한글 템플릿 표 안에 삽도를 삽입하는 과정에서 막혔습니다. ai를 통해 질문해보고 다시 코드를 짜보고 있으나 계속 삽도부분에서 막혀 질문드립니다. import os from collections import defaultdict from io import BytesIO import pandas as pd import win32clipboard import win32com.client as win32 from PIL import Image import time def init_hwp(visible=False): """ 아래아한글 시작 """ hwp = win32.gencache.EnsureDispatch("hwpframe.hwpobject") hwp.XHwpWindows.Item(0).Visible = True hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule") return hwp def get_nst_table(n): """ n번째 표 앞으로 이동 n은 0부터 시작함. """ ctrl = hwp.HeadCtrl count = 0 while ctrl: if ctrl.CtrlID == "tbl": if count == n: hwp.SetPosBySet(ctrl.GetAnchorPos(0)) break else: ctrl = ctrl.Next count += 1 else: ctrl = ctrl.Next def insert_text(text): """ 문서에 텍스트 삽입 """ hwp.HAction.GetDefault("InsertText", hwp.HParameterSet.HInsertText.HSet) hwp.HParameterSet.HInsertText.Text = text hwp.HAction.Execute("InsertText", hwp.HParameterSet.HInsertText.HSet) def get_text(): """ 문서 선택범위의 문자열을 추출 """ hwp.InitScan(Range=0xff) total_text = "" state = 2 while state not in [0, 1]: state, text = hwp.GetText() total_text += text hwp.ReleaseScan() return total_text def append_hwp(filename): """ 문서 끼워넣기 """ hwp.HAction.GetDefault("InsertFile", hwp.HParameterSet.HInsertFile.HSet) hwp.HParameterSet.HInsertFile.KeepSection = 0 hwp.HParameterSet.HInsertFile.KeepCharshape = 0 hwp.HParameterSet.HInsertFile.KeepParashape = 0 hwp.HParameterSet.HInsertFile.KeepStyle = 0 hwp.HParameterSet.HInsertFile.filename = filename hwp.HAction.Execute("InsertFile", hwp.HParameterSet.HInsertFile.HSet) def 사진리스트추출(): """ '삽도폴더' 하위의 모든 서브폴더에서 모든 그림 파일 경로를 추출하여 단일 리스트로 반환합니다. """ all_pic_paths = [] # "삽도폴더"의 경로를 설정합니다. (현재 스크립트 위치 기준) 삽도폴더_경로 = os.path.join(os.getcwd(), "삽도폴더") # "삽도폴더"가 존재하는지 확인합니다. if not os.path.exists(삽도폴더_경로): print(f"경고: '{삽도폴더_경로}' 폴더가 존재하지 않습니다.") return [] # os.walk를 사용하여 서브폴더를 포함한 모든 파일을 탐색합니다. for root, _, files in os.walk(삽도폴더_경로): for file in files: # 이미지 파일 확장자를 확인합니다. 필요에 따라 추가/수정 가능합니다. if file.lower().endswith((".png", ".jpg", ".jpeg", ".gif", ".bmp")): all_pic_paths.append(os.path.join(root, file)) return all_pic_paths # 사용 예시: # 이 함수를 호출한 결과를 사진리스트 변수에 저장해야 합니다. # 예: 사진리스트 = 사진리스트추출() def 사진제목추출(): 제목사전 = defaultdict(list) 제목리스트 = [] for 사진파일 in 사진리스트: 파일명 = os.path.basename(사진파일) 본문, _ = os.path.splitext(파일명) if "_" not in 본문: continue 연번, 삽도종류 = 본문.split("_", 1) 제목명 = f"{연번}_{삽도종류}" if 제목명 not in 제목리스트: 제목리스트.append(제목명) 제목사전[제목명].append(사진파일) return 제목리스트, 제목사전 def 클립보드로_이미지_삽입(filepath): """ 한/글 API의 InsertPicture 메서드는 셀의 크기를 변경하지 않는 반면(이미지가 찌그러짐) 클립보드를 통해 이미지를 삽입하면 이미지의 종횡비에 맞춰 셀의 높이가 자동으로 조절됨. """ 이미지 = Image.open(filepath) 아웃풋 = BytesIO() 이미지.convert('RGB').save(아웃풋, 'BMP') 최종데이터 = 아웃풋.getvalue()[14:] 아웃풋.close() win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardData(win32clipboard.CF_DIB, 최종데이터) win32clipboard.CloseClipboard() hwp.Run("Paste") def 첫번째행으로_이동(): """ 표의 A2 셀로 이동 """ hwp.Run("TableColBegin") hwp.Run("TableColPageUp") hwp.Run("TableLowerCell") hwp.Run("TableCellBlock") def 위셀과병합(): """ 제목 그대로임 """ hwp.Run("TableDeleteCell") # 아래 셀 내용을 지운 후 hwp.Run("TableCellBlockExtend") # 셀 다중선택모드 hwp.Run("TableUpperCell") # 위 셀까지 선택 hwp.Run("TableMergeCell") # 선택된 셀 병합 hwp.Run("TableCellBlock") # 다시 셀 선택 모드 def 다음페이지로(): """ 표에서 나와서 문서 끝으로 이동 후 Ctrl-Enter를 통해 다음페이지로 넘어감 """ hwp.Run("Cancel") hwp.Run("MoveTopLevelEnd") hwp.Run("BreakPage") def 완료메시지(): msgbox = hwp.XHwpMessageBox # 메시지박스 생성 msgbox.string = "문서작성을 완료하였습니다." msgbox.Flag = 0 # [확인] 버튼만 나타나게 설정 msgbox.DoModal() # 메시지박스 보이기 if __name__ == '__main__': hwp = init_hwp() # hwp.Open(os.path.join(os.getcwd(), "예시파일.hwp")) hwp.Run("FileOpen") os.chdir(hwp.Path.rsplit("\\", maxsplit=1)[0]) # 현재 열린 문서가 위치한 경로로 이동 df = pd.read_excel(os.path.join(os.getcwd(), "관리카드 데이터 정리.xlsx")) 사진리스트 = 사진리스트추출() 사진리스트 제목리스트, 제목사전 = 사진제목추출() 제목리스트 제목사전 관리카드_리스트 = df pd.set_option('display.max_rows', None) 관리카드_리스트 # === 이 부분이 가장 중요합니다! NaN 값을 빈 문자열로 채우는 코드 === 관리카드_리스트 = 관리카드_리스트.fillna('') 훼손지_리스트 = [i.split("_")[0] for i in 제목리스트] 훼손지_리스트 삽도명_종류 = [i.split("_")[1] for i in 제목리스트] 삽도명_종류 for i in range(len(관리카드_리스트)): # ========================엑셀 내부 데이터 값 정의=============================== 연번_누름틀_값 = 관리카드_리스트.iloc[i]["연번_누름틀"] 순번_값 = 관리카드_리스트.iloc[i]["순번"] 토지이용현황_값 = 관리카드_리스트.iloc[i]["토지이용현황"] 소유구분_값 = 관리카드_리스트.iloc[i]["소유구분"] 당초차량진출입_값 = 관리카드_리스트.iloc[i]["당초차량진출입"] 검토내용_값 = 관리카드_리스트.iloc[i]["검토내용"] 도로포장_값 = 관리카드_리스트.iloc[i]["도로포장"] 교행여부_값 = 관리카드_리스트.iloc[i]["교행여부"] 검토결과_값 = 관리카드_리스트.iloc[i]["검토결과"] i_지적도 = 관리카드_리스트.iloc[i]["지적도"] i_항공사진 = 관리카드_리스트.iloc[i]["항공사진"] i_현장사진_1 = 관리카드_리스트.iloc[i]["현장사진_1"] i_현장사진_2 = 관리카드_리스트.iloc[i]["현장사진_2"] i_검토결과_사진 = 관리카드_리스트.iloc[i]["검토결과_사진"] # ========================표 내부 데이터 입력하기================================ append_hwp(os.path.join(os.getcwd(), "템플릿1.hwp")) # 문서 끼워넣기 # hwp.RenameField("연번_누름틀",연번_누름틀_값) # 누름틀 필드 이름 바꾸기 # hwp.PutFieldText(연번_누름틀_값,연번_누름틀_값) # 누름틀에 연번_누름틀 값 텍스트로 넣기 hwp.RenameField("순번",순번_값) hwp.PutFieldText(순번_값,순번_값) hwp.RenameField("토지이용현황",토지이용현황_값) hwp.PutFieldText(토지이용현황_값,토지이용현황_값) hwp.RenameField("소유구분",소유구분_값) hwp.PutFieldText(소유구분_값,소유구분_값) hwp.RenameField("당초차량진출입",당초차량진출입_값) hwp.PutFieldText(당초차량진출입_값,당초차량진출입_값) hwp.RenameField("검토내용",검토내용_값) hwp.PutFieldText(검토내용_값,검토내용_값) hwp.RenameField("도로포장",도로포장_값) hwp.PutFieldText(도로포장_값,도로포장_값) hwp.RenameField("교행여부",교행여부_값) hwp.PutFieldText(교행여부_값,교행여부_값) hwp.RenameField("검토결과",검토결과_값) hwp.PutFieldText(검토결과_값,검토결과_값) hwp.RenameField("지적도",i_지적도) hwp.PutFieldText(i_지적도,i_지적도) hwp.RenameField("항공사진",i_항공사진) hwp.PutFieldText(i_항공사진,i_항공사진) hwp.RenameField("현장사진_1",i_현장사진_1) hwp.PutFieldText(i_현장사진_1,i_현장사진_1) hwp.RenameField("현장사진_2",i_현장사진_2) hwp.PutFieldText(i_현장사진_2,i_현장사진_2) hwp.RenameField("검토결과_사진",i_검토결과_사진) hwp.PutFieldText(i_검토결과_사진,i_검토결과_사진) hwp.Run("MoveTopLevelEnd") hwp.Run("BreakPage") 위 코드를 실행하여 만든 결과물입니다. 지적도, 항공사진, 현장사진1,2, 검토결과_사진에 강의에 올라온 사진리스트 추출을 이용하여 삽도들을 삽입하고 싶습니다. 어떻게 해야 할까요??ㅠ 답변 기다리겠습니다. 감사합니다.

  • python
  • 한컴오피스
ㅇㅇㅇㅇ 댓글 2 좋아요 1 조회수 449

다차원 배열 포인터 변수 선언할때

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

포인터 조작과 출제패턴 강의 27:07초에서 다차원 배열 포인터 변수 선언할때 왜 괄호를 *ptr 에 씌워주는지 궁금하네요. 원래 그런 방식으로 사용하기로 합의가 된건가요?

  • python
  • java
  • c
  • 정보처리기사
csgwe 댓글 2 좋아요 1 조회수 88

수강기간 연장 부탁드립니다

미해결

AWS Certified Solutions Architect - Associate 자격증 준비하기

이전에 구매하고 학교생활하느라 정신없어서 잘 듣지 못했는데 지금 다시 들으려고 보니 기간이 거의 남지 않았네요ㅠ 수강기간을 한 번만 연장시켜 주실 것을 부탁드립니다.. 감사합니다!

  • 네트워크
  • aws
dh4masdf 댓글 2 좋아요 0 조회수 56

인기 태그

인프런 TOP Writers

주간 인기글