파이썬

    [Python] GIL, Global Interpreter Lock이란?

    [Python] GIL, Global Interpreter Lock이란?

    안녕하세요, 개발자 하댑입니다. 오늘은 파이썬 멀티스레드를 사용하려고 한다면 알아야하는 GIL에 대해 알아보겠습니다. 파이썬의 경우 단순히 멀티스레딩을 코드로 구현해서 테스팅을 해보면 멀티스레딩의 연산 속도가 성능이 나쁜 것을 확인할 수 있습니다. 이런 결과가 나오는 이유는 바로 CPython Global Interpreter Lock, 즉 GIL이 적용되기 때문입니다. Global Interpreter Lock, GIL이 뭔데? Python Wiki에서는 다음과 같이 설명합니다. CPython에서 GIL은 파이썬 코드(bytecode)를 실행할 때에 여러 스레드를 사용할 경우, 단 하나의 스레드만 파이썬 객체에 접근할 수 있도록 제한하는 mutex 이다. 그리고 이 lock이 필요한 이유는 CPytho..

    [LeetCode] 238. Product of Array Except Self

    [LeetCode] 238. Product of Array Except Self

    *알고리즘 스터디에 참여하면서 Blind 75 LeetCode Questions 목록에 있는 문제를 풀이합니다. 문제: https://leetcode.com/problems/product-of-array-except-self/ Product of Array Except Self - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 배열에서 현재 요소를 뺀 나머지 요소들을 곱한 값을 그 자리에 넣어서 Return 해야한다. 1. 입력한 리스트와 같은 크기의 리스트를 ..

    [개발서적리뷰] 파이썬으로 배우는 게임 개발 (실전편)

    [개발서적리뷰] 파이썬으로 배우는 게임 개발 (실전편)

    비전공자로 시작해 'Hello World'를 콘솔에 띄워본지 이제 딱 2년 조금 넘었습니다. 처음에는 게임을 만들어보겠다고 C++을 배우다가 두달 만에 생활비를 주는 교육 프로그램을 발견해 웹 개발자로 전향하게 되어 지금까지 왔네요. 개발을 하면 할수록 뭔가 직접 만들고 결과물을 바로 볼 수 있다는 점은 언제나 새롭고 매력적으로 다가오는데요, 이번에 좋은 기회가 닿아 게임 개발 서적을 받아보게 되었습니다. 처음 제대로 배운 프로그래밍 언어가 파이썬이다 보니 아무래도 파이썬으로 게임 개발을 해볼 수 있다는 점이 끌렸습니다. 언젠가 앱 스토어에 직접 만든 인디 게임 하나 올려보는 것을 작은 꿈으로 가지고 있던 터라 기본적으로 게임을 만들 때 들어가는 여러 알고리즘과 노하우 등이 담겨있는 이 책은 정말 보물지..

    [개발서적리뷰] 파이썬 알고리즘 인터뷰 / 득템!!!

    [개발서적리뷰] 파이썬 알고리즘 인터뷰 / 득템!!!

    생활코딩 페이스북 그룹에 저자 박상길님이 올려주신 이벤트에 당첨되었습니다. 책을 받아봐서 두루 살펴봤는데 어찌나 감동이던지... 지금까지 봐온 알고리즘 책들 중에서 가장 읽기도 편하고 보기도 편한 책이었습니다. 일러스트들이 눈에 쏙쏙 들어오고, 최근 트렌드로 핫한 leetcode 사이트 문제 95개를 중심으로 중요한 알고리즘 개념 뿐만 아니라 코딩 인터뷰 시 알아야할 여러 지식들과 요령을 가르쳐줍니다..! 초반부터 C++과 Go, Typescript 등 요즘 핫한 언어들과 비교도 해주면서 알아두면 유용한 팁들 많이 알려주시네요. 어쩌면 저처럼 이런 저런 책들 전전하고 뻘짓을 많이 해본 분들에게 더 감동을 가져다줄 수 있는 책 같아요. 챕터가 단계별로 자료구조와 함께 대표 문제풀이가 잘 정리되어 있어서 좋..

    [Python] 파이썬으로 Json 인코더와 디코더 사용하기(읽고 쓰기)

    [Python] 파이썬으로 Json 인코더와 디코더 사용하기(읽고 쓰기)

    python으로 Json 데이터를 인코딩, 디코딩하는 방법을 알아보자. Json JSON은 Javascript Object Notation의 약자로 웹 브라우저와 웹 서버 사이에서 데이터 교환 시 널리 사용하고 있다. 가장 많이 사용되는 JSON 포맷은 key-value pair 컬렌션이다. 먼저, Json 데이터 타입에 대해 알아보면, json은 다음 중 하나 또는 여러개의 데이터 타입을 포함할 수 있다. string number object(JSON object) array boolean null 그리고 다음 데이터 타입은 포함하지 못 한다. function date undefined JSON 인코딩/디코딩 Python Object를 Json 문자열로 변경하는 과정을 Json 인코딩이라고 부르고, J..