배포를 하거나 데이터베이스를 손보는 동안, 사용자가 들어오면 곤란한 시간이 있다. 마이그레이션이 절반쯤 돌아간 상태에서 누가 글을 저장하면 어떻게 되는지는 아무도 알고 싶지 않다. 그래서 점검 페이지를 띄운다. 간단해 보이는 기능이다. 그런데 정작 필요한 순간에 점검 페이지 자체가 안 뜨는 일이 있다. 아래는 그 문제를 피하려고 만들어본 한 가지 방법이다. 정답이 하나인 영역은 아니어서, 갈림길마다 왜 그쪽을 골...
Read More사내 그룹웨어를 모바일 대응하고 나면 마지막 한 걸음이 남는다. 폰 홈 화면에 아이콘으로 올려서 앱처럼 쓰게 하는 것이다. 앱스토어에 올릴 것도 아니고, 네이티브 앱을 만들 것도 아니다. 사파리에서 공유 → 홈 화면에 추가만 하면 끝난다. 아이콘이 생기고, 탭하면 주소창 없이 전체화면으로 뜬다. 여기까지는 아무것도 안 해도 된다. 문제는 그다음이다. 링크를 한 번 눌렀더니 브라우저가 됐다 첫 화면은 분명 앱처럼 떴다....
Read More관리자 화면의 목록 표는 열이 많다. 프로젝트 목록 하나에도 구분·이름·업체·기간·진행률·담당·코드·등록일이 붙는다. 데스크톱에서는 아무 문제가 없다. 표는 원래 여러 값을 한눈에 늘어놓으라고 있는 물건이니까. 그런데 폰에서 열어보면 무너진다. 폭 393pt 안에 열 여덟 개를 넣을 방법은 없다. 가로 스크롤은 표를 포기하는 것이다 가장 손쉬운 답은 표를 그대로 두고 overflow-x:auto로 감싸는 것이다. 구현에 1분이 걸린...
Read More개인정보 관련 평가·점검 시즌이 되면 늘 같은 질문을 받는다. "개인정보를 다운로드한 기록이 있습니까?" 그런데 실무에서 진짜 봐야 하는 건 그다음 질문이다. "짧은 시간에 반복해서 내려받은 사람이 있습니까?" 한 달에 한 번, 업무상 필요해서 엑셀을 한 번 내려받는 건 정상이다. 하지만 10분 사이에 같은 목록을 세 번 내려받았다면 그건 설명이 필요한 행동이다. 조건을 바꿔가며 전체 데이터를 긁어모으는 중일 수도 있고...
Read More모바일에서 화면을 확인하다 보면 손가락이 살짝 옆으로 미끄러졌을 뿐인데 페이지 전체가 좌우로 흔들리는 경우가 있다. 분명 레이아웃은 전부 화면 안에 들어와 있는 것처럼 보이는데 가로 스크롤이 생긴다. 스크롤이 생기니 세로로 넘겨야 할 상황에서 화면이 옆으로 밀리고, 고정해둔 헤더는 왼쪽으로 잘려 나간다. 이럴 때 가장 먼저 떠오르는 처방은 하나다. body { overflow-x: hidden; } 그런데 이건 해결이 아니라 은폐다...
Read More오늘 업체에 방문해서 CentOS를 사용하던 레거시 서버를 정리했다. CentOS는 이미 지원이 끝난 지 오래라 더 끌고 갈 이유가 없었고, 포맷 후 록키 리눅스를 새로 설치했다. 서버 용도라 GUI는 필요 없어서 최소 설치(minimal) 버전으로 진행했다. 설치 자체는 금방 끝났다. 문제는 부팅하고 나서였다. 네트워크가 안 된다. ping이 나가질 않는다. IP는 잡혀 있었다. 엉뚱한 곳에. 처음엔 IP 자체가 안 잡힌 줄 알았다. 그런데 확...
Read More본 문서는 SSH 키 생성 및 공개키 인증 설정 방법을 정리한 실무형 매뉴얼입니다. 서버를 운영하거나 GitHub, GitLab, 배포 서버, 백업 서버 등에 접속할 때 매번 비밀번호를 입력하는 방식 대신 SSH 키 기반 인증을 사용하면 보안성과 편의성을 함께 높일 수 있습니다.SSH 키 인증은 로컬 서버 또는 개인 PC에 개인키(private key)를 보관하고, 접속 대상 서버에는 공개키(public key)를 등록하는 방식입니다. 서버는 공개키를 통...
Read More본 문서는 RockyLinux 10 + PHP 8.5 + Nginx + MariaDB 11.8 기반의 운영 웹서버 구축 과정을 정리하는 최종편입니다. 앞선 글에서 각각 다루었던 초기 서버 설정, PHP-FPM, Valkey 세션 서버, Nginx 모듈 컴파일, MariaDB, Oracle Client 연동 내용을 하나의 흐름으로 묶어 실제 서버 구축 순서와 운영 점검 항목을 정리합니다.이 글은 단순히 명령어를 나열하는 글이 아니라, 웹서버를 구성할 때 어떤 순서로 작업해야 하는지, ...
Read More본 문서는 RockyLinux 10 환경에서 Oracle Instant Client를 설치하고 PHP OCI8 확장을 연동하는 방법을 정리한 서버 구축 매뉴얼입니다. 이전 글에서 PHP 8.5와 PHP-FPM까지 구성했다면, 이번 글에서는 PHP 애플리케이션에서 Oracle Database에 접속할 수 있도록 Oracle Client와 OCI8 확장을 설치합니다.Oracle 연동은 일반적인 MySQL, MariaDB 연동보다 신경 써야 할 부분이 많습니다. 단순히 PHP 확장만 설치한다고 끝나는 것...
Read More본 문서는 RockyLinux 10 환경에서 MariaDB 11.8을 설치하고 기본 운영 환경을 구성하는 방법을 정리한 매뉴얼입니다. 앞선 글에서 RockyLinux 기본 설정, PHP 8.5, PHP-FPM, Valkey, Nginx 구성을 진행했다면, 이번 글에서는 웹 애플리케이션의 핵심 데이터 저장소가 되는 MariaDB를 설치합니다.MariaDB는 MySQL과 호환되는 오픈소스 RDBMS이며, PHP 기반 CMS, 게시판, 업무 시스템, 대관 시스템, 관리자 페이지 등에서 가장 많이...
Read More