- Today
- Total
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- TIL
- iframe
- 환경세팅
- Oracle
- PLSQL
- 프로시저
- MariaDB
- 오류해결
- dbeaver
- mysqli
- 비주얼코드
- 워드프레스
- url파라미터
- 오라클
- 트러블슈팅
- 클론코딩
- 백엔드
- PROCEDURE
- spring boot
- php
- 의존성주입
- PDO
- sql
- 엘리멘터
- 이클립스
- 코덱스
- javascript
- 쿼리개선
- Hostinger
- 문제해결
목록전체 글 (118)
개발 공부중
안티그래비티로 작업하면서, 다른 PC에서도 이어서 작업할 수 있는 방법이 궁금해졌다.프로젝트 코드를 옮기는 것은 어렵지 않지만, Python과 라이브러리까지 다시 설치하고 실행 환경을 맞추는 과정이 번거로울 것 같았다. 그때 알게 된 도구가 Docker였다. 1. Docker를 쓰면 무엇이 달라질까?Docker는 프로그램과 실행에 필요한 환경을 이미지로 구성하고, 이를 컨테이너라는 독립된 공간에서 실행하는 도구다.FastAPI 프로젝트라면 Python, 필요한 라이브러리, 소스코드 등을 이미지에 담을 수 있다.처음 접할 때는 아래 세 가지를 구분하면 이해하기 쉽다.Dockerfile실행 환경을 만드는 설정 파일조리법이미지프로그램 실행에 필요한 파일과 환경을 담은 패키지준비된 밀키트컨테이너이미지를 바탕으..
VS Code에서 Codex를 사용하다 보면 채팅 목록에서 보관(Archive) 버튼을 누를 때가 있다.문제는 보관 버튼을 누르는 순간 해당 대화가 일반 채팅 목록에서 사라지는데,VS Code Codex에서는 보관된 채팅 목록을 화면에서 바로 확인하거나 복원하는 메뉴를 찾기 어려웠다. 처음에는 대화가 삭제된 줄 알았지만 확인해보니 실제 채팅 데이터는 그대로 남아 있었다.이번 글에서는 직접 해본 Codex 보관 채팅 복원 방법을 정리했다.1. Codex 채팅은 어디에 저장될까?Windows 환경에서 Codex 관련 데이터는 사용자 폴더 아래의 .codex 폴더에 저장된다.C:\Users\사용자명\.codex 내 환경에서는 다음과 같은 구조였다.C:\Users\user\.codex├─ sessions├─ a..
증상매시간 정상적으로 돌던 크론탭이 어떤 시점을 이후로 실행되지 않았던 걸 발견했다.스크립트는 수정한 적이 없고 크론탭으로 설정해둔 로그에는 오류도 없었다. 로그 확인/usr/sbin/crond -n 로그를 확인해보니 다음과 같은 메시지가 나왔다.pam_unix(crond:account): expired password for user tomcat (password aged)(tomcat) PAM ERROR (Authentication token is no longer valid; new one required)(tomcat) FAILED to authorize user with PAM (Authentication token is no longer valid; new one required) 첫 줄에 ..
4편까지 닷홈빌더에서 PHP로 넘어온 이유부터, FCM 웹 푸시를 붙이고 버그를 잡고 구독 기능의 DB 구조를 설계한 과정까지 정리했다. 이번 글은 이 시리즈를 마무리하는 글로, 만들고 나서 든 생각들을 정리했다.관리자 페이지 제작빌더로 사이트를 운영할 때 관리자 페이지가 있었다. 근데 기능이 제한적이라 회원이 몇 명인지, 어떤 글이 올라오는지, 문의가 들어왔는지 같은 것들을 빌더가 제공하는 화면 안에서만 제한적으로 볼 수 있었다. 그래서 내가 원하는 방식으로 데이터를 들여다보거나 조작할 방법이 없었다.PHP로 새로 만들면서는 이 부분을 직접 설계할 수 있었다. 그래서 운영에 필요한 관리자 페이지를 따로 만들었다.대시보드 — 사이트 전반의 현황을 한눈에 보는 첫 화면회원관리 — 가입한 회원 목록과 상태를..
3편에서 알림이 두 번 오던 문제의 원인이 정리되지 않은 fcm_tokens였다는 걸 찾아냈다.이번 글은 그 과정에서 다시 들여다보게 된 구독 관련 DB 구조 이야기다."구독"이 하나가 아니었다처음엔 "구독"이라는 개념을 단순하게 생각했다. 게시판 하나를 구독하면, 그 게시판에 올라오는 모든 글에 대한 알림을 받는 것.그런데 막상 알림 종류를 하나씩 나열해보니, 실제로 필요한 구독은 두 가지 결이 달랐다.게시판 구독 — "이 게시판에 새 글이 올라오면 알려줘" (게시판 단위)글 구독 — "내가 댓글 단 이 글에 다른 댓글이 더 달리면 알려줘" (개별 게시글 단위)처음에는 이 둘을 하나의 테이블로 운영할까 고민했다. 하나의 테이블에서 target_type('board' 또는 'post') 컬럼으로 분류하여..
2편에서 FCM 웹 푸시를 어떻게 구성했는지 정리했다. 그런데 그 글 마지막에 살짝 흘렸던 문제가 하나 있었다 — 개발 중에 PC 토큰이 정리되지 않은 채 fcm_tokens 테이블에 그대로 남아 있었던 것. 이번 글은 그 잔여 토큰이 실제로 어떤 문제를 일으켰고, 어떻게 찾아서 고쳤는지에 대한 이야기다.증상 — 글 하나 등록했는데 알림이 두 번새 글 알림 기능을 테스트하던 중이었다.글을 하나 올렸는데, 폰에 알림이 두 개씩 뜨는 거다. 당연히 코드에 버그가 있다고 생각했다.첫 번째 의심 — 서비스워커가장 먼저 의심한 건 서비스워커였다. 포그라운드/백그라운드에서 알림을 각각 처리하는 로직이 겹쳐서 중복으로 뜨는 게 아닐까 싶어서, 이것저것 손을 댔다.showNotification 호출 제거onBackgr..
1편에서 닷홈빌더의 한계 때문에 PHP로 새로 사이트를 만들기로 했다. 사이트를 다 완성하고 알림 기능을 추가하기 전에 그다음 고민으로 "이걸 어떤 방식으로 구현할까" 생각해봤다.알림이 필요하면, 앱을 만들어야 하는 거 아닌가?새 글 알림, 댓글 알림 기능이 필요하다는 결론을 내리고 나서, 가장 먼저 떠오른 방법은 사실 "앱으로 만들기"였다. 푸시 알림이라는 게 원래 앱에서 흔히 쓰는 기능이라, "그냥 앱 하나 만들면 되지 않을까"라는 생각이 자연스럽게 들었다.근데 생각해볼수록 앱으로 가는 건 이 프로젝트의 규모와 전혀 맞지 않았다.안드로이드/iOS 각각 개발해야 하거나, 최소한 크로스플랫폼 프레임워크를 새로 익혀야 한다앱스토어/플레이스토어 등록 절차와 심사를 거쳐야 한다이미 PHP로 만든 웹사이트가 있..
이 글은 익명 글쓰기 사이트를 차음에는 닷홈빌더로 제작했다가 PHP로 새로 만들면서 겪은 과정을 정리한 글이다. 원래는 빌더로 만든 사이트가 있었다최근 친구들과 사용하려고 만든 사이트가 있었다. 익명으로 매달 주제에 맞춰서 글을 올리는 사이트였다. 우리끼리만 편하게 쓸 수 있는 공간을 만들고 싶어서, 간편하고 빠르게 사이트를 띄울 수 있는 닷홈빌더로 먼저 시작했다.워드프레스를 사용해본 나에게는 닷홈빌더가 익숙했다. 디자인 템플릿 고르고, 어느정도 사이트 구색을 맞춰서 친구들에게 공개하기까지 하루 밖에 안 걸렸다. "일단 사람들이 쓸 수 있는 형태로 빨리 내놓자"는 목표에는 정확히 맞는 선택이었다. 그런데 운영을 해보니 보이는 게 있었다문제는 사이트를 열어두고 나서부터였다. 가끔 올라오는 글들을 바로 못보..
