이젠 바야흐로 대 AI의 시대!!

원피스는 그 곳에!!!

 

우리 모두다 알고 있듯이 인공지능 / 로봇 25년 너무나도 핫한 키워드다.

내가 있는 곳의 산업군이 IT쪽이다 보니 너무 절실하게 느껴진다.

 

SI 산업 변화에 큰 파도가 근 30녀간 몇 번왔는데 아래와 같이 생각된다.

2 TIRE Application(델파이, 비베) -> 3 TIRE Web Application(Java, .Net) -> 모바일(안드로이드, IOS) -> AI(현재)

 

슬슬 고객사에서도 AI 프로젝트에 대한 이야기가 내가 속해 있는 SI 업체까지 문의가 내려오는거 보면

이미 시장에 보편화되어가고 정착해가려는 과정인것 같아 보인다.

 

고객님의 요구사항은 이거다.

 

"고객님"

"현재 상품 운송정보를 지도에 표시해 주고 사용자가 문의하면 그 관련된 정보를 답해주는 서비스를 AI로 하고 싶습니다."

 

"나님"

그럼 고객한테 운송정보를 제공할 수 있는 포탈을 만드시고.. 상담사를 채용하여 문의에 답변을....

 

 

뭐시라?

"고객님"

아니 요즘 유행하는거 있잖아요!?!?! AI를 이용한 챗봇 같은거!

 

"나님"

아하 이런거요?

https://www.asiae.co.kr/article/2024080209074522225

 

[단독]AI에 수천억 썼지만…"상담 만족도 20% 그쳐"[뺑뺑이 AI콜센터]② - 아시아경제

편집자주“(AI가 아니라) ‘사람’입니다 고객님. 무엇을 도와드릴까요?” 누구나 한 번쯤은 이용할 일이 있는 콜센터, 언제나 상담원이 친절하게 전화를 받아 문...

www.asiae.co.kr

 

나 역시 몇번 사용해봤지만 정말 거지같은 사용자 경험에 결국은 "상담원 Help Me!"를 외쳤던 기억이 새록 새록하다.

그래도 위와 같은 실패하는 시도들이 있기 때문에 오늘날 같은 기술의 발전이 있는거 아니겠는가?

 

이러한 맥락으로 MCP(Model Context Protocol) 라는 기술도 생겨나고 세상은 너무나도 빠르게 흘러가고 있다.  

 

예전에는 생성형 AI(챗GPT, 클로드 같은 LLM)과 어플리테이션을 연동하려면 각 회사의 API도 알아야하고 툴도 만들어야하고 

Langchain, Lama-Index 같은것도 배워야 했다.

 

그런데

클로드를 만든 앤트로픽 회사가 생성형 AI이랑 연결할 수 있는 표준 프로토콜을 만들꺼야~ "뿌우뿌우~" 했지만 흥행 참패 ㅋㅋ

 

하지만

월 20만명이 사용하는 Cusor AI IDE에 MCP 기능을 접목 시키면서 폭발적인 인기를 끌게 되었다. 

 

다만 현재 MCP를 쉽게 사용하려면 Cursor AI나 클로드 데스크탑 ("Host"라 칭함)를 다운로드 받고

 

https://smithery.ai/

 

Smithery - Model Context Protocol Registry

Provide real-time and historical Formula 1 racing data through a standardized protocol. Access live telemetry, session statuses, driver and constructor standings, race results, weather, and circuit information seamlessly. Enhance your applications with com

smithery.ai

 

위의 사이트 가서 필요한 Tool("Server")를 사용하여 Host에 붙이면 끗!(이 과정은 정말 10분에 할수 있을 정도로 쉽다.)

 

자 이제 고객님에게 달려가 위와 같이 말씀 드리면 모든게 우리 모두 행복질 수 있습네돠아아아아아!!!! 

 

 

 

"고객님"

나의 고객님한테 저와 같은 절차로 설치하게 하라고요?????

 

"나님"

아...하하하.. 그건 좀 어렵겠죠?????

( 대한민국 실업률도 높은데 포탈하나 개발하시고 상담 인력 채용하셔서 고객 서비스 하시지...그게 대기업 낙수효과 아닌가욧!!!!!)

 

"나의 회사 임원님"

우리 고객사님의 니즈를 타계 할 뭐 아이디어 없나????

 

"나님"

찾아보겠슴돠! (그걸 알고 있음 내가 여기있겠냐!!!!)

 

까라면 까야하는 직장인의 애환이 담긴 AI 문외한의 AI 챗봇 구축기 시작.......

 

참고 기사

https://byline.network/2025/04/8-327

서버 날려 버리는 바람에 티베로를 새로 설치해야 한다.

이미 한번해 봤으니 잘할 수 있을꺼다.... 아마....

이미지로 묶을려고 했는데 시스템 구조도 잘 모르고 해서 설정만하고 그 뒤에는 개별적으로 셋팅해야한다.

도커로 서버까지만 올려주는 방법이다. 실행은 세마포어 스페이스가 부족하다고 한는데 잘 모르겠다.

 

도커 허브에서 티베로 이미지를 찾아서 여러번 날먹을 시도했지만 날먹 적발되었다.

(아마 지금 가진 지식으로 할 수 있을것 같은데 이미 시간을 너무 써버려 패스한다..)

https://www.threads.net/@neujeok 나...난가?

 

 

그래서 우분투 이미지를 받아서 이것(?) 저것(?)을 하고 거기에 티베로 압축풀고 데이터 베이스 만들꺼다.

우선 준비물은 티멕스 개발 라이센스, tibero7.tar.gz 파일을 아래 사이트가서 받아둔다.

https://technet.tmax.co.kr/

 

https://technet.tmax.co.kr/

 

technet.tmax.co.kr

 

서버에 잘 옮겨 두고 실행하면 역시나 한번에 안된다.

오류메세지 찾아 삼만리 끝에 아래 처리 방안을 보고 여기저기 참고했다.

https://idox.tistory.com/84

 

[E] Tibero 기동 오류 : semget failed.: No space left on device / A shared memory segment with the same key already exists.

서버에 Tibero를 설치한 뒤 데이터베이스를 생성하고 재기동하니 다음과 같은 에러가 발생하였다. $ tbboot semget failed.: No space left on device *************************************************************************** *

idox.tistory.com

 

컨테이너가 올라오는 시점 때 start-tibero.sh

테이블 스페이스도 만들고 데이터베이스도 만들어야 하는데 저 no space때문에 안된다.

 

그래서 컨테이너 실행 직후 올라간 컨테이너로 접속해서 아래 명력어를 실행하면

root@localhost:/tibero7/bin# sysctl -p

root@localhost:/tibero7/bin#  tbboot

(다음에 컨테이너를 내리고 다시올리면 윗 부분 두개를 또 해서 실행 한다.)

 

nomount 상태로 티베로가 실행되면서 인스턴스에 접근할 수 있다.

접근 성공 하면 아래명령어를 실행해서 기동시 실패 했던 준비를 다시한다.

tbsql sys/tibero @'/usr/local/initial.sql'

 

quit 로 콘솔에서 나온뒤

 

다시 tboot를 실행하면 마운트 된 상태(normal mode)로 디비를 서비스 할 수 있다.

 

그 뒤 권한이랑 기본 테이블들을 생성해준다.

root@localhost:/tibero7/scripts# ./system.sh -p1 tibero -p2 syscat -a1 y -a2 y -a3 y -a4 y

 

 

티베로 셋팅 참고

https://gomu92.tistory.com/60

 

[tibero] tibero6 설치 & 실행 가이드.

필자의 리눅스 서버 정보. $ hostnamectl ... Operating System: CentOS Linux 8 Kernel: Linux 4.18.0-348.7.1.el8_5.x86_64 Architecture: x86-64 ... 티베로6 설치 바이너리 다운로드 후 리눅스 서버로 이관. 1.테크넷 접속.(https:/

gomu92.tistory.com

 

여기까지 이미지로 구워서 올려놨다.

docker commit -m "dev tibero7 init" tibero pm2makeq/dev-tibero7:v1

docker push pm2makeq/dev-tibero7:v1

 

sys로 디비가 접속 됨을 확인하고 테이블 스페이스와 유저를 생성한다.

 

1.테이블 스페이스 생성 -> " " 안은 알맞게 입력한다.

CREATE TABLESPACE "테이블스페이스명" DATAFILE
'/tibero/database/"구분자"/"구분자"01.dtf'  SIZE "6G" AUTOEXTEND ON NEXT "5M";

 

2. 해당 테이블 스페이스를 사용자와 매핑
CREATE USER "아이디" IDENTIFIED BY "패스워드" DEFAULT TABLESPACE "테이블스페이스명";

 

 

셋팅하면서 사용했던 파일들이다.

docker-compose.yml
0.00MB
Dockerfile
0.00MB
initial.sql
0.00MB
start-tibero.sh
0.00MB

'인프라' 카테고리의 다른 글

Dell Poweredge R410 초기 설치 및 셋팅  (1) 2025.01.07
깡통 서버 도커 설치  (0) 2023.11.15
레드마인 적응기-2  (2) 2022.09.19
레드 마인 - 도커 컴포즈 셋팅  (0) 2022.08.26
도커 삽질기 - 4 feat. gitlab & docker registry  (0) 2022.02.27
도커 삽질기 - 3 feat. gitlab  (0) 2022.01.17
도커 삽질기-2  (0) 2022.01.09
도커 삽질기-1  (0) 2022.01.04

일기장에 쓸 내용을 적는다.

 

사내에 2010년대 노인네 서버가 한 대 있다.

장난감 같이 쓰고 회사 데모도 올리고 개발시 필요하면 테스트도 하고 도커 연습도 해보고

그러는 용도로 사용하는데 어느덧 하나 하나씩 역할이 생겼다.

 

아래 어플리 케이션으로 돌리고 있었다.

1. 어플리케이션 데모 App(포워딩, wms, framework등등)

2. Reverse Proxy App

3. 사내 메세지 봇 App

4. Redmine App

 

어느날 임원진에서 우리 데모 어플리케이션이 더 필요하니 셋팅을 해라 라는 오더가 내려왔다.

한 친구는 티베로 + 넥사

다른 한 친구는 postgreql + react, 넥사

 

디비도 설치해야하고 어플리케이션도 설치하고 작업을하다 보니 어느덧 / root 용량이 부족한걸 알았다..

몇년 전에 장난감 용도로 서버셋팅할때 파티션을 있는 그대로 무지성으로 눌러 버려 /root이 50G로 셋팅되어 있었다.

/home 은 400G 뭐 파티션 재조정을 하면 된는거 아닌가 해서 찾아보니 unmount를 해야 하고 다시 만들면 된다

라고 써있어 해보니.

1. 마운트가 target is busy라 unmount를 할 수 없음.

2. root로 접속해야 하는데 ssh로 접속하려니 못 함(설정도 확인 해봤는데 무슨 연유인지 접속 불가)

 

몇시간 트라이를 하다 그래 다 밀었다가 다시 설치하자. 어차피 unmount하기 위해 home의 대상들도 다 받아놨고

이러기 위해 도커를 쓰는거 아니겠는가?!?!?!?!?!? 하는 생각으로 회사에 굴러다니는 하드도 추가하고 새로 셋팅할 생각이였다.

 

그리고 EOS된 centOS도 이번 기회에 변경해야지 하면서... 비극이 시작되었다.

우선 받은건 Rocky, 네이버 리눅스가 있었다. USB로 구어서 넣어보니.

아니 왜 하드가 인식을 못 할까?!?!?!?!?!?

하드가 문제인가? 정상 작동하는 하드인데.. 여기서 부터 점검이 시작되었다. 

 

첫번째 하드는 서버 바이오스에서 부터 인식을 못 해서 개인 PC에서도 확인해 보았는데 분명 되어서 서버 슬롯에도 여기저기 바꿔 꽂아봐도 bios에서 인식이 안되어... 포기

 

두번째 하드는 바이오스에서 인식이 되었지만 막상 설치하려니 리눅스에서 파티션을 인식을 못했다.

여기서 부터 고통의 시작.

bios의 문제인가 싶어 이것저것 건들려보고 무슨 짓을 해도 안 됨.

분명 예전에 이런 문제 없이 바로 인식했는데 다른 미지의 문제가 있나 보다 생각해서 다른 가능성을 열어두고 확인.

 

RAID 컨트롤러 드라이버의 누락의 문제가 있을 것이라고 확인하고 드라이버를 설치파일에 넣어서 억지로 적용하는 방법도 있더라. (서버가 엄청 구식이라 Raid 1,2  이런 용어가 있는데 더 이상 알고 싶지 않아 확인은 멈췄다.)

 centOS7은 옛날 드라이버를 기본으로 많이 포함했는데 centOS8버전 부터 구식 드라이버는 대거 삭제했다고 했다.

 

그래서 서버실에 굴러다니는 옛날에 구워놓은 650mb CD(network버전)를 가지고 다시 설치를 진행했는데 하드문제는 없어졌지만 다음에는 centOS7이 EOS되어서 기본 패키지 저장소가 없어져서 DVD 버전으로 다시 USB로 만들어서 파티션도 /,와 home을 다시 재설정하여 설치했다.

 

root로 접속하서 처음 셋팅은

1. sshd 설정 (로컬 환경에서 셋팅)

   기본 포트 변경하고 

   재시작시 다시 시작해야하고 권한 문제로 sshd가 실행이 안되어 setenforce 0으로 하고 시작하니 실행 가능

2. 방화벽 열어줌 firewall-cmd

3. ssh 환경으로 넘어와서 날라간 yum 저장소를 대체하기 위한 저장소로 셋팅

https://developer-woong.tistory.com/112

 

Linux) CentOS 7 EOS에 따른 yum repo 변경

centos7 기준입니다. 갑작스레 yum 명령이 아래와 같은 에러를 뿜으며 동작하지 않았습니다.Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Co

developer-woong.tistory.com

여기에서 libtool 이 glibc 에러가나면서 문제가 되는데 아래와 같이 설치

CentOS7 - Error: Package: glibc-2.17-260.el7.i686 (base)

 

https://gonmossi.tistory.com/126

 

CentOS7 - Error: Package: glibc-2.17-260.el7.i686 (base)

[root@localhost ~]# yum -y install gccError: Package: glibc-2.17-260.el7.i686 (base) Requires: glibc-common = 2.17-260.el7 Installed: glibc-common-2.17-317.el7.x86_64 (@CentOS) glibc-common = 2.17-317.el7 Available: glibc-common-2.17-260.el7.x86_64 (base)

gonmossi.tistory.com

4. 이후 레포 추가후 도커 설치 

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

5. 도커로 실행하니 삽질을 더 안 해도 쉽게 어플리케이션을 실행 가능하더라.

6. github action으로 작동 시켜보니 잘 되는데 CI/CD user가 sudo 실행시 패스워드 입력이 없이 설정해야 한다.

    -> "존재하는 tty가 없으며 askpass 프로그램을 지정하지 않았습니다 "

 

/etc/sudoers 파일에 아래와 같이 추가로 넣어주면 되는데

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
jenkins ALL=(ALL) NOPASSWD: ALL

 

sudo 사용자 추가 하면 되는데 잘못 건들여서 sudo가 실행이 안되더라...

https://p00hp00h.tistory.com/15

 

sudo가 되지 않는 에러 (/etc/sudoers: syntax error near line)

보통 사용자 계정에 권한을 부여하기 위해 visudo로 /etc/sudoers 파일을 열어서 수정하거나 root계정에서 vi(m)로 수정한다. 하지만 이 때 잘못 추가 또는 잘못 수정 시 sudo 명령어가 먹히지 않는다. 위

p00hp00h.tistory.com

 

이렇게 배포까지 확인하였다.

이제 티베로하고 postgresql을 설치를 해야 한다.

 

그동안 셋팅 작업한건 많은데 글로 남겨놓지 않아서 다시 정리해서 쓸 수 있을까 모르겠다.

'인프라' 카테고리의 다른 글

티베로7 설치 feat. 도커  (0) 2025.01.07
깡통 서버 도커 설치  (0) 2023.11.15
레드마인 적응기-2  (2) 2022.09.19
레드 마인 - 도커 컴포즈 셋팅  (0) 2022.08.26
도커 삽질기 - 4 feat. gitlab & docker registry  (0) 2022.02.27
도커 삽질기 - 3 feat. gitlab  (0) 2022.01.17
도커 삽질기-2  (0) 2022.01.09
도커 삽질기-1  (0) 2022.01.04

어플리케이션 퍼포먼스 모니터링 - 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