IT 35

[SQLD]데이터 모델링의 이해

[ 데이터 모델링의 이해 ] 모델의 세가지 관점1. 데이터 관점업무가 어떤 데이터와 관련이 있는지 또는 데이터 간의 관계는 무엇인지에 대해서 모델링하는 방법(what, data)2. 프로세스 관점업무가 실제 하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법(how, process)3. 데이터와 프로세스의 상관관점업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향을 받고 있는지 모델링하는 방법 데이터 모델링의 중요성1. 파급효과2. 복잡한 정보 요구사항의 간결한 표현3. 데이터 품질 데이터 모델링의 유의점1. 중복(Duplication)2. 비유연성(Inflexibility) : 데이터의 정의를 데이터의 사용 프로세스와 분리해야함3. 비일관성(Inconsistency) : 데이터와 데..

IT/SQLD 2017.06.16

[스프링/Spring]AOP 개념

AOP(Aspect Oriented Programming) : 관점 지향 프로그래밍 기능을 핵심 비지니스 로직과 공통 모듈로 구분하고, 핵심 로직에 영향을 미치지 않고 사이사이에 공통 모듈을 효과적으로 잘 끼워넣도록 하는 개발 방법이다. 공통모듈(트랜잭션/로그/보안/인증 처리 등)을 만든 후에 코드 밖에서 이 모듈을 비지니스 로직에 삽입하는 것이 바로 AOP 적인 개발이다. 코드 밖에서 설정된다는 것이 핵심이다. 자체적인 언어라기보다는 기존의 객체 지향 프로그래밍(Object Oriented Programming) 언어를 보완하는 확장 형태로 사용되고 있다. 자바에서 사용되는 AOP도구 중 대표적인 것으로 AspectJ, JBossAOP, SpringAOP가 존재한다. AOP가 사용되는 경우 1. 간단한..

IT/Programming 2017.06.10

스택, 큐, 데큐

스택(Stack) -스택은 마지막에 저장한 데이터를 가장 먼저 꺼내는 후입선출(LIFO:Last In First Out) 구조로 되어 있다. -입출력이 모두 한 방향에서 이루어지는 데이터 구조이다. -입출력이 가능한 쪽을 TOP, 바닥을 BOTTOM이라고 한다. -TOP은 출력 우선순위가 가장 높은 요소를 가리키고 있다. -입출력을 할 위치를 표시하기 위해서 TOP(포인터 사용)이 필요하다. -TOP을 통해서 데이터를 넣는 것을 PUSH라고 하고, 꺼내는 것을 POP이라고 한다. -스택을 구현하는 방법은 배열과 연결 리스트가 있다. 배열의 큰 단점은 처음 생성한 크기를 바꿀 수 없다는 점이다. 그래서 순차적으로 데이터를 추가하고 삭제하는 스택은 배열리스트(Array List)와 같은 배열기반의 컬렉션 클..

IT/Java 2017.05.25

Model2 MVC 패턴

MVC 패턴 MVC 패턴은 GUI 기반 Application 설계 패턴이다. 클라이언트의 요청을 받아 처리하여 응답하는 로직을 MVC 패턴은 Model, View, Controller로 나누어 소프트웨어를 개발하는 설계 방식이다. MODEL 모델은 2가지의 역할을 한다. 첫 번째는 비지니스로직(비지니스 서비스)인 일의 흐름(work flow)를 처리하고, 두 번째는 데이터베이스 관련 로직(DAO)을 처리한다. 프로그램 내부의 데이터 처리를 한다. 사용자가 입력한 데이터나 출력할 데이터를 다룬다. Java Beans VIEW 사용자들에게 보여지는 부분이다. 사용자 인터페이스 요소라고 할 수 있다. 모델이 처리한 데이터나 그 작업 결과를 사용자에게 화면으로 출력하여 보여준다. JSP CONTROLLER 사용..

IT/Java 2017.05.24

배열/배열리스트/연결리스트

배열(Array) - 배열은 데이터를 논리적 순서에 따라 순차적으로 데이터를 입력하며, 물리적 주소 또한 순차적이다. 메모리 할당이 연속적이어서 인덱스를 사용하면 원하는 데이터를 한번에 접근이 가능하기 데이터 접근 속도가 매우 빠르다. 하지만 메모리 관리면에서 공간 낭비가 심하다. 또한 배열은 데이터의 삽입/삭제에는 취약하다. 배열 특성상 데이터 삽입/삭제가 이루어지면 삽입/삭제가 이루어진 위치의 다음부터 모든 데이터의 위치를 변경해야 하기 때문이다.만약 배열 데이터의 수가 10000개라고 하고 삽입/삭제가 빈번하게 일어난다고 가정을 하고 생각을 하면 프로그램은 데이터 삽입/삭제 때마다 데이터의 위치를 바꾸는데만 많은 자원을 사용할 것이다. 이것은 매우 비효율적이다. 배열리스트(ArrayList) - 배..

IT/Java 2017.05.24

객체 지향 프로그래밍(Object-Oriented Programming)

자바 객체 지향 프로그래밍(Object-Oriented Programming) 1. 다형성생성하는 객체의 타입이 여러 형태로 나타나게 하여 다양한 기능을 이용할 수 있도록 하는 것이다.즉, 여러 개의 개별적인 클래스를 하나의 부모클래스 객체로 통합 관리하여 효율성을 높인다.public class Car{ Tire tire1 = new koreaTire(); Tire tire2 = new japanTire();}자바에서 다형성을 지원하는 기능으로 오버로딩과 오버라이딩이 있다. 오버로딩(중복정의)함수명은 같지만 매개변수의 자료형태를 달리 주어서 재정의 해주는 것이다.정적바인딩(실행할 메소드를 컴파일 하는 시간에 결정)public void test(int x)public void test(double x)te..

IT/Java 2017.05.23

정규화

정규화데이터베이스의 중복을 최소화하고 효율적으로 데이터를 저장하여 이상현상을 해결할 수 있는 작은 논리적 구조로 바꾸는 과정* 정규화가 되지 않은 논리적 구조로 구축된 데이터베이스의 연산 시에 발생하는 문제점삭제이상 : 한 개의 튜플을 삭제할 경우, 유지해야 하는 정보의 손실이 일어나는 현상삽입이상 : 정보를 테이블에 삽입할 때 불필요한 정보까지 삽입해야 하는 경우갱신이상 : 중복된 튜플들 중 일부만 갱신하여 정보의 불일치가 발생하는 현상 정규화의 목적1. 중복을 배제하여 삽입, 삭제, 갱인 이상의 발생을 방지한다.2. 간단한 관계 연산에 기초하여 검색을 효율적으로 할 수 있다.3. 데이터가 삽입될 때 릴레이션을 재구성할 필요성을 줄일 수 있다.4. 어떠한 릴레이션이라도 데이터베이스 내에서 표현이 가능하..

IT/Database 2017.05.23

List와 Map

List와 Map은 공통적으로 데이터 저장공간이다.하지만 데이터가 저장되는 구조가 다르다. List는 순차적으로 데이터를 저장한다. 그리고 값을 저장할 때 중복된 값을 저장할 수 있다. List list = new ArrayList();list.add("0번째");list.add("1번째"); for(String st : list){System.out.println(st);} 결과: 0번째 1번째 Map은 키와 값으로 저장된다. 키값만 다르다면 값은 중복해서 저장할 수 있다.Map은 빈 공간을 찾아서 저장하기 때문에 List보다는 데이터 저장속도가 느릴 수 있다.하지만 키값을 통해서 빠르게 데이터를 검색할 수 있다. Map map = new HashMap();map.put("key1", "key1-val..

IT/Java 2017.05.16

[토드/TOAD]토드 단축키

토드 사용할때 유용한 단축키들입니다. F1Toad 도움말 파일의 SQL Editor 부분이 표시됩니다.F2전체 화면 Editor와 Editor/Results 패널 표시 장치 사이를 전환합니다.F2전체 화면 그리드를 전환합니다.F3다음으로 일치하는 것을 찾습니다.F3이전에 일치하는 것을 찾습니다.F4팝업 창의 테이블, 뷰, 프로시저, 함수, 또는 패키지를 설명합니다.F5스크립트로 실행합니다.F6커서를 Editor와 Results 패널 사이로 전환합니다.F7모든 텍스트를 지웁니다.F8이전 SQL 문을 재호출합니다(SQL Statement Recall 창을 불러옵니다).F9실행문을 실행합니다.F9실행(구문 분석) 없이 실행문을 검사합니다.F9커서 위치에서 현재 실행문을 실행합니다.F10오른쪽 클릭 메뉴를 표시..

IT/Database 2017.05.10

[오라클/ORACLE]테이블 생성

CREATE TABLE TEST_TABLE ( 컬럼명 데이터타입 [DEFAULT 형식] ..., [CONSTRAINT PK명 PRIMARY KEY(컬럼명)]) 컬럼에 대한 제약조건이 있으면 CONSTRAINT를 이용하여 추가할 수 있다. -- TEST_TABLE 테이블 생성 CREATE TABLE TEST_TABLE ( TEST_ID NUMBER(10) NOT NULL, TEST_NM VARCHAR2(20), TEST_DATE DATE CONSTRAINT TEST_PK PRIMARY KEY(TEST_ID)) -- TEST_NM을 TEST_NAME으로 컬럼명 변경ALTER TABLE TEST_TABLE RENAME COLUMN TEST_NM TO TEST_NAME -- TEST_DATE 컬럼 삭제ALTER..

IT/Database 2017.05.08