반응형

java spring 개발시 사용하는 gradle 이란?

 

정의 : 그루비(Groovy)를 기반으로 한 빌드 도구

 

XML 기반으로 빌드 스크립트를 사용하는 MAVEN 과 달리 DSL(Domain Specific Language)를 사용한다.

 

설치 방법 : https://gradle.org/install/

 

Gradle | Installation

Install the Gradle build tool on Linux, macOS or Windows, either manually or using a package manager like SDKMAN! or Homebrew.

gradle.org

Gradle 설치 전 JDK 버전이 8이상 확인!

 

gradle init 으로 샘플 프로젝트 생성

위 명령어 실행하면 해당 폴더에 아래와 같은 파일 생성

각 파일별 용도 기입 예정...

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

JTable column size 내용길이에 맞춰 조절하기  (0) 2016.01.20
Titleborder 색 변경  (0) 2015.12.27
[팁] JarBundler 이용법.  (0) 2015.12.08
[팁] application bundle 위치  (0) 2015.12.08
JAVA L&F(Look & Feel)  (0) 2015.12.05
반응형

관리자 페이지 또는 필요에 따라 로그인 2차인증이 필요할 경우가 있다.

구글에서 제공하는 TOTP 기반의 google authenticator 앱으로 무료로 사용할 수가 있다.

여기서 TOTP와 2-factor 인증 방법에 대해 이해가 필요하다.

 

TOTP란?

정의 : 시간 기반 일회용 비밀번호(Time-based one-time password) 현재 시간의 고유성의 원천으로 사용하여 일회용 비밀번호를 생성하는 컴퓨터 알고리즘.

알고리즘 : 사용자가 입력한 otp 코드와 로컬에서 유닉스 시간 기반으로 생성한 코드가 일치 여부를 판단.

                  google authenticator 앱에서는 HOTP 알고리즘으로 인증을 진행.

 

2-factor authentication(2FA)

정의 : 이중인증절차라고 하며 로그인을 시도한 주체가 계정의 실제 소유자인지 확인하여 계정 보안을 높여주는 절차

 

QR코드 생성은 아래 url을 QR코드로 변경하여 표시하면 된다.

 

otpauth://totp/Example:alice@google.com?secret=JBSWY3DPEHPK3PXP&issuer=Example

Label : Example

User : alice@google.com

secret_key : JBSWY3DPEHPK3PXP

 

위 예시에서 secret_key 는 특정 문자열을 Base32 인코딩한 결과만 Google Authenticator에서 인식된다.

 

google authenticator 앱에 QR 코드로 장치를 등록하는데 해당 QR을 생성하는 예시를 들어주는 사이트 공유

https://dan.hersam.com/tools/gen-qr-code.php

 

Generate QR Codes for Google Authenticator

 

dan.hersam.com

위 사이트에서 QR 만드는 예시를 참고하여 앱 또는 웹 어플리케이션에서 QR을 생성하여 보여주고 인증이 완료된 사용자를 저장하고 해당 사용자에 대해서는 이후 로그인 시도 시 google authenticator 인증 코드를 입력 받을 수 있도록 구현.

반응형
반응형

sqlalchemy는 파이썬에서 DB에 접근하기 위한 ORM 라이브러리다.

 

ORM은 Object Relational Mapping의 약어로써 객체(Object)와 관계형 DB(Relational)을 연결(Mapping) 해주는 것을 의미한다.

객체지향언어에서 객체(클래스)에 DB 테이블을 매핑시켜 사용한다고 생각하면 이해가 쉽다.

ORM은 설계에 따라 사용이 용이할 수도 어려워질 수가 있다.

 

* sqlalchemy

사이트 : https://www.sqlalchemy.org/

 

SQLAlchemy - The Database Toolkit for Python

The Python SQL Toolkit and Object Relational Mapper SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. It provides a full suite of well known enterprise-level persisten

www.sqlalchemy.org

지원하는 Databases : SQLite, Postresql, MySQL, Oracle, MS-SQL, Firebird, Sybase 등..

사용가능한 Python 버전 : 2.5이후 또는 3.x 버전

 

SQLAlchemy를 사용하기 위해 우선적으로 DB Engine을 생성해야 한다

from sqlalchemy import create_engine
#engine 생성
#password 특수문자 포함 시 password에 url 인코딩 필요
engine = create_engine("postgresql://{username}{password}@{host}/{database}")

#password 인코딩 예시
import urllib.parse
print(urllib.parse.quote_plus("kx@jj5/g")) #'kx%40jj5%2Fg' 출력

from sqlalchemy import URL
#URL을 이용한 engine생성
#password에 특수문자가 포함 시 인코딩 하지 않고 사용할 수 있음.
url_object = URL.create(
	drivername="",
    username={username},
    password={password},
    host={host},
    database={database},
    query={"charset":"cp949"}
    )
engine = create_engine(url_object)

위와 같이 생성한다.

 

* 각 DB별 engine 생성 샘플

# mysql default
engine = create_engine("mysql://scott:tiger@localhost/foo")

# mysqlclient (a maintained fork of MySQL-Python)
engine = create_engine("mysql+mysqldb://scott:tiger@localhost/foo")

# PyMySQL
engine = create_engine("mysql+pymysql://scott:tiger@localhost/foo")

#Oracle
engine = create_engine("oracle://scott:tiger@127.0.0.1:1521/sidname")
engine = create_engine("oracle+cx_oracle://scott:tiger@tnsname")

# mssql pyodbc
engine = create_engine("mssql+pyodbc://scott:tiger@mydsn")

# pymssql
engine = create_engine("mssql+pymssql://scott:tiger@hostname:port/dbname")

# sqlite://<nohostname>/<path>
# where <path> is relative:
engine = create_engine("sqlite:///foo.db")

# Unix/Mac - 4 initial slashes in total
engine = create_engine("sqlite:////absolute/path/to/foo.db")

# Windows
engine = create_engine("sqlite:///C:\\path\\to\\foo.db")

# Windows alternative using raw string
engine = create_engine(r"sqlite:///C:\path\to\foo.db")

참고 문서 : https://docs.sqlalchemy.org/en/20/core/engines.html#supported-databases

반응형

'프로그래밍 > Python' 카테고리의 다른 글

[PYTHON] 파이썬 함수 매개변수  (0) 2022.08.11
[Python] flask_restful fields  (0) 2021.10.08
Single Linked list 구현  (0) 2018.03.22
창원시 버스 API 사용하기  (1) 2016.02.22

+ Recent posts