전체 글
-
디자인 패턴 (2) - 옵저버 패턴언어/디자인패턴 2023. 9. 8. 15:34
1. 옵저버 패턴이란: 옵저버(관찰자)들이 관찰하고 있는 대상자의 상태가 변화할 때, 대상자가 관찰자에게 통지하고, 관찰자들은 알림을 받아 조치를 취하는 행동 패턴이다. 다른 디자인 패턴들과 다르게 일대다의 의존성을 가진다. 주로 분산 이벤트 핸들링에 사용된다. - 옵저버 패턴의 흐름 > 한개의 관찰 대상자(Subjet)와 여러개의 관찰자(Observer)로 이루어짐 > Subject의 상태가 바뀌면 옵저버에 통보 > 통보 받은 Observer는 해당 값을 처리 > Observer들은 Subject 그룹에서 추가/삭제 될 수 있다. EX) MVC패턴 Model과 View의 관계가 옵저버 패턴과 같다. 하나의 Model에 복수의 View가 대응 -* 발행자 코드 변경하지 않고 새 구독자 클래스를 도입 (O..
-
디자인패턴 (1) - 전략패턴언어 2023. 9. 7. 16:38
1. 전략 패턴이란? -> 객체가 할 수 있는 행위 분리 (인터페이스화) -> 행위에 대한 구현체를 생성하고, 구체적 행위 정의 (캡슐화) -> 추후 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략(구현체)을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말합니다. - 여기서 가장 중요한 두가지 과정은 아래와 같다. 1. 기존 행위 중 변화할 수 있는 특정 행위를 분리 -> 인페이스화 2. 행위에 대한 구현객체와 구상관계 만들기 > 알고리즘군을 정의하고 캡슐화해서 각각의 알고리즘군을 수정해서 쓸 수 있게 해준다. 전략패턴을 사용하면 클라이언트로부터 알고리즘을 분리해서 독립적으로 변경할 수 있다. 2. 오리 예제 - 오리를 생성해야하는데, 상황에 따라 오리가 가지는 특성이 다..
-
SQL 사용자,권한,롤 관리DataBase/Oracle 2023. 9. 5. 12:08
1. 사용자 관리 1.1 사용자란? - 오라클 DB로 새로운 서비스를 구축한다면, 테이블을 비롯한 여러 객체가 필요할 것이다. - 오라클 데이터 베이스에서는 데이터 베이스에 접속하여 데이터를 관리하는 계정을 사용자로 표현한다. - 사용자 관리가 필요한 이유는 여러 종류의 서비스를 한 사용자가 관리하기에는 너무 방대하다. 따라서 업무 분할 효율 보안 등등을 고려하여 업무에 따라 여러 사용다를 나눈다. - 오라클에서는 테이블,인덱스,뷰 등 여러 객체가 사용자 별로 생성되므로, 업무별 사용자를 생성한 후 각 사용자 업무에 맞는 데이터 구조를 만들어서 사용할 수 있다. 1.2 데이터베이스 스키마란? - 데이터베이스에서 데이터 간 관계, 데이터 구조, 제약 조건 등 데이터를 저장 및 관리하기 위해 정의한 데이터베..
-
SQL - 제약 조건DataBase/Oracle 2023. 9. 5. 11:34
1. 제약조건의 종류 1.1 제약조건이란? - 오라클에서 제약 조건은 테이블의 특정 열에 지정 - 제약 조건을 지정한 열에 제약 조건에 부합하지 않는 데이터를 저장할 수 없다. - 제약 조건 지정 방식에 따라 기존 데이터의 수정 혹은 삭제 가능 여부도 영향을 받는다. NOT NULL 지정한 열에 NULL 허용 X (데이터 중복 허용) UNIQUE 지정한 열이 유일한 값을 가져야 합니다. (중복될 수 없다) NULL 가능 PRIMARY KEY 지정한 열이 유일한 값, NULL x, 테이블에 하나만 지정 FOREIGN KEY 다른 테이블의 열을 참조하여 존재하는 값만 입력할 수 있다. CHECK 설정한 조건식을 만족하는 데이터만 입력 가능 * 데이터 무결성이란? 데이터베이스에 저장되는 데이터의 정확성과 일관..
-
스프링 MVC (1) 웹 애플리케이션 이해Web/Spring 2023. 9. 4. 23:14
1. 웹 서버, 웹 애플리케이션 서버 1.1 웹 - HTTP 기반 - HTTP 메시지를 통해 많은 것을 전송 (HTML,음성,영상,파일,JSON 등등) - 거의 모든 형태의 데이터를 전송할 수 있음 - 서버 간 데이터를 주고 받을 때에도 HTTP를 사용한다. 1.2 웹 서버 VS 웹 애플리케이션 서버 웹 서버: - HTTP 기반으로 동작, 정적 리소스 제공, 기타 부가기능 - 정적 리소스란 HTML,CSS,JS,이미지 영상 등 - 대표적인 웹 서버는 APACHE이다. 웹 애플리케이션 서버: - HTTP 기반 동작, 웹서버 기능 포함 - 프로그램 코드를 실행해서 애플리케이션 로직 수행 (동적 HTML, HTTP API(JSON), 서블릿,JSP, 스프링 MVC) - 톰캣이 대표적인 웹 애플리케이션 서버 -..
-
SQL - 데이터 정의어 (DDL)DataBase/Oracle 2023. 9. 4. 15:22
1. 객체를 생성, 변경, 삭제하는 데이터 정의어 - 데이터 정의어는 데이터 베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성 변경 삭제와 관련 기능 수행 1.1 데이터 정의 사용시 유의점 - 데이터 정의어 실행시 자동으로 COMMIT되기 때문에 이전에 사용한 조작어가 영구 반영된다. - 따라서 사용시 주의를 기울여야 한다. CREATE: 객체 생성 ALTER : 객체 변경 DROP : 객체 삭제 2. 테이블을 생성하는 CREATE - CREATE는 테이블 뿐 아니라 여러 객체를 생성할 수 있다. CREATE TABLE 소유계정.테이블이름( 열이름 열자료형, 열이름 열자료형, 열이름 열자료형 ) - 소유계정을 생략하고 테이블을 생성하면, 현재 접속한 계정 소유의 테이블이 만들어진다. * ..
-
SQL - 트랜잭션 제어와 세션DataBase/Oracle 2023. 9. 4. 12:51
1. 하나의 단위로 데이터를 처리하는 트랜잭션 1.1 트랜잭션이란? - 더 이상 분할할 수 없는 최소 수행 단위를 뜻한다. - 하나의 작업 또는 밀접하게 연관된 작업을 수행하기 위해 한 개 이상의 데이터 조작어로 이루어진다. - 트랜잭션은 하나의 트랜잭션 내에 있는 여러 명령어를 한 번에 수행하여 작업 완료 or 모든 작업 취소한다. (이를 트랜잭션의 ALL OR NOTHING 원자성이라고도함) - 이러한 트랜잭션을 제어하는 명령어를 TCL이라고 한다. - 트랜잭션은 SCOTT같은 데이터베이스 계정을 통해 접속하는 동시에 실행된다. - 트랜잭션이 종료되기 전까지 여러 SQL문을 실행하고 트랜잭션 제어하는 TCL을 실행할 때 기존 트랜잭션이 끝난다. 2. 트랜잭션을 제어하는 명령어 - 하나의 트랜잭션에 묶..
-
SQL - DMLDataBase/Oracle 2023. 9. 1. 16:47
- INSERT,UPDATE,DELETE 1. 테이블 데이터 추가 1.1 테이블 생성 CREATE TABLE DEPT_TEMP AS SELECT * FROM DEPT; DROP TABLE 테이블명; CREATE TABLE EMP_TEMP AS SELECT * FROM EMP WHERE 11; -- 급하게 테이블 떠야할때 (데이터 뺴고 틀만) - > 테이블 복사 및 삭제 1.2 INSERT INSERT INTO 테이블명 [(열,열,열)] VALUES (데이터,데이터,데이터) - 지정한 열 개수와 데이터 개수가 일치 x , 자료형 일치x, 열길이 초과시 입력 x - 열지정을 생략하면, 모든 열에 데이터를 입력해줘야함 - 열을 지정하면 , 열에 맞는 데이터 넣으면됨 - null입력은 명시적으로 null을 입력..