[초기 설계 가이드] 팀 프로젝트에서 반드시 정해야 할 개발 규칙 정리 Part2
·
실무 | 성장/트러블슈팅 | 개발팁
1. 환경변수 관리 (.env).env 파일은 절대 Git에 올리지 않음.env.example 샘플 제공 (기본값 포함)운영/로컬 환경 구분을 위한 환경 변수 설정APP_ENV=local APP_DEBUG=true DB_HOST=localhost DB_NAME=project_db DB_USER=root DB_PASSWORD=secret환경별 조건 분기if (getenv('APP_ENV') === 'production') { error_reporting(0); }2. 유틸리티 함수/공통 헬퍼/helpers/ 또는 /lib/ 디렉터리에 공통 로직 모듈화예: array_flatten, str_slug, response_json()function response_json($success, $message, $d..
[초기 설계 가이드] 팀 프로젝트에서 반드시 정해야 할 개발 규칙 정리 Part1
·
실무 | 성장/트러블슈팅 | 개발팁
1. 테이블 명명 규칙소문자 + 복수형 사용 (users, posts, campaign_logs)언더스코어(_)로 도메인 구분 (campaign_logs, user_profiles)연관 테이블은 조합 형태로 (user_roles, influencer_campaigns)2. 컬럼 명명 규칙항목규칙 예시기본키id (단일 명칭 사용)외래키user_id, role_id상태값status, type논리 삭제deleted_at (nullable timestamp)생성/수정 시각created_at, updated_at금액/카운트 등price, count, score, rate 등 직관적 단어 사용Booleanis_active, has_agreed (접두어 필수)3. 외래키(Foreign Key) 명명 규칙포맷: fk_..
[트러블슈팅] Apache 전환 후 Node.js·cURL·스냅샷 권한 오류: www-data와 사용자 계정 권한 분리 이슈 분석
·
실무 | 성장/트러블슈팅 | 개발팁
1. 개요Laravel 내장 서버(php artisan serve) 기반 개발 환경에서 Apache로 전환하면서, 웹서버 실행 사용자(www-data)와 로그인 사용자(A사 사내 계정) 간의 권한 차이로 인해 여러 실행 오류가 발생했습니다. 특히 Node.js 기반 스냅샷(Puppeteer), PHP cURL, cron 스케줄러 등 외부 프로세스나 파일 접근을 수반하는 작업에서 “Permission denied”가 반복되었습니다. 본 문서에서는 해당 현상의 원인과 해결책을 기록합니다.2. 전환 배경 및 시스템 환경기존: Laravel 내장 서버 (php artisan serve --port=8000) / A사 사내 사용자 계정으로 실행변경: Apache VirtualHost 기반 서비스 (www-data..
[트러블슈팅] Ubuntu 서버에서 Laravel 내장 서버→Apache 전환 후 권한·포트 이슈 해결기
·
실무 | 성장/트러블슈팅 | 개발팁
1. 개요Ubuntu 서버에 Laravel 내장 서버(artisan serve)를 서비스로 등록하여 포트 8000으로 운영하다가, 사내 방화벽 정책으로 IP 직접 접근이 차단되어 Apache로 이전하였습니다. 이 과정에서 소유자·그룹 설정이 달라지며 특정 디렉토리 쓰기, 로그 기록, 스케줄러(cron), PHP cURL, Node.js 기반 스냅샷 생성에서 모두 권한 오류가 발생했고, 포트 8000→80 포워딩 설정도 추가로 필요했습니다. 본 문서에서는 각 이슈별 원인 분석과 해결 방안을 순차적으로 정리합니다.2. 환경 및 배경기존: systemd 서비스로 php artisan serve --host=0.0.0.0 --port=8000 구동(포트 8000)전환: Apache (www-data 사용자) 기..
[BitLocker] 무한 로딩 이슈 해결기: Dell PC에서 Ubuntu 활용 복구 및 포맷까지
·
실무 | 성장/트러블슈팅 | 개발팁
1. 문제 상황 및 초기 대응회사에서 사용하는 Dell PC에서 BitLocker 업데이트 진행 중 충돌이 발생하면서, 무한로딩과 블루스크린(BSOD) 문제가 발생했습니다.초기 시도:블루스크린 이후 안전모드로 부팅Microsoft에서 제공한 복호화 키를 입력하여 드라이브 복호화를 시도했으나 문제는 해결되지 않았습니다.우분투 OS 활용:우분투 OS로 부팅해 드라이브에 접근복호화 후 데이터를 SSH를 통해 임시 서버에 백업하여 데이터 유실을 방지했습니다.포맷 시 문제:백업 후 드라이브 포맷 시, 암호화 설정이 남아 있어 정상적인 포맷이 진행되지 않았습니다.2. 안전모드에서 CMD 명령어를 이용한 BitLocker 암호화 해제포맷 문제 해결을 위해, 안전모드에서 CMD(명령 프롬프트)를 실행하여 BitLock..
[최적화] 버블 스타일의 문제점 심화 분석과 게이트웨이 스타일 고도화 기법
·
실무 | 성장/트러블슈팅 | 개발팁
1. 개요현대 소프트웨어 개발 현장에서 버블 스타일(중첩 조건문 방식)은 코드 가독성과 유지보수성 저하, 디버깅의 어려움 등 여러 실무 리스크를 내포하고 있습니다. 본 포스팅에서는 버블 스타일의 심화된 문제점과, 이를 개선하기 위한 게이트웨이 패턴을 비롯한 고도화 기법, 그리고 언어별 최적화 전략과 성능 비교 데이터를 상세하게 분석합니다. 나아가 실제 적용 사례와 조건문 디버깅 프로토콜을 통해 실무에서의 효과적 개선 방안을 제시합니다.2. 버블 스타일 주요 문제점과 실무 리스크버블 스타일은 중첩 조건문을 통해 핵심 로직에 도달하기 전에 수차례 중첩된 if 문을 거치는 방식입니다. 이러한 구조는 다음과 같은 주요 리스크를 내포합니다.1-1. 실무에서 발생하는 3대 리스크Null 참조 오류:발생 확률: 62..
[협업 기본] 네이밍 컨벤션(Naming Convention)이란?
·
실무 | 성장/트러블슈팅 | 개발팁
네이밍 컨벤션은 코드의 가독성과 유지보수성을 높이기 위해 변수, 함수, 클래스 등의 이름을 일관된 규칙에 따라 작성하는 방법입니다. 다양한 프로그래밍 언어와 개발 환경에서 권장하는 컨벤션이 다르며, 주요 유형과 특징을 살펴보겠습니다.주요 네이밍 컨벤션 종류1. camelCase (카멜 케이스)표기법: 첫 단어는 소문자, 이후 단어의 첫 글자는 대문자로 표기예) userName, calculateTotalPrice사용처: JavaScript, Java, Swift 등에서 변수명, 함수명에 주로 사용2. PascalCase (파스칼 케이스)표기법: 모든 단어의 첫 글자를 대문자로 표기예) UserModel, DatabaseConnection사용처: 클래스, 인터페이스, 생성자 함수 정의 시 활용3. snak..