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

🌲 지식인의 숲 🌲

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

 >>>서비스 설명<<<저렴한 가격, 합리적인 가격, 최적의 공수로윈도우 프로그램을 제작해 드립니다고객이 원하는 프로그램...

AS규정기본적으로 A/S 는 평생 가능합니다. *. 구매자의 요청으로 수정 및 보완이 필요한 경우 일정 금액의 수고비를 상호 협의하에 요청 할수 있...

프로그래밍 15년이상 개발자입니다.(이학사, 공학 석사) ※ 판매자와 상담 후에 구매해주세요. 학습을 위한 코드, 게임, 엑셀 자동화, 업...

안녕하세요!!!고객님이 상상하시는 작업물 그 이상을 작업해 드리려 노력합니다.저는 작업물을 완성하여 고객님에게 보내드리는 것으로 거래 완료...

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

2024-12-10 09:18:51

재능넷
조회수 312 댓글수 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 메시지
    • 컨테이너
    • 미들웨어
    • 코드 품질

    지식의 가치와 지적 재산권 보호

    자유 결제 서비스

    '지식인의 숲'은 "이용자 자유 결제 서비스"를 통해 지식의 가치를 공유합니다. 콘텐츠를 경험하신 후, 아래 안내에 따라 자유롭게 결제해 주세요.

    자유 결제 : 국민은행 420401-04-167940 (주)재능넷
    결제금액: 귀하가 받은 가치만큼 자유롭게 결정해 주세요
    결제기간: 기한 없이 언제든 편한 시기에 결제 가능합니다

    지적 재산권 보호 고지

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

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

    © 2024 재능넷 | All rights reserved.

    댓글 작성
    0/2000

    댓글 0개

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

    30년간 직장 생활을 하고 정년 퇴직을 하였습니다.퇴직 후 재능넷 수행 내용은 쇼핑몰/학원/판매점 등 관리 프로그램 및 데이터 ...

    개인용도의 프로그램이나 소규모 프로그램을 합리적인 가격으로 제작해드립니다.개발 아이디어가 있으시다면 부담 갖지 마시고 문의해주세요. ...

    일반 웹사이트 크롤링부터 거래소 홈페이지 정보 가져오기, 공식 api를 통한 정보 가져오기 등 가능합니다  거래소 뿐만 아니라 일반 웹...

    서울 4년제 컴퓨터공학과 재학중이며, 대학 연구실에서 학부연구생으로 일하고 있습니다.사용가능한 언어는 C / Objective C / C# /Java / PH...

    📚 생성된 총 지식 9,459 개

    • (주)재능넷 | 대표 : 강정수 | 경기도 수원시 영통구 봉영로 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 스타트업
    대한민국 미래경영대상
    재능마켓 부문 수상
    대한민국 중소기업인 대회
    중소기업중앙회장 표창
    국회 중소벤처기업위원회
    위원장 표창