1. MTV 패턴 2. Django View 3. Django Template 4. Django Model 1. MTV 패턴 Django는 Model, Template, View 라는 MTV 패턴을 따르고 있는데, MTV는 MVC(Model, View, Controller)와 유사한 점이 많다. Django는 Controller의 역할을 Django Framework 자체에서 한다고 보고 있다. 따라서 MVC와 약간 다른 차이를 MTV로 설명하고 있다. MTV에서 Model은 데이터를 표현하는데 사용되며, 하나의 모델 클래스는 DB에서 하나의 테이블로 표현된다. MTV의 View는 HTTP Request를 받아 그 결과인 HTTP Response를 리턴하는 컴포넌트로서, Model로부터 데이터를 읽거나 ..
1. Django App 소개 2. Django App 생성 3. Django App 사용 1. Django App 소개 Django App은 Django에서 사용하는 "파이썬 패키지"이다. Django App 패키지는 그 안에 자신의 모델(Model), 뷰(View), 템플릿(Template), URL 매핑 등을 독자적으로 가지고 있으며, 일반적으로 하나의 Django 프로젝트는 하나 이상의 Django App으로 구성되어 있다. 규모가 큰 Django 프로젝트는 보통 여러 개의 Django App들을 모듈화하여 구성하는데, 모듈화된 App들로 구성하면 개발 및 유지 보수가 효율적이기 때문이다. 또한, 잘 모듈화된 App은 여러 웹 프로젝트에서 쉽게 재사용할 수도 있다. 2. Django App 생성 ..
1. Django 소개 2. Django 개발 환경 구축 1. Django 소개 Django(장고)는 파이썬으로 작성된 오픈 소스 웹 프레임워크로, 모델-템플릿-뷰(MTV) 패턴을 따르고 있다. 현재는 장고 소프트웨어 재단에 의해 관리되고 있다. Django의 주된 목표는 고도의 데이터베이스 기반 웹사이트를 작성하는 데 있어서 수고를 더는 것이다. Django는 컴포넌트의 재사용성(reusability)와 플러그인화 가능성(pluggability), 빠른 개발 등을 강조하고 있다. 설정 파일부터 데이터 모델에까지 파이썬 언어가 쓰였다. 인스타그램, NASA, 모질라, Disqus, 빗버킷에서 장고를 사용하는 것으로 알려져있다. 2. Django 개발 환경 구축 Django는 Python3 프로그래밍 언어..
1. 변수 (variable) 2. 자료형 3. 변수명 생성 규칙 1. 변수 (variable) 변수란 데이터를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다. 즉, 변수는 데이터를 저장할 수 있는 메모리 공간을 의미하며, 이렇게 저장된 값은 변경될 수 있다. C언어에서 숫자 표현에 관련된 변수는 정수형 변수와 실수형 변수로 구분할 수 있다. 정수형 변수는 char형, int형, long형 변수로, 실수형 변수는 float형, double형 변수로 나눌 수 있다. 또한, 데이터가 저장된 메모리의 주소를 저장하고 처리하는 포인터 변수가 있다. 관련된 정보를 한 번에 묶어서 처리하는 사용자 정의 구조체 변수도 있다. 2. 자료형 C언어의 자료형을 구체적으로 나타내면 다음과 같다. Na..
1. gcc 설치 2. C 파일 생성 3. 컴파일 1. gcc 설치 gcc는 유닉스 계열(리눅스)의 시스템에서 주로 사용하는 C/C++ 언어 개발 도구이다. C/C++ 언어로 된 파일을 컴파일하거나, 각종 응용 프로그램 개발에 사용한다. 먼저 gcc가 설치되어 있는지 확인하려면 아래 명령어를 입력한다. $ gcc --version 이때 gcc의 버전이 나오지 않는다면, 설치를 해주어야 한다. gcc 설치 명령어는 아래와 같다. $ sudo apt-get install gcc gcc가 정상적으로 설치되었다면 gcc 버전이 아래와 같이 나타난다. 2. C 파일 생성 모든 프로그래밍 언어를 배울 때 가장 먼저 해보는 것이 있다. 바로 "Hello world"를 출력하는 것이다. 첫 줄에 #include 라는 ..
이번 게시글에서는 puppeth를 이용하여 Private Network를 구축해보고자 한다. puppeth는 이더리움 노드 배포를 쉽게 할 수 있도록 해주는 유틸리티 프로그램이다. $ mkdir node 현재 디렉토리에 아래 명령어로 node 디렉토리를 생성한다. 이후 새 계정을 생성한다. geth가 있는 곳(geth 설치할 때 git clone 실행한 디렉토리)에서 make로 go 소스를 build한다. 다시 현재 디렉토리로 돌아와 puppeth 쉘에 진입한다. 생성할 Private Network의 이름부터 몇 가지 설정을 해준다. Which accounts should be pre-funded? 라는 질문은 node/keystore 디렉토리에 있는 UTC 파일의 address의 속성 값을 넣는다. c..
1. Genesis Block 생성 2. Geth 실행 3. 계정 생성 4. 채굴 5. peer 추가 1. Genesis Block 생성 /* genesis.json */ { "difficulty": "200000", "gasLimit": "3100000", "alloc": {}, "config": { "chainId": 7722, "homesteadBlock": 0, "eip150Block": 0, "eip155Block": 0, "eip158Block": 0 } } Private Network를 만들고자 하는 디렉토리에 genesis.json 파일을 생성하고 위와 같이 내용을 적는다. 위 내용 중 config 항목에서 가장 중요한 것은 chainId이다. chainId는 네트워크 상에서 각각의 망을 ..
1. Geth 동기화 모드 2. Geth 명령어 1. Geth 동기화 모드 전체 동기화 (Full Sync) 제네시스 블록부터 현재 블록까지 모든 블록을 동기화 빠른 동기화 (Fast Sync) 최근 상태, 트랜잭션, 리시트 등을 포함하는 블록 헤더만을 동기화 (이전 히스토리를 알 수 없기 때문에 트랜잭션의 유효성 검증을 할 수 없음) 경량 동기화 (Light Sync) 현재 상태 정보만 동기화 Geth의 동기화 모드는 위의 표와 같이 3가지가 있다. 실습에서는 용량의 부담이 적은 Light Sync로 메인넷의 정보를 불러오겠다. $ geth --syncmode light 위의 명령어로 geth를 실행하면 chainId가 1인 메인넷의 블록들에 대한 정보를 동기화 할 수 있다. chainID : 1 (m..
오늘은 React를 이용하여 MetaMask와 연동해 볼 것이다. 먼저 아래 명령어로 CRA(create-react-app)을 생성하고 web3를 설치한다. $ npx create-react-app project-name $ npm i web3 src 디렉토리 내에 있는 App.js를 아래와 같이 수정한다. /* App.js */ import './App.css'; import useWeb3 from './hooks/useWeb3'; import { useEffect, useState } from 'react'; function App() { const [account, web3] = useWeb3(); const [isLogin, setIsLogin] = useState(false); const [ba..
1. CRA(create-react-app) 2. CRA 커스터마이징 방법 2.1. eject 2.2. create-app-rewired, customize-cra 1. CRA(create-react-app) CRA(create-react-app)는 리액트 프로젝트를 처음 실행할 때 필요한 여러가지 라이브러리나 웹팩의 설정 없이 간편하게 프로젝트를 시작할 수 있게 해준다. CRA 장점 단 하나의 one build dependency를 가지게 되므로 리액트 프로젝트를 구성할 때 필요한 Webpack, Babel, ESLint 등 간의 연결에 대해서 신경쓰지 않아도 된다. Webpack, Babel, ESLint는 처음 프로젝트를 구성할 때 반드시 설정이 필요한 패키지인데, CRA는 프로젝트에 필요한 필수적..
1. web3 개념 2. web3 설치 1. web3 개념 초기 웹 1.0은 서버-클라이언트 방식으로 각 인터넷 기업별로 독자적인 시스템을 구축해서 운영하는 방식이었다. 인터넷 홈페이지를 운영하는 모든 회사들은 독자적으로 서버를 갖추고 시스템을 운영하거나 웹호스팅이라 불리는 업체에 일정 사용료를 내고 서버를 임대해서 사용했다. 서버에는 홈페이지의 운영에 필요한 모든 파일이 저장되어 있고 홈페이지에서 제공되는 각종 서비스의 구동과 운영을 위한 프로그램들이 설치되어 있다. 이렇게 개별적으로 수 천만 개, 수 억 개의 인터넷 홈페이지가 운영되면서 서버는 늘어가고 이를 운영하는데 필요한 시스템도 복잡해졌다. 이러한 비효율을 없애기 위해 클라우드가 대두되었고 2000년대 중반부터 클라우드 방식의 중앙화된 효율적 ..
1. ganache 개념 2. ganache-cli 설치 3. MetaMask 확장 프로그램 설치 1. ganache 개념 ganache는 로컬 PC 내에 가상의 이더리움 네트워크를 생성해서 스마트 컨트랙트를 실행할 수 있고 MetaMask로 송금할 수 있게 해주는 프로그램이다. 이러한 가상 환경을 TestRPC라고 한다. ※ RPC (Remote Procedure Call) RPC는 별도의 원격 제어를 위한 코딩 없이 다른 주소 공간에서 함수나 프로시저를 실행할 수 있게 하는 프로세스 간 통신 기술이다. 다시 말해, RPC를 이용하면 프로그래머는 함수가 실행 프로그램이 로컬 위치에 있든 원격 위치에 있든 동일한 코드를 이용할 수 있다. 개발 및 배포 과정 (TestRPC → TestNet → MainN..
- Total
- Today
- Yesterday
- 키워드
- short
- gcc
- Document Object Model
- 리액트 #React #props #state #javascript
- 컴파일
- long
- DOM
- keyword
- stdio.h
- 변수
- Screen 객체
- Navigator 객체
- int
- c언어
- Browser Object Model
- History 객체
- Char
- location 객체
- bom
- 자료형
- window 객체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |