https://redmine.or.kr/https://redmine.or.kr/themes/PurpleMine2-2.16.0/favicon/favicon.ico?16952809892015-01-22T05:47:45ZRedmine 커뮤니티OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=23682015-01-22T05:47:45Z오 피엠pm01@lionssoft.co.kr
<ul><li><strong>label_precedes</strong>에 <i><a class="issue tracker-13 status-2 priority-2 priority-default overdue behind-schedule" href="/issues/1258">이슈 #1258</a>: OPEN PMS 메뉴 구조 분석</i>이(가) 추가되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=24472015-01-22T10:48:16Z오 피엠pm01@lionssoft.co.kr
<ul><li><strong>추정시간</strong>을(를) <i>21.00 시간</i>(으)로 지정되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=24582015-01-23T00:58:02Z이 무원mwlee@lionssoft.co.kr
<ul><li><strong>우선순위</strong>을(를) <i>긴급</i>에서 <i>즉시</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=26642015-03-24T06:16:17Z이 무원mwlee@lionssoft.co.kr
<ul><li><strong>릴리즈버전</strong>을(를) <i>5.0</i>(으)로 지정되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=49952015-12-21T07:42:32Z이 무원mwlee@lionssoft.co.kr
<ul><li><strong>릴리즈버전</strong> 값이 지워졌습니다. (<del><i>5.0</i></del>)</li><li><strong>릴리즈버전</strong>을(를) <i>2.0</i>(으)로 지정되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=62942016-06-01T04:36:01Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>시작일</strong>을(를) <i>2016-06-23</i>에서 <i>2016-06-15</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=62952016-06-01T04:36:12Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-23</i>에서 <i>2016-06-19</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=62962016-06-01T04:36:39Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-19</i>에서 <i>2016-06-15</i>(으)로 변경되었습니다.</li><li><strong>시작일</strong>을(를) <i>2016-06-15</i>에서 <i>2016-06-11</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63062016-06-01T04:42:01Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-15</i>에서 <i>2016-06-12</i>(으)로 변경되었습니다.</li><li><strong>시작일</strong>을(를) <i>2016-06-11</i>에서 <i>2016-06-08</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63072016-06-01T04:42:09Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>시작일</strong>을(를) <i>2016-06-08</i>에서 <i>2016-06-06</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63082016-06-01T04:42:26Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>시작일</strong>을(를) <i>2016-06-06</i>에서 <i>2016-06-10</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63092016-06-01T04:42:40Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-12</i>에서 <i>2016-06-14</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63102016-06-01T04:42:47Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-14</i>에서 <i>2016-06-16</i>(으)로 변경되었습니다.</li><li><strong>시작일</strong>을(를) <i>2016-06-10</i>에서 <i>2016-06-12</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63142016-06-01T05:11:29Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-16</i>에서 <i>2016-06-19</i>(으)로 변경되었습니다.</li><li><strong>시작일</strong>을(를) <i>2016-06-12</i>에서 <i>2016-06-15</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63152016-06-01T05:12:10Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>시작일</strong>을(를) <i>2016-06-15</i>에서 <i>2016-06-14</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63162016-06-01T05:12:29Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>시작일</strong>을(를) <i>2016-06-14</i>에서 <i>2016-06-13</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63172016-06-01T05:12:34Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-19</i>에서 <i>2016-06-17</i>(으)로 변경되었습니다.</li><li><strong>시작일</strong>을(를) <i>2016-06-13</i>에서 <i>2016-06-11</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63182016-06-01T05:12:39Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-17</i>에서 <i>2016-06-16</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63192016-06-01T05:14:16Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>완료기한</strong>을(를) <i>2016-06-16</i>에서 <i>2016-06-14</i>(으)로 변경되었습니다.</li><li><strong>시작일</strong>을(를) <i>2016-06-11</i>에서 <i>2016-06-09</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=63202016-06-01T05:14:21Z커뮤니티 관리자redmine@lionssoft.co.kr
<ul><li><strong>시작일</strong>을(를) <i>2016-06-09</i>에서 <i>2016-06-11</i>(으)로 변경되었습니다.</li></ul> OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=111362016-10-22T18:08:55Z이름없음
<ul></ul><p> </p>
<table>
<tbody>
<tr>
<td valign="top">
<table border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td height="80" valign="top">
<p>운영</p>
<p>- 리뉴얼작업시</p>
<p>1. 리뉴얼작업시 사전조사 즉 히스토리를 파악하여라. -니자신을 믿지말어라.</p>
<p>- 기능점수</p>
<p>1. 기능점수는 고객입장에서 카테고리별로 엄선해야지된다. 그래야 고객사들이 이해가빠르고 지불을 흔쾌이한다.</p>
<p>- 고객지원</p>
<p>1. 비밀번호 잃어버렸다고 문의올?는 "비밀번호 변경은 초기화해서 이메일로 알려줘라" 절때 복호화처리하지말어라 운영자도 모른다는 전제를 깔고가야된다.</p>
<p> </p>
<p>- 회의</p>
<p>1. 사용자가 의문 및 연관 상상을 할수있는 그런걸 아예 주지말어라 (화면 및 단서를 주지마) 이러한 상상의 나래를 펼치게되면 기존 설계근본이 흔들릴 수 있다.</p>
<p>2. 기존 원하는 기능 외의 회의하는 고객의 개인적 편의를 위한 기능등이 요구사항으로 나올수있다.</p>
<p> </p>
<p>- 산출물</p>
<p>1. 시스템별 연계관련된 문서는 "도식화"하여서 매번 갱신해라</p>
<p>2. 이행보고서나 그런것들 작성시 키워드 불안하거나 뭐가 잘못된듯한? 뭔가 우리측에 문제있는듯한 , 뭔가 실수인듯한</p>
<p>단어는 넣지말어라 최대한 이완된 단어를 사용해라 최대한 잘못을들어내지않는 단어를사용해라</p>
<p> </p>
<p>- 개인적..</p>
<p>1<img alt="" height="405" src="/ckeditor/upload?file_name=161023030825_image.png" width="556">. 뭐든지 5번이상 검토해라 조사할때</p>
<p>2. 항상 내가지금 하고있는 일들(스케쥴관리) 달력에 체크</p>
<p>하고있는거 현재 스케쥴을 윗사람에게 관리자에게 알려라 그래야지 내가 놀고있지 않다는것을 알것이다.</p>
<p>달력에 그날한거 꼭적고 간단히(일일업무)</p>
<p> </p>
<p>개발</p>
<p>- 유저관리</p>
<p>1. 사용자 "로그인,로그아웃" 내역 history를 남겨라 (DB의 로그테이블을 따로만들어놓아라)</p>
<p>예) ip,id,login구분,date, (mac구분되면 mac도)</p>
<p>2. 사용자 로그인시 5번이상 비밀번호 틀렸을때 계정을 막아라 Lock (막는 기능을 추가해라)</p>
<p>3. 비밀번호는12자이상 (영문,숫자,특수문자 포함) 이때 sql injection 등8대보안 체크해라</p>
<p>4. 분명 사용자별 권한이 존재하는 프로젝트가 있을것이다. 이때에는 사용자별 권한 관리를해라. (롤관리)</p>
<p>하나의 롤에 어떤어떤 페이지의 어떤기능이 가능한지. 설정하는 페이지가 따로있어야지 관리가편하다</p>
<p>5. 로그인처리시 보안로그인 단계를 1,2,3 단계를 만들어라</p>
<p>로그인시 보안단계3단계이상 구분두게하고(UI등)</p>
<p>쿠키로 쿠키값에 비밀번호를 넣는것이 아니다~!!!!! 아이디비밀번호 저장하기? 로그인정보 저장하기? 처리를 쿠키로하지말어라!</p>
<p>6. 사용자 인증처리가있는 프로젝트시 (인증할때 인증된 날짜. , 인증해준 사람 등의 history를남겨라) DB history테이블을두어라</p>
<p>7. 비밀번호 변경은 90일마다 한번씩 처리하는 기능추가하여라 ( 특수문자 숫자 문자 포함) 이때 sql injection 등8대보안 체크해라</p>
<p>8. 개인정보 변경시 비밀번호를 한번더 물어라.</p>
<p>9. 고객개인정보 수정창이나 고객정보들 불러오는 페이지에서는 고객정보 비밀번호라던지 평문으로 가져오게 하지말어라. 주민등록번호, 연락처 같은경우는 **** 처리</p>
<p>- 세션관리</p>
<p>1. 기술적으로 해당세션있을시에만 외부에서 사용가능한 "파일다운로드, 이미지"를 불러지도록하여라.</p>
<p>즉 해당권한을 가진세션만 이미지가 보여지도록 충분히 세션처리할수있다.(이미지 다운로드 외부 안되게)</p>
<p>2. 페이지별 접속 카운트를 남겨라 히스토리를 남겨라 (페이지별 카운트처리) ip,id,login구분,date, (mac구분되면 mac도)</p>
<p>3. 페이지별 권한관리를 체크하여 읽기,수정,삭제 등을 처리하여라.(가운데 권한별 모듈하나만들어서 처리해라)</p>
<p>4. 유저 동시접속 안되게처리, 이미 로그인되어있을경우 기존세션 날리고 접속시 안내메시지로 알려줘라. history남겨라 ip,id,login구분,date, (mac구분되면 mac도)</p>
<p>5. 유저정보는 절때 쿠키에 담지말어라 왠만하면 쿠키쓰지말어라</p>
<p>- 취약점,보안</p>
<p>1. 보안취약점 다막기 10대취약점</p>
<p>1-1. 입력값 검증 부재</p>
<p>웹 애플리케이션 서비스를 요청하기 위해 애플리케이션에 데이터를 전송할 때 HTTP를 통해 URL, 쿼리(Query), 헤더(Header), 쿠키(Cookie), HTML 폼에 대한 정보를 전송한다.</p>
<p>이때 이 데이터 값을 악의적으로 변경해 시스템에 피해를 가할 수 있다.</p>
<p>* 쿼리평문이나 화면단에서 그대로 넘어오는 변수값을 그대로 query에 쓰지말어라, HTTPS를 지향해라, 쿠키값을 그대로 쓰지말어라</p>
<p>1-2. 취약한 접근 통제</p>
<p>가장 심각한 위협은 외부에서 관리자의 접근을 허용하는 것으로 루트 권한이나, 시스템 환경 구성 관리 권한을 제공하면 이 통로를 통해 전 시스템에 대한 접근이 허용될 수 있다.</p>
<p>* 절때 어드민 페이지로 로그인하는 화면을 제공하지말어라 즉 무슨말이냐면 화면에 "관리자화면가기" 버튼이라던지. 그런것을 외부에 노출시키지말어라</p>
<p>한가지 좋은 방법으로는 특정URL를 운영자가 숙지후 그곳을 통해 접속하면 되는걸로 만들수 있다. 여기에서 한단계 더 나아가서 처음접속시 에러뜨고 4번정도 재접속시(URL호출)시</p>
<p>관리자 페이지를 접속하게 만든다던지..</p>
<p>1-3. 취약한 인증 및 세션 관리</p>
<p>인증 관련 정보를 제어하는 프로그램에 대한 통제는 상대적으로 느슨하다. 세션에 실려 다니는 정보가 유출돼 위협이 발생할 수도 있다.</p>
<p>* 쿠키쓰지말어라</p>
<p>1-4. 크로스 사이트 스크립팅</p>
<p>특정 사이트에서 사용자가 정보를 받을 때 그 정보 내에 악의적인 코드를 숨겨놓아 이를 클라이언트에서 실행되도록 하는 기법이다.</p>
<p>* 당연 크로스 사이트 스크립팅 필터 함수 하나만들어사 사용해라.</p>
<p>1-5. 버퍼 오버플로우</p>
<p>웹 서버, 웹 애플리케이션 서버에 대한 공격 유형이다. 웹 애플리케이션 자체의 버퍼 오버플로우에 대한 공격 유형과 비슷하다.</p>
<p>* 똑같은 IP로 지속적인 1분에 100번정도? 이상 접속요청이 있으면 그IP는 막아버려라.</p>
<p>1-6. 삽입 취약점</p>
<p>삽입 취약점은 웹 애플리케이션이 자체 로직을 이용해 외부의 모듈을 호출하는 것이다.</p>
<p>*(절때 파라미터값으로 서버의 특정경로를 호출하는 다운로드모듈을 만들면안된다)</p>
<p>1-7. 부적절한 에러처리</p>
<p>애플리케이션 실행 도중 에러가 발생한 경우에 해당 에러의 내용을 직접 사용자 화면에 보여주는 경우가 있다. 이 정보가 자바 익스프레션 덤프(Exception Dump)라면 사용자는 애플리케이션이 어떤 계층 구조로 이뤄져 있고 어디에서 어떤 문제가 발생하는지 알 수 있으며 이를 통해 시스템에 대한 공격을 할 수 있다.</p>
<p>* 사용자에게 500에러 404에러 라던지 에러 코드를 노출시키지말어라. 자체 오류코드를 만들어서 사용하던지..</p>
<p>1-8. 취약한 정보저장 방식</p>
<p>웹 애플리케이션이 데이터베이스나 파일 시스템이 민감한 정보를 저장할 필요가 있다. 이들 정보는 외부에서 접근이 허용되지 않는 내부 망에 저장되는 경우가 대부분이지만 웹 서버에 저장돼 외부 취약점이 발생하기도 한다.</p>
<p>* 파일업로드 모듈만들시. path이동 ../ 요딴것을 제거하고 사용자가올리는 파일명 그대로 저장하면안된다. 가운데 맵핑테이블을 두고 따로 관리하여라</p>
<p>* 파일다운로드 모듈시 맵핑테이블의 키값으로 값을받아 처리하여 받게하여라.</p>
<p>1-9. 서비스 방해공격</p>
<p>서비스 방해 공격은 웹 애플리케이션의 취약점을 이용해 해당 애플리케이션이 서비스 중단 상태로 가도록 하는 것이다.</p>
<p>1-10. 부적절한 환경 설정</p>
<p>서버 환경 설정에서 일반적으로 일어나는 유형은 운영 팀에서 적절한 보안 패치를 하지 않았을 때 발생한다.</p>
<p> </p>
<p>2. 파라미터관리 "파라미터 검증을 뭐든지해라 문자, 실수, 인트 등 뭐든 것이 범위안에 맞는지 처리 리플레이스 할거 처리하고 "</p>
<p>3.(업무상 도출된) 주민번호라던지 리얼월드에서 사용하는 유일코드는 절때 쓰지말고 따로 하나의 맵핑테이블을 두어 처리해여한다.</p>
<p> </p>
<p>- 디자인</p>
<p>1. 테마셋팅할수있는. 즉 css.. 처리로 유연하게하여라</p>
<p>2. 늘어나는 메뉴들은 DB의 내용으로 자동으로 늘어나도록 만들어라 (메뉴처리 권한 및 메뉴는 DB에 서 불러다가 채워넣을수있게.)</p>
<p>메뉴추가될?마다 그때마다 하드코딩을할것인가? 말도안된다.</p>
<p>3. 테두리가 있는 이미지버튼경우 즉 버튼의 유연한 크키조절을 위해 9path 처럼 css를 먹여서 사용하여라</p>
<p>4. 최대한 이미지파일을 사용하지말어라.css로 처리하여라</p>
<p>5. 화면에 사용자 아이디, 이름, 소속같은 간단한 로그인된 정보를 보여줘라. 고객도 내가지금 어떤 아이디로 접속했는지알수 있으며 원격지원으로 고객지원할때도 내가 보기도좋다.</p>
<p> </p>
<p>- 모니터링, 관리자페이지</p>
<p>1. 관리자가 들어가서 처리할수있도록 관리자 페이지를만들어라 ui에 절때 관리자 페이지들어가는 메뉴는 보여선안된다.</p>
<p>어드민페이지 관리자 ...페이지.아주 파워풀. 유동적으로 처리할수있도록 만들어라</p>
<p>2. 업무별 트렌젝션을 처리할수있게 만들어라 (단계별 빽 하는거. 시스템사용자용 메뉴만들어놓기 (트렌젝션 앞뒤 처리 ) 가능한...)</p>
<p>어떤고객들은 실수로 A로 선택하고 처리해야되는데 B로 했어요 라면서 되돌려달라고하는경우가 많다. 이럴때 유용하게 만들어라.</p>
<p> </p>
<p> </p>
<p>- DB</p>
<p>1. 절대로 쿼리에delete라는 건없다! 지운 상태값과 지운날짜로 구분하여라</p>
<p>뭐든지 내역관리를 해야하니 삭제하더라도 진짜 삭제는 시켜선 안되고 그에따른 삭제 유무 즉 사용유무 필드를 두어 처리한다</p>
<p>2. 데이터는 뭐든 상태값을 가지고 그상태값으로 처리된다. 즉 유일한 유니크한 데이터는 없다는것이다. 언제든지 바뀌고 수정된다</p>
<p>3. 시스템 코드정보는 DB에서 관리를하는데 버전별로 관리를해라. 즉 지사코드라던지, 부서코드라던지 절때 안바뀔것같은 코드도 언젠간 바뀐다 !!!! 그러니 버전별 구분을 두어라.</p>
<p>4. 개인정보 암호화 처리하여 DB에 넣어야한다!!!!!(정부에서 지향하는 암호화기법을 사용해라)</p>
<p>5. 암호화된 데이터는 절때 키값으로 사용해선안된다 join쿼리라던지 암호화된데이터로 쿼리를 날리면 DB 겁나 ㅡㅡ돌아버린다 느려~ 그에 알맞는 시퀀스를 부여해라.</p>
<p>6. 절대로 업무적으로 쓰는 코드(부서코드값,사번)등 키로쓰지말어라 복합키라도.</p>
<p>7. 데이터는 맵핑테이블 하나 변경으로 인한 변경이 가능하도록 (ㅡㅡ너무많이하면 테이블늘어나니깐 알아서...정규화넘하면 역정규화를..해야된다)</p>
<p>다시말해 DB정규화 잘해라.</p>
<p>8. 쿼리 날릴때 유니온걸때</p>
<p>FROM ( SELECT 'KVT0402' AS SB_TYPE, A.* FROM (SELECT * FROM KVT0402) A</p>
<p>UNION ALL</p>
<p>SELECT 'KVT0403' AS SB_TYPE, B.* FROM (SELECT * FROM KVT0403) B</p>
<p>UNION ALL</p>
<p>SELECT 'KVT0404' AS SB_TYPE, C.* FROM (SELECT * FROM KVT0404) C)</p>
<p>이런식으로 구분쪽 sb_type 넣어라 디버깅할때 좋다^^</p>
<p>9. 기준으로 버전 있는 테이블두고 (그버전에 따라서 그냥 나오는 각각의 view 를 만들어서 사용해라 )</p>
<p>10. 데이터는 중복성을 절때 없에라</p>
<p>11. 데이터 연동시 한가지 방법으로만 해라. 왠만하면.. 너무많은방법론들은 관리가 힘들어진다.</p>
<p>12. 데이터의 성격은 이력성과 실시간반영형 이있다 이력성에는 데이터 중복성이 허용된다. 하지만 이력이러날때 그시점의 데이터라는걸 알고있어라</p>
<p>13. 테이블내용이 자주바꾸지않는 테이블은 캐쉬를사용해라. 시스템코드 테이블이라던지..</p>
<p>14. 지사변경등 사업소 변경이 일어날수있으니.....</p>
<p>기존 이력성데이터는 현재 기준으로 보여주고 옛날 기준으론 옛날 사업소 보이도록 .. 하는.. 그런</p>
<p>내역관리를....해야된다 어렵네-0-</p>
<p>15. 데이터의 사용요무를 체크할수있는 컬럼을둬라</p>
<p>16. 언제사용가능한 데이터인지 버전명(버전) 컬럼을둬라</p>
<p>17. 업데이트한 시간과 버전정보 시간과 델리트한 시간과 사용여부 시간을 넣어라!!!!!!!!!(컬럼을둬라)</p>
<p> </p>
<p>- 데몬,스케쥴</p>
<p>1. 메일 또는 sms 보내는 내역 관리 내역 관리 테이블 적용 성공여부등.남겨라</p>
<p>메일SEND 포맷이라던지 서버ip등 프로퍼티는 DB,config에 넣어놓아라. select IP from ykt1106 where STAT = 'MAIL'</p>
<p>2. 실패한 스케쥴이나 트렉젝션이 실패한 것이있으면 나중에라도 돌아가서 처리되도록 관리를해서 싱크를 지속하게 맞춰야한다.</p>
<p>3. 스케쥴러같은거 돌다가 빠진거나 오류난건에대해서는 TO-DO 테이블에 넣어놓고 그걸 다시한번 실행할수있도록...해라.</p>
<p> </p>
<p>- 시스템</p>
<p>1. https 및 post 및 get 암호화 파라미터</p>
<p>2. 왠만하면 get은 filter에서 모든지 팅겨나게처리하여 POST만 가지고 이뤄지게 만들어라.(뭐든 POST 방식으로 그나마..)</p>
<p>3. 서비스파일 아무나접근하게 만들면안됨</p>
<p>4. 마우스 오른쪽버튼 막아라</p>
<p>5. 속성보면 주소 알수없게해라 -_- 어쩔수없이 보이긴하겠지만 파라미터값으로 페이지호출 다르게할수있으니 충분히 가능하다</p>
<p>즉 사용자가보는 URL은 하나인것이다.</p>
<p>6. 게시판 페이징 처리할때 10개면 10개만rownum 10개만 가져오고 페이징 번호 가져와서 그때그때 그페이지당 뿌릴것만 페이징 번호 넘겨줌</p>
<p>7. cron으로라던지 시스템서버안에서 DB 및 소스 백업받는 쉘하나짜놓기, DB와 소스파일 백업받는거 다른디바이스에서도 받아놔야된다(중요)</p>
<p>8. 관리자페이지에 설정값 등 설정할수있는 화면있어야됨</p>
<p>7. 사용자 사용화면에 tip메시지 넣어라 업무절차 내용 및 안내메시지 꼭 화면에(항상 페이지 마다 도움말을 두어 업무를 설명하는 란을 적어준다 검색조건등 을적어준다)</p>
<p>8. 공지사항 등 입력시 팝업 처리 기간줄수있게 한다. 시간까지, 메일날릴건지, sms 날릴껀지.</p>
<p>9. 404등 500 오류등 모든오류는 그냥 바로 오류메시지 보여주지말고 오류메시지는 절때 친절하면안된다. 해킹에 요인이된다.</p>
<p>10. 항상 유저가 보고있는 url을 검사하고 (그 url에서 다음스탭 또는 백으로 스탭 들어갈수있는곳으로) 활로 체크해라.</p>
<p>11. 게시물 수정 및 글쓰기, 리플, 답글, 할때는 별도의 비밀번호를 관리해야한다 별도의 비밀번호 입력받는곳을 만들어라</p>
<p>12. 서버의 경로는 언제든지 바뀔수있으니깐. 프로젝트안에서 절대,시스템경로를 적을때 config파일만들어서 처리해라</p>
<p>13. 웹컨텍스트쪽안에 첨부파일경로 넣지말어라 "WEB-INF쪽에 넣던지" url로 접근하지못하도록.</p>
<p>14. 시간이 오래걸리는 작업경우 중복으로 돌아가지못하도록 전문번호를 받아서 지금 돌아가고있는지 없는지 확인하고</p>
<p>돌아가는중이면 사용자에게 지금돌아가고있으니 나중에 시도해주세요라고 알려준다.</p>
<p>전문같은경우나 작업단위 확실하게 동시 작업못들어오게</p>
<p>동일한 요청건에대하여 하나만 처리되도록-_- 타임아웃주고</p>
<p>동일한 요청키가 존재하여 해당 요청을 처리할 수 없습니다.잠시 후 다시 시도해 주십시오.</p>
<p>15. 실행취소를 위한 세션아이디!! 즉 실행취소전문도있어야함</p>
<p>16. 뭐든건 변수로 환경설정할수있어야한다 화면단에서</p>
<p>17. 화면에서 권한가진사람은 사용자 전환 가능하게 처리</p>
<p>18. 화면에 사용자가 요청시 기다리는 시간알림창에 wait 프로그레스바에 현 몇초 기다리고있는지 나오게 해줘라 4초 기다리는중.</p>
<p>19. 전문이나 그런것들은 포맷양식 전송 포맷은 xml이나 따로 환경파일로 빼고 클래스를 만들어서 트렌스폼을하던 해서 사용하게 해야한다!! 협업을위해</p>
<p>20. 휴일관리 페이지만들어라</p>
<p>21. 로그보는 화면 만들어라</p>
<p>22. 사용자 기본정보 초기화 기능만들어라.</p>
<p>23. 롤셋팅, 작업별 롤셋팅 할수있는 관리페이지만들어라</p>
<p>24. 버튼종류및 가져다쓸수있도록 치환할수있도록 만들어라</p>
<p>25. 배치 프로세스 리스트나오게만들어라, 수동실행 할수있는 기능도 만들어라 언제 돌았는지 확인컬럼도 두어라, 성공했는지 실패했는지컬럼도, 언제 도는지도..</p>
<p>26. 메뉴관리할수있는거 만들어라</p>
<p>27. 사용자별 로그 확인할수있는거 만들어라.</p>
<p>28. 하나하나 업무 흐름 즉테이블 연결흐름을 UI로 표현 그거자체를 엔진으로 만들고 그걸 가지고 유지보수할수있도록 관리페이지를 만들어놓으면 좋을것같다.</p>
<p>29. 스케줄러관리 만들때 몇시간동안 몇분에 시작하게 만들고 중복되는 스케쥴은 하지말아야하며(중복실행 방지)</p>
<p>30. 스케줄 배치 수동으로 돌릴때 즉 배치 돌릴때 사용자가 파라미터 넣을수 있도록 처리하여 유동적으로 처리하도록 만들어라.</p>
<p>31. 시스템날짜가 변경될수도있다 마냑 DB서버의 시간을 가져다쓰던지, WAS의 시간을 가져다쓰던지, 시간전용 서버를 가져다쓰던지. 한곳에 시간time을 가져다 사용해라</p>
<p>32. 프로그래밍쪽에서 seq생성시 syncronz 걸어놓고! 그 해당된 메서드만 불러써라.</p>
<p>33. 고객응대에대한 조치법을 취합하는 시스템을 만들어서 내가 처리한 조치법이라던지 이런걸 적어놓으면 다른 사람들도 등록해놓으면 그거를 참고해서 처리하면된다!</p>
<p>한마디로 모니터링시스템 을 하나 만들어놓고 고객응대를해야지.. 윤택하다. 고객정보라던지. 고객연락처 심지어 위치까지. 그리고 언제 전화받았으며 어떻게 문의했으며 성격까지</p>
<p>34. Ajax 어싱크같은 request때 요청ID(전문번호)하면 응답받을때 그요청ID에 대한 응답이라는 정보를 같이던져줘라 같은 Ajax 어싱크같은게 호출되면 어떤문에대한 응답인지 모를수있다.</p>
<p>35. 중요한 요청기능경우 고객이 버튼클릭시 컴펌으로Y,N 맞는지 다시한번 물어보아라. 또한 한번요청 들어갔을때 또한번 요청버튼누르도록 처리하면안된다.</p>
<p>즉 다시말해 사용자가 엔터로 요청버튼을 누를경우 중복된 요청이 들어갈수있다. 그에따른 프로그램이 꼬일수 있으니 안쪽에서 체크하던지 화면에서 아에 중복호출되지 않도록 모달 프로그레스바를 뛰어라.</p>
<p>* 무조건 요청들어가면 모달로된 alert(layer) 안내메시지 뛰어줘라 프로그래스바 보이고!</p>
<p>* 삭제또는 업데이트 작업일경우는 항상 사용자에게 컴펌 메시지로 확답을 받아라..!!!!!!! 화면에서</p>
<p>36. 데이터를 연동할때 연동시 query등을 DB에넣어라 파일로 빼지말어라</p>
<p>37. 사용자로그인시 초기화면, 즐겨찾는 페이지등을 선택할수있는 기능을 만들어줘라</p>
<p>38. 절때 소스상에는 ip가 들어가선안된다.</p>
<p>39. 은행처럼 세션 타임아웃시간 화면에 보여줘라 그리고 몇초후에 세션끝난다고 체크해서 보여줘라 사용자에게 그리고 끊키면 로그아웃후 초기화면으로 forword</p>
<p>40. 연동할데이터가 있는 화면이면 데이터연동버튼을두어 수동으로도 사용자가 데이터 연동할수있도록 버튼을 두어라</p>
<p>41. 페이지별로 사용자들을 위한 도움말버튼이 있어 도움말을 제공하고 , 그도움말을 관리페이지도 있어야겠다 (하드코등하지말란말여)</p>
<p> </p>
<p>- 시스템 구조</p>
<p>1. 중앙집중적으로 처리를 하더라도 가운데 매니저 즉 하나의 서버를 두고 게더링을 해라 온라인이든 배치든</p>
<p>IO 문제,네트워크 등 관리등.. 문제가 많으니..</p>
<p>2. 클라이언트에서 항상 서버에 접속하여 마이그레이션받을것이 있는지 확인하고 마이그레이션받을게 있으면 서버로부터</p>
<p>받아서 마이그레이션작업을 실시한다. 예를들어 sql문을 받아서 sql문을 돌린다던지. 즉 서버의 주관하에 있어야된다.</p>
<p>3. 매일 서버 재부팅하도록만드는것도 좋다. ㅡㅡ조금 위험(큰곳에선 사용못하겠다.)</p>
<p>4. 버전관리는 정말 잘되어야한다 하나의 통합된 솔루션이면 고객별 처리는 환경설정파일로 처리를. if구분해도되지만..</p>
<p>5. 사용자가 일으키는 이벤트는 하나로 모드(개발쪽 반영 모드인지 오리지널 운영인지) 에따라서</p>
<p>리얼쪽에서 개발쪽에 반영같이 들어감 인터페이스같은?개념이랄까/ 훔-_- 하나의 인터페이스로</p>
<p>로직구현부분을.. 그러면 개발과 테스트가 동시에 ..</p>
<p>6. 웹서버가 한대고 그뒤에 서포트하는게 여러게면 이쪽부분을 서버로두고 여러개의 서포트하는 프로세스가 붙칠수있게(클라)</p>
<p>7. 여유되면 이미지 서버 따로두기, 파일 서버 따로두기, 데이터 서버 따로두기, DB 서버 따로두기, 통신 서버 따로두기, 처리해여라.</p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
OPEN ALM(PMS) 체험 사이트 - 코드리뷰 #1277: 화면 접근성 분석https://redmine.or.kr/issues/1277?journal_id=123682016-12-29T06:42:43Z이름없음
<ul><li><strong>유형</strong>을(를) <i>태스크</i>에서 <i>코드리뷰</i>(으)로 변경되었습니다.</li></ul>