도구들 간 만보다가 예전 셀레니움도 로그인 때문에 역시 엄청 애먹은적이 있어

네이버 카페처럼 "사람만 들어오세요" 방패를 세운 곳에선 말이죠.

 

쉽고 직관적인 그래서 결국...
PyAutoGUI라는 눈물의 자동화 도구에 손을 댔습니다.


1. PyAutoGUI: 사람 흉내는 장인, 하지만…

처음엔 기분 좋았습니다.

"이걸로 브라우저 열고, 로그인도 하고, 이미지도 클릭하고 다 하겠군!"

 

✅ 진짜 마우스가 움직인다
✅ 진짜 키보드가 타이핑된다
✅ 진짜 브라우저로 로그인해서 들어간다!

🟢 장점은 단 하나,

 

"사람처럼 실제로 클릭하니 로그인 100% 성공!"

 

이거 하나는 진짜 꿀이었습니다. 나머지는... 흠...


2. 현실은 해상도 지옥

PyAutoGUI는 좌표 기반입니다. 그래서:

  • 노트북과 데스크탑에서 좌표 다름
  • 브라우저 크기만 달라도 위치 달라짐
  • 크롬 툴바 하나만 있어도 오차 발생
pyautogui.click(324, 712)  # ← 이 좌표, 다른 PC에선 허공임

 

심지어 창 최대화 안 해놓으면 자동화 틀어짐 😵

내가 만든 프로그램인데, 내가 쓴 해상도 아니면 못 씀


3. 이미지 찾기는 더한 지옥

“그럼 이미지로 UI 요소 찾으면 되지 않을까?” → OpenCV 사용

 

하지만 현실은?

  • 글자 하나만 달라도 못 찾음
  • 브라우저 스케일 조금만 바뀌어도 못 찾음
  • 반응형 UI라 DOM 구조가 달라지면 무용지물

이미지로 찾으려다 정신 줄 놓을 뻔 🤯


4. 게시물 구조는 왜 자꾸 바뀌는 거야

가장 핵심은 게시글 클릭 & 페이지 넘김이었는데...

  • 게시글 제목 길어서 두 줄이면 → 아래 네비게이션 위치가 바뀜
  • 평소에 글이 15개가 있는데 마지막 페이지 도착하면 글이 1~15개 사이에 있음.
  • 평소에 10개인데 마지막 페이지 도착하면 페이징 번호가 1~9개 사이로 뭐가 있을지 모름

좌표 기반 자동화는 이런 변화에 너무 약했습니다.

 

그래서 OCR 도입 시도!


5. Tesseract OCR: 나를 속인 너의 음성...

"동적으로 변화하는 숫자 인식해서 페이지 넘버 추적하자!"

 

결과는? 두구 두구 두구

 

  • '3' → '8'
  • '5' → 'S'
  • '10' → '1O' 또는 'lO'

이건 무슨 캡챠보다 어려운 숫자 인식… 😵‍💫


6. 결국 DOM 접근을 시도하다

크롬 개발자 도구 열고, 자바스크립트로 DOM 추출.

document.querySelectorAll('.board-box a')

 

→ 게시물 수 확인 후 PyAutoGUI로 클릭 위치 계산

 

근데 절차는....(조상님이 대신해 줄려나?)

  1. 개발자 도구 열고
  2. 콘솔에 JS 입력하고
  3. 결과 복사하고
  4. PyAutoGUI로 넘기고

자동화가 아니라 수동화된 자동화가 되어버림 😮‍💨


7. 최악은 타이밍 지옥

렌더링 완료 전에 PyAutoGUI가 클릭하면?

  • 요소가 안 떠서 클릭이 안 됨
  • 커서는 이동했는데 클릭은 씹힘
time.sleep(5)
pyautogui.moveTo(..., duration=1.5)
pyautogui.press('tab')

 

갖은 꼼수를 써봤지만...

속도는 느려지고, 디버깅은 지옥이고, 안정성은 로또 🎲


8. 최종 결론

💣 해상도 바뀌면 이 프로그램은 못 씁니다. 끝.

 

이건 내 컴퓨터에서만 돌아가는 맞춤형 자동화.

내가 만든 건 크로스 플랫폼 자동화가 아니라, 단일 기기 매크로.


🎯 배운 점 요약

시도 결과

PyAutoGUI 로그인 OK → 나머지는 불안정
OCR 인식률 구림
OpenCV 환경 따라 결과 달라짐
JS + PyAutoGUI 혼합 정신 혼미, 유지보수 불가

✍️ 마무리하며

이 여정을 통해 진짜 배운 건...

UI 흉내내기보다, 진짜 데이터 구조를 이해하는 게 진짜 자동화다.

 

하지만 현실에선 결국 PyAutoGUI 같은 꼼수도 필요하다는 것.

어쩌면 자동화는 늘 창과 방패의 싸움이 아닐까요?

 

전쟁의 후 전리품

 

읽어주셔서 감사합니다!!

지난 1편에서는 네이버 카페에서 이미지를 손으로 저장하다가 🤦‍♂️
Octoparse → Selenium까지 시도하게 된 여정을 소개했는데요.

 

이번엔 그 이후,
"도대체 어떤 도구를 써야 잘 되는 걸까?" 를 파헤쳐보며 자동화 삽질 일지를 공유합니다.


👀 자동화는 선택이 아닌 필수

네이버 같은 대형 플랫폼은 보안도 단단하고, UI도 자주 바뀝니다.

처음에는 “날먹각이다!” 싶었던 툴들이 시간이 지나면 무용지물이 되곤 했죠. 그래서 저는 다양한 자동화 도구를 하나하나 간을 보았습니다.

 

제가 누구입네꽈아아아아~


🧰 현지에서 접할 수 있는 크롤링 도구 비교

도구 장점 단점
크롬 확장 프로그램
(예: Image Downloader)
- 진입장벽 없음
- 단순 이미지 추출 용이
- 게시글 이동 시 무력화
- 반복 작업엔 부적합
Octoparse - 코딩 몰라도 사용 가능
- 빠른 프로토타이핑
- 로그인 유지 힘듦
- UI 변경에 취약
Selenium - 동적 페이지 완벽 대응
- 실제 브라우저처럼 작동
- 느림
- 감지 위험 높음
- 메모리 사용 큼
Requests + BS4 - 빠르고 가벼움
- 서버 부하 적음
- JS 렌더링 불가
- 로그인/세션 처리 어려움
Playwright - 최신 웹 기술 대응
- 인증 처리 강력
- 초반 설정 복잡
- 러닝커브 있음
PyAutoGUI - 모든 UI 제어 가능
- 네이버도 못 막음
- 해상도 민감
- 디버깅 지옥
- 불안정

💣 어떤 삽을 고를 까나?

1️⃣ Octoparse – “잘 되던 게 왜 갑자기…?”

  • 예전엔 OK → 몇 달 뒤 돌리니 로그인 풀림
  • 네이버 로그인 구조 변경이 문제
  • 쿠키도 소용 없음. 결국 다시 플로우 짜야 함

🧨 교훈: GUI 툴은 구조가 바뀌면 바로 무너짐


2️⃣ Selenium – “감지된다고요?”

  • 로그인까진 성공했지만…
    게시글 접근 시 감지 → 리다이렉트
options.add_argument('--disable-blink-features=AutomationControlled')
  • 네이버가 webdriver 속성으로 탐지하는 듯

🧨 교훈: 감지를 우회하려면 지속적인 트윅이 필요


3️⃣ Requests + BeautifulSoup – “빠르긴 한데…”

  • JS 렌더링 전 데이터는 전혀 안 옴
  • API 추적해도 세션/캡챠 우회는 거의 불가능

🧨 교훈: 깔끔하지만, 네이버에겐 역부족


4️⃣ PyAutoGUI – “사람처럼 한다고 다가 아님”

✅ 장점

  • 실제 브라우저에 로그인 가능 → 이것만은 개꿀

❌ 단점

  1. 좌표 기반 → 해상도 바뀌면 끝
  2. OpenCV로 이미지 찾기 → 오인식 심각
  3. 게시글 구조 변경 → 두 줄 제목으로 위치 바뀜
  4. OCR(Tesseract) 숫자 인식 → 처참한 정확도
  5. 개발자 도구 활용 → 돔 파싱 후 PyAutoGUI에 전달
    → 프로세스 복잡해지고 속도 느려짐
  6. 렌더링 딜레이로 클릭 씹힘 발생
  7. 디버깅: 마우스는 움직이는데 클릭 안 됨 🤯

🧨 교훈:
PyAutoGUI는 최후의 수단.
눈물 없이 못 씀.
그리고 해상도 다르면 그냥 못 씀. ← 핵심


💡 자동화 도구별 실전 팁

✅ Selenium 쓰는 법

  • headless 감지되니 옵션 조정 필수
  • 쿠키 저장 → 다음 세션 재활용
# 로그인 후 쿠키 저장
cookies = driver.get_cookies()
# 로그인 없이 쿠키만으로 로그인 유지
for cookie in cookies:
    driver.add_cookie(cookie)

✅ API 추적해서 Requests로 우회

  • 개발자 도구 → Network → XHR 추적
  • 실제 사용하는 URL을 복사해서 직접 요청
  • 단, 로그인 인증 우회는 별도 처리가 필요

✅ PyAutoGUI 생존 팁

  • 화면 해상도 고정 필요
  • 이미지 매칭 & OCR 혼용 시에도 완벽하지 않음
  • sleep()duration으로 타이밍 조절 필수
pyautogui.moveTo(300, 500, duration=1.5)
pyautogui.click()

🧭 마무리: 자동화는 창과 방패의 싸움

네이버 크롤링은 단순히 “이미지 저장”의 문제가 아니었습니다.
사이트 보안 회피 + 구조 이해 + 다양한 도구의 유기적 사용이 필요했죠.

결국 저는 PyAutoGUI까지 내려가서 “사람처럼 하는 자동화”를 구현했지만,
이건 어디까지나 임시방편이었습니다.

✅ 진짜 해결책은?

 

이번 글에서는 제가 겪은 네이버 카페 이미지 자동 다운로드 여정을 공유해보려고 합니다.

처음에는 확장 프로그램과 GUI 툴로 날로 먹으려고 했지만,

언제나 인생은 계획대로 되지 않음을 다시 한번 느끼게 되었네요.

 


1. 확장 프로그램으로 이미지 다운로드는 완벽했다

처음엔 그냥 게시판 글 하나 하나 들어가면서 우측 버튼 누르고 "다른 이름으로 저장" 누르고

그렇게 묵묵히 하고 있었습니다. 그러면서 남은 방대한 페이지들을 보면서 "아. 이게 뭐하는 짓이지?" 하며 현타가 왔지요. 좋은 것이 없나 하고 보니 크롬 이미지 다운로드 확장 프로그램을 써봤습니다.

  • 이미지 추출은 정말 빠르고 더 이상 이미지 찾아가면서 저장 안해도 될 만큼 정말 빨랐어요

“이야~ 이거면 게임 끝이다!”

 

라고 생각했죠.


2. 사람이 앉게 되면 눕고 싶다.

문제는 그 다음이었습니다.
다운로드는 쉬운데, 들어가야 할 게시글이 50개 넘는 상황.

  • 하나하나 클릭하고
  • 탭 열고
  • 확장프로그램 눌러서 이미지 받고
  • 다시 닫고…

이걸 반복하다가 정신이 멍해졌습니다.

“이걸 진짜 다 수작업으로 하라고?”

그 순간, 자동화를 고민하게 됐습니다. 음 자동화 툴이 뭐가 있어더라.. 코딩을 해야하나 어디 스크래핑 서비스를 써야 하나.


3. 그래서 선택한 Octoparse! 

**예전에는 스크래핑도 기술이라 몇천 만원짜리 솔루션 구매해서 실무에서 사용한 경험이 있었는데요. 이제는 접근성도 좋아지고 코딩을 몰라도 배우기도 쉬워 스크래핑을 정말 빠르게 작업이 가능했어요.**

  • GUI 방식으로 클릭만 하면 플로우가 만들어지고
  • 게시글 순회 → 이미지 추출 → 저장까지
  • 거의 1시간 안에 로그인부터 실행까지 완성!

그 당시엔 정말 만족했죠. 아 날먹~ 호호호호~ 개~~꿀~~!


4. 그런데 3개월 뒤… 다시 돌려보니 엥 로그인 실패?

시간이 지나고,
다시 같은 작업을 하려고 Octoparse 프로젝트를 실행해봤습니다.
그런데 로그인은 성공했는데, 이후 페이지에서 로그인이 유지되지 않더라고요.

  • 게시글에 접근하려 하면 다시 로그인 페이지로 리다이렉트
  • 세션 쿠키를 수동으로 유지시켜도 동일
  • 로그인 플로우를 새로 짜봐도 마찬가지

“어라? 이거 예전엔 잘 됐는데?”

분명 예전에 만들 플로어 돌렸는데 왜 지금은 안돌지 뭘 잘 못 건들였나?

하고 한시간만 돌려서 결과막 쏙 뽑아 먹을려고 했더만.

네이버 로그인 방법이 문제인지** Octoparse 설정을 잘 못건들였는지 무용지물이 되어버렸습니다.**


5. 그래서 결국… “내가 직접 만들자”

시간은 시간대로 쓰고 결과는 결과대로 못 얻얻게 되자

“이럴 바에야 차라리 내가 직접 만들자.”

 

개발자인 내가 이렇게 단순한 크롤링도 못 만드는 건가 싶어서 자존심이 살짝 상했죠. 지금 생각해 보면 객기 아닌 객기를 부렸....

 

정말 프로세스는 정말 단순하다.

**1.로그인 → 2.세션 유지 → 3.까페 접속 → 4.게시물 검색 → 5.페이지에 나온 게시물 클릭 → 6. 모든 이미지 다운로드 **

 

직접 구현해보기로 했습니다.

엣헴!

 

🧩 마무리하며

크롤링이라는 건 생각보다 복잡하고, 사이트마다 구조도 다르고 보안도 점점 강해지고 있더군요.
법적으로도 저작권 문제나 서버 부하 문제로 금지되는 경우가 많기 때문에, 관련 법령이나 가이드라인(예: 정보통신망법 제48조, robots.txt 등)을 확인하는 것이 중요합니다.
제 경우에는 개인적인 학습 목적으로 접근했고, 창과 방패의 싸움처럼 느껴졌던 과정이 참 기억에 남네요.

어플리케이션 퍼포먼스 모니터링 - Application Perpermance Monitoring

 

스카우터 하면 후리자 사마가 착용한것이 "스카우터"

 

 

 

인터넷에 옛날에 만든 구성도만 돌아다니는데 제안서에 사용하기 위해서 새로 그렸다.

 

회사 제안서 쓸때 사용하려고 만든 장표

단순하게 구성은

스카우터 서버에 다가 어플리케이션 "성능데이터"와 해당 어플리케이션이 깔려있는 "서버의 정보"를 전달하는 것이다.

 

어플리케이션 성능테이더에는 "쿼리 정보와 어플리케이션 에러"가 수집이 되고

서버 성능 정보는 "CPU와 메모리" 사용량들이 수집된다.

 

그외 web api도 지원되고 3rd party 플러그인도 있는데 오류 발생시 이메일을 발송하는 기능을 넣고자 한다.

 

https://github.com/scouter-project/scouter

 

GitHub - scouter-project/scouter: Scouter is an open source APM (Application Performance Management) tool.

Scouter is an open source APM (Application Performance Management) tool. - scouter-project/scouter

github.com

 

깃허브 액션으로 CI/CD를 구현하는데  리눅스는 서버 쪽에 좀 챙겨할 부분이 있어서 정리 합니다.

 

1. 공개키 / 비밀키를 생성

    ssh-keygen -t rsa -b 4096 -f 키이름

 그러면 이름으로 public 키와 private 키가 만들어짐.

 

이때  passphrase는 공백으로 만들어줌.

 

public 을 열어서 서버의 ~/.ssh/authorized_keys 파일을 열어서 복사한 내용을 한줄 추가.

 

2. 파일 권한을 변경해야 함. (이걸 안해서 키만 엄청 만들었음.)

chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

 

3. sshd_config 수정 (기본적으로 설정이 안되어있음)

/etc/ssh/sshd_config

PubkeyAuthentication yes

PasswordAuthentication no

AuthorizedKeysFile .ssh/authorized_keys

 

수정후 ssh 재시작

sudo systemctl reload sshd

 

4. cmd 창열어서 priavte 키 있는곳에 가서 접속

ssh -i 비밀키파일명 -p 포트  사용자계정@서버ip

 

깃허브가서 변수를 추가한다.

 

REMOTE_SSH_HOST -> 서버 ip

REMOTE_SSH_KEY -> 비밀키를 다 복사해서 붙여넣는다.

REMOTE_SSH_USERNAME -> 서버 user

REMOTE_SSH_PORT -> 서버 ssh 포트

 

# Repo Action 페이지에 나타날 이름 
name: Application Deploy

 

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest
    steps:
    - name: Start server
      uses: appleboy/ssh-action@master
      with:
        host: ${{ secrets.REMOTE_SSH_HOST }}
        username: ${{ secrets.REMOTE_SSH_USERNAME }}
        key: ${{ secrets.REMOTE_SSH_KEY }}
        port: ${{ secrets.REMOTE _SSH_PORT }}
        script: | 
          sudo docker restart app

 

 

오늘날 네이버를 가장 큰 밥줄... 광고 서비스....

여차 저차 네이버 광고 API를 개발할 일이 생겨 처음 접해 봤다.

 

처음 의뢰를 받았을 때는 뭐 API가 대단한게 있나.

 

그냥 대충 던지고 응답 받으면 대충 표현해 주면 되는거 아닌가

라고 단순하게 생각했다가 이번 작업에 두번째로 어려운 작업이 되었다.(가장 어려운 작업은 PHP 개발셋팅..)

 

네이버 광고 API는 https://naver.github.io/searchad-apidoc/#/guides 에 문서로 영어로 존재한다.(한국기업 아니였나..)

 

보통 API를 개발을 시작하면 아래와 같은 절차로 접근한다.

 

1. 무슨 데이터를 받아야 하나?

2. 무슨 API를 호출 해야 하나?

3. 호출 하기 위해서 어떤 데이터를 수집해서 전달할 것인가?

 

1번. 요건은 플레이스, 지역소상공인 클릭, 노출수 같은 정보를 보여 달라였다.

2번. 여기서 부터 막혔다. 고객이 원하는 데이터 모양으로 API doc 문서의 response다 뒤져봤는데

       막상보면 자료 양도 많고 게다가 영어라서 읽기가 일단 싫었다 ㅋㅋㅋ(게다가 광고 서비스의 이해도가 없으니 더 삽질을

       가속화하였다.)

3번. 데이터를 어떻게 가져와야 하나

 

결과만 말하면 내가 알고 있는건 customer Id -> 이걸로 캠페인 번호를 가져온다 -> 캠페인 번호로 활용하여 광고 타입을 구분하고 광고그룹 ID를 가져온다. -> 광고 그룹ID를 가지고 고객이 원하는 데이터를 가져온다.

 

제발 내가 네이버 api 구조를 잘 몰라서 저렇게 했다고 믿고 싶다.

/ncc/campaigns -> /ncc/adgroups -> /stats 이렇게 호출했다.

 

그래서 그냥 막무가내로 PHP로 코딩을 했다. 근데 잘 API가 호출이 안된다. GET method로 배열 및 객체를 담아서 그런가

파라메터를 인코딩으로해보고 전송해도 API를 실패했다. 이게 호출 방식이 문제인건지 데이터의 문제인건지가 판단이 안됐다.

 

API 관통 테스트를 API툴을 가지고 먼저했어야 하는데 바로 개발을 했다니 너무 우습게 생각했었나 싶었다.

 

그래서 다시 초심으로 돌아와서 POSTMAN으로 테스트 하고자 하였는데 네이버 API 인증은 아래와 같다.  

sha256-hmac ( API_SECRET, Milliseconds since Unix Epoch + "." + http method + "." + request uri )

 

아... 시간이 들어가는 구조인데 POSTMAN에서는 어떻게 만들어서 테스트를 하냐...

POSTMAN에서는 Pre Script라는 자바스크립트 기반으로 만들어 줄수 있었다.

 

function genBasicToken(clientAPIKey, contactAPIKey, username) {
    var time = new Date().getTime();
    var conKey = time + '.' +'GET'+ '.' +'/stats'

 

//인증 처리 부분
    var hmac = CryptoJS.HmacSHA256(conKey, clientAPIKey);
    var base64Hmac = CryptoJS.enc.Base64.stringify(hmac);
     phttp://m.globals.set("X-Signature", base64Hmac);
     phttp://m.globals.set("X-Timestamp", time);

   

//파라메터 인코딩 할 부분
    var fArr = encodeURI('["clkCnt","impCnt","salesAmt", "ctr", "cpc", "avgRnk"]');
    var fJsn = encodeURI('{"since":"2024-01-01","until":"2024-01-31"}');
    phttp://m.globals.set("fields", fArr);
    phttp://m.globals.set("timeRange", fJsn);
    return CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(username + ":" + base64Hmac));
}

POSTMAN에서 스크립트가 동작되는 결과도 확인할 수 있는 콘솔이라는 창이 있다는 것도 처음 알았다.

이걸로 API 관통 테스트를 하고 PHP로 코딩을 맞게 해줬다. 이때 파라메터 인코딩을 애를 먹였다.

 

API 데이터 구조를 고객님한테 설명을 듣고 코딩을 끝내고 테스트를 완료하였다.

 

결국은 잘 끝냈지만 처음해보는 PHP 언어이며, API를 너무 쉽게 생각했다.

 

항상 사람이 겸손해야 한다.

겸손은

 

 

 

드뎌 알리에서 ad 보드가 왔다 이제 아래 체크리스트를 기반으로 개조를 시작한다.

 

- 보드는 아이맥 전원을 그대로 사용함.

- 전원 버튼은 기존 버튼으로 유지함.

- 스피커도 유지.

- 전원 선 및 HDMI 단자는 뒤쪽 단자로 보낸다.

 

 

 

AD보드 테스트 - pass

믿음과 신뢰의 알리

 

 

스피커, 파워서플라이(PSU)만 제외하고 다 들어냈다.

정말 병적으로 내부도 잘 정돈된 품질의 아이맥

 

 

파워 제외하고 다 들어냈다

 

 

 

순조로운 출발! 하루만에 완성 가능 각!?!?!!?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

그랬군아.

 

 

 

파워 서플라이 단자에서 전원을 끌어와서 ad 보드에 주입해야하는데 어디서 가져와야 할지 몰라 검색.

이쪽 관련 단어에 완전 무지여 검색하는데 꽤 애를 먹었다.

아이맥 ADP-200dfb라고 찾아봤는데 도저히 정보가 없었다. 그런데 다른이름인 PA-2311-02라는 이름으로도 팔리더라.

 그래서 이걸로 찾아보니 핀배열이 나왔다.

 

근데 저 많은것 중에 12v는 어디서 나오는거냐???

 

고민해도 답도 안나오고 물어볼 곳도 없어

보드 망가질 각오를 하고 GND 땜질하고 PP12V_G3H_ACDC에 연결해 놓았다.

땜질하는데 인두기가 후져서 납도 제대로 안녹아서 저 두군데 땜질만 한 시간을 버렸다.. 결국 이마트가서 만원짜리 인두기 사옴.

 

 

 

 

 

그리고 모든걸 다 연결해 놓고 떨리는 마음으로 전원을 넣어봤다. 안 터지겠지? 안 터질꺼야.

 

 

 

 

 

 

 

 

 

 

 

 

서....설마.....

 

 

 

 

 

 

 

 

 

 

다행이 보드가 망가지지는 않았고 전원만 안 들어오더라. 더 삽질하기도 두렵고

오늘 하루만에 조립을 끝내고 싶어 그냥 고민 없이 파워 서플라이도 떼어냈다.

 

이제 내부 스피커 조립

단자를 보니 +, - 만 있을 줄 알았는데

 

뭐냐... 근데 왜 4가닥???

 

또 도면을 찾아 다녔다.

아하 이래서 4가닥이군아.. 근데 tweeter는 뭐하는거냐?

 

그리고 ad보드의 출력단자를 보니

VOLN? VOLP? VORN? VORP?

 

좌우는 알것 같은데.. 스피커(입력)는 4선... AD보드 소리 아웃(출력)은 2선....

 

 

 

????????

 

 

 

우퍼는 아쉽지만 버리기로 결정했다.

+, - 맞춰가면서 연결해보니 잘나오더라

 

그런데 연결해놓고 테스트 다 하고 "이제 다 했군아" 했는데 출력 단자를 같이 엮으면 되는거 아닐까 싶어

트위터의 + 를 우퍼의 +로 연결하고 -를 -끼리 연결하고 ad 보드의 음성 단자의 +, -연결 하면 될것 같아 해보니 잘 되더라. 

 

스피커 연결 완성!!!!

 

내부 스위치의 전원선이랑 AD 보드의 전원 컨트럴러 보드와 납땜을 했는데 사진을 안 찍어놨다..

이거보고 같은 자리에 땜질을 했다.
최종 조립전에 부품들의 위치를 미리 선정해놨다.

 

부품을 안착 시켰다.

 

가조립 후 테스트. 싸랑해요 슈카월드~

 

사운드도 잘나오고 전원 스위치도 잘되고 예정된 시간안에 다했다.

드디어 27인치 모니터가 되었다.

 

 

사과와 스벅은 언제나 함께~

 

 

이제 집에 설치할 차례.

내부에 다 떼어내도 기본적으로 패널 무게가 있기 땜에 그래도 당근 할때 보다는 가벼워졌지만 무겁긴 무겁다.

이제 꼬질꼬질한 외관을 정리하고자 "케이프코드"와 유리를 닦을 "신문지"를 준비했다.

알류미늄이나 은같은 재질을 깨끗이 닦아낸다고 한다.

 

유리를 탈거

 

유리를 떼어내서 물청소를 안쪽 바깥쪽을 하고 본체를 케이프 코드로 닦아내 주었다.

유리는 확실히 더려워서 닦은지 알겠는데 본체는 이게 맞는건지 잘 모르겠다 ㅋㅋㅋ(티가 안남..)

하얗게 불타올랐다.

 

보람찬 마무리!

 

아무래도 워낙 오래된 제품이라 패널도 세월의 풍파를 맞긴했다. (근데 흰색 바탕 아니면 티는 안난다.)  

패널도 알리에서 새제품으로 구입할 수 있는데 나중에 업그레이드 하고 싶은 마음이 생기면 새 패널이랑 크롬캐스트나 달아봐야 겠다. 그때 쯤 되면 외장 모니터가 아닌 애플티비(?)로 사용 할 듯 싶다.

 

그날이 오면 되면 사용할 스위칭 버튼들..

 

https://ko.aliexpress.com/item/1005006034730141.html?src=google&src=google&albch=shopping&acnt=631-313-3945&slnk=&plac=&mtctp=&albbt=Google_7_shopping&albagn=888888&isSmbActive=false&isSmbAutoCall=false&needSmbHouyi=false&albcp=19224801818&albag=&trgt=&crea=ko1005006034730141&netw=x&device=c&albpg=&albpd=ko1005006034730141&gad_source=1&gclid=Cj0KCQjw5cOwBhCiARIsAJ5njubH-3sTtEMSb1rXrV6vuhXM9BJQmTAGlj5OlUPnRTyYdOgq8KwbqjIaAi58EALw_wcB&gclsrc=aw.ds&aff_fcid=db998419ede444e691fa87c1c241a2d5-1712453401614-06902-UneMJZVf&aff_fsk=UneMJZVf&aff_platform=aaf&sk=UneMJZVf&aff_trace_key=db998419ede444e691fa87c1c241a2d5-1712453401614-06902-UneMJZVf&terminal_id=ac46bc5d7fdc446ab09ef6f5560ec75c&afSmartRedirect=y

 

23590.0₩ 30% OFF|DOIO KB01 07 컴퓨터 부팅 키 기계식 키보드 스위치 로커, 알루미늄 동체 전원 표시기

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

https://ko.aliexpress.com/item/1005006241017739.html?src=google&src=google&albch=shopping&acnt=631-313-3945&slnk=&plac=&mtctp=&albbt=Google_7_shopping&albagn=888888&isSmbActive=false&isSmbAutoCall=false&needSmbHouyi=false&albcp=19224801818&albag=&trgt=&crea=ko1005006241017739&netw=x&device=c&albpg=&albpd=ko1005006241017739&gad_source=1&gclid=Cj0KCQjw5cOwBhCiARIsAJ5njuao3qLBPgczbZh_U83JhuQaPo3sx4e7rpNdu8xlcOTVlKnx1VmSYMIaAswVEALw_wcB&gclsrc=aw.ds&aff_fcid=3eee8ff6c92d469ab734e8d7306956fc-1712453481896-06970-UneMJZVf&aff_fsk=UneMJZVf&aff_platform=aaf&sk=UneMJZVf&aff_trace_key=3eee8ff6c92d469ab734e8d7306956fc-1712453481896-06970-UneMJZVf&terminal_id=ac46bc5d7fdc446ab09ef6f5560ec75c&afSmartRedirect=y

 

6031.0₩ 45% OFF|확장 컴퓨터 데스크탑 전원 스위치 2M 케이블 Led 라이트 버튼 스위치| | - AliExpress

Smarter Shopping, Better Living! Aliexpress.com

ko.aliexpress.com

 

애플은 6년 전에 회사에서 하이브리드 앱 만들면서 있는 안드로이드보다 너무나 폐쇄적인 개발 절차땜에

너무 고생을 많이 해서 없던(?) 정냄이도 다 떨어져서 다시는 애플과는 상종도 안했었다....

 

뭔 바람이 불어서 인지 알 수는 없지만 애플 클래식에 이어 이번에는 아이맥이다....

 

자.. 그래서 당근에서 고장난 아이맥을 검색해 봤다.

이 삽질에 불을 지펴 주신 고객님(?)께서 27인치를 원하셔서 당근을 검색하여 사당에 있는 고장난 아이맥을 거래하기로 했다.

 

캬~ 갬성의 사과

 

 

 

근데 막상 가보니 사당역에서 거래하는 곳까지 9분 거리를 걸어서 가야한다... 이때 부터 무언가 잘못되어 간다는걸 느끼고 있었다.

텅 빈 거리 어느새 수많은 니 모습만 가득해~

 

근데 뭔 사당에 이리도 언덕이....

사당에 그렇게 술마시러 많이 다녔는데 이렇게 언덕이 많은 동네라는걸 처음 알았다.

 

고산증?!?!?!?

 

 

마침내 언덕을 올라 올라 도착한 아파트 주차장에서 판매자에게 연락했다. 

 

판매자 남편분이 나오셔서

 

판매자 - "고장난거 아시고 사시는 거냐? 왜 사시냐?"

나 - "개조할겁니다." 

판매자 - "오 능력자시네요."

 

이 무거운 고장난 폐가전물을 8만원주고 사고 (참고로 멀쩡한 27인치 모니터가 당근에서 4~5만원에 거래되고 있다.)

맨몸으로 와서 들고 걸어서 돌아갈 생각을 한다는 것 자체를... 능력이라 말씀하시는 거였다면..

 

 

 

맞아요.. 맞습니다. 제 능력 맞아요. 당신이 그렇게 생각했듯이 저도 그렇게 생각하는걸요...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

바보 능지 100배

 

 

예상은 했지만 막상 품에 안아보니 한숨에 한숨만 흘러나오더라.. 아.. 이걸 들고 어떻게 지하철 까지 돌아 가냐 ㅋㅋㅋ

모자르지만 착한 나.

 

 

 

언제가냐....

 

 

 

여기까지오면서 4번정도 쉰것 같다.
퇴근길에 사당역 지하철에 저걸 들고 탈 용기가 없었다. 지하철을 4번은 보낸것 같다.

 

원래는 집에 들고가서 개조하려고 했는데 저 무게를 지고 집까지가는게 도저히 엄두가 안나서

땀을 뻘뻘 흘리면서 사무실로 돌아갔다.

 

고장은 나긴 났네. 나의 회사 심볼인 물컵과 함께

 

 

옛날 2009년도 시절의 구형 아이맥이 고질적인 문제가 그래픽칩셋이 시한부다.

오래 사용하면 자동으로 망가질 수 밖에 없는 구조였던것 같다.

그래서 판매자도 잘쓰고 있다가 어느날 켜보니까 부팅이 안된다는 거였다.

언제 고장나도 이상할것이 없는 그래픽 칩셋

 

 

그래서 AD보드를 구입하려면 패널 모델을 알아야해서 집에있는 연장을 가져와서 분해를 했다.

케이블이 유튭에서 보던거랑 달라서 케이블 분리하는데 좀 애먹었다.
요놈이 문제
LM270WQ1(SD)(A2) 모델이네.

 

알선생 진행시켜!

 

이후 계획은

- 보드는 아이맥 전원을 그대로 사용함.

- 전원 버튼은 기존 버튼으로 유지함.

- 스피커도 유지.

- 전원 선 및 HDMI 단자는 뒤쪽 단자로 보낸다.

 

라즈베리파이때 보다는 AD보드만 오면 "금방"되지 않을까 하는 헛된 기대 중이긴 하다.

처음에는 리튬 이온 배터리로 시작하려다가 공간내기도 어려워서

리튬 폴리머도 생각했다가 집에 화재가 날것 같은 공포감에 배터리는 제외 시켰다. 

첫 스타팅 멤버

 

처음 산 디스플레이가 RCA로 단자로 입력을 받는 자글자글한 옛 갬성이 나는 디스플레이다.

이번 작업에는 집에서 뒹굴거리는 라즈베리 파이3B+ 인데 컴포지트 단자를 연결해 주어야 한다.

온갖 유튜브를 찾아가면서 방법을 찾았다.

영상단자 연결
전원단자 연결
앰프와 스피커 단자 연결
전체 단자 확인

 

간이 연결을 해보고 테스트를 해보니 잘 작동이 되었다.

 

이때까지만 해도 금방 끝날 줄 알았는데 이후 어마어마한 삽질의 시간이 다가오고 있었다.

 

전원 결착시키고 삽질의 시작이다.

 

파워스위치를 HDMI 전환 스위치로 변환하기 위해서 HDMI 셀렉트기를 주문했다.

 

양방향 스위치
버튼을 기판에서 떼내고 납땝을 해주었다.

버튼을 떼어내는 과정에서 힘으로 하다보니 보드를 긁었는데 별거 아닌걸로 넘어갔다가 훗날 혹독한 댓가를 치루었다.. 

 

이때만 해도 괜찮았는데....

 

순조롭게 진행하고 있었다.

막상 다 조립하고 스위치에서 전환해보니까. 입력신호가 하나는 안들어오는 것이다. 납땜이 문제인가 연장 스위치의 문제인가

잘 몰라 납땜을 다 다시했었다.

결국은 보드를 긁은것이 문제가 된것 같아 여분으로 하나 더 구입한걸 뜯어서 해보니 잘되더라..ㅠㅠ

 

다시 뜯어서 새로 납땜함하고 테스트

  

연장 케이블로 테스트 완료

 

이걸로 삽질하는 도중에 라즈베리파이로 스위칭을 하면 화면이 안나오는 것이다.

처음에는 hdmi 단자의 문제인가 전원의 문제인가 싶어 전원부도 PD전원으로 바꾸려고 했는데 그러면 

내부 타공을 새로 해야서 PD 전원은 포기했다.(전원부에 계속 전원부족이라고 뜨기는 했다. - 결국 무시하는 셋팅을 함) 

 

게다가 라즈베리 파이 CLI 화면은 나오는데 GUI 화면으로 진입하면 검정화면이 나오는거다.

라즈베리파이 셋팅을 뭔가 수정한것 같은데 뭘했는지는 모르겠고 여기서도 엄청 헤맸다

진입할때 해상도를 맞춰주면서 진입했어야 하는데 결국 raspi-config에서 gui 진입에 해상도 맞춰주니까 제대로 되더라..ㅠㅠ

 

나의 기분.

 

이제 매직미러2를 셋팅하고 완성하였다.

https://magicmirror.builders/

 

MagicMirror²

Voted number 1 in the MagPi Top 50! MagicMirror² is the winner in the official Raspberry Pi magazine’s 50th issue celebration feature voted by the Raspberry Pi community.

magicmirror.builders

기본 모듈

1. 시계

2. 날씨 (api 키생성필요)

https://openweathermap.org/

 

Сurrent weather and forecast - OpenWeatherMap

OpenWeather Weather forecasts, nowcasts and history in a fast and elegant way

openweathermap.org

3. RSS리더 - 연합뉴스

4. 로컬 사진 랜덤 재생(MMM-Random-local-image) or 인터넷사진(WallberryTheme)-(api 키생성필요)

https://unsplash.com/

 

아름다운 무료 이미지 및 사진 | Unsplash

어떤 프로젝트를 위해서든 다운로드 및 사용할 수 있는 아름다운 무료 이미지 및 사진입니다. 어떤 로열티 프리 또는 스톡 사진보다 좋습니다.

unsplash.com

전원 인가 전

 

완성!!

 

막상 쓰고나니 별거 없는데 거의 1달 반 정도 주말에만 이 짓만 했다. ㅋㅋㅋ

https://www.youtube.com/watch?v=e3t7Hut0XPQ&ab_channel=MICROFACTORY%EB%88%BC%EC%9D%B4%EB%B6%9C

 

퓨전360으로 도면 그리는것도 관심있어서 이래 저래 만져보고 있다가

어느날 라즈베리게임동에 올라온 "마이크로 팩토리님" 영상을 보고 "나도 가지고 싶다!" 라는 이유로 시작한 뻘짓.

(감사하게 도면을 공개해주셨다!)

 

1. 부품 구매

언제나 그랬듯이 알리익스프레스 중국 졸부같이 쇼핑을 해주었다.

 

2. 중국 업체에 3d 프린팅 의뢰(처음 의뢰를 해 봄)

https://jlcpcb.com/

 

PCB Prototype & PCB Fabrication Manufacturer - JLCPCB

Our low-cost and fast-turnaround service allows you the freedom to iterate and explore different design possibilities. Experience the power of our advanced smart factories and fully automatic equipment! With turnaround times as short as 24 hours for manufa

jlcpcb.com

 

혹시 몰라 두개씩 구매했는데 재질도 좋고 가격도 싸다고 한다.

 

신청을하면 해당 출력물을 뽑을 수 있는지 없는지 확인을 해준다.

출력물이 잘 안나올것 같다고 예측이되면 그래도 출력 의뢰할꺼냐 라고 물어본다.

그러면 다시 도면을 올리던가 아니면 취소한다.(출력하기 너무 작은 파트거나 얇으면 안되는것 같다.) 

 

주문 승인하고 한 일주일 후에 도착했는데 포장도 엄청 꼼꼼하게 잘 되어있고 출력물 품질이 꽤 좋았다.

그 동안 철물점 락커를 샀다(색상을 고민했는데 아무래도 옛날 레트로 갬성으로 만들고 싶었다.)

요런 갬성

 

USB 단자를 연결하려고 보니 기존 도면과 맞지 않아 내부를 갈았다.

원본은 배터리를 넣었지만 나같은 초보가 배터리 구성해서 다른 사람에게 선물로 주기는 위험할것 같아 배터리를 안 넣었다.

그래서 on / off 스위치 역할을 HDMI 스위치를 넣기로 했다. 따라서 HDMI 단자를 위한 타공을 했다.(그래서 외관이 깔끔하지 않다.)

 

외관색상 도색

도색을 하고 보니 만져보니 칠이 거칠어서 그런지 까칠까칠하고 처음 흰색으로 왔을때는 결이 안보였는데 도색하고 나니 3D프린터 적층한 결과 기포가 확 들어났다.

 

매킨토시 클래시 로고

요즘 사과는 검정색인데 옛날 사과라 화려했다.

커스텀으로 출력을 하려면 최소 2장을 뽑아야한다고 해서.... 꽤 비싼 돈을 현금으로 줬다.

사포 처리 및 클리어 뿌리기

    (사포도 어느정도로 사야할지 몰라

> 다음에는 이런일이 있으면 800방 정도로 갈아내고 레드 퍼티로 구멍을 막아야 낼 예정이다.

 

바람부는 날에 야외에서 해서 도장이 깔끔하지 못 하지만 어쩔수 없었다.

 

 

+ Recent posts