본문 바로가기
SK shieldus Rookies 16기

[SK shieldus Rookies 16기] 클라우드 기반 스마트 융합 보안 과정 교육 정리(8일차)

by Challenge programmers 2023. 11. 1.

오늘 학습 주제

1. 이미지 처리하기

2. 데이터베이스 다루기

 

 

 

 

이미지 처리하기


- pillow -

이미지 처리 라이브러리

픽셀 단위의 조작, 마스킹 및 투명도 제어, 이미지 필터, 색 보정 등 다양한 이미지 작업 가능

PPM, PNG, JPEG, GIF, TIFF, BMP 등 다양한 이미지 파일 형식을 다룰 수 있다

코드 설명
open(Filename) 지정한 FileName 불러올 때 사용
show() 지정한 이미지 파일 출력할 때 사용
resize(width, height) 지정한 크기로 이미지 파일 변경할 때 사용
crop(left, upper, right, lower) 지정한 좌표로 이미지 파일 자르려고 할 때 사용
rotate(dig) 지정한 각도만큼 이미지 파일을 회전시킬 때 사용
transpose(flip) 상하, 좌우로 이미지 파일을 대칭할 때 사용
filter(imgFilter) 지정한 필터를 이미지에 적용시킬 때 사용
paste(img, (width, height) 지정한 이미지를 합칠 때 사용
save(FileName) 지정한 파일을 저장할 때 사용
thumbnail((width, height)) 썸네일을 만들 때 사용

 

'img.jpg' 파일을 호출하고 출력

 

 

 

 

데이터베이스 다루기


- 데이터베이스(Database) -

정보를 저장, 관리 및 검색하기 위한 쳬계화된 방법을 제공하는 시스템

관계형, 네트워크형, 계층형, 객체형 등의 모델들이 있다

 

- 관계형 데이터베이스(SQL) -

데이터를 테이블 형태로 구성하고, 이러한 테이블 간의 관계를 사용하여

데이터를 저장하고 관리하는 데이터베이스 모델

SQL(Structured Query Language)을 사용하여 데이터를 조작한다

데이터 무결성을 보장한다

트랜잭션 처리, 보안, 백업 및 복구 기능 등을 제공하여 신뢰성이 높다 

관계형 데이터베이스 모델

 

- 비관계형 데이터베이스(NoSQL) -

전통적인 SQL 데이터베이스와는 다른 데이터 저장 및 관리 방식을 지원하는 데이터베이스 모델

대량의 데이터를 다루는데 특히 유용하며, 빅데이터 및 웹 애플리케이션 개발에서 널리 사용

 

Nosql은 Key-value, document 등의 방식으로 데이터를 저장하고 SQL은 테이블에 데이터를 저장한다

 

- SQLite -

클라이언트 응용 프로그램에 임베디드되어 동작하는 DBMS 소프트웨어로서 퍼블릭 도메인 오픈 소스 소프트웨어

내장형 데이터베이스로, 작은 규모의 데이터 저장 및 관리를 위해 많이 사용한다

 

- sqlite3-

SQLite에 대한 인터페이스를 제공하는 라이브러리

따로 모듈을 설치할 필요 없이 데이터베이스를 쉽게 이용할 수 있다

코드 설명
connect() DB에 접속할 때 사용
cursor() DB 쿼리를 조작하기 위한 커서 객체 생성할 때 사용
execute() SQL 쿼리를 실행할 때 사용
commit() 변경 내용을 데이터베이스에 저장할 때 사용

sqlite3를 이용하여 'mydatabase.db'에 연결

 

- pymysql -

SQLite에 대한 인터페이스를 제공하는 라이브러리

pymysqul로 MySQL에 접속하는 방법
pandas는 데이터 프레임으로 정보를 받는다

 

- ORM(Object-Relational Mapping)-

'객체로 연결을 해준다'는 의미로, 데이터베이스 연결 시 SQL언어가 아닌

어플리케이션 개발 언어로 데이터베이스를 접근할 수 있게 해주는 툴

개발 언어의 일관성과 가독성을 높여준다는 장점을 가지고 있다

 

- SQLAlchemy -

파이썬이서 ORM을 사용할 수 있게 해주는 라이브러리

다양한 데이터베이스(MySQL, PostgreSQL, SQLite, Oracle 등 다양한 데이터베이스 시스템과 호환

SQL을 생성하는 데 사용되는 파이썬 표현식 언어를 제공한다

데이터베이스 쿼리의 성능을 최적화하는 다양한 기능과 옵션을 제공한다

코드 설명
crate_engine() Database와 소통하기 위해 연결을 관리해주는 engine을 생성할 때 사용
declarative_base() 매핑 클래스를 생성하고 Database에 연결할 때 사용
session() 매핑된 객체들의 지속적 작업을 관리해주는 역할인 세션을 생성할 때 사용
sessionmaker() 동일한 구성을 가진 세션을 생성할 때 사용
metadata.creater_all() Engine으로 연결된 데이터베이스에 테이블을 생성할 때 사용

sqlalchemy로 DB 지정하고 엔진 생성

 

 

 

 

참고

https://velog.io/@octo__/SQL-vs-NoSQL

https://yurimkoo.github.io/python/2019/09/14/connect-db-with-python.html

https://jalynne-kim.medium.com/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EB%B0%B1%EC%97%94%EB%93%9C-orm-object-relational-mapping-%EC%9D%98-%EA%B0%9C%EB%85%90%EA%B3%BC-%EC%A2%85%EB%A5%98-%ED%99%9C%EC%9A%A9%EB%B0%A9%EC%95%88-c43b69028957