# 그누보드는 프레임워크를 사용하지 않은 PHP 기반의 오픈소스 게시판이다. # 그누보드의 코드 특징은 다음과 같다. - common.php 가 미들웨어역할과 초기화 역활을 합니다. common.php, config.php 를 항상 참고하시오 - 그누보드의 모든 페이지는 common.php를 include_once로 불러와야한다. - mysqli 를 사용한다. - 스킨과 테마는 그누보드의 디자인을 담당한다. - 제이쿼리를 사용한다. - 그누보드는 컴포저를 사용하지 않기에 외부 라이브러리가 필요한경우 사용자에게 요청 하시오 - 스킨, 테마 수정시 sql 쿼리가 들어가는 부분은 html 과 분리해서 작성한다. - mvc 패턴을 따르지는 않지만 가능한한 php 코드는 함수화하여 html 코드와 분리해서 작성한다. - data 디렉토리는 그누보드의 데이터와 업로드된 미디어 파일이 저장되는 디렉토리이다. # 사용환경 - 현재 PHP 버전은 7.4 - mysql 버전은 5.7 - 그누보드 5 # 테이블은 sql 파일 참고. - gnuboard5.sql 파일을 확인. - 테이블은 utf8mb4 인코딩을 사용. - 테이블은 InnoDB 스토리지 엔진을 사용. - 테이블 접두사는 @@ 이다. # 추가된 테이블은 다음과 같다. - @@ 테이블 목록또는 SQL 첨부 # 어떤 사항이 변경된 이유를 git history 를 통해 확인. # 그누보드의 코드를 수정할 때는 다음 사항을 지켜야한다. - 코드를 수정 작업이 끝나면 반드시 git commit 을 통해 변경 사항을 기록. - mysql 쿼리는 가능한한 prepared statement 를 사용. # 사용자의 요청사항에 대해 생각을 하고 계획을 세워야한다. - 해결책은 코드로 작성. - 변수명은 항상 의미있는 이름을 사용. - 함수 작성시 주석을 작성. - 보안 주의사항을 항상 참고. # 보안 주의사항 - 그누보드는 보안에 취약할 수 있다. 따라서 사용자 입력값은 항상 검증하고 필터링한다. - SQL 인젝션, XSS, CSRF 등의 공격에 대비하여 코드를 작성. - 사용자의 입력값은 항상 검증하고 필터링 필요. - 스킨과 테마등 html 코드가 들어가는 부분에서 htmlpurifer 라이브러리를 사용한 purifier 함수를 사용한다. - 변수를 만들때는 항상 초기값을 지정해야한다. # 현재 프로젝트의 수정 사항은 다음과 같다. - 지금 수정할 부분은 @@ 스킨과 테마다.
@@ 부분 만바꿔서쓰고요
함수들 자꾸 엉뚱하게 참고하길래
common.php , common.lib.php 에 죽은 주석들 싹지우고
php doc 전부 달아놓았어요. 전역변수들도 설명적었고요... 조금 멀쩡해지네요
하 그냥 ts 에 프레임워크 쓰고싶어여 ㅠ
구조, 타입, 세션 이런거 다 집어던지고 코드에만 집중하게요..
게시글 목록
| 번호 | 제목 |
|---|---|
| 219 | |
| 218 | |
| 216 | |
| 212 | |
| 208 | |
| 202 | |
| 199 | |
| 195 | |
| 188 | |
| 186 | |
| 185 | |
| 183 | |
| 182 | |
| 181 | |
| 178 | |
| 177 | |
| 175 | |
| 166 | |
| 164 | |
| 163 | |
| 151 | |
| 140 | |
| 137 | |
| 134 | |
| 124 | |
| 121 | |
| 116 | |
| 112 | |
| 109 | |
| 107 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기