worldint
mathengi
worldint
전체 방문자
오늘
어제
  • 분류 전체보기 (152)
    • infra, cloud (4)
      • aws (4)
    • TIL,WIL(일간,주간 회고) (57)
    • 컴퓨터 공학 (5)
      • 정보통신 (3)
      • 컴퓨터 구조 (2)
    • Math (1)
      • linear algebra (0)
      • 명제와 집합 (1)
    • Operating System (8)
      • Linux Ubuntu (1)
    • programming (66)
      • c , c++ (9)
      • c# (0)
      • java (2)
      • javascript (14)
      • Python (4)
      • github (1)
      • programing terms (12)
      • html, css (2)
      • docker (3)
      • algorithm_datastructure (5)
      • database (11)
      • flutter(dart) (2)
    • 항해99 부트캠프 (7)
      • 사전교육 (7)
    • 보안관련 (1)

블로그 메뉴

    공지사항

    인기 글

    태그

    • db데드락
    • 디비데드락
    • CloudFront
    • AWS
    • MONGOOSE
    • nodejs
    • Javascript
    • docker
    • MongoDB
    • NoSQL
    • node
    • ci/cd
    • EC2
    • Blue/Green
    • NVM
    • flutter #provider #error
    • ec2 #코드디플로이 #리눅스

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    worldint

    mathengi

    TIL,WIL(일간,주간 회고)

    2022.12.07 TIL 파이썬 전역변수 선언방법,사용방법

    2022. 12. 8. 13:56

    -상황설명:

    클라이언트에서 서버로 데이터를 보내주고 그것을 DB에 넣는 작업중,

    서버에서 count라는 변수를 하나씩올려서 DB에 넣어줄때 카운트값도 같이 넣어주고 싶었다.

    {

    name: jin

    age: 12

    count:1

    }

    {

    name: kim

    age: 22

    count:2

    }

    이런식으로 말이다.

     

    처음에 썻던 방법은 지금 디비에있는 딕셔너리가 몇개인지

    count = len(list(db.find({})))

    이렇게 가져와서 그 갯수 +1을 해줘서 카운트 값을 매겼었다

    근데 그렇게하니까 디비의 딕셔너리 하나를 지우면 예를들어 count가 1,2,3 이렇게 커지고 있는데 1을 지우면 2,3이 남게된다.

    -문제점:

    그럼 그다음에 디비에 들어오는 딕셔너리에 count 4가 되어야되는데 3이들어간다

    왜냐면 로직을 현재 디비에 들어있는 데이터 갯수를 기준으로 count를 하게 짯기 떄문이다.

    디비에 두개가 들어있으니까 그다음에 오는건 count=3 이런식으로했기때문에

     

     

    -해결방법:

    count를 디비에 들어있는 데이터갯수를 기준으로 하지말고

    전역변수로 count를 만들어주고 그 변수값을 디비에 넣어주는 함수가 실행될때마다

    1씩 커지게 하고 그걸 디비에 같이 들어가게 해주었다.

     

    만든방법은 전역변수를 써서 만들었다

    아래는 전역변수 사용방법이다

    global a
    a = 10
    
    def test():
        global a
        a = 3
        b = 2
    
        return a + b
    print(test())
    print(a)                      
    
    #결과는 5,3이 출력된다

    파이썬은 위와같이 

    global 변수

    변수 = 넣고싶은 데이터

    이렇게 해줘야 되는거같다

    global 변수 = 넣고싶은 데이터

    이렇게 한번에 안된다(적어도 내 개발환경에서는)

     

    그리고 함수안에서도

    global 변수

    변수 = 넣고싶은 데이터

    다시 이런식으로 해줘야 전역변수에 영향을 미칠수있다.

    'TIL,WIL(일간,주간 회고)' 카테고리의 다른 글

    2022.12.10 TIL 자바스크립트 var,let,const 차이  (0) 2022.12.10
    2022.12.10 TIL call by value, call by reference, Call by assignment(call by object)  (1) 2022.12.10
    2022.12.07 TIL CSS position 개념  (0) 2022.12.08
    2022.12.07 TIL css의 offset개념  (0) 2022.12.08
    2022.12.06 TIL div배치 문제  (0) 2022.12.06
      'TIL,WIL(일간,주간 회고)' 카테고리의 다른 글
      • 2022.12.10 TIL 자바스크립트 var,let,const 차이
      • 2022.12.10 TIL call by value, call by reference, Call by assignment(call by object)
      • 2022.12.07 TIL CSS position 개념
      • 2022.12.07 TIL css의 offset개념
      worldint
      worldint
      공부한 내용들, 트러블 슈팅, 아티클 번역 등등 올리는 블로그입니다

      티스토리툴바