쪽지발송 성공
Click here
재능넷 이용방법
재능넷 이용방법 동영상편
가입인사 이벤트
판매 수수료 안내
안전거래 TIP
재능인 인증서 발급안내

🌲 지식인의 숲 🌲

🌳 디자인
🌳 음악/영상
🌳 문서작성
🌳 번역/외국어
🌳 프로그램개발
🌳 마케팅/비즈니스
🌳 생활서비스
🌳 철학
🌳 과학
🌳 수학
🌳 역사
해당 지식과 관련있는 인기재능

10년차 php 프로그래머 입니다. 그누보드, 영카트 외 php로 된 솔루션들 커스터마이징이나 오류수정 등 유지보수 작업이나신규개발도 가능합...

 안녕하세요. 개발자 GP 입니다. 모든 사이트 개발은 웹사이트 제작시 웹표준을 준수하여 진행합니다.웹표준이란 국제표준화 단체...

워드프레스를 설치는 했지만, 그다음 어떻게 해야할지 모르시나요? 혹은 설치가 어렵나요?무료 워드프레스부터 프리미엄 테마까지 설치하여 드립니...

PHP 코드 스타일 가이드: PSR 표준 소개

2024-12-10 09:18:51

재능넷
조회수 608 댓글수 0

PHP 코드 스타일 가이드: PSR 표준 소개 🚀

 

 

안녕하세요, PHP 개발자 여러분! 오늘은 정말 흥미진진한 주제로 여러분과 함께 이야기를 나눠볼까 해요. 바로 'PHP 코드 스타일 가이드'와 'PSR 표준'에 대해서예요. 어머, 벌써부터 지루하다고요? ㅋㅋㅋ 걱정 마세요! 우리 함께 이 주제를 재미있게 파헤쳐 볼 거예요. 마치 카톡으로 친구와 수다 떠는 것처럼 편하게 읽어주세요! 😉

아! 그리고 이 글은 재능넷(https://www.jaenung.net)의 '지식인의 숲' 메뉴에 등록될 예정이에요. 재능넷은 다양한 재능을 거래하는 플랫폼인데, 여러분의 PHP 실력도 충분히 재능이 될 수 있답니다! 자, 이제 본격적으로 시작해볼까요?

🎯 오늘의 목표: PHP 코드 스타일 가이드와 PSR 표준에 대해 알아보고, 왜 이게 중요한지, 그리고 어떻게 우리의 코딩 생활을 더 즐겁고 효율적으로 만들어주는지 함께 탐구해볼 거예요!

1. PHP 코드 스타일 가이드란 뭐야? 🤔

자, 여러분! PHP 코드 스타일 가이드라고 하면 뭐가 떠오르시나요? 뭔가 엄청 딱딱하고 지루한 규칙 같은 거? ㅋㅋㅋ 맞아요, 처음엔 저도 그렇게 생각했어요. 하지만 알고 보면 이게 정말 재미있고 유용한 친구랍니다!

PHP 코드 스타일 가이드는 말 그대로 PHP 코드를 어떻게 작성할지에 대한 가이드라인이에요. 마치 우리가 글을 쓸 때 맞춤법과 문법을 지키는 것처럼, 코드를 작성할 때도 일정한 규칙이 필요하답니다.

💡 알쏭달쏭 팁: 코드 스타일 가이드는 마치 요리 레시피 같아요. 재료(코드)는 같아도, 어떻게 조리(작성)하느냐에 따라 맛(가독성과 유지보수성)이 달라지죠!

근데 왜 이런 가이드가 필요할까요? 여러분, 상상해보세요. 여러분이 팀 프로젝트를 하고 있다고 가정해볼게요. A는 들여쓰기를 스페이스 2칸으로 하고, B는 탭으로 하고, C는 아예 들여쓰기를 안 한다면? 😱 아, 생각만 해도 머리가 아프죠?

코드 스타일 가이드는 이런 혼란을 방지하고, 모든 개발자가 일관된 스타일로 코드를 작성할 수 있게 도와줘요. 이렇게 하면 코드 리뷰도 쉽고, 유지보수도 편해지죠!

코드 스타일 가이드의 주요 포인트들 👀

  • 들여쓰기 규칙 (탭? 스페이스? 몇 칸?)
  • 변수, 함수, 클래스 이름 짓기 규칙
  • 중괄호 { } 위치
  • 주석 작성 방법
  • 파일 인코딩
  • 그 외 여러 가지 코딩 컨벤션들

이런 것들이 코드 스타일 가이드에 포함되어 있어요. 근데 이걸 누가 정하냐고요? 그렇죠, 바로 여기서 PSR이 등장합니다! 🎉

2. PSR? 그게 뭔데? 🧐

PSR은 'PHP Standard Recommendation'의 약자예요. 뭔가 어려워 보이죠? ㅋㅋㅋ 걱정 마세요, 쉽게 설명해드릴게요!

PSR은 PHP 커뮤니티에서 제안하고 승인한 PHP 코딩 표준이에요. 쉽게 말해, PHP 개발자들이 모여서 "우리 이렇게 코딩하자!"라고 약속한 거죠. 재능넷에서 재능을 거래할 때 일정한 규칙이 있는 것처럼, PHP 코딩에도 이런 규칙이 필요한 거예요.

🌟 재미있는 사실: PSR은 계속해서 발전하고 있어요. 현재 PSR-0부터 PSR-19까지 있답니다. 마치 소프트웨어 버전 업그레이드처럼요!

PSR의 각 버전은 서로 다른 측면의 PHP 코딩을 다루고 있어요. 예를 들면:

  • PSR-1: 기본 코딩 표준
  • PSR-2: 코딩 스타일 가이드
  • PSR-4: 오토로딩 표준
  • PSR-12: 확장 코딩 스타일 가이드

와! 벌써 머리가 아파오나요? ㅋㅋㅋ 걱정 마세요. 우리는 이걸 하나씩 천천히 살펴볼 거예요. 마치 맛있는 케이크를 한 조각씩 먹어가는 것처럼요! 🍰

PSR의 장점 💪

PSR을 따르면 어떤 좋은 점이 있을까요?

  1. 일관성: 모든 개발자가 같은 규칙을 따르니까 코드가 일관되어 보기 좋아져요.
  2. 가독성 향상: 규칙적인 코드는 읽기 쉽고 이해하기 쉬워요.
  3. 협업 용이성: 같은 규칙을 따르니까 팀 프로젝트가 훨씬 수월해져요.
  4. 유지보수 편의성: 일관된 코드는 나중에 수정하거나 업데이트하기도 쉬워요.
  5. 전문성 어필: PSR을 따르는 코드를 작성하면 전문 개발자처럼 보여요! (재능넷에서 여러분의 재능을 어필할 때 큰 도움이 될 거예요 😉)

자, 이제 PSR이 뭔지 대충 감이 오시나요? 그럼 이제 각 PSR에 대해 자세히 알아볼 차례예요! 준비되셨나요? Let's go! 🚀

3. PSR-1: 기본 코딩 표준 📚

PSR-1은 말 그대로 가장 기본이 되는 코딩 표준이에요. PHP 코드를 작성할 때 꼭 지켜야 할 기본적인 규칙들을 담고 있죠. 마치 글쓰기의 기본 문법 같은 거예요!

⚠️ 주의: PSR-1을 지키지 않으면 여러분의 코드가 울지도 몰라요! ㅋㅋㅋ (농담이에요, 하지만 정말 중요해요!)

PSR-1의 주요 규칙들 🧾

  1. PHP 태그
    • PHP 코드는 항상 <?php ?> 태그나 짧은 에코 태그 <?= ?>를 사용해야 해요.
    • 다른 태그 변형은 사용하면 안 돼요. (예: <? ?>)
  2. 파일 인코딩
    • PHP 코드는 반드시 BOM 없는 UTF-8로 인코딩해야 해요.
    • BOM이 뭐냐고요? 'Byte Order Mark'의 약자인데, 파일의 시작 부분에 들어가는 특별한 문자예요. UTF-8에서는 필요 없어서 제거해야 해요.
  3. 부수 효과 (Side Effects)
    • 파일은 선언(클래스, 함수, 상수 등)만 하거나 부수 효과를 발생시키는 로직만 포함해야 해요. 둘 다 하면 안 돼요!
    • 부수 효과가 뭐냐고요? 예를 들면, echo문을 실행하거나, ini_set()을 호출하는 등의 동작이에요.
  4. 네임스페이스와 클래스
    • 클래스는 반드시 네임스페이스를 선언해야 해요.
    • 클래스 이름은 StudlyCaps로 작성해야 해요. (각 단어의 첫 글자를 대문자로!)
  5. 클래스 상수
    • 클래스 상수는 모두 대문자로 작성하고, 단어 사이는 언더스코어(_)로 구분해요.
  6. 메서드 이름
    • 메서드 이름은 camelCase로 작성해요. (첫 단어는 소문자, 그 다음 단어부터는 대문자로 시작!)

어때요? 생각보다 간단하죠? 이런 기본적인 규칙만 지켜도 코드가 훨씬 깔끔해 보인답니다! 😎

PSR-1 예시 코드 💻

자, 이제 PSR-1을 따르는 코드가 어떻게 생겼는지 한번 볼까요?


<?php

namespace Vendor\Package;

class Foo
{
    const VERSION = '1.0';
    const DATE_APPROVED = '2012-06-01';

    public function bar()
    {
        // 메서드 내용
    }
}

어때요? 깔끔하고 읽기 쉽죠? 이렇게 코드를 작성하면 다른 개발자들도 쉽게 이해할 수 있어요. 마치 잘 정리된 방을 보는 것 같죠? ㅋㅋㅋ

🎈 꿀팁: PSR-1은 기본 중의 기본이에요. 이걸 잘 지키면 여러분의 코드가 한층 더 프로페셔널해 보일 거예요. 재능넷에서 PHP 관련 재능을 판매할 때도 이런 기본을 잘 지키는 것이 중요해요!

자, 이제 PSR-1에 대해 알아봤으니, 다음은 뭘까요? 바로 PSR-2예요! PSR-2는 PSR-1을 기반으로 더 자세한 코딩 스타일을 정의하고 있어요. 그럼 PSR-2로 넘어가볼까요? 😃

4. PSR-2: 코딩 스타일 가이드 🎨

PSR-2는 PSR-1을 확장한 버전이라고 생각하면 돼요. PSR-1이 기본 문법이라면, PSR-2는 문장 구조와 단락 나누기 같은 거죠. 더 세부적인 코딩 스타일을 정의하고 있어요.

근데 잠깐! 🤚 PSR-2는 현재 PSR-12로 대체되었다는 사실, 알고 계셨나요? PSR-12가 PSR-2를 확장하고 개선한 버전이에요. 하지만 PSR-2를 먼저 이해하면 PSR-12를 이해하는 데 도움이 될 거예요. 그러니 우선 PSR-2부터 살펴볼게요!

PSR-2의 주요 규칙들 📏

  1. 들여쓰기
    • 코드는 탭이 아닌 4개의 스페이스로 들여쓰기를 해야 해요.
    • 탭파? 스페이스파? 이제 더 이상 싸우지 마세요! ㅋㅋㅋ PSR-2에서는 스페이스가 이겼어요!
  2. 파일
    • 모든 PHP 파일은 Unix LF(linefeed) 줄 끝 문자를 사용해야 해요.
    • 파일의 마지막 줄은 반드시 비어있어야 하고, ?> 닫는 태그는 사용하지 않아요.
  3. 줄 길이
    • 한 줄은 80자를 넘지 않는 것이 좋아요. 꼭 필요하다면 120자까지는 OK!
    • 마치 트위터 글자 수 제한 같죠? ㅋㅋㅋ 코드도 간결하게!
  4. 키워드와 True/False/Null
    • PHP 키워드는 소문자로 써야 해요.
    • PHP 상수 true, false, null은 모두 소문자로 써야 해요.
  5. 네임스페이스와 use 선언
    • namespace 선언 뒤에는 빈 줄이 하나 있어야 해요.
    • use 선언들은 namespace 선언 뒤에 와야 하고, 그 뒤에도 빈 줄이 하나 있어야 해요.
  6. 클래스, 트레이트, 인터페이스
    • 여는 중괄호는 클래스 이름과 같은 줄에 있어야 해요.
    • 닫는 중괄호는 본문 다음의 새 줄에 있어야 해요.
  7. 메서드와 함수
    • 메서드와 함수의 여는 중괄호는 선언부와 같은 줄에 있어야 해요.
    • 닫는 중괄호는 본문 다음의 새 줄에 있어야 해요.

우와, 꽤 많죠? 😅 하지만 걱정 마세요. 이런 규칙들을 따르다 보면 자연스럽게 익숙해질 거예요. 마치 자전거 타는 법을 배우는 것처럼요!

PSR-2 예시 코드 💻

자, 이제 PSR-2를 따르는 코드가 어떻게 생겼는지 볼까요?


<?php

namespace Vendor\Package;

use FooInterface;
use BarClass as Bar;
use OtherVendor\OtherPackage\BazClass;

class Foo extends Bar implements FooInterface
{
    public function sampleFunction($a, $b = null)
    {
        if ($a === $b) {
            bar();
        } elseif ($a > $b) {
            $foo->bar($arg1);
        } else {
            BazClass::bar($arg2, $arg3);
        }
    }

    final public static function bar()
    {
        // 메서드 내용
    }
}

어때요? 깔끔하고 일관성 있죠? 이렇게 코드를 작성하면 다른 개발자들이 여러분의 코드를 읽을 때 훨씬 편할 거예요. 마치 잘 정리된 책장을 보는 것 같아요! 📚

💡 재미있는 사실: PSR-2를 따르면 코드 리뷰할 때 "들여쓰기 좀 맞춰줘"라는 말은 거의 안 하게 될 거예요. 대신 "이 로직 좀 설명해줄래?"라는 질문을 더 많이 하게 될 거예요. 코드의 본질에 집중할 수 있게 되는 거죠!

자, 이제 PSR-2에 대해서도 알아봤어요. 근데 아까 PSR-12로 대체되었다고 했죠? 그럼 PSR-12는 뭐가 다른 걸까요? 궁금하시죠? 그럼 바로 PSR-12로 넘어가볼까요? 🏃‍♂️💨

5. PSR-12: 확장 코딩 스타일 가이드 🚀

자, 이제 우리의 여정은 PSR-12로 향합니다! PSR-12는 PSR-2의 후속작이라고 할 수 있어요. 마치 영화의 속편 같은 거죠. 더 업그레이드되고, 더 세련되었답니다! 😎

PSR-12는 PSR-2의 모든 규칙을 포함하면서, PHP 7.0 이후의 새로운 기능들을 고려해 만들어졌어요. 그래서 "확장" 코딩 스타일 가이드라고 불리는 거죠.

PSR-12의 주요 변경사항 🆕

  • 새로운 PHP 기능 지원
    • PHP 7.0 이후의 새로운 문법들(예: 타입 힌팅, 반환 타입 선언 등)에 대한 스타일 가이드를 포함해요.
    • 이제 우리의 코드가 더 현대적으로 변신할 수 있어요! 🦋
  • 네임스페이스 선언
    • 여러 네임스페이스를 선언할 때의 규칙이 추가되었어요.
    • 네임스페이스가 여러 줄에 걸쳐 있을 때는 각 줄을 한 번 들여쓰기 해야 해요.
  • 임포트 문
    • use 문을 그룹화하는 방법에 대한 가이드라인이 추가되었어요.
    • 이제 use 문을 알파벳 순으로 정렬해야 해요. 마치 도서관의 책 정리처럼요! 📚
  • 트레이트 사용
    • 트레이트 사용에 대한 스타일 가이드가 추가되었어요.
    • 트레이트를 사용할 때는 use 키워드 다음에 한 줄 띄우고 시작해야 해요.
  • 관련 키워드

    • PHP
    • PSR
    • 코딩 스타일
    • 표준
    • 가이드라인
    • 오토로딩
    • HTTP 메시지
    • 컨테이너
    • 미들웨어
    • 코드 품질

    지적 재산권 보호

    지적 재산권 보호 고지

    1. 저작권 및 소유권: 본 컨텐츠는 재능넷의 독점 AI 기술로 생성되었으며, 대한민국 저작권법 및 국제 저작권 협약에 의해 보호됩니다.
    2. AI 생성 컨텐츠의 법적 지위: 본 AI 생성 컨텐츠는 재능넷의 지적 창작물로 인정되며, 관련 법규에 따라 저작권 보호를 받습니다.
    3. 사용 제한: 재능넷의 명시적 서면 동의 없이 본 컨텐츠를 복제, 수정, 배포, 또는 상업적으로 활용하는 행위는 엄격히 금지됩니다.
    4. 데이터 수집 금지: 본 컨텐츠에 대한 무단 스크래핑, 크롤링, 및 자동화된 데이터 수집은 법적 제재의 대상이 됩니다.
    5. AI 학습 제한: 재능넷의 AI 생성 컨텐츠를 타 AI 모델 학습에 무단 사용하는 행위는 금지되며, 이는 지적 재산권 침해로 간주됩니다.

    재능넷은 최신 AI 기술과 법률에 기반하여 자사의 지적 재산권을 적극적으로 보호하며,
    무단 사용 및 침해 행위에 대해 법적 대응을 할 권리를 보유합니다.

    © 2024 재능넷 | All rights reserved.

    댓글 작성
    0/2000

    댓글 0개

    해당 지식과 관련있는 인기재능

    안녕하세요.부동산, ​학원, 재고관리, ​기관/관공서, 기업, ERP, 기타 솔루션, 일반 서비스(웹, 모바일) 등다양한 분야에서 개발을 해왔습니...

     기본 작업은 사이트의 기능수정입니다.호스팅에 보드 설치 및 셋팅. (그누, 제로, 워드, 기타 cafe24,고도몰 등)그리고 각 보드의 대표적인 ...

    JAVA,JSP,PHP,javaScript(jQuery), 등의 개발을 전문적으로 하는 개발자입니다^^보다 저렴한 금액으로, 최고의 퀄리티를 내드릴 것을 자신합니다....

    안녕하세요.자기소개는 아래에 썼으니 참고부탁드리구요.(가끔 개인적 사정으로 인해 연락을 못받거나 답변이 늦어질 수 있습니다. 양해부탁...

    📚 생성된 총 지식 10,084 개

    • (주)재능넷 | 대표 : 강정수 | 경기도 수원시 영통구 봉영로 1612, 7층 710-09 호 (영통동) | 사업자등록번호 : 131-86-65451
      통신판매업신고 : 2018-수원영통-0307 | 직업정보제공사업 신고번호 : 중부청 2013-4호 | jaenung@jaenung.net

      (주)재능넷의 사전 서면 동의 없이 재능넷사이트의 일체의 정보, 콘텐츠 및 UI등을 상업적 목적으로 전재, 전송, 스크래핑 등 무단 사용할 수 없습니다.
      (주)재능넷은 통신판매중개자로서 재능넷의 거래당사자가 아니며, 판매자가 등록한 상품정보 및 거래에 대해 재능넷은 일체 책임을 지지 않습니다.

      Copyright © 2024 재능넷 Inc. All rights reserved.
    ICT Innovation 대상
    미래창조과학부장관 표창
    서울특별시
    공유기업 지정
    한국데이터베이스진흥원
    콘텐츠 제공서비스 품질인증
    대한민국 중소 중견기업
    혁신대상 중소기업청장상
    인터넷에코어워드
    일자리창출 분야 대상
    웹어워드코리아
    인터넷 서비스분야 우수상
    정보통신산업진흥원장
    정부유공 표창장
    미래창조과학부
    ICT지원사업 선정
    기술혁신
    벤처기업 확인
    기술개발
    기업부설 연구소 인정
    마이크로소프트
    BizsPark 스타트업
    대한민국 미래경영대상
    재능마켓 부문 수상
    대한민국 중소기업인 대회
    중소기업중앙회장 표창
    국회 중소벤처기업위원회
    위원장 표창