분류 전체보기 178

DB View (데이터베이스 뷰)

1. View 생성 CREATE OR REPLACE VIEW V_PROF AS SELECT PROFNO, NAME, EMAIL, HPAGE FROM PROFESSOR; 2. Join으로 View 생성 CREATE OR REPLACE VIEW V_PROF_DEPT AS SELECT P.PROFNO "교수", P.NAME "교수명", D.DNAME "소속학과명" FROM PROFESSOR P, DEPARTMENT D WHERE P.DEPTNO = D.DEPTNO; 3. inline View SELECT D.DNAME "학과명", S.MAX_HEIGHT "최대키", S.MAX_WEIGHT "최대 몸무게" FROM (SELECT DEPTNO1, MAX(HEIGHT) MAX_HEIGHT, MAX(WEIGHT) M..

DB index(데이터베이스 인덱스)

1. UNIQUE INDEX - 중복 값이 입력될 경우 에러가 발생합니다. CREATE UNIQUE INDEX IDX_DEPT2_DNAME ON DEPT2(DNAME ASC); 2. NON UNIQUE INDEX - 중복 값 입력이 가능합니다. CREATE INDEX IDX_PROF_POSITION ON PROFESSOR(POSITION DESC); 3. FUNCTION BASED INDEX - WHERE 절에 오는 조건 컬럼에서 PAY + 100 같은 연산으로 조건을 사용할 때 사용합니다. (이 방식은 임시 해결책입니다.) CREATE INDEX IDX_PROF_PAY_FBI ON PROFESSOR(PAY + 100); 4. DESCENDING INDEX - 계좌 조회 같은 주로 최근 날짜부터 검색을 ..

AngularJs 보안 가이드

AngularJs 보안 가이드에는 4가지 항목에 대해 설명합니다. 1. 데이터와 HTML에 대한 인증되지 않은 접근 방어 2. 스누핑 방어를 위한 연결 암호화 3. 크로스사이트 스크립팅(XSS) 공격 및 크로스 사이트 요청 위조(XSRF) 방어 4. JSON 주입 취약점 방어 1. 인증되지 않은 접근 처리 (Cross-site request forgery - CSRF) - 인증되지 않은 사용자가 DB에 get 이외의 요청을 보내는 경우 - 관리자가 아닌 사용자가 프로젝트나 사용자 DB에 대해 get 이외의 요청을 보내는 경우 위와 같은 경우 401 에러를 발생시켜야 합니다. POST / login - post 요청의 body를 기준으로 사용자 인증 POST / logout - 인증 쿠키 삭제함으로써 현재..

개발 2020.07.28

AngularJs 성능 개선 가이드

많은 회사에서 2013년부터 AngularJs를 도입해서 현재도 사용하고 있는 곳이 많이 있습니다. 하지만 AngularJs 최적화가 되어 있는 경우가 드물어 성능에 문제가 있어도 해결 방법을 찾기 어렵습니다. 오늘은 AngularJs의 성능 개선 방법에 대해 알아보겠습니다. 1. AngularJs가 모델 변경 사항을 추적하는 상황 - DOM 이벤트(사용자가 input 필드의 값을 변경하거나 버튼을 클릭을 클릭해서 자바스크립트 함수를 호출하는 경우) - XHR 응답으로 인한 콜백 - 브라우저의 주소 변경 - 타이머(setTimeout, setInterval)로 인한 콜백 * 실제로 어떤 이벤트도 발생하지 않으면 모델의 변경 사항을 주시하지 않습니다. * AngularJs는 $scope.$apply() 메..

개발 2020.07.28

Redis 튜닝하기

1. Redis 메모리 운영 효율적으로 관리하기 - Redis는 in-memory 데이터 저장 관리 기술을 제공합니다. - 그러나 시스템 메모리 크기는 제한이 있습니다. - 사용자가 저장하는 데이터는 이보다 훨씬 크기 때문에 모든 데이터를 메모리에 저장해서 관리할 수가 없습니다. - 이러한 문제점을 개선하기 위해 Redis는 LRU / LFU 알고리즘을 제공합니다. - 메모리를 효율적으로 사용하기 위해서 LFU 알고리즘으로 설정해서 사용하는걸 추천합니다. * LFU 알고리즘 설정 vi redis.conf lfu-log-factor 10 // LFU 알고리즘에 의한 메모리 운영 lfu-decay-time 1 - LRU 알고리즘은 lfu-log-factor 값을 변경하면서 튜닝하는데 기본값은 10입니다. (..

개발 2020.07.27

프리랜서 계약서 양식

프리랜서 계약을 진행해서 일을 하는 경우 계약서를 잘 못써서 피해를 보는 사례가 많습니다. 불공정한 약관이 많은 계약서에 사인해서 피해를 보는 사람들이 많은데요. 오늘은 불공정한 프리랜서 계약서를 어떤 방식으로 수정해서 계약해야 하는지 알려드리겠습니다. * 불공정한(많은 인력업체에서 사용되는) 프리랜서 계약서 양식 인력 개발 용역 계약서 1. 계 약 일 자 : 000000 2. 계 약 건 명 : 000000 3. 계 약 금 액 : 00000원(00000원‐세금공제전금액)/월 4. 개 발 기 간 : 0000 ~ 0000 일 5. 대금 지급일 : 익월 10일 6. 제세 공과금 : 총액의 3.3% 원천 징수 상기 인력 개발 용역 계약을 체결함에 있어 갑 주식회사 @@@ (이하 “갑”이라 한다)와 @@@(이하 ..

개발 2020.07.27

IntelliJ Memory Option 최적화

IntelliJ를 기본 설정으로 사용하면 메모리가 부족해서 느려지는 현상이 나타나기 떄문에 VM 설정을 변경해야 합니다. 이번 포스팅에서는 Memory 옵션 값 변경과 실행 시간을 측정하였습니다. 1. 사양 기준 - RAM 32GB, CPU i9 MacBook 16인치(2019) - 프로젝트 : 코드 85,000 라인 (Java8 및 Maven) 2. 테스트 시나리오 - 컴퓨터에서 꼭 필요한 프로그램이 아닌 모든 응용프로그램을 종료합니다. - 모니터링 도구는 jstat 를 사용합니다. - Idea를 실행해서 완료까지 걸린 시간을 측정합니다. - Idea에서 프로젝트 로딩 완료까지 걸린 시간을 측정합니다. 3. 설정 옵션 - 설정 옵션은 4가지로 구분하며 색상으로 표시합니다. - 기본 설정 / A 설정 /..

개발 2020.07.26

Intellij Freezing(인텔리J 프리징) 현상 해결

1. 원인 - IntelliJ를 사용하다 보면 가끔씩 IntelliJ가 멈추는 현상이 있는 경우가 있습니다. (주로 맥북에서 이러한 현상이 발생합니다.) - IntelliJ는 기본적으로 IntelliJ 폴더에 있는 Jre로 구동되는데 이 Jre가 문제가 있을 때 이러한 프리징 현상이 발생합니다. - 이럴 경우 보통 memory indicator 기능을 활성화해서 heap memory size 를 정리해주거나 memory 할당을 변경해줘도 이러한 현상은 해결되지 않습니다. 2. 해결 방법 - IntelliJ 프리징 현상은 IntelliJ가 구동될 때 사용되는 jre를 변경해주면 프리징 현상이 해결됩니다. - 먼저 IntelliJ의 JRE를 변경하기 위해 choose runtim 플러그인을 설치합니다. - ..

개발 2020.07.26