더보기 2022 년도에 작성된 글 입니다. 모던 PHP 유저 그룹 2022. 01 발표에서 sprintf 를 통한 가독성 좋은 문자열 표현에 대한 발표가 있었다. (Github Repo 에 자료 업로드 하는걸 깜빡했다.) https://github.com/ModernPUG/meetup GitHub - ModernPUG/meetup: Modern PHP User Group 정기모임 발표 자료 Modern PHP User Group 정기모임 발표 자료. Contribute to ModernPUG/meetup development by creating an account on GitHub. github.com 당시 발표 내용을 보고 HTML 태그에도 사용할 수 있겠다. 라는 생각이 들어 정리해보았다. 아래의 ..
더보기 2022 년도에 작성된 글 입니다. 동시성 문제를 해결하는데에는 4가지 방법이 떠오른다. 트렌젝션을 통해 Read 와 Write 을 반복적으로 수행하는 방법 Table 의 유니크키 결합을 통한 방법으로 Multi Index 을 사용하는 방법 PK 을 생성할 때 2개의 특정 값을 조합하여 사용하는 방법 (상품번호:주문순서) 데이터를 하나의 스택에 담고 Pub/Sub 으로 Database 에 순차적으로 Insert 하는 방법 이커머스로 이직한 두번째 날 1번의 방식으로 이벤트 응모를 처리하다가 1등 당첨자가 여러명 나오는 문제가 발생했었다. 이러한 예시로 민트패스가 있었다. (구매하려고 들어갔는데 후기 보고 알게됨) https://www.ssg.com/item/itemView.ssg?itemId=1..
더보기 2022 년도에 작성된 글 입니다. Warning: mysqli_connect(): The server requested authentication method unknown to the client [caching_sha2_password] PHP 을 사용하다 데이터베이스 연결문제가 발생했다. 아이디 비밀번호 맞는데 위와 같은 에러 메세지가 출력되었다. 접속 안되는 이유 MySQL 8 부터는 더 강화된 인증 방식으로 caching_sha2_password 를 도입했는데 PHP 의 MySQL Driver 에서는 지원하지 않아 발생하는 문제였다. 해결 방법 caching_sha2_password 를 지원하게 한다. PHP7.4 이상부터는 개선 되었다고 하니 아래 문서 참고 1. https://w..
더보기 2022 년도에 작성된 글 입니다. HTML 혹은 Restful API 에서 요청이 서버로 들어왔을 경우 확인해야 할 것이 있다. SQL 인젝션 등에 취약한 문자는 없는지 사용자의 실수로 빈 값이 들어 왔는지 이 두가지의 경우에 1번은 대부분의 라이브러리에서 해결을 해준다. 하지만 2번의 경우에는 서버에서 직접 핸들린을 해야한다 . 그리기 위해서는 trim 이 어떤 데이터를 어떻게 처리하는지 알아야 한다. $a = ''; $b = NULL; $c = false; $d = 0; var_dump(trim($a)); // string(0) "" var_dump(trim($b)); // string(0) "" var_dump(trim($c)); // string(0) "" var_dump(trim($d)..