본문 바로가기

분류 전체보기272

[FastAPI] DB 문제 해결 및 성능 개션 1. SQLAlchemy의 bindparam을 통한 Bulk Update로 성능 향상from sqlalchemy import update, bindparam# 1. 실행할 쿼리 틀을 미리 만듦stmt = ( update(User) .where(User.id == bindparam("_id")) .values(name=bindparam("_name")))# 2. 실제 데이터들을 리스트로 묶어 한 번에 실행 (executemany)db.session.execute( stmt, [ {"_id": 1, "_name": "Alice"}, {"_id": 2, "_name": "Bob"}, {"_id": 3, "_name": "Charlie"}, .. 2026. 6. 3.
[리뷰/책] 저녁의 구애 두 번째로 읽은 편혜영의 단편집.주로 도시 속 현대인의 끊임없이 반복되는 일상을 건조하게 (조금은 공포스럽게) 묘사하고 있다. 1. 토끼의 묘6개월 간 파견 근무를 온 '그'는 공원에서 버려진 토끼를 발견하고는 무심코 집으로 데려온다.그에게 파견 근무를 추천한 선배는 어느 날부터 회사에 출근하지 않기 시작한다.매일매일 반복되는 일상, 그는 고의로 서류의 수치를 잘못된 값으로 바꾸지만 질책받는 일이 없었다.그는 출근도 고의로 빼먹지만 아무에게도 연락이 오지 않는다.그 후 그는 그의 후배에게 파견 근무를 제안하는데,자신의 선배와 같은 말로 추천을 하고 있다는 것을 깨닫는다.그렇다고 해서 토끼를 키우는 일이 아예 무용한 것은 아니었다. 그렇게 무표정하게 누군가를 오랫동안 응시하다가는 결국 미움을 사고 만다는 .. 2026. 5. 12.
[FastAPI] FastAPI 코드 구조 확인 mainfrom fastapi import FastAPIapp = FastAPI()@app.get("/")async def root(): return {"message": "Hello World"} async def: FastAPI의 핵심. 입출력(I/O) 대기 시간 동안 다른 작업을 처리할 수 있게 해주는 비동기 문법.데코레이터(@): HTTP 메서드(GET, POST, PUT, DELETE)와 URL 경로를 함수와 연결 endpointsrouter = APIRouter()@router.get( "/users", response_model=UserListResponse, summary="[관리자] 사용자 목록 조회", description="관리자 권한으로 전체 사용자 목록.. 2026. 5. 4.
[React] Activity 컴포넌트 Activity는 useEffectEvent처럼 React 19에서 추가되었다. 이전에는 사이드바를 접을 때 아래와 같은 코드를 주로 사용했다.function TabContent({ active }) { return ( { active && } );}active가 false가 되었을 땐 언마운트시키는 방법이다.그러나 이러면 다시 마운트시켰을 때 내부에서 사용되던 모든 state값들이 초기화되어 버린다. 상태를 보존하기 위해선 CSS 속성에서 display: none을 주면 되는데,해당 컴포넌트는 보이지 않을 뿐이지 여전히 활성 상태이다.때문에 내부의 useEffect 같은 로직은 계속 돌아간다.이는 불필요한 리소스 낭비가 될 수 있다. 이때 Activitiy를 이용한다.funct.. 2026. 4. 2.
[IT] 네임서버, A레코드, CNAME에 대해 알아보자 네임서버가 뭘까1. doringri.tistory.com에 접속을 한다2. 내 컴퓨터는 DNS 서버 (예시: 구글 DNS인 8.8.8.8) 한테 가서 doringri.tistory.com의 아이피가 뭔지 물어본다.3. DNS 서버는 전 세계에 흩어져 있는 네임서버한테 직접 가서 아이피를 물어본다. 네임서버는 ns1.example.com 이렇게 생겨먹음4. 아무튼 네임서버는 진짜 아이피를 가지고 있어서 8.8.8.8한테 doringri.tistory.com의 아이피 112.34.56.7을 준다. 그래서, 가비아 같은 도메인 판매대행처에서는 네임서버를 제공해주는 한편, 내 도메인이 어떤 네임서버를 바라보게 할지 정해줄 수 있다. A 레코드가 뭘까도메인 연결 방법의 한 가지이다.아이피가 고정되어 있는 .. 2026. 4. 1.
[React] useEffectEvent 사용처 useEffectEventuseEffect 안에서 state의 최신 값은 쓰고 싶지만 useEffect 재실행은 하고 싶지 않을 때 사용한다.function Page({ url, theme }) { useEffect(() => { // 테마만 바꿔도 이 로그가 다시 찍힘 console.log(`Log visit to ${url} with theme: ${theme}`); }, [url, theme]); // theme을 의존성에 넣어야만 최신 theme을 참조할 수 있음 return 현재 페이지: {url};} useEffect 안에서는 클로저 때문에 state의 최신 값을 불러오지 못하기 때문이다. 결국 useEffect의 의존성에 어쩔 수 없이 해당 state를 넣어야 하는데,stat.. 2026. 4. 1.
[리뷰/책] 남편을 죽이는 서른 가지 방법 소개미스터리 / 스릴러 장르만을 오랜 기간 집필한 서미애 작가의 데뷔 30주년 기념 단편집.제목에서 짐작할 수 있듯 여성 중심의 서사를 다룬 단편이 많다. 이 단편집을 구매한 계기는 단순하다.내가 이 분 미스터리 소설 작문법 강의를 들었는데 정작 작품을 읽어본 적이 없는 것이다. 잘 자요 엄마, 여우누이 다경, 당신의 별이 사라지던 밤 등,여러가지 작품이 있었지만 하나의 장편보다는 다양한 작품을 보고 싶어서 단편집으로 택했다.그러나 다 읽고 나니까 장편 소설(특히 최근 작)도 읽어보고 싶다고 생각했다. 수록된 단편들이 세기말이나 초에 나온 것들이라, 클리셰라고 느껴질 만한 전개가 종종 나온다.그래서 미스터리 매니아라면 쉽게 뒷내용을 예측할 수도 있을 것이다.그러나 이제껏 읽은 미스터리 소설 중에서도 여성.. 2026. 2. 23.
[ENG] Chapter 1 Epilogue 보호되어 있는 글 입니다. 2026. 2. 18.
1장 에필로그 보호되어 있는 글 입니다. 2026. 2. 18.
[ENG] Chapter 1 - "Habit" 보호되어 있는 글 입니다. 2026. 2. 17.
[ENG] Prologue 보호되어 있는 글 입니다. 2026. 2. 17.
1장 - "버릇" 보호되어 있는 글 입니다. 2026. 2. 17.
프롤로그 보호되어 있는 글 입니다. 2026. 2. 17.
이 작은 곳에도 구원이 있을까(가제) 보호되어 있는 글 입니다. 2026. 2. 17.
[일상] 부산 사하구 감천동 감천문화마을 감천문화마을은 비석문화마을에 비해서는 찍은 사진이 적다.관광지로서 워낙 유명하니 별로 설명할 것도 없다.비석문화마을의 주거지와 비교하면 좀 더 탁 트인 느낌이고, 골목도 많이 좁진 않다. 사실 나는 감천마을도 유명한지 몰랐는데,비석마을 슈퍼에서 물 살 때 주인 아저씨가 중국인이 그렇게 많다고 하셨다. 와 보니까 중국인 뿐만 아니고 그냥 외국인 자체가 많았다. 일단 감성 좀 채워주고 다른 사람들은 잘 안 가는 안쪽으로 또 기어 들어감. 텃밭을 가지고 있는 주택.뭔가 이 집... 힙한 위치에 있었다. 작은 공간이 있는 것도 특이하고... 가장 기억에 남았던 곳. 감천문화마을은 그냥... 두말할 것도 없이 예쁘므로 날씨 좋은 날 가면 좋다.사진은 없지만 캐리커쳐도 받고 기념품(엽서)도 샀다. 2026. 2. 15.