728x90
반응형

분류 전체보기 279

[C++] Sequence Container (array, vector, duque, forward_list, list)

Sequence Container데이터를 순차적으로 저장하는 구조구현이 단순하고 가볍고 빠르기에 저장할 데이터가 정렬 상태를 계속 유지할 필요가 없을 때 선택 std::array#include using namespace std;int main() { int arr[5] = {1, 2, 3, 4, 5} int searchValue = 3; int changeValue = 6; for (int i = 0; i   특징크기 고정 (컴파일 타임에 크기가 고정 필요)요소는 연속된 메모리 공간에 저장인덱스를 사용하여 O(1) 시간 복잡도로 접근 가능크기 변경이 불가능사용 시기요소의 수가 고정되어 있고 변경될 가능성이 없는 경우.메모리 효율이 중요한 경우빠른 인덱스 접근이 필요한 경우 std..

[Docker] SvelteKit + MongoDB + Tailwind CSS dockerizing - MongoServerError: Authentication failed.

SvelteKit과 Tailwind CSS에 대한 도커 이미지는 정상적으로 만들어졌지만, 컨테이너에 올려서 DB와 연결시키려고 하니 다음과 같은 에러가 나타났다.app | Error fetching memo: MongoServerError: Authentication failed. app | at Connection.sendCommand (/app/node_modules/mongoose/node_modules/mongodb/lib/cmap/connection.js:297:27) mongo | {"t":{"$date":"2024-07-23T01:31:24.857+00:00"},"s":"I", "c":"NETWORK", "id":22944, "ctx":"conn3","msg":"Connection ended..

[백준/C++] 6603 로또

https://www.acmicpc.net/problem/6603 문제 분석확률과 통계에서 배웠던 조합 nCr을 구현하는 문제입니다.  로또 번호니까 여기서는 nC6으로 고정되어있는 상황입니다. 재귀를 통해 Brute force를 하면 단순하게 구할 수 있을 것 같다고 생각을 했습니다. 정답 코드#include #include using namespace std;void pick_number(vector &v, vector &picked, int start, int rest_pick){ if(rest_pick == 0){ for(int i = 0; i > n; if(n == 0) break; vector v(n); for(int i = 0; i > ..

[SQLAlchemy] 7. 데이터베이스 ORM 상태 관리

데이터베이스 ORM 상태 관리ORM에서 클래스는 데이터베이스 테이블을 나타내고, 클래스의 인스턴스는 데이터베이스의 행을 나타냄Instance 생성: 처음 instance 생성 후에는 transient 상태(아직 데이터베이스 session과 연결되어 있지 않은 상태)squidward = User(name="squidward", fullname="Squidward Tentacles")krabs = User(name="ehkrabs", fullname="Eugene H. Krabs")Session 추가: 추가 후 instance들은 pending 상태(데이터베이스에 삽입할 준비가 됨)session = Session(engine)session.add(squidward)session.add(krabs)Flushi..

[SQLAlchemy] 6. ORM을 사용한 UPDATE

UPDATE 구문update() 함수는 SQL의 UPDATE 구문을 생성from sqlalchemy import updatestmt = ( update(user_table) .where(user_table.c.name == "patrick") .values(fullname="Patrick the Star"))# UPDATE user_account SET fullname=:fullname WHERE user_account.name = :name_1Update.values(): SET 절의 값을 설정. 여러 값을 업데이트할 때는 bindparam()을 사용하여 바인드 매개변수 설정from sqlalchemy import update, bindparamfrom sqlalchemy.orm imp..

[SQLAlchemy] 5. ORM을 사용한 SELECT

SELECT 구문 실행stmt = select(user_table).where(user_table.c.name == "spongebob")# Core 방식with engine.connect() as conn: for row in conn.execute(stmt): print(row)# ORM 방식stmt = select(User).where(User.name == "spongebob")with Session(engine) as session: for row in session.execute(stmt): print(row) select() 함수여러 개의 컬럼과 테이블을 받아서 SELECT 쿼리를 구성stmt = select(user_table)# SELECT * FROM..

[SQLAlchemy] 4. ORM을 사용한 INSERT

ORM을 사용한 INSERT 예제1. 데이터베이스 엔진 및 베이스 클래스 생성from sqlalchemy import create_engine, Column, Integer, Stringfrom sqlalchemy.orm import DeclarativeBase, sessionmaker# 데이터베이스 엔진 생성engine = create_engine("sqlite+pysqlite:///:memory:", echo=True)# 베이스 클래스 생성class Base(DeclarativeBase): pass2. ORM 매핑 클래스 정의class User(Base): __tablename__ = 'user_account' id = Column(Integer, primary_key=True) ..

[SQLAlchemy] 3. MetaData

MetaDataMetaData란 데이터베이스 구조와 schema를 기술하는 데이터에 대한 데이터Database table, column, data type, index, restriction, trigger, view 등을 설명하는 정보 포함데이터베이스의 스키마를 정의하고 관리하는 역할SQLAlchemy Core(SQL을 직접 작성, Connection 사용)과 ORM(객체 지향 접근 방식, Session 사용)에서 모두 MetaData를 사용하여 SQL 쿼리를 작성하고 실행 가능Core의 경우 MetaData 객체를 생성하는 방식으로 사용되며, 주로 Connection 객체와 함께 사용Connection 객체는 낮은 수준의 SQL 작업을 수행하는 데 적합Session 객체를 사용할 수 있긴 함. 이 경..

[SQLAlchemy] 2. Connection, Commit, Query, Bound parameters

Connection앞서 생성한 엔진 객체의 유일한 목적은 데이버테이스와의 연결을 제공하는 Connection 객체를 생성하는 것데이터베이스와의 모든 상호작용은 Connection 객체를 통해서 이루어짐Connection 객체는 데이터베이스에 대한 열린 리소스를 나타내기에, 객체의 사용범위를 특정 context로 제한해야 함즉 Connection 객체를 통한 데이터베이스 처리가 끝났으면 Connection을 닫아서 잘 종료해야한다는 것with 문과 사용하는 것이 좋음# Hello world 예제# text() 함수는 SQLAlchemy에서 원래 쓰던 SQL 구문을 그대로 사용할 수 있도록 해주는 함수# ORM은 추후에..from sqlalchemy import create_engine, textengine..

728x90
반응형