[도서 입력 프로그램] 0. Intro - 파이썬 독학 시작
결국 공부는 필요에 의할때 가장 원동력이 강력한것 같다.
거진 3~4년을 코딩을 배워볼까 생각만하다가 파이썬을 통한 업무자동화와 데이터분석의 매력을 느껴 시작한 파이썬 독학.
가장 큰 이유는 중고서점을 운영하시는 아버지께서 도서 정보를 입력하는 반복적인 일에 낭비되는 시간을 줄여보고자 하는 것이었다.
아버지는 매일 10~20권씩 수집하신 중고 도서정보의 책이름, 저자, 출판사, 책상태와 같은 도서정보를 먼저 알라딘에 입력하고 동일한 내용을 다시 Yes24에 등록하신다.
입력할때 대략 아래와 같은 문제들이 있다.
- ISBN이 등록된 서적의 경우 기존 알라딘이나 Yes24에 등록된 DB를 조회하여 기본 책정보를 불러온 뒤 책 상태나 가격정도만 입력하면 되지만, 문제는 ISBN이 없지만 소장가치가 있어 중고서점에서는 귀한 대접을 받는 옛날 서적이다. ISBN이 없다. 일일히 모든 정보를 수기로 입력해야만한다.
- 알라딘에는 등록되어있지만 Yes24에는 등록되지 않은 도서도 상당수 존재한다. 결국 노가다로 다시 입력해야 한다.
- 각각의 사이트에서 엑셀업로드 서식으로 입력할 수 있는 기능을 갖추고 있긴하지만, 입력할 수 있는 내용이 간단한 기본정보 뿐이라 결국 일일히 들어가서 상품설명 등을 추가로 입력해야하는 불편이 있다.
- 알라딘의 정보를 그대로 복사해서 입력하면 되는것도 아니다. 도서 분류의 기준이 알라딘과 Yes24가 각각 다르고, 도서 상태 구분 기준도 다르며, 필요에 따라 가격을 달리해서 올려야하는 경우도 있다.
결론적으로, 모든 등록도서를 건건이 도서 정보를 확인해가며
두번씩 별개의 사이트에 중복해서 입력해야한다.
그냥 판매 채널을 알라딘으로만 하면 되지 않느냐?
생각이 들수 있지만, 알라딘은 워낙 중고서점간 경쟁이 심해서
Yes24까지 판로를 넓혀야 매출을 늘릴 수 있다.
중고서점을 시작하신지 1년이 조금 넘은 지금 아버지께서 등록하신 도서 개수는 알라딘 기준 대략 12,000권 정도이다. 중고서점의 성공 여부는 소장가치가 높은 양질의 도서를 최대한 많이 보유하고 쉽게 조회가 가능하도록 알라딘 등 사이트에 등록하는 것에 달렸는데, Yes24로 중복 입력해야하는 시간이 길면 길수록 양질의 도서를 확보하기 위한 시간이 부족할 수밖에 없다.
즉, 반복적인 도서 정보 등록에 투입되는 시간을
업무자동화(RPA)를 통해 줄인다면 그만큼의 시간을 양질의 도서 확보에 투자하여,
아버지의 서점은 경쟁력을 확보할 수 있게 된다.
필요가 생기니 방법을 찾기 시작했다. 저 단순하지만 시간을 잡아먹는 작업을 자동화할 수 있는 어떤 방법이 분명 있을 것같았다.
처음에 찾은 방법은 오토핫키였다. 키보드와 마우스를 자동화하는 스크립트 언어인데,
일단 쉽다는 가장 큰 장점이 있다.
BUT 웹브라우저 내용 자체를 인식하고 키보드나 마우스가 움직이는 것이 아니라,
그저 단순히 키를 입력하고 비슷한 그림을 찾아 마우스를 이동하는 방식은 해상도나, 컴퓨터 설정, 인터넷 환경 등 여러 변수에 따라 튕길수 있어 매우 불안정했기 때문에 결국 PASS.
그다음으로는 UiPath등 RPA 툴을 찾아보았다. 기능이 오토핫키보다 더 강력할 것이라 보였지만, 유료라는 이유로 PASS.
이런저런 방법을 찾아보다 발견한 것이 바로 파이썬Python이다.
단순한 오토핫키 문법에 비해 너무 본격적인 프로그래밍 언어라 진입장벽이 높을거라 생각했는데,
막상 유툽이나 위키독스를 활용해 기초문법을 배워보니 굉장히 직관적이면서도 그 기능이 강력했다.
꼬꼬마 시절 컴퓨터 강사셨던 아버지의 권유로 C언어를 조금 배웠었다.
뭔가 까맣고 영어만 잔뜩인 화면을 보면서 머리를 열심히 굴려가며 코드를 짜고서 컴파일러를 돌리면 에러.
머리를 쥐어짜서 에러를 해결해서 다시 돌리면 또 다른 곳에서 에러.
그렇게 낑낑대서 코드를 완성한 결과는 뭐에 쓸지 모를 기초적인 문자 조작 정도 였다.
배우기는 어려운데 그 결과물을 도대체 어디에 써야할지 감이 안잡히니 정말정말 재미가 없어서 한두달 배우다 때려쳤던 기억이 있다.
파이썬은 내가 알던 프로그램 언어랑 많이 달랐다.
복잡하게 속성을 선언할 필요 없이 그냥 '변수 = 값'하면 완료.
에러는 항상 나지만 인터프리터 기반이라 몇번째 줄에서 어떤 오류가 있는지 바로바로 알려주고,
에러메시지로 굉장히 친절하게 '이런이런 오류인거 같으니 이렇게 해보는거 어때?' 알려주기도 한다.
배우기 쉬워 접근성이 낮으면 활용도가 별로일것 같지만, 데이터 분석, 업무자동화, 머신러닝, 웹개발 등등등 안쓰이는 곳이 없다. 현재 가장 인기가 많은 프로그래밍 언어로 늘 한손안에 뽑힌다.
무엇보다 파이썬은 내가 자동화 프로그램을 구상하는데 가장 필요한 웹 정보 수집(크롤링) 및 웹브라우저 제어, 데이터 가공 및 관리에 적합한 Selenium, BeautifulSoup, Pandas와 같은 강력한 기능을 갖춘 라이브러리를 제공한다.
그리하여 시작된 파이썬 독학으로 도서 정보 자동입력 프로그램 만들기 프로젝트.
대략 2개월 정도 짬짬히 시간을 투자하며 공부한 결과 700줄 정도의 코딩으로 꽤 그럴듯한 프로그램 제작에 성공했다.
능력자들이 보면 코웃음 칠 초보 수준 코드이고 아직도 개선할 부분이 많겠지만,
그래도 나름의 노력으로 시행착오를 겪어가며 생각에 생각을 더해 나온 결과물이니 만큼
그 생각의 과정들을 기록해두려는 차원으로 앞으로 틈틈히 독학 개발일지를 작성해서 기록해두려한다.
이번 포스팅은 여기까지...😎
다음글: [도서 입력 프로그램] 1. Selenium 자동 로그인 (feat. 소스코드 민감정보 보안)
'Project > [Python] 도서 정보 입력 프로그램' 카테고리의 다른 글
[도서 입력 프로그램] 3-3. Selenium 드롭다운 제어 (0) | 2024.05.13 |
---|---|
[도서 입력 프로그램] 3-2. Selenium XPATH 찾기 (0) | 2024.05.09 |
[도서 입력 프로그램] 3-1. Selenium 입력 구조 구상 (0) | 2024.05.04 |
[도서 입력 프로그램] 2. BeautifulSoup 알라딘 도서 정보 수집 (2) | 2024.05.03 |
[도서 입력 프로그램] 1. Selenium 자동 로그인 (feat. 소스코드 민감정보 보안) (4) | 2024.04.30 |