SMALL

이상현상

데이터베이스의 설계가 잘못되었을 시에, 데이터의 중복이 발생하여 문제가 생기는 것을 이상현상이라고 한다.


이상현상에는 3개로 구분되어진다.

  • 삽입 이상 : 데이터 삽입 시 불필요한 데이터도 같이 삽입해야하는 문제
  • 갱신 이상 : 데이터 갱신 시 일관성 유지가 안되는 현상
  • 삭제 이상 : 데이터 삭제 시 필요한 데이터까지 연쇄 삭제 되는 현상

학번(PK)

과목(PK)

이름

생년월일

주소

20120001

자료구조

박무일

930201

대구

20140001

자바

김제리

950501

대전


삽입 이상

 학번

과목

이름

생년월일

주소

20120001

자료구조

박무일

930201

대구

20140001

자바

김제리

950501

대전

20150001

null

이현도

960601

인천


이현도라는 신규 데이터를 삽입하려는데 수강한 과목이 없는 상태라 null을 넣었으나, 과목은 pk이기에 not null이다.

그래서 이현도를 저장하기 위해선 임의의 값(불필요한 값)을 입력해야 넣을 수 있음. 이게 삽입 이상

갱신 이상

 학번

과목

이름

생년월일

주소

20120001

자료구조

박무일

930201

대구

20140001

자바

김제리

950501

대전

20120001

파이썬

박무일

930201

서울


파이썬을 수강한 박무일의 주소를 서울로 변경을 하였는데,

자료구조를 수강한 박무일의 주소 값과 다르게 된다.

위와 같이 일관성이 맞지 않는 것을 갱신 이상


삭제 이상

 학번

과목

이름

생년월일

주소

20120001

자료구조

박무일

930201

대구

20140001

자바

김제리

950501

대전

20120001

파이썬

박무일

930201

대구


자바를 수강한 김제리의 데이터를 삭제할 시에는 김제리의 생년월일 주소도 삭제되어 찾을수 없게된다. 이게 삭제 이상


위와 같은 이상 현상을 없애기 위해 정규화를 하게 된다.

LIST

'전공 > 데이터베이스' 카테고리의 다른 글

전체 백업, 차등 백업, 증분 백업  (3) 2020.09.13
GRANT 구문  (0) 2020.09.08
ETL  (0) 2020.01.30
DROP TABLE과 TRUNCATE TABLE  (0) 2018.07.17
CTAS(Create Table As Select)  (0) 2018.07.17
SMALL

프로시저?

프로시저는 PL/SQL로 만들어지며, 자주 사용하는 sql를 프로시저로 만들어두면 필요할때마다 호출해서 사용할 수 있게한다. 예제로 알아보자.

프로시저 생성


프로시저 실행

만들어진 프로시저를 아래와 같이 실행하면된다.

EXEC PLAYER_PROC('3','꼬물이');



LIST
SMALL

오피니언 마이닝

오피니언 마이닝은 사람이 특정 제품 및 서비스에 대해 긍정적인지 부정적인지를 분석하여 실시간 변화를 확인하는 것이다.


텍스트 마이닝의 대표적인 예로 파이썬이나 R을 사용하여 정형 데이터 및 비정형 데이터의 웹 문서로 분석을 한다.


활용 예시

  • 신문, SNS의 여론을 파악 가능
  • 기업 제품 설문조사를 통해 마케팅 전략에 활용 가능
  • 2012 미국 오바마 대선에서 활용하였음



LIST

'전공 > 신기술' 카테고리의 다른 글

블록체인 클라우드 서비스(BaaS)  (0) 2020.09.14
오픈뱅킹  (0) 2020.09.14
인슈어테크  (0) 2020.07.05
DID(Decentralized Identity)  (0) 2020.06.25
다크웹(Dark Web)  (0) 2020.06.24
SMALL

워크쓰루, 인스펙션, 공식검토에 대해 간단하게 정의를 알아보고, 비교를 통해 숙지하기


워크쓰루

  • 개발 산출물을 작성하는 중에 산출물을 검토하고 결함을 찾아내는 기법
  • 주로 작성자의 요청에 의해 이루어지며, 중간 산출물을 대상으로 함
  • 후속작업에 대한 검사가 생각될 수 있음
  • 인스펙션에 비해 비형식적인 동료 검토 방법

인스펙션

  • 저자 외 다른 전문가가 검사하는 가장 공식적인 리뷰 기법
  • 문서화된 절차를 기반
  • 소프트웨어 명세를 만족하는지 검증
  • 코딩 전까지는 소요 인력 2배 이상 필요하나 추후 인력 감소로 인해 결과적 품질 비용 감소, 개발 기간 단축
  • 인스펙션 구성원 중 경영자는 제외(표면적 오류만 찾아내려는 경향 발생)

공식 검토

  • 소프트웨어 각 개발 단계의 종료시점에서 산출물에 대해 수행되어지는 정적 테스팅 기법
  • 검토 결과에 따라 다음 단계로 진행할지 여부 결정
  • 직급 높은 참가자로 팀 구성

검토 기법 비교


검토시점

검토대상

진행주체

검토규정

검토산출물

후속처리

워크쓰루

개발 산출물 작성 중

중간 산출물

산출물 작성자

없음



인스펙션

개발 산출물 작성 완료시

개발 산출물 완성본

훈련된 리더

있음

인스펙션 결과서, 결함 리포트

검토 재작업 후속처리 확인 프로세스

공식검

각 개발 단계 종료시점

단계별 전체 산출물

훈련된 리더

있음

공식검토 결과서, 후속 작업 계획

승인 결과에 따른 후속처리


LIST

'전공 > 테스트' 카테고리의 다른 글

블랙박스와 화이트박스  (0) 2021.06.11
CSTS요약집  (17) 2019.08.23
SMALL

인슈어테크?

인슈어테크는 보험(Insurance)과 기술(Technology)의 합성어로, it 기술을 활용하여 보험 업무를 자동화 하는 기술을 의미.

 

전 세계적으로 빅데이터 분석과 AI 기술을 활용한 인슈어 테크를 알아보자.


인슈어테크 활용 예시

  • 챗봇의 발전으로 24시간 질의응답이 가능
  • 소비자에게 개인 맞춤형 상품을 추천
  • 보험 신청, 청구 등 복잡한 절차를 자동으로 처리가능 (미국의 레모네이드의 보험청구 담당하는 짐(Jim)은 보험 계약 1분30초, 청구는 3분 소요)
  • 차에 장치를 장착하여, 운전습관을 분석하여 보험료 할인 서비스


우리나라는 얼마전 까지는 개인정보보호법의 규제가 있어 활용에 제한이 있었지만, 데이터 3법이 개정됨으로써 많은 기업들이 활용할 것 같음.


LIST

'전공 > 신기술' 카테고리의 다른 글

오픈뱅킹  (0) 2020.09.14
오피니언 마이닝  (0) 2020.07.06
DID(Decentralized Identity)  (0) 2020.06.25
다크웹(Dark Web)  (0) 2020.06.24
데이터 3법  (0) 2020.06.21
SMALL

자바는 다중 상속은 허용하지 않는다.


다중 상속을 허용하면 부모 객체가 누구인지 혼동이 온다. 이것을 다이아몬드 문제라고 말한다.



class 회장 {

public void execute() {

System.out.println("회장");

};

};


class 회장의왼팔 extends 회장{


@override

public void execute() {

System.out.println("회장의왼팔");

};

};


class 회장의오른팔 extends 회장{


@override

public void execute() {

System.out.println("회장의오른팔");

};

};


class 부하직원 extends 회장의왼팔, 회장의오른팔 {


@override

public void execute() {

super.execute(); (?)

};

};

위의 사진과 코드를 보면 부하직원이 왼팔과 오른팔을 상속 받으면 누구의 말을 들을지 모른다.. 


하지만 인터페이스는 다중 상속이 되는걸 볼수 있다.

왜냐하면,, 인터페이스는 선언만 하고 구현을 하지 않으니 가능하다..


ps. 자바8이상에서는 인터페이스에서 default로 매서드를 선언하게 된다면 구현을 할 수있게 된다. 그렇게된다면 위와 같은 오류가 생기게 된다.



LIST

'전공 > JAVA' 카테고리의 다른 글

String, StringBuffer, StringBuilder 차이  (0) 2020.07.02
JNI  (0) 2020.06.24
try-with-resource  (0) 2018.07.08
컬렉션  (0) 2018.05.13
JVM  (0) 2018.05.02
SMALL

JAVA 코딩을 하다보면 String과 StringBuffer을 많이 보게 된다.


String은 우선 불변이다. 그래서 값의 변동이 없을때 사용하면 좋다. 이게 무슨 의미냐면


String a = "NOIL";

a = "PARKNOIL";



위의 그림을 보면 기존의 PARK는 사용되지 않고 메모리 낭비가 되고 GC처리대상이 된다.


하지만,


StringBuilder a = new StringBuilder("PARK");

a.append("NOIL");





위의 그림을 보면 메모리 낭비가 없음. 


StringBuffer랑 StringBuilder의 가장 큰 차이는 동기화를 지원하느냐이다. 

StringBuffer은 동기화 지원하기에 멀티 쓰레드 환경에 사용하면 적절, 하지만 싱글 쓰레드 환경 및 동기화가 필요없다면 StringBuilder을 사용하는게 성능적으로 더 좋다.


그래서 보통 싱글 어플리케이션 개발을 할 때는 StringBuilder을 사용하는게 좋고, 습관화 하자..

















LIST

'전공 > JAVA' 카테고리의 다른 글

다중상속 문제점  (0) 2020.07.03
JNI  (0) 2020.06.24
try-with-resource  (0) 2018.07.08
컬렉션  (0) 2018.05.13
JVM  (0) 2018.05.02
SMALL

네트워크 설정에 대해서는 잘 안다고 생각하였다.

하지만 착각이었다. 막상 무엇을 의미하는지 연필로 적어보니 잘 정리가 되어있지 않아, 지금 정리를 해본다.



1) IP 주소

  - IP 주소는 인터넷에서 PC들 끼리 통신을 할 때 구분할수 있는 고유 식별 번호를 의미한다.


2) 서브넷 마스크

  - 서브넷 마스크는 IP주소의 호스트 부분이랑 네트워크 부분을 구분짓게 해준다.

  - 전화번호로 치면 042,053이런 것들이 네트워크 ID, 뒤의 나머지 숫자들은 호스트 ID에 해당한다고 보면 된다.


3) 기본 게이트웨이

  - 내부 네트워크에선 라우터 없어도 통신 가능하며, 목적지 찾기 위해서 내부 네트워크부터 찾음.

  - 통신 할때 경로를 찾아서 연결해주는 역할을 한다.


4) 기본 설정 DNS 서버

  - 컴퓨터가 읽을수 있는 IP 주소로 변환해줄 수 있게 도와주는 서버 설정


5) 보조 DNS 서버

  - 기본 설정 DNS 서버가 장애 나거나 그러면 보조 DNS에서 처리를 한다.

LIST

'전공 > 네트워크' 카테고리의 다른 글

TCP, UDP  (0) 2021.06.10
HDLC  (0) 2021.06.10
Well Known Port  (0) 2018.07.12
Distance Vector와 Link State  (0) 2018.07.04
슬라이딩 윈도우  (0) 2018.07.04
SMALL

DID(Decentralized Identity)


DID는 탈중앙화 신원증명을 말한다.

개인 정보를 사용자 단말기에 저장하여, 인증 시 필요한 데이터만 보여주는 것이다.


간단한 예시를 보면, 술집에 가서 나이 확인을 위해 주민등록증을 보여주면, 굳이 알필요 없는 주소,이름을 노출하게 된다. DID가 도입되면 이러한 것들을 노출 하지 않아도 된다.


그리고 중요하게 봐야할 것은 기존에는 개인정보를 중앙기관에서 관리를 했다면, 이제는 개인이 하게 되는 말 그대로 탈중앙화 방식이 핵심이다..



LIST

'전공 > 신기술' 카테고리의 다른 글

오피니언 마이닝  (0) 2020.07.06
인슈어테크  (0) 2020.07.05
다크웹(Dark Web)  (0) 2020.06.24
데이터 3법  (0) 2020.06.21
언택트  (0) 2020.06.21
SMALL

오늘 저녁에 회사에서 특정 테이블 지운적이 있는지 전화가 왔음. 알아보니, 누군가가 마스터 테이블을 삭제해서 서비스가 중지 되었다고 한다.


그래서 급하게 회사에서는 플래시백을 이용하여 테이블을 복구하였다.


플래시백(flashback)?

간단히 말하면 데이터 처리를 하고 커밋 시 데이터를 원복 할수있게 해준다.

얼마전까지의 데이터를 복구 해주는지는, 설정마다 다를 것


얼마전의 데이터까지 복구 가능한지 알아보기


SHOW PARAMETER UNDO;



위와 같이 나옴,, undo_retention의 value 값이 원복가능한 시간이다.. 초 단위이므로 위의 db는 900/60 = 15분전까지 되돌릴수 있음.


위의 쿼리 일반 사용자로 실행하면 접근권한 없다고, root 계정으로 접속함.


FLASHBACK TABLE 테이블명 TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' MINUTE);

을 돌리니 데이터가 원복되었다.




LIST

+ Recent posts