전체 글 (174)


파이썬 Playwright 크롤링 입문: Selenium보다 빠른 동적 페이지 수집

파이썬 Playwright 크롤링 입문: Selenium보다 빠른 동적 페이지 수집

7편에서 Selenium으로 동적 페이지를 정복했죠. 그런데 time.sleep이나 WebDriverWait 때문에 코드가 길어지고 가끔 불안정해서 답답하지 않았나요? 같은 일을 더 빠르고 안정적으로 해주는 모던 도구가 Playwright예요.Playwright는 마이크로소프트가 만든 브라우저 자동화 도구예요. 요소가 준비될 때까지 알아서 기다려주고(자동 대기) 클릭만으로 코드를 만들어주는 기능(codegen)까지 있어서 오히려 입문자에게 더 친절해요.이 글에서는 7편에서 했던 작업을 Playwright로 다시 해보면서 둘을 비교해볼게요.이 글은 이런 분을 위해 쓴 거예요- 7편(Selenium)을 따라해본 분- Selenium의 WebDriverWait·time.sleep이 번거로웠던 분- 더 빠르고 ..

파이썬 크롤링 심화편: 개발자도구 Network 탭으로 API 직접 호출하기

파이썬 크롤링 심화편: 개발자도구 Network 탭으로 API 직접 호출하기

7편에서 Selenium으로 동적 페이지를 크롤링했습니다. 그런데 진짜 브라우저를 띄우는 만큼 무겁고 느렸어요. 사실 그런 사이트 상당수는 브라우저를 안 띄우고도 데이터를 가져올 수 있어요. 화면 뒤에서 데이터를 실어 나르는 '숨은 API'를 직접 부르는 방법이에요.이 글에서는 개발자도구 Network 탭으로 그 숨은 API를 찾아내고 requests로 직접 호출해서 JSON 데이터를 한 번에 가져오는 법을 따라해볼게요.이 글은 이런 분을 위해 쓴 거예요- 6편(requests+BS)·7편(Selenium)을 따라해본 분- Selenium이 너무 느려서 더 빠른 방법을 찾는 분- "화면엔 보이는데 크롤링하면 빈 결과"인 사이트를 가볍게 뚫고 싶은 분[시리즈] Python 입문1편:[개발/Python] -..

파이썬 Selenium 크롤링 입문: 동적 웹 페이지 데이터 수집하기

파이썬 Selenium 크롤링 입문: 동적 웹 페이지 데이터 수집하기

지난 편에서 requests + BeautifulSoup으로 크롤링을 배웠는데 막상 어떤 사이트는 분명히 화면엔 데이터가 보이는데 코드로는 빈 결과만 나온 적 없나요? 그건 그 페이지가 '동적 페이지'이기 때문이에요. 이번 글에서는 Selenium으로 그런 페이지까지 긁어오는 법을 따라해볼게요.이 글은 이런 분을 위해 쓴 거예요- 6편(크롤링 입문)에서 requests + BeautifulSoup을 써본 분- 크롤링했는데 데이터가 안 나와서 막혀본 분- 로그인·클릭·스크롤이 필요한 페이지를 자동화하고 싶은 분[시리즈] Python 입문1편:[개발/Python] - Python 설치부터 첫 코드 실행까지 — 완전 입문자용2편:[개발/Python] - Python 기초 문법 — 조건문, 반복문, 함수 한번에..

파이썬 크롤링 입문: requests와 BeautifulSoup으로 웹 데이터 수집하기

파이썬 크롤링 입문: requests와 BeautifulSoup으로 웹 데이터 수집하기

웹사이트에서 데이터를 하나하나 복사해서 엑셀에 붙여넣고 있나요? Python으로 크롤링하면 그 작업을 코드 몇 줄로 자동화할 수 있어요. 이 글에서 requests로 웹페이지를 가져오고 BeautifulSoup으로 원하는 데이터만 뽑아내는 법을 처음부터 따라해볼게요.이 글은 이런 분을 위해 쓴 거예요- Python 기초(변수, 함수, for문)를 알고 있는 분- 웹사이트에서 데이터를 자동으로 가져오고 싶은 분- "매번 복사-붙여넣기 하기 귀찮다" 하시는 분[시리즈] Python 입문1편:[개발/Python] - Python 설치부터 첫 코드 실행까지 — 완전 입문자용2편:[개발/Python] - Python 기초 문법 — 조건문, 반복문, 함수 한번에 정리3편:[개발/Python] - Python 리스트..

마크다운 에디터 추천 BEST 5 — 용도별 비교 및 선택 가이드 (2026)

마크다운 에디터 추천 BEST 5 — 용도별 비교 및 선택 가이드 (2026)

마크다운 문법은 익혔는데 막상 "그래서 어디다 써야 하지?"에서 막히는 분들 많아요. 메모장으로도 쓸 수는 있지만 미리보기가 되는 전용 에디터를 쓰면 작업 속도가 확 달라지거든요. 그런데 에디터 종류가 너무 많아서 뭘 골라야 할지 막막하죠.이 글에서는 용도별로 딱 맞는 마크다운 에디터 5개를 골라서 비교해드릴게요. 스크롤 내리기 전에 맨 위 "용도별 빠른 추천"만 봐도 바로 결론이 나옵니다.이 글은 이런 분을 위해 쓴 거예요- 마크다운 에디터를 처음 골라보는 입문자- 블로그 / 개발 문서 / 노트 정리 중 내 용도에 맞는 도구를 찾는 분- 무료부터 유료까지, 장단점을 한눈에 비교하고 싶은 분[시리즈] 마크다운 완전정복1편: 마크다운 문법이 궁금하면 기본 문법·작성법 2편: 코드 블록 완벽 정리 3편: 에..

마크다운 코드 블록 완벽 가이드 - GitHub README와 기술 블로그 필수 문법

마크다운 코드 블록 완벽 가이드 - GitHub README와 기술 블로그 필수 문법

마크다운에서 가장 많이 쓰면서도 가장 자주 깨지는 게 바로 코드 블록이에요. 분명 똑같이 썼는데 어떤 데서는 색깔이 예쁘게 입혀지고 어떤 데서는 그냥 회색 글자로만 나오고... "왜 내 코드 블록은 색이 안 들어가지?" 하고 검색해서 들어오신 분도 많을 거예요.이 글에서는 인라인 코드부터 언어 지정(문법 강조) 그리고 코드 블록 안에 코드 블록을 넣는 백틱 중첩까지 코드 블록 하나만 끝까지 파고들어 정리할게요.이 글은 이런 분을 위해 쓴 거예요- 코드 블록에 언어를 지정해서 색깔(문법 강조)을 입히고 싶은 분- 마크다운에서 쓸 수 있는 언어 키워드 목록이 궁금한 분- 코드 블록 안에 코드 블록을 넣는 방법(백틱 중첩)이 헷갈리는 분[시리즈] 마크다운 완전정복1편: [개발/개발환경] - 마크다운(Markd..

마크다운(Markdown) 문법 총정리 - 초보자도 바로 따라하는 사용법 가이드

마크다운(Markdown) 문법 총정리 - 초보자도 바로 따라하는 사용법 가이드

README 쓸 때, GitHub 이슈 쓸 때, Notion에서 메모할 때... 마크다운은 개발자라면 거의 매일 마주치는 문법이에요. 그런데 쓸 때마다 "이거 어떻게 쓰더라?" 하고 검색하시는 분들 꽤 많거든요.이 글 하나로 마크다운이란 무엇인지부터 핵심 문법, 실무 작성법까지 정리해 둘게요. 북마크 해두고 필요할 때마다 꺼내보시면 됩니다.이 글은 이런 분을 위해 쓴 거예요- 마크다운을 처음 접하거나, 쓸 때마다 문법을 검색하는 분- README, GitHub, Notion에서 깔끔하게 글을 쓰고 싶은 분- 코딩 경험 없어도 따라할 수 있어요. 개발자가 아니어도 유용합니다[시리즈] 마크다운 완전정복1편: 기본 문법·작성법 (현재 글)2편: [개발/개발환경] - 마크다운 코드 블록 완벽 가이드 - GitH..

[프로그래머스/Python] 분수의 덧셈 풀이

[프로그래머스/Python] 분수의 덧셈 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120808📌 문제 및 요구사항두 분수의 분자, 분모가 주어질때1) 두 분수를 더하기2) 결과를 기약분수로 만든다3) 기약분수의 분자, 분모를 리스트 형태로 반환✏️ 풀이방법# 유클리드 호재법 사용from math import gcddef solution(numer1, denom1, numer2, denom2): # 분수 덧셈 numer = numer1 * denom2 + numer2 * denom1 denom = denom1 * denom2 # 최대공약수(GCD) 구하기 g = gcd(numer, denom) # 기약분수 반환 return [..

[프로그래머스/Python] 숫자 비교하기 풀이

[프로그래머스/Python] 숫자 비교하기 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120807📌 문제 및 요구사항✏️ 풀이방법# 1.def solution(num1: int, num2: int) -> int: return 1 if num1 == num2 else -1# 2.def solution(num1:int, num2:int) -> int: if num1 == num2: return 1 else: return -1💡 배운점* 조건 아주 간단할때 사용하면 좋은 개념 공유삼항 연산자: 조건에 따라 두 값 중 하나를 선택하는 한줄짜리 조건문# 문법값1 if 조건식 else 값2# 의미조건식이 True면 값1조건식이 False..

[프로그래머스/Python] 두 수의 나눗셈 풀이

[프로그래머스/Python] 두 수의 나눗셈 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120806📌 문제 및 요구사항✏️ 풀이방법# 1.solution = lambda num1,num2:int(num1/num2*1000)# 2.def solution(num1, num2): return int((num1 /num2) * 1000)# 3.def solution(num1, num2): answer = (num1/num2)*1000 return int(answer)💡 배운점쉬운 문제라도 에러케이스 확인할 생각에...위의 문제 요구사항 아래 순서로 진행되어야하는데1. num1을 num2로 나누기2. 그 결과에 1,000을 곱하기3. 정수 부분만 반환만약 아래와 같이..

[프로그래머스/Python] 몫 구하기 풀이

[프로그래머스/Python] 몫 구하기 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120805📌 문제 및 요구사항✏️ 풀이방법def solution(num1, num2): answer = num1//num2 return int(answer)💡 배운점처음 보는 신기한 메서드 기록해본다. 다만 코테에서 "함수를 한 줄로 작성하라" 라는 문제가 아닌 이상 추천하지는 않는다고하니 참고...# 다른 풀이solution = int.__floordiv__* __floordiv__란?파이썬의 특수 메서드(Magic Method) 중 하나로 //(몫 연산자)의 동작을 정의하는 메서드# 대응관계int.__add__ # +int.__sub__ # -i..

[프로그래머스/Python] 두 수의 곱 구하기 풀이

[프로그래머스/Python] 두 수의 곱 구하기 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120804📌 문제 및 요구사항✏️ 풀이방법# 1.def solution(num1, num2): return num1 * num2# 2.def solution(num1: int, num2: int) -> int: return num1 * num2# 3.def solution(num1, num2): answer = 0 answer = num1*num2 return answer💡 배운점가장 읽기 쉽고 간단한게 가장 좋은것...

[프로그래머스/Python] 두 수의 합 구하기 풀이

[프로그래머스/Python] 두 수의 합 구하기 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120802📌 문제 및 요구사항✏️ 풀이방법# 함수버전def solution(num1, num2): answer = -1 answer = num1+num2 return answer# lambda 버전solution = lambda num1, num2: num1 + num2💡 배운점기초 문제라 영향은 없겠지만 그래도 제한사항이 신경쓰여 찾아봤는데...Python의 int는 위의 제한사항 숫자를 처리할 수 있어 제한사항을 보고 추가 코드를 작성하는 것은 오히려 과할 수 있다고한다(단, 제한사항이 1 ≤ N ≤ 100,000라면 풀이는 달라진다.)코테에서 제한사항을 보면 ..

[프로그래머스/Python] 두 수의 차 구하기 풀이

[프로그래머스/Python] 두 수의 차 구하기 풀이

📌 문제 URLhttps://school.programmers.co.kr/learn/courses/30/lessons/120803?language=python3📌 문제 및 요구사항✏️ 풀이방법def solution(num1, num2): answer = 0 answer = num1-num2 return answer💡 배운점해당 문제는 주어진 코드가 함수였고 제한사항을 떠나서 단순 코테라고 생각해 간단하게 기재했었다여러가지 풀이 중 lambda를 사용하는 방법이 기억나 기재해본다# lambda 구조# lambda 매개변수: 반환값solution = lambda num1, num2: num1 - num2

Python API 호출 완벽 가이드: requests 라이브러리 실전 사용법

Python API 호출 완벽 가이드: requests 라이브러리 실전 사용법

Python으로 외부 서비스의 데이터를 가져오거나 다른 시스템과 연동하고 싶다면 반드시 알아야 하는 것이 API(Application Programming Interface) 입니다.그리고 Python에서 API를 호출하거나 웹에서 데이터를 가져오고 싶을 때 가장 많이 사용하는 라이브러리가 바로 requests 입니다. requests는 문법이 간단하고 배우기 쉬워서 Python 입문자가 가장 먼저 접하는 실무 라이브러리 중 하나예요.실제로 아래의 작업에서 requests를 사용하게 됩니다.공공데이터 API 활용날씨 정보 조회환율 정보 조회Notion API 연동Slack 알림 전송사내 시스템 연동이번 글에서는 requests 설치부터 GET/POST 요청, 에러 처리, 실전 API 호출 예제까지 한 번..