프로그래밍 언어

    PHP: 에러와 예외 (try, catch, finally)

    에러 여기서 에러라는 것은 문법 에러와 치명적 에러 등을 말합니다. 에러는 보통 문법 에러, 컴파일 에러 등 컴파일 타임에 나타나는 것이 일반적이며 예외는 데이터베이스 연결 예외 등 런타임에 나타나는 것이 일반적입니다. PHP 언어에서는 에러를 처리할 수 있는 몇 가지 기법이 있는데, 알아보도록 하겠습니다. error_reporting(int) 에러 발생 레벨을 조정할 수 있습니다. 상수 E_ 로 시작하는 것이 일반적입니다. 예를 들면 다음과 같이 레벨을 조정할 수 있습니다. 예제에 나온 설정이 일반적으로 사용되고, 프로덕션에서는 꺼놓는 경우도 있습니다. 사실 보안을 위해서라면 꺼놓는게 좋기는 합니다. int $level 에러 보고 레벨 error_reporting(E_ALL & ~E_NOTICE); e..

    PHP: 네임스페이스

    네임스페이스 네임스페이스는 분량은 짧지만 매우 x 2 중요합니다. 클래스와 함께 모던 PHP를 이루는 근간이며, composer 와 같은 패키지 매니저를 사용할 때 중요하게 작용하기 때문입니다. 이는 우리가 composer package 를 만들거나 할 때도 필요합니다. 이는 단순히 우리가 작성한 코드를 구역으로 나누는 것으로 같은 서드 파티, 또는 빌트인에 속하는 함수, 클래스와 중복을 고려하지 않고도 클래스나 함수의 이름을 지정해줄 수 있습니다. 네임스페이스를 사용하기 이전에는 중복을 피하기 위해 긴 함수, 클래스 이름을 사용하여 나타내야 했는데 이제는 그럴 필요가 없습니다. namespace 네임스페이스는 naemspace 키워드를 사용하여 나타낼 수 있으며, 내부에는 함수와 클래스, 상수 등 여러..

    PHP: 매직 메서드

    매직 메서드 매직 메서드는 특수한 메서드로서 클래스에서 특별한 동작을 하게되는데, 그 중에는 PHP: 상속에서 이야기한 생성자와 소멸자도 포함하고 있습니다. 대체로 __ 로 시작하는 메서드 명이 그러하며 이는 사용자가 직접 호출하는 것이 아니고, 특정 행동을 취했을 경우 호출되는 콜백함수같은 것입니다. 따라서 인터페이스 규격이 정해져 있으며 그에 따라 정의해야 하고, 리턴 값또한 그러해야 합니다. 대부분 리턴값은 없는 경우가 많으나 일부 매직 메서드의 경우 존재합니다. 매직 매서드는 종류가 많은데, 전부 다 할 수는 없으니 임의로 몇 가지 토픽으로 나누어서 해보고자 합니다. 주제는 세 가지로, 각각 Method, Property, Serialize. 그 외에 __toString() 과 같은 것들도 있으나..

    PHP: 추상화 (추상 클래스, 인터페이스, 트레이트)

    추상화 추상화를 한다는 것은 형식만 선언한 채 구현은 사용자에게 맡기는 것을 이야기합니다. 메서드의 이름, 파라매터, 반환 값 등을 선언만 한 채 상속과 같은 개념을 사용하여 내용을 구현합니다. 추상화를 사용하면 구현에 상관없이 특정한 인터페이스에 맞춰서 메서드를 콜하거나 데이터를 받음으로서 소통할 수 있다는 좋은 점이 있는데, 상속과 함께 이것을 사용하면 확장성이 눈에 띄게 상승합니다. 추상 클래스 추상 클래스는 일부는 구현하지 않고, 일부는 구현한 상태로 제공하며 상속의 형태로 진행하기 때문에 계를 표현하는 용도로 쓰는 것이 좋습니다. 일반적인 클래스와 마찬가지로 메서드와 프로퍼티를 가질 수 있지만 추상 메서드는 private 가시성으로 선언될 수 없습니다. abstract 추상 클래스는 abstra..

    PHP: 상속 (생성자, 가시성, Final)

    상속 상속은 PHP: 클래스에서 잠깐 살펴보았듯, 계를 표현합니다. 예를 들어 동물이라는 최상위 클래스를 상속받은 사람, 강아지, 고양이 등이 있을 수 있습니다. 상속이라는 개념을 사용하면 확장에 유용하고 추상 클래스나 인터페이스를 함께 사용하면 다양한 서드파티 클래스들을 받아서 이를 처리할 수 있게됩니다. 상속이라는 개념은 객체지향에서 중요한 개념이며 반드시 알아야 하는 사항이기도 합니다. 이는 PHP 뿐만 아니라 자바나 C++ 등 다른 언어에서도 중요합니다. extends 상속을 사용하는 법 자체와 extends 키워드는 PHP: 클래스에서 알아보았으니 조금은 다른 주제에 대해 이야기해보자면, 상속과 함께 사용할 수 있는 개념인 생성자, 가시성, Final 키워드에 대한 것입니다. 개별의 주제는 각각..