전체 글
-
함수(function)와 1급 객체(first-class citizen)Python 2022. 5. 23. 18:11
HTML 삽입 미리보기할 수 없는 소스 프로그래밍에 대한 개념을 다루는 것보다 아무래도 문제들을 해결하기 위해 직접 코드를 치는게 재밌었다 보니 누군가 1급 객체와 같은 개념들에 대해 물어본다면 대답하기 어려워서 누군가에게 설명할 수 있도록 정리해야겠다는 생각에 여러 글로 나눠서 함수, 1급 객체, 클로져, 데코레이터에 대해 쓰고자 합니다. 1. 함수(function)란 2. 1급 객체(first-class citizen)란 쉽게 얘기해서 문제를 해결하기 위해 프로그램을 만든다. 대부분의 프로그램은 클래스의 집합으로 구성되어 있다. 대부분의 클래스는 함수들의 집합으로 구성되어 있다. 즉, 이렇게도 볼 수 있지 않을까? 프로그램 = 함수들의 묶음 함수란 - 작은 단위의 기능을 구현할 수 있도록..
-
python 내장함수 getattrPython 2022. 5. 19. 11:01
HTML 삽입 미리보기할 수 없는 소스 프로젝트를 진행하던 중에 마주했던 어려움이 있어서 이렇게 글을 남깁니다. 상황은 아래와 같습니다. 어떤 클래스의 메서드에 접근해서 값을 가져와야 하는 로직이었는데 문제는 값이 여러개인 리스트여서 리스트 안에 있는 변수들을 for loop을 통해서 하나씩 가져와서 접근해야 하는 상황이었습니다. 코드를 보시는게 이해가 빠르실거 같네요. def run(self, job_id): # 접근하고자 하는 클래스를 인스턴스화 한 것이 task_executor task_executor = TaskExecutor() job = self.read_job_detail(job_id) task_list = ['read', 'drop', 'write'] if task := job['task_..
-
구조체(struct)와 가스(gas) 관계Solidity 2022. 5. 11. 22:17
HTML 삽입 미리보기할 수 없는 소스 크립토 좀비를 하면서 구조체와 가스 관계에 대해 새롭게 알게 된 점이 있어 이에 대해 공유하고자 글을 씁니다. Solidity를 하다 보면 가스를 지나칠 수 없을 겁니다. 왜냐하면 우리와 사용자들의 돈과 바로 직결되는 문제이기 때문입니다. 우선 스마트 컨트랙트에 가스가 왜 필요한 것인지와 어떻게 하면 그 비용을 줄일 수 있을지에 대해 얘기해보고자 합니다. 제가 이해하고 있는 것은 아래와 같습니다. 블록체인을 분산형 컴퓨팅 이라고도 하는데 함수가 실행되면 각각의 노드가 함수의 출력 값을 검증하기 위해 해당 함수를 실행해야 하고 이를 통해 검증이 되면 모든 노드의 블록체인에 해당 데이터가 반영되는 것입니다. 그렇기 때문에 로직이 복잡할수록 많은 컴퓨팅 리소스를 필요로 ..
-
접근 제한자와 생성자Solidity 2022. 5. 11. 00:32
HTML 삽입 미리보기할 수 없는 소스 조금씩 코드들이 어떤 의도로 쓰였고 어떤 방식으로 동작하는지 보이기 시작하는 것 같아서 많이 사용된다는 OpenZeppelin의 Ownable contract 코드를 들여다보고자 합니다. 이해하고 있는 부분에 대해 설명 쓰고 이해가 되지 않는 부분은 따로 적어뒀다가 해결되면 이에 대한 답도 남기겠습니다. // 컴파일러 버전 명시 pragma solidity >=0.5.0 저와 비슷한 궁금증을 가지고 있는 사람이 있었기에 참고 링크 공유드립니다. https://ethereum.stackexchange.com/questions/30223/should-the-constructor-function-be-public Should the constructor function ..
-
Nginx 설치 방법과 마주한 에러 해결 방법개발에 필요한 기초 지식 2022. 5. 1. 14:22
HTML 삽입 미리보기할 수 없는 소스 미래에 다른 가상환경에 Nginx를 설치하며 고생할 저를 위해 AWS 배포 과정에서 Nginx 설치 중에 마주했던 에러와 전체적인 설치 방법에 대해 쓰고자 합니다. 저는 Linux 환경에서 설치를 진행한 점 참고 부탁드립니다. 보통 저와 같은 Python, Django를 활용하는 백엔드 개발자라면 gunicorn과 Nginx를 함께 설치할것이기에 gunicorn 설치부터 차례대로 진행하겠습니다. # 가상환경을 이용한다면 가상환경에 설치하면 된다. pip install gunicorn Django 해당 앱 디렉토리로 이동하여 아래 명령어 실행 # 둘 중 한 가지 방법 선택 (백그라운드에서 실행 원하시면 2번 방법 선택) # 1. gu..