728x90
반응형

분류 전체보기 70

데이터 베이스 모델링

데이터베이스 모델링이란 현 세계에서 사용되는 작업이나 사물들을 DBMS의 데이터베이스 개체로 옮기기 위한 과정이라고 말할 수 있다. 더 쉽게 얘기하자면 현실에서 쓰이는 것을 테이블로 변경하기 위한 작업이다. 데이터 모델링에는 확실한 답이 정해져있지않고, 모델링을 하는 사람에 따라 각각 다른 결과가 나온다. 그렇지만 중요한 점은 좋은 모델링과 나쁜 모델링이 존재한다. 개념적, 논리적, 물리적 모델링으로 3가지로 나뉜다. 개념적 모델링은 주로 업무 분석단계이다. 논리적 모델링은 업무 분석의 후반부아 시스템 설계의 전반부에 걸쳐서 진행된다. 물리적 모델링은 시스템 설계의 후반부에 주로 진행된다. 데이터베이스 모델링 단계 고객 이름 출생연도 주소 연락처 구매한 물건 단가(만원) 수량 이승기 1987 서울 010..

MariaDB 2023.10.10

데이터베이스 Trigger(트리거)

트리거 (Trigger) 트리거란 테이블에 부착되어, 테이블에 INSERT, UPDATE, DELETE 작업이 발생되면 자동으로 실행되는 코드를 말한다. 트리거의 용도는 만약 회원이 탈퇴한다고 가정했을시 그 회원이 기존회원인지 데이터 베이스에서 삭제해버리면 알 수가 없다. 이를 방지하기 위해 삭제되기 전에 미리 백업 테이블에 복사해 놓는다. 그것을 수작업으로 하기 어려우니 자동으로 해주는 트리거가 존재한다. MemberTBL라는 테이블이 존재한다고했을때, 이 테이블에 트리거를 적용시키고 확인해보자 트리거 형식 DELIMITER $$ -- 구문 분리 문자를 변경 CREATE TRIGGER trg_deleteMemberTBL -- 트리거이름 AFTER DELETE -- 삭제후에 작동하게 지정 ON membe..

MariaDB 2023.10.10

GOF 디자인패턴

디자인패턴 - 모듈간의 관계 및 인터페이스를 설계할 때 참조할 수 있는 전형적인 해결 방식 - 문제가 발생했을때 디자인 패턴을 참고하여 적용하는것이 더 효율적이다. - GOF 디자인패턴은 생성, 구조 ,행위로 구분된다. 생성 패턴 - 클래스나 객체의 생성과 참조 과정을 정의하는 패턴 추상 팩토리 (Abstract Factory) - 구체적인 클래스에 의존하지않고, 인터페이스를 통해 서로 연관/의전 하는 객체들의 그룹으로 생성하여 추상적으로 표현한다 빌더 (Builder) - 객체의 생성과정과 표현하는 방법을 분리하고있어, 동일한 객체 생성도 서로 다른결과를 만들어 낼 수 있다. 팩토리 메소드 (Factory Method) - 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴 - 상위 클래스에..

Python Pandas 기초(2)

Dictionaty를 DataFrame으로 변환하기 dict --> dataframe key --> column(세로), value --> value(가로)가 된다. DataFrame객체를 생성하면서 argument로 dictionary를 넣어주면된다. 그러면 argument에 생성자의 parameter로 전달된다. dict1= { 'name' : ['이순신','유관순','강감찬','안중근'], 'birth' : [2011,2016,2015,2015], 'gender' : ['male','femal','male','male'], 'height' : [192,170,174,198] } dd=pd.DataFrame(dict1) display(dd) 딕셔너리 dict1을 pandas의 DataFrame()을 ..

Python의 Pandas 기초

Pandas DataFrame 생성 titanic_train.csv이라는 파일의 배 승객 데이터set이 있다. 이 데이터set을 pandas의 read_csv()함수로 읽어서 데이터분석을 할 수 있는 형태인 DataFrame으로 변환한다. import pandas로 참조해야한다. 밑의 그림은 titanic_train.csv의 정보들이다. import pandas as pd ti_df=pd.read_csv('titanic_train.csv') display(ti_df) # DataFrame 출력 (앞의 5행, 맨뒤5행 출력 나머지는 생략) 밑의 그림이 결과값이다. 앞의 5개행과 맨밑의 5개행을 제외한 나머지를 출력하는것이 기본값이다. 또한 dataFrame은 print()보다 display()로 해야 보기..

python 내장함수 abs(), all(), any(), dir(), divmod(), enumerate(), pow()

abs(정수) : 정수의 절댓값을 반환하다. print(abs(-98)) print(abs(14)) """결과값 98 14 """ all (iterable type) - 모든 item이 0이 아닌경우 : True 반환 - 0이 하나라도 있는경우 : False 반환 print(all([1,2,3,4,5])) print(all([1,2,3,4,0])) print(all([])) # 비어있는 경우 """결과값 True False True """ any (iterable type) - 모든 item이 0인 경우 : False 반환 - 0이 하나라도 아니면 : True 반환 print(any([1,2,3,4,5])) print(any([0,0,0,'',0])) # 비어있는경우도 포함 print(any([])) #..

python 예외처리 (try ~ except)

예외처리 (try ~ except) 프로그램 처리 도중 에러가 발생하였을때 예외처리를 하지않으면 그대로 에러가 발생하며 해당 라인에서 정지된다. 하지만 에러가 발생하더라도 프로그램을 강제종료하지않고 해당 에러에 대한 조치를 하면서 프로그램을 실행하도록 하는것이 예외처리이다. 형식 try: 예외가 발생할 수 있는 code except 예외클래스명[as 변수]: try문 안에서 예외가 발생한 경우 처리하는 code else: try문 안에서 예외가 발생하지 않는 경우 처리하는 code finally: try 블록에서 예외가 발생하든 안하든 무조건 실행하는 code ZeroDivisionError try: s=0 5/s except ZeroDivisionError as err: print('에러는',err) ..

Python 추상클래스(abstract class)

추상클래스 (abstract class) - 추상 메소드를 가지고 있는 클래스 : ABC 클래스를 상속 받아야 된다. - abstract method : 선언부만 있고 body가 없는 메소드 - @abstractmethod를 선언해야한다. - 일반 클래스에는 추상메소드가 존재해서는 안된다, 하지만 추상클래스는 일반메소드, 추상메소드 존재해도 된다. 추상클래스는 최소한의 메소드를 작성해야할때 추상메소드를 사용하여 내용이존재하지않는 메소드를 생성한다. (샘플) 그래서 자식클래스가 메소드의 body부분을 작성해야한다.(오버라이드) 보통 회사에서 최소한의 기능을 추가하기위해 팀원들에게 내용이 존재하지않는 추상메소드를 생성하고, 팀원들에게 자식클래스로 상속하여 추상메소드의 기능을 추가하라고 지시한다. from a..

Python/클래스 2023.09.25

Python 클래스 변수, 인스턴스 변수

클래스 변수 : 클래스 내부에 선언된 변수이다. 인스턴스 변수 : 인스턴스 내부의 self가 붙은 변수를 인스턴스 변수라고한다. 클래스 변수를 접근할때는 클래스 이름.변수명 을 사용할 수도 있고, 객체명.변수명 을 통해 접근 가능하다. 클래스 변수는 객체 별로 따로따로 생성되지 않는다.그래서 공유 변수 또는 스태틱변수 라고한다. class Test: num_class = 0 # 클래스변수(메모리에 올라간다) def __init__(self): self.num_instance =0 # 인스턴스 변수(메모리에 안올라간다) self.num_instance +=1 Test.num_class += 1 t1 = Test() print(t1.num_class) t2= Test() print(t2.num_class) ..

Python/클래스 2023.09.25

Python 클래스 상속, 오버라이딩

클래스 상속 (inheritance) 상속은 객체 간의 관계를 구현하는 방법중 하나이다. 간단하게 생각하면은 확장이라고 생각하면된다. 기본적인 기능을 가진 상위 클래스가 존재하고 그 클래스의 하위 클래스가 존재한다고 가정할때, 클래스 상속을 이용하여 상위클래스의 기능을 하위 클래스도 사용가능하다는 것이 상속이다. 상속을 통해 상위 클래스의 맴버를 여러 하위 클래스가 재사용할 수 있어 소스의 재활용에 효과적이고 분업화가 가능하며, 프로그램 유지보수가 간편해져 개발 비용을 절감할 수 있다. class Animal: # 상위 클래스 def sound(self): print('소리를 냅니다') class Dog(Animal): # 하위 클래스 pass dog = Dog() # Dog클래스의 인스턴스 생성 dog..

Python/클래스 2023.09.22
728x90
반응형