| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
| 29 | 30 |
- amqplib
- PostgreSQL
- webview
- 트러블슈팅
- gradle
- react-native-ble-plx
- React
- Android
- RabbitMQ
- python
- 동시성
- 설계
- 권한처리
- Node.js
- GraphQL
- SQL
- OpenCV.js
- sql-formatter
- react-native-dotenv
- React Native
- 프로토콜분석
- java
- 16KB페이지
- edge-to-edge
- Metro
- 상태동기화
- mqtt
- 공부기록
- ReactNative
- TypeScript
- Today
- Total
목록전체 글 (8)
돌핀코딩
관제 화면에서 화재나 연기가 감지되면 상단에 경고 알림이 뜬다. 관리자는 알림을 눌러 판정 팝업을 열고, 실제 상황이면 [상황 발생], 아니면 [오탐]을 누른다. 문제는 이 화면을 여러 사람이 동시에 보고 있다는 거였다. A가 먼저 오탐 처리를 해도 B 화면에는 판정 팝업이 그대로 떠 있다. B가 그걸 모르고 버튼을 누르면 에러가 돌아온다. 그때 받은 응답은 이랬다.{ "data": { "confirmSmokeFireEmergency": { "message": "데이터가 존재하지 않습니다.", "extensions": { "code": "30000001" } } }} 원래는 "이미 판정되었다"는 응답이 와야 하는데 이 코드가 온 건 서버 구성 쪽 문제였고, 그건 백엔드에서..
아침에 API를 호출하는데 502가 났다. 개발 서버에 들어가 보니 Node.js로 만든 API 서버와 워커가 PM2 목록에서 stopped로 떠 있었고, PM2 데몬은 1분 전에 새로 뜬 상태였다. 처음엔 당연히 코드 어딘가에서 죽는 줄 알고 에러 로그부터 뒤졌다. 결론부터 말하면 코드 문제가 아니었다. systemd가 PM2를 90초마다 통째로 죽이고 있었고, 그 뒤에는 SELinux가 있었다.앱이 스스로 죽은 적이 없었다PM2 로그에서 그날 API 서버와 워커가 종료된 기록을 모아 보니 109건이었는데, 전부 시그널에 의한 종료였다. 종료 코드는 0, 130(SIGINT), 143(SIGTERM) 셋뿐이었고 uncaughtException이나 process.exit, 메모리 부족 같은 앱 쪽 에러는..
팀 프로젝트 배포를 GitHub Actions로 자동화했다. develop이나 main 브랜치에 푸시하면 서버에 바로 배포되고, 성공했는지 실패했는지는 슬랙 채널로 알림이 온다. 설정한 순서대로 적어 둔다.Slack Webhook URL 발급GitHub Actions가 Slack으로 메시지를 보내려면, Slack Webhook URL을 먼저 발급받아야 한다.1. Slack에 Webhook 앱 설치슬랙 웹에서 Incoming Webhooks 앱 열기[앱 추가] 또는 Add to Slack 클릭알림을 받을 채널 선택 → Allow 클릭 2. Webhook URL 발급앱을 설치하면 Webhook URL이 바로 만들어진다. 이런 모양이다.https://hooks.slack.com/services/T0000000..
다른 사람이 만든 React 프로젝트를 넘겨받아 유지보수하다가, 개발자 도구 Sources 탭에서 소스가 거의 원본 그대로 보인다는 걸 알게 됐다. 그래서 빌드에 난독화를 넣었다.문제 인식기능은 문제없이 돌아가고 있었다. 그런데 Sources 탭에서 번들 파일을 열어 보니 함수 이름, 변수 이름, GraphQL 쿼리가 그대로 읽혔다. 로그인이나 인증 흐름도 코드만 따라가면 알 수 있는 수준이었다.난독화 전략 수립CRA 프로젝트라 webpack 설정을 직접 고칠 수 없어서 react-app-rewired로 덮어쓰기로 했다. dev, qa, op 어느 환경으로 빌드하든 난독화가 들어가야 했다.개발 환경 구성1. react-app-rewired 설치 및 적용npm install --save react-app-..
