[python] SQLAlchemy를 통한 DB session 연결
SQLAlchemy란 Java의 JPA와 같이, Python의 ORM 라이브러리입니다. Django를 사용할 경우 전용 ORM 모듈이 있으나(사실 이 또한 SQLAlchemy의 포크입니다), FastAPI, Flask를 사용하거나 단순한 Python 실행 파일에서 DB와 연결이 필요할 경우 거의 무조건 쓰게 되는 라이브러리가 됩니다. 애석하게...
SQLAlchemy란 Java의 JPA와 같이, Python의 ORM 라이브러리입니다. Django를 사용할 경우 전용 ORM 모듈이 있으나(사실 이 또한 SQLAlchemy의 포크입니다), FastAPI, Flask를 사용하거나 단순한 Python 실행 파일에서 DB와 연결이 필요할 경우 거의 무조건 쓰게 되는 라이브러리가 됩니다. 애석하게...
데이터 파이프라인 핵심은 데이터 사이언스와 머신러닝에 쓰일 데이터를 한 곳(데이터 웨어하우스)에 모으는 작업을 수행하는 인프라 구성요소라고 할 수 있겠다. 파이프라인이 수행하는 주요 업무는 ETL(추출-extract, 변환-transform, 적재-load)라고 할 수 있겠다. 역할 수집한 데이터를 변환, 적재 서비스에서 직접 발생하는 데이터...
백준 2096 - 내려가기 [GOLD 5] 숫자 세 개의 입력이 n개 주어진다. (1 <= n <= 100,000) 인접한 대각선 또는 바로 아래의 수를 계속 더해나가 가장 밑으로 도달했을 때 가능한 최고의 수와 최저의 수를 출력하면 된다. DP DP 문제다. 특이한 점은 메모리가 제한이 빡빡하기 때문에, list에 입력을 몰아...
EC2 서버? Lightsail 서버? EC2? AWS의 클라우드 서버 임대 서비스 분야나 해당 서버들의 대명사를 EC2라고 생각하는 사람들이 많다. 워낙 EC2가 대중적이고 정말로 서버 임대 서비스의 대명사 취급을 받긴 하지만, EC2는 AWS의 클라우드 서버의 통칭이 아니라, 종량제 서버를 칭한다. 사용한만큼 내는 서비스가 EC2다! 생...
백준 1932 - [SILVER 1] N의 높이를 가진 삼각형 형태로 수의 입력이 들어온다. 가장 위쪽 꼭짓점의 수에서부터 왼쪽 아래, 오른쪽 아래만 계산하여 바닥에 닿았을 때, 가장 높게 획득할 수 있는 점수를 출력하면 된다. 옛날 문제? 문제의 출처가 무려 IOI 1994다. 출제된 지 30년 됐다. solved.ac 클래스 4에 속한 ...
백준 1918 - [Gold 2] 쉬운 문제 ? 정보처리기사에서도 Tree 자료구조를 다룰 때 후위 표기법과 트리의 후위 순회 등을 볼 수 있다. 골드 2 문제치고는 쉬운 편인 것 같다. 후위 표기법과 stack을 사용할 수 있다면, 금방 풀 수 있다. SSAFY에서도 알고리즘 학습 주간에 tree 개념에 들어가기 전, stack 자료구조를...
16기와 그 이후를 위해서 솔직히 내 이야기는 아마 별 도움이 안 될 것 같다. 일반적으로 컴퓨터 관련 전공 학부생들이 선택하는 활동인데, 나는 둘 다 해당되지 않는 비전공 그것도 공대도 아닌 완전 문과에 22년도에 졸업한 취준생이다. SW 마에스트로를 염두에 두면서 나와 비슷한 처지에 있는 사람은 거의 없을 것이라 생각한다. 그래서 합...
백준 1629 - 곱셈 [SILVER 1] 한 줄에 2^31 이내의 자연수가 세 개 주어진다. 순서대로, A, B, C 라고 할 때, A를 B번 곱한 수를 C로 나눈 나머지를 출력하면 된다. 당연하지만, print((A**B)%C) 로는 절대 풀 수 없다! A^B는 최대 (2^31)^(2^31) 라는 끔찍한 경우가 주어진다… (2^3...
백준 1149 - RGB 거리 [SILVER 1] N개의 집이 일자형으로 배치된 집이 있다. 집은 Red, Green, Blue 중 하나의 색으로 칠할 수 있다. n번째 위치의 집에 페인트를 칠할 때 필요한 비용이 N개의 입력으로 들어온다. 징징이 맨션처럼 똑같은 색은 피하고 싶은 것인지, 양 옆 집(양 끝은 인접한 한 집)과 색깔이 겹치면 안...
백준 11659 - 구간 합 구하기4 [SILVER 3] 이름 그대로 누적 합 구하기 문제다. print(sum(numbers[start : end]))로는 절대 풀 수 없는 문제다. 숫자 배열이 10만, 계산 및 출력해야할 개수가 10만이다. 또한 sum(numbers[0 : 100,000])을 10만번 반복한다고 하면, 100,000 * ...