NL Join선행 테이블 읽음 -> 후행 테이블 읽음 -> 조인랜덤 방식으로 데이터 액세스따라서, 처리 범위가 좁은 것이 유리 = 행의 수가 적은 것을 선행 테이블로 하는 것이 유리Sort Merge Join스캔 방식으로 데이터 읽음넓은 범위 데이터 처리 시 이용but 데이터가 많을 때 임시 디스크를 사용하기 때문에 성능이 떨어질 수 있다. (정렬을 하기 때문)대량 데이터의 경우 성능면에서는 Hash Join이 낫다.but 동등 조인 뿐 아니라 비동등 조인도 되는 것은 장점앞 단계 수행 시 정렬을 이미 한 경우 조인을 위한 정렬을 하지 않기도 한다.조인 인덱스가 없어도 사용 가능하다.Hash Join 해쉬 함수를 수행, 동일한 해쉬 값을 갖는 것들 중 실제 값이 같은지 비교하며 조인 수행랜덤 하지 않으면서 정렬 부담도 없음 (NL 조인, Sort Merge 조인의 단점 보완)동등 조인에서만 사용할 수 있다. ('=' 사용하는 조인만 가능)결과 행이 적은 테이블을 선행 테이블로 사용하는 것이 좋다.(해쉬 테이블의 크기가 메모리 적재 가능 크기보다 커지면 임시 디스크에 저장하기 때문)선행 테이블 = build input후행 테이블 = prove inputB-트리 인덱스 브랜치 블록, 리프 블록으로 구성루트 블록 = 브랜치 블록에서 가장 상위에 있는 블록브랜치 블록 : 분기 목적. 포인터를 갖고 있다.리프 블록 : 트리의 가장 아래 단계. 레코드 식별자로 구성. 양방향 링크가 있음. 오름 차순, 내림 차순 검색 모두 가능일치 검색, 범위 검색에 모두 적합트리 기반 인덱스 : B-트리 인덱스, 비트맵 인덱스, 리버스 키 인덱스, 함수기반 인덱스SQL Server의 클러스터형 인덱스인덱스의 리프 페이지 = 데이터 페이지사전에 비유클러스터형 인덱스는 테이블 당 한개만 생성 가능
<1회>비정규화= 반정규화 = 역정규화비정규화는 데이터를 중복시키거나 그룹핑함으로써 데이터베이스의 성능을 향상시키는 기법이다. 비정규화를 하는 유일한 목적은 조회 성능을 향상시키기 위해서다. 비정규화를 간단하게 설명하면 데이터 중복을 허용하는 것이다. 예를 들어, 둘 이상의 릴레이션을 조인하는 결과를 빈번하게 이용하는 경우, 비정규화를 통해 시간을 단축할 수 있다.XMLHTML의 단점을 보완한 인터넷 언어로, 다목적 마크업 언어다. 웹 상에서 구조화된 문서를 상호교환 할 수 있도록 설계된 웹 표준 문서 포맷이다. 사용자가 새로운 태그와 속성을 정의할 수 있는 확장성을 가진다. 유니코드를 사용해 전 세계 모든 문자를 처리할 수 있고, 시스템에 독립적이다.살충제 패러독스 (Pesticide paradox)동일한 테스트케이스로 동일한 절차를 반복해서 수행하면, 새로운 결함을 찾을 수 없다는 것을 의미한다.모듈 (Module)모듈화 소프트웨어 설계방법에서는 모듈의 독립성을 높이는 것이 좋은 설계 방향이다.모듈의 독립성을 높이기 위해서는 각 모듈 간의 관련성을 나타내는 결합도는 낮추고, 모듈 안의 요소들이 서로 관련된 정도를 나타내는 응집도는 높이는 것이 바람직하다.Fan-In내 위로 있는 (나에게 영향을 미치는) 상위 모듈 수최적화를 위해서는 Fan-In은 높이고 Fan-out은 낮춰야 한다.FanOut내 아래에 있는 (내가 영향을 주는) 하위 모듈 수최적화를 위해서는 Fan-In은 높이고 Fan-out은 낮춰야 한다.JSON데이터를 저장하거나 전송할 때 사용하는 경량의 데이터 교환 방식이다.XML을 대체하여 데이터를 전송할 때 많이 사용한다. key, value가 쌍으로 존재하며, 태그로 표현하기 보다는 중괄호 같은 형식으로 하고, 쉼표(,)로 구분한다.애플리케이션성능측정지표애플리케이션 성능이란 해당 애플리케이션이 최소의 자원을 사용하여 얼마나 빨리, 많은 기능을 수행하는지를 육안 또는 도구를 통해 점검하는 것이다. 지표는 처리량, 응답시간, 경과시간(또는 반환시간), 자원사용율 이다.
#디자인패턴좋은 코드를 설계하기 위한 설계 디자인 방법론이다. 코드가 명확하고 단순하며 재사용성이 높고 유지보수가 쉬우며 리소스의 낭비가 거의 없다는 특징이 있다.#생성(Creation)패턴: 객체의 생성 과정에 관여하는 패턴-> #Singleton패턴: 클래스의 인스턴스가 하나임을 보장-> #Abstract Factory패턴: 구체적인 클래스를 지정하지 않고, 독립적인 객체들을 생성하기 위한 인터페이스를 제공-> #Builder패턴: 객체의 생성 과정과 표현 과정을 분리. 동일한 생성 과정에서 다양한 표현을 생성-> #Factory Method패턴: 객체를 생성하는 인터페이스를 정의하지만, 인스턴스를 만드는 클래스는 서브 클래스가 결정하는 패턴. Virtual-Contstructor 패턴이라고도 한다.-> #prototype패턴: 원형이 되는 예시물을 이용하고, 새로운 객체를 이 원형을 복사함으로써 생성#구조(Structral)패턴: 클래스나 객체 합성에 대한 패턴-> #Adaptor/Wrapper패턴: 클래스 인터페이스를 변환하는 패턴. 호환성이 없는 인터페이스를 가진 클래스도 함께 작성할 수 있도록-> #Bridge패턴: 구현부에 추상층을 분리하여 각자 독립적으로 변형할 수 있도록 하는 패턴->#Composite패턴: 객체들의 관계를 트리 구조로 구성, 부분-전체의 계층을 표현하는 패턴-> #Decorator패턴: 주어진 상황 및 용도에 따라 객체에 덧붙이는 패턴-> #Facade패턴: 서브시스템에 있는 인터페이스 집합에 통합된 하나의 인터페이스를 제공하는 패턴->#Proxy패턴: 어떤 다른 객체로 접근하는 것을 통제하기 위해 그 객체의 매니저 또는 자리 채움자를 제공하는 패턴#행동(Behavioral)패턴: 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법에 대한 패턴-> #Chain of Responsibility 패턴: 요청을 처리하는 기회를 하나 이상의 객체에 부여하여, 요청을 보내는 쪽과 받는 쪽의 결합을 피하는 패턴.-> #Comman데이터를 처리할 수 있어야 한다.- 성능 : 주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다.- 견고함 : 유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않도록 해야 한다.#배치스케줄러일괄처리를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구. ex) Spring Batch, Quartz#TCP프로토콜 ; Transmission Control Protocol- OSI 7 Layer 중 4계층인 전송계층에 속하는 중요 프로토콜. 네크워크 망에 연결된 컴퓨터 프로그램 간 데이터를 순서대로, 에러없이 교환할 수 있게 하는 역할이다.- 연결 지향 프로토콜이다. 논리적인 연결 통로를 통해 데이터를 주고받음으로써 데이터의 전송 순서를 보장해준다.- 스트림 기반의 전송방식을 사용한다. 데이터를 임의의 크기로 나누어 연속해서 전송한다.- 신뢰할 수 있는 프로토콜이다.- 상대방이 받을 수 있을 만큼만 데이터를 효율적으로 전송하는 흐름제어를 한다.- 오류제어를 한다. 데이터의 오류나 누락 없이 안전한 전송을 보장. 오류 또는 누락 발생 시 재전송 한다.- 혼잡제어를 한다. 데이터에 손실이 발생할 정도로 네트워크가 혼잡하면, 전송량을 조절한다.응집도 유형- #기능적응집도 : 모듈 내에서 모든 기능이 단 하나의 목적을 수행- #순차적응집도 : 모듈 내에서 한 활동의 출력값을 다른 활동의 입력값으로 수행- #통신적응집도 : 모듈 내에서 입력과 출력을 사용하여 다른 기능 수행- #절차적응집도 : 모듈 내부 구성 요소들이 순차적으로 기능을 수행- #시간적응집도 : 모듈 내에서 특정 시간에 처리되어야 하는 활동- #논리적응집도 : 모듈 내에서 매개변수에 따라 처리- #우연적응집도 : 모듈 내부 구성요소들이 서로 연관 없음결합도 유형- #자료결합도(data) : 파라미터를 통해서만 모듈 간 상호작용- #스탬프결합도 : 배열, 객체, 구조체 등으로 모듈 간 상호작용- #제어결합도(co ~, 그룹함수 (속성명)AS 별칭 ~FROM 테이블명GROUP BY 속성명HAVING 조건ORDER BY 속성명 ASC / DESC;COUNT (속성명)SUM (속성명)AVG (속성명)MAX (속성명)MIN (속성명)STDDEV (속성명) -- 그룹별 표준편차VARIANCE (속성명) -- 그룹별분산ROLLUP (속성명, 속성명, ...) -- 그룹별소계CUBE (속성명) -- 모든 조합의 그룹 별 소계[Window 함수]ROW_NUMBER() -- 일련번호RANK() -- 순위, 공동순위 반영DENSE_RANK() -- 공동순위는 무시한 순위 반영+ OVER ( PARTITION BY 기준속성ORDER BY 상여금 DESC ) AS NO#SQLStructured Query Language#프로시저 (Procedure)절차형 SQL을 활용하여 특정기능을 수행하는 트랜잭션 언어이다. 호출을 통해 실행되어 미리 저장해 놓은 SQL 작업을 수행한다. 프로시저를 만들어 데이터베이스에 저장하면 여러 프로그램에서 호출하여 사용할 수 있다. 데이터베이스에 저장되어 수행되기 때문에 스토어드(stored) 프로시저라고 불린다. 시스템의 일일 마감, 일괄 작업 (batch) 등에 주로 사용한다.DECLARE -- 프로시저의 명칭, 변수, 인수, 데이터타입 선언BEGINCONTROL -- 조건문 or 반복문 삽입SQL -- DML 또는 DCL 삽입EXCEPTION -- 예외처리방법 정의TRANSACTION -- 수행된 작업 DB적용 여부END;예) 프로시저 생성CREATE OR REPLACE PROCEDURE emp_change (사원번호 IN INT)ISBEGINUPDATE 급여 SET 지급방식 = 'S'WHERE 사원번호 = 사원번호aEXCEPTION WHEN PROGRAM_ERRORTHEN ROLLBACK;COMMIT; END;프로시저 실행EXECUTE 프로시저명;EXEC 프로시저명;CALL 프로시저명;예) 사원번호 32를 인수로 하는 프로시저 실행EXECUTE emp_c한 것[프레임워크의 특징]캡슐화를 통한 모듈화. 재사용성. 다형성을 통한 확장성. 제어의 역흐름 (제어의 권한을 프레임워크에 넘긴 것)[DTO/VO 구현]데이터 교환을 위해 사용할 객체를 만드는 과정. 변수 및 객체를 자료형에 알맞게 생선한다. 변수와 데이터를 저장하고 반환하는 메소드만 작성한다.[SQL구현]데이터의 삽입, 변경, 삭제 등의 작업을 수행할 SQL문을 작성한다.[DAO의 구현]데이터베이스에 접근하고, SQL을 이용해 데이터를 실제로 조작하는 코드를 구현하는 과정이다.[Service구현]사용자의 요청에 응답하는 로직을 구현하는 과정이다.[Controller구현]사용자의 요청에 적절한 서비스를 호출하여 그 결과를 사용자에게 반환하는 코드를 구현하는 것이다.#배치프로그램사용자와 상호작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것이다. 특정시간-정기배치, 특정조건-이벤트성배치, 사용자요청시-온디맨드배치[배치 프로그램의 필수 요소]대용량 데이터, 자동화(사용자의 개입이 없어야), 견고성(잘못된 데이터나 중복으로 중단되는 일이 없도록), 안정성/신뢰성(오류 발생의 위치와 시간을 추적 가능하도록), 성능(다른 프로그램의 수행을 방해하지 않으며 지정된 시간 내에 가능하도록)#배치스케줄러 (=잡 스케줄러)일괄처리 작업을 지원해주는 도구. ex) 스프링배치, Quartz- 스프링배치- JOB : 수행할 작업- Job Launcher : 인터페이스- step : 제어정보- job repository : 제어 정보를 포함한 작업 실행을 위한 모든 정보- Quartz- job : 수행할 작업- scheduler : 실행환경- job detail : job의 상세정보- tigger : job 실행 스케줄 정의- Cron (리눅스)- e: 편집기 호출- l : 작업목록 출력- r : 작업 삭제대표사진 삭제사진 설명을 입력하세요.- 운영 체제(Operating System)의 개념#운영체제 :컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용ddress)인터넷에 연결된 컴퓨터 자원을 구분하기 위한 고유 주소다. 8비트 씩 4부분으로 총 32비트다.- A class국가나 대형 통신망. 1~126 (0, 127은 예약된 주소). 2의 24 제곱 개 호스트전송중...사진 설명을 입력하세요.- B class중대형 통신망. 128~191. 2의 16제곱 개 호스트전송중...사진 설명을 입력하세요.- C class소규모 통신망. 192~223. 2의 8제곱 = 256개 호스트전송중...사진 설명을 입력하세요.- D class멀티 캐스트용(다대다 데이터 통신. 인터넷, 화상회의 등). 224~239- E class실험적 주소, 공유하지 않는다.#IPv6 (Internet Protocol Version6)인증성(사용자 식별, 접근권한), 기밀성(인증된 사용자만 허용), 데이터무결성(인가된 사용자만 수정가능)을 지원한다. 주소의 확장성, 융통성, 연동성이 뛰어나며 실시간 흐름제어로 향상된 멀티미디어 기능을 수행한다. Traffic class(우선순위), Flow label을 이용한다. 등급별, 서비스별 패킷을 구분한다. 16비트 씩 8부분, 총 128비트이다.- 유니캐스트 = 1:1 통신 (단일송신 : 단일수신)- 멀티캐스트 = 1:N 통신 (딴일송신 : 다중수신)- 애니캐스트 = 단일 송신자와 가장 가까이 있는 단일 수신자#도메인네임호트스컴퓨터이름 + 소속기관이름 + 소속기관종류 + 국가명#DNS (Domain Name System)문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환한 것#OSI (Open System Interconnection) 참조 모델ISO 에서 제안한 통신 규약- 하위계층(1~3) : 물리계층->데이터링크계층->네트워크계층- 상위계층(4~7) : 전송계층->세션계층->표현계층->응용계층#PDU (Protocol Data Unit)동일 계층 간 교환되는 정보의 단위- 세션/표현/응용 계층 : 메시지- 전송 계층 : 세그먼트- 네트워크 계층 : 패킷- 데이터링크 계층 : 프이다.
■ WHAT. 최고의 지식근로자가 되고 싶다면 , 목표달성능력을 키워야 합니다 . Q . 지식근로자는 육체노동자와 어떻게 다른가요 ? 지식근로자는 선진 경제 사회가 경쟁력을 확보하고 유지하기 위한 필수 요소로서 , 기존 육체노동자를 평가하던 ‘ 능률 ( 생산량 / 시간 )’ 척도로는 평가하기 어려운 생산요소 입니다 . ‘ 능률 ’ 로 평가 가능한가 ? ( 생산량 / 시간 ) 육체노동 자 지식근로자 과거 산업 사회 선진 경제 사회■ WHY. 목표달성능력은 곧 지식근로자의 생산성 ( 일을 올바로 하는 능력 ) 입니다 . Q . 왜 최고의 지식근로자가 되기 위해 목표달성 능력이 중요한가요 ? A. 육체노동자와 달리 지식근로자는 ‘ 주어진 일의 수행 ’ 이 아닌 , 올바른 목표를 세우고 이를 달성하는 ‘ 목표달성능력 ’ 을 갖추어야 합니다 . 이는 곧 생산성으로 정의됩니다 .■ HOW. 5 가지 ( 시간 , 목표 , 강점 , 우선순위 ) 방안으 로 목표달성능력 향상 가능합니다 . Q . 목표달성능력을 키우는 5 가지 방안은 무엇인가요 ? A . 목표달성능력은 ①시간관리 , ②목표관리 , ③강점활용 , ④우선순위결정 , ⑤의사결정 의 5 가지 방안을 활용하여 향상 가능합니다 . “ 체계적인 관리 ▶ 효율적인 시간활용 ” “ 조직의 성과에 공헌할 수 있는 목표 ” “ 자신 , 주위사람의 강점활용 ▶ 높은 성과 창출 ” “ 우선순위에 따른 자원투자 ” “ 명확한 문제규정 ▶ 올바른 의사결정 ” * 목표달성 5 WAYS■ 적 용 . 5 가지 방안의 응용으로 입사 이후 성과는 물론 , 사람까지 얻 겠습니다 . Q . 5 가지 방안은 지식근로자로서 생산성 향상에만 활용 가능한가요 ? 아닙니다 . 5 가지 방안의 내부 적용으로 자기경영을 선행한 후 , 이를 외부로 응용하면 함께 지식근로하는 동료들의 마음을 얻어 사람까지 얻을 수 있습니다 . 2015.8.18~ “ 효율적 시간활용 ” ▶ not only 내 과업 but also 동료 / 후배 돕기 “ 조직성과 공헌하는 목표 ” ▶ 구성원은 모두 한 목표 향해감을 잊지 않기 “ 자신 , 주위사람 강점활용 ” ▶ 동료의 강점도 발현될 수 있는 방향으로 내 강점 발현하기 “ 우선순위에 따른 자원투자 ” ▶ 합리적인 일 처리로 고객 , 선배 , 동료 , 후배 마음 얻기 “ 올바른 규정 결정 ” ▶ 모두를 납득하게 하는 의사결정으로 신뢰 얻기 * 입사 후 , 5 WAYS{nameOfApplication=Show}
■ WHAT. 성공을 원한다면 , 인식 체계부터 ‘ 성공 패러다임 ’ 으로 바꿔야 합니다 . Q . 성공 패러다임은 무엇인가요 ? 사회적으로 성공한 사람들이 공통적으로 갖고 있는 ‘ 세상을 보는 방식 ’ 을 말합니다 . “ 아무도 당신의 동의 없이 당신에게 고통을 가하지 못한다 .” “ 우리가 주지 않는다면 그들은 결코 우리의 자존을 빼앗을 수 없다 .”■ WHY. 패러다임을 바꿔야 내면부터 외면까지 궁극적인 변화가 가능합니다 . Q . 왜 패러다임을 바꿔야 성공할 수 있나요 ? 우리가 세상을 보는 방식인 패러다임이 곧 우리가 사고하고 행동하는 방식의 근원이 되기 때문입니다 . 즉 , 성공 패러다임 전환은 우리 삶을 성공하게 만드는 원동력이 됩니다 . 코페르니쿠스 뉴턴 New Paradigm *New World New Paradigm *New Me 성공한 나■ HOW. 7 가지 습관으로 사고 / 행동을 바꿔 성공 패러다임으로 전환할 수 있 습니다 . Q . 성공 패러다임으로 전환하게 하는 7 가지 습관은 무엇인가요 ? 우리의 품성은 습관의 복합체로 , 7 가지 습관을 통해 성공 패러다임으로 전환할 수 있습니다 . 7 가지 습관은 ①주도적인 삶 , ②끝을 생각한 시작 , ③소중한 것을 먼저 , ④ Win-Win, ⑤ 먼저 이해하고 이해시키기 , ⑥시너지 , ⑦끊임없는 쇄신 에 관한 것입니다 . * 성공을 향한 7 가지 습관 상호의존성 의존성 독립성 대인관계의 승리 개인의 승리 3. 소중한 것을 먼저 하라 . 2. 끝을 시작하며 시작하라 . 1. 자신의 삶을 주도하라 . 6. 시너지를 내라 . 5. 먼저 이해하고 이해시켜라 . 4. Win-Win 을 생각하라 . 7. 끊임없이 쇄신하라 .■ 적 용 . 7 가지 습관으로 연수기간 동안 저의 패러다임을 형성하겠습니다 . Q . 7 가지 습관은 꼭 ‘ 사회적 성공 ’ 이라는 큰 목표에만 유효한가요 ? 아닙니다 . 지금 당장 시 작 할 수 있습니다 . 저는 이번 연수 기간 동안 7 가지 습관을 적용해 직장에서 ‘ 꾸준히 - 제대로 - 즐겁게 ’ 성장하는 패러다임으로 인식을 전환하겠습니다 . * 꾸준히 - 제대로 - 즐겁게 7 가지 습관 상호의존성 의존성 독립성 함께 하고 싶은 동료 E.LAND ACE 3. 소중한 것을 먼저 하라 . 2. 끝을 시작하며 시작하라 . 1. 자신의 삶을 주도하라 . 6. 시너지를 내라 . 5. 먼저 이해하고 이해시켜라 . 4. Win-Win 을 생각하라 . 7. 끊임없이 쇄신하라 .{nameOfApplication=Show}