본문 바로가기

728x90
반응형

Language

(57)
[SQLAlchemy] declarative_base 로부터 DB에 테이블 생성하기 HTML 삽입 미리보기할 수 없는 소스 개요 django의 manage.py에서 migrate에 관련된 기능을 보면 django 내부에 선언된 Model로부터 DataBase에 Migrate를 해주는 명령이 존재한다. $ python manage.py makemigrations $ python manage.py migrate django에서는 위와 같은 방식으로 정의한 ORM을 DB에다 테이블을 생성 혹은 업데이트 해준다. SQLAlChemy에서도 이와 비슷한 방식을 지원 도구가 있는데 alembic이다. 그런데 alembic을 사용하지 않고 declarative_base로 선언된 model로 SQL Statement를 추출하고 이를 어떻게 DB 반영할 수 있을까? alembic ? 굳이 ? sqlalc..
파이썬 오라클 DB 연동과 에러 대처 이전 블로그에서 백업된 내용입니다. 개요 파이썬과 오라클DB를 연결하기 위한 라이브러리는 cx_Oracle이며 조사하면 이에 관한 글이 많이 나옵니다 파이썬 3.7.x 버전 기준으로 해당 라이브러리를 설치하고 이용해본 결과 에러가 발생했습니다. cx_Oracle 라이브러리와 오라클 db에 연결하기 위해 시도했던 내용을 남기고자 합니다. 설치하기 라이브러리 자체는 설치가 간단합니다. 윈도우 cmd 에서 다음과 같이 입력하면 됩니다. $ pip install cx_oracle pycharm을 이용해서 설치할 경우 cx-oracle로 검색하면 패키지가 검색됩니다. 검색된 cx-oracle 패키지로 다운로드 받으셔도 됩니다. 연동을 위해 필요한 것 cx_oracle 자체 패키지로는 오라클 db와 연결이 되지 않..
Boolean Trap Boolean Trap def some(up:bool): if up: return to_json() return to_dict() 위와 같은 코드를 보고 some이라는 메서드의 내용을 문서를 보기 전에 유추할 수 있는가? 아마 그렇지 못할 것이다. Parameter에 bool를 넘김으로써 동작을 제어하려고 시도했지만 코드를 읽는 사람 관점에서는 some이라는 Method의 동작 내용을 문서를 참고하기 전까지는 자세히 모를 것이다. 이를 Boolean Trap이라 부른다(Anti Pattern) Solution Multiple Function 해당 메서드의 내용을 세분화하자 def some_to_json() ... def some_to_dict() ... 하지만 위 방법에는 메서드의 기능이 거의 없는 경우..
구글 스프레드시트 이용 시 gspread 설정하기 INSTALL pip install gspread Setup GCP 에서 설정할 부분 API 및 서비스 메뉴 사용자 인증 정보 > 사용자 인증 정보 > 사용자 인증 정보 만들기 서비스 계정를 선택하여 서비스 계정을 만들자 위 단계를 거치고 나면 인증 정보가 포함된 json 파일을 얻을 수 있다. 인증정보.json { "type": "...", "project_id": "...", "private_key_id": "...", "private_key": "...", "client_email": "...", "client_id": "...", "auth_uri": "...", "token_uri": "...", "auth_provider_x509_cert_url": "...", "client_x509_cert..
프로세스의 실행 경로 가져오기 개요 WMI()로 현재 열려있는 파일 경로를 가져오려고 시도해봤습니다. 방법이 나오지 않던 차에 psutil 라이브러리를 이용하면 해결할 수 있었기에 psutil 라이브러리를 통해 현재 열려있는 특정 파일의 경로를 가져와보는 방법을 적어보고자 합니다. psutil 설치 psutil은 기본적으로 설치되어있는 라이브러리는 아닙니다. pip 명령어를 통해 설치합니다. pip install psutil 실행 중인 Process 항목 가져오기 import psutil for process in psutil.process_iter(): print(process) process_iter()는 현재 실행되고 있는 process의 정보를 iterable 하게 변환해줍니다. 각각의 process 정보를 for문으로 pri..
UserAssist 레지스트리 분석 레지스트리 분석으로 사용했던 프로그램을? 윈도우 레지스트리 정보에는 사용했던 프로그램 정보들을 가지고 있는 항목이 있습니다. 윈도우 10에서 확인해 본 결과 경로는 다음과 같습니다. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count} 레지스트리 정보는 "Windows" 를 누르신 후, reg 까지 입력하면 자동으로 레지스트리 편집기를 찾아줍니다. 암호화 되어있는 레지스트리 정보 아래의 사진은 제가 쓰고 있는 실제 컴퓨터에서 사용했던 프로그램 목록이 들어있는 레지스트리 정보입니다. 보시는 바와 같이 알 수 없는 문자열로 되어있습니다. ..
[Java] 상속 (Inheritance) Java를 통해 객체지향 언어를 이해해보는 학습노트입니다 객체지향의 4가지 특징 원래 객체지향의 특징은 이 OOP 카테고리 맨 첫 번째로 포스팅되어야 했습니다. 이 4가지 특징에 대한 개념을 "상속"에 적는 이유는 저희는 벌써 2가지 특징 "추상화" ,"캡슐화"를 배웠습니다. 캡슐화는 4편에서 설명드렸지만 "추상화"는 직접적으로 언급한 적이 없습니다. 객체지향 코딩을 하면서 이미 "추상화"를 했기 때문입니다. "추상화"라는 것은 객체들의 공통적인 (속성과 기능)을 뽑아내는 것 정도라고 만 아시면 됩니다. "다형성"은 개념이 복잡하므로 추후에 다루도록 하겠습니다 그렇다면 객체지향의 4가지 특징은 다음과 같이 정리 됩니다. 1. 추상화, Abstraction 2. 캡슐화, Encapsulation 3. 상속..
[Java] 캡슐화 (Encapsulation) Java를 통해 객체지향 언어를 이해해보는 학습노트입니다 캡슐화? 캡슐화는 한 마디로 "은닉화"라고 생각하시면 됩니다. 일단 하나의 클래스를 예제로 들어보겠습니다. 멤버 변수는 String 형인 name 과 int 형인 id 두 개 밖에 없습니다. 이 클래스의 멤버 변수에 접근하기 위해서는 다음과 같이 접근합니다. 이러한 접근방법은 클래스의 속성을 함부로 변경을 가능하게 만드는 위험성을 가지고 있습니다. private로 선언된 멤버변수의 getter ,setter 메서드 밑의 코드는 Student 라는 이름의 클래스입니다. 자세히 들여다 보시면 변수의 접근 제한자가 private로 선언되어있는 것을 확인할 수 있습니다. 그리고 밑의 메서드명에 'set' 과 'get' 이라는 단어가 들어가 있는 걸 확인 ..

728x90
반응형