Top 5 PHP Best Practices
Medium
PHP를 잘 사용하는 방법에 대해 가져와 봤습니다. 번역 글입니다.
PHP는 다른 언어들에 비해 많이 내려왔지만, 그래도 웹의 80%를 차지할 정도로 아직 자리를 지키고 있습니다. 배우기도 쉽고, 쉽게 설치할 수도 있죠.
다만, PHP의 큰 특징은 버그가 쉽게 발생한다는 것인데요. 각 버전에 고유한 특징과 기능에 대한 문제가 포함되어 있어 상당한 문제를 일으키곤 합니다. 따라서 PHP를 사용하는 이들은 오래되거나, 안전하지 않은 코드를 사용하는 것을 사전에 지양하는 경우가 많습니다.
그럼에도 PHP는 아직까지 잘 쓰여지고 있기에 이러한 오류를 방지하고 PHP를 원활하게 사용할 수 있는 방법 5가지를 알려드리겠습니다.
1) 코드를 문서화시키기
PHP뿐만 아니라 코드를 문서화시키는 것은 어떤 언어를 사용하는지에 상관없이 매우 중요한 일입니다. 코드를 개발하는 것보다 코드를 읽는 데 시간이 더 소요되는 경우도 생기므로 적절하게 내가 짠 코드를 문서화하고 주석 등을 통해 설명하는 것이 중요합니다. 내가 짠 코드도 몇 달 뒤면 잊어 먹기 마련입니다.
2) 짧은 태그를 지양하기
많은 개발자들이 <?
<%
와 같은 짧은 태그를 사용해 PHP를 선언하는 다양한 단축키 방법을 찾습니다. 이는 좋은 관행이 아닙니다. 게다가 코드가 전문적으로 보이지도 않죠. 이렇게 하면 XML 파서와도 충돌할 수 있습니다. 이러한 코드는 향후 출시될 버전들과 호환이 어려울 수도 있으므로 지양하는 것이 좋습니다
3) 해독 가능한 암호화 지양하기
이러한 암호화는 크랙과 복호화가 쉬워 데이터가 악의적인 해커들에게 취약해지면서 개인정보침해 및 도용의 가능성이 높아집니다. 암호화와 복호화 프로세스는 명확한 활동 흔적을 남기므로 모든 활동을 감시당할 수 있죠. 따라서 강력한 해싱 알고리즘(Bcrypt
, Argonaut
)을 사용해 비밀번호를 해시하는 것이 좋은 방법입니다. 해싱 알고리즘은 또한 속도가 빠르다는 장점이 있습니다.
4) 루프 내부에서 함수 사용하지 않기
루프내부에서 함수를 사용하면 성능이 매우 저하될 수 있습니다. 상황에 따라 다르기 때문에 그렇게 하고 있었다면 중단하는 것이 좋겠습니다. 다음은 좋은 루프의 예시입니다.
Table table = GetMyTable()
for (int i = 0 i < table.Rows.count; i++) {
WriteMyRow(table.Rows[i]);
}
function GetMyTable(i) {
Table table = new Table();
table.Fill(someConnection);
return table;
}
5) PHP 보안을 강화하기
보안 목적과 관련해 쿠키에 의존하지 않는 것이 좋겠습니다. 쿠키는 주로 사용자에 관한 정보(로그인 상태, 사용자 이름, 사용자 위치 등등...)를 저장하므로 쿠키 암호화는 신중하게 고려해봐야 합니다. 이 외에도 민감한 파일에 대한 엑세스를 제한하는 것도 고려해보는 것이 좋습니다. 보안 침해가 발생하면 파일, 데이터베이스 자격 증명, 소스 코드 파일과 같은 파일 묶음이 특정 신뢰할 수 있는 사용자에게만 제한되어야 합니다.
원문을 보고 싶으시다면 아래의 링크에서 보실 수 있습니다 :-)
https://medium.com/code-like-a-girl/top-5-php-best-practices-e13e373058fb
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 3월 28일 오전 1:59
사장이나 리더는 자신의 조직 장악력과 한방향 정렬(Alignment) 역량을 스스로 어떻게 평가하면 좋을까? 이나모리 가즈오 교세라 회장은 초기에는 친목회 참석률로 이를 평가했다. 물론 나중에는 친목회 활동이 기업문화로 정착했기 때문에 더 이상 평가 요소가 아니었지만, 이 질문은 리더의 조직 장악력과 조직 한방향 정렬을 평가하는 데 좋은 질문이 되었다.
... 더 보기•
조회 780
1. 관리자 업무 중 상당한 부분을 차지하는 일은 인력, 돈, 자본 등의 자원을 할당하는 것이다.
1. 엔터테인먼트 프로덕트의 본질은 콘텐츠다. 사용자는 콘텐츠를 소비하며 감정을 느낀다. 재미, 감동, 공포, 희열. 인간의 다양한 감정이 콘텐츠를 통해 꺼내진다.
1. 아버지는 파인먼에게 이렇게 강조해서 말해 주었습니다.
나는 가끔 조합형 한글의 아름다움에 대해 생각한다.
그 아름다움은 단순히 예쁜 글꼴이나 정갈한 종이 위의 자소 배열에서 끝나지 않는다. 진짜 매력은, 정밀한 정보 구조와 이산 수학적 규칙성 속에 숨어 있다.