python sqlite3 데이터를 읽고 해당 rows 데이터를 관리하는 부분에 질문드립니다.

조회수 610회

먼저, 항상 질문에 답을 달아주시는 정영훈님께 감사하단 말씀을 전하며, 질문을 드립니다.

스스로 해결법을 찾고, 문제점을 해결하면서 만족감을 느끼는 개발자인데 python은 도통 감이 잡히질 않습니다. 미천한 실력으로 자주 질문을 드려 죄송합니다.

질문 요약 및 예시) : DB의 '차량정보" Table 내에 (차량번호, 초기, 확정, 기타, 내용) 컬럼이 있다고 가정합니다. 시스템을 처음 실행 했을 때 해당 Table 내에 데이터를 조회하고, 해당 데이터를 버퍼(list) 단위에 관리를 해야 합니다.

(*)버퍼(list)는 정확하게 어떤 자료형인지 몰라서 임시로 명칭을 표기한겁니다.

이미지

위와 같이 테이블 내에 데이터 들을 버퍼(list) 단위에 add(insert)하기

그리고 다른 메서드에서는 실시간으로 차량번호가 인식되며, 인식될 때마다 if 조건문을 걸쳐서 DB '차량정보' Table 에 Insert, Update, Delete를 수행하게 됩니다.

  1. '44가1234' 차량번호가 인식 됨
  2. 버퍼(list)에 해당 차량번호 존재 여부 파악
  3. 존재하면 전에 인식된 차량번호의 초기 시간과 현재 인식된 시간 비교, 존재하지 않으면 해당 차량번호로 인식된 정보를 Table Insert 함,
  4. (존재하는 경우) Insert가 완료가 되면 해당 차량번호 정보를 버퍼(list)에 add(insert) 함
  5. 5분 이상이 경과하면 '44가1234' 차량번호 정보를 [기타] : 확정으로 변경, [확정] 일시를 추가 하여 Table 정보를 Update 함.
  6. Table에 Update가 완료가 되면 차량번호 '44가1234' 기존 버퍼(list) 내에 정보를 지우고 새로운 정보를 Insert하거나, 수정이 가능하다면 기존 '44가1234' 정보를 Update 함

이런 식으로 '차량정보' 데이터를 시스템 실행 후 버퍼(list)에 추가해야 하고, 해당 버퍼는 가변적이고 새로운 데이터가 들어오면 조건에 맞추어 Add, Edit, Delete가 수행되어야 합니다.

질문의 요지는 버퍼(list) 이 부분을 어떻게 수행해야 하는지 감이 오질 않습니다. Dictionary Value에 ['12가1234', '2019-12-10 15:16:07', '2019-12-10 15:27:07', '확정', '적발'] 리스트 형식으로 값을 넣고 로직을 풀려고 했으나, 차량번호 존재 여부 등과 같은 if 조건문을 수행하고 데이터를 add, edit, delete 가 순조롭게 되지 않아서 다른 방안이 있는지 궁금합니다..

도움을 부탁드립니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • python list 라는 것이 닷넷에서 ArrayList 와 유사합니다. 단순히 보면 여러 타입을 넣을 수 있는 동적배열입니다. 질문을 보니 rdbms 사이에 버퍼로 이용하려는 것 같습니다. 그런 용도라면 python의 list는 부족하고 redis 를 추천드리고 싶습니다. expire(5분경과) 될 때 이벤트도 받을 수 있으므로 콜백처리하기도 좋습니다. 혹 별도의 캐시솔루션을 이용할 수 없다면 pandas 를 이용해보는 것은 어떨런지요. 성능부분에서 list에 부족할진 몰라도 데이터 다루기는 좋습니다. 정영훈 2019.12.10 17:08
  • 답변 감사합니다. 차후에 DataFrame 관련 pandas를 응용해서 사용해보도록 해볼게요. 항상 답변을 해주셔서 감사합니다. 알 수 없는 사용자 2019.12.11 11:40

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)