FPGA

재미있는걸 알게되서 조금 조사 해 봤다

개념

  • https://ko.wikipedia.org/wiki/FPGA
  • https://namu.wiki/w/FPGA

코딩이 가능한 임베디드 장비로 ASIC이 특정목적에 맞게 설계를 하는반도체라면
FPGA는 조금 더 범용적인 장비.. 하지만 일반적인 CPU보다는 조금 더 임베디드한? 동작을 하는 장비다
당연히 ASIC보다는 조금 느리지만 특화된 기능에 대해 CPU보다는 빠른 동작이 가능한 장비
ethernet처럼 아주 고정된 동작만을 한다면 ASIC을 사용하겠지만
자율주행, 5G, IoT 처럼 아직 변화가 많이 발생할만한 분야라면 FPGA를 사용

원래 설명

  • https://m.blog.naver.com/PostView.nhn?blogId=msnayana&logNo=80124294898&proxyReferer=https:%2F%2Fwww.google.com%2F

코딩

  1. 언어는 Verilog, VHDL, schematic
  2. 컴파일(synthesis)
  3. 모듈의 위치와 선을 배치하는 작업인 라우팅을 한다고???
  4. 퓨즈 설정으로 회로를 구성시킨다고???
  5. flash나 eeprom에 넣어 실행(펌웨어?)

그냥프로그램만 넣어서 쓸 수 있는건 아닌 모양이다. 여러개의 input과 여러개의 output이 있고 이것중에 일부를 선택해서 사용해야 하는 형태일까

FPGA 코딩으로 할 수 있는 것

  • http://wiki.vctec.co.kr/devboard/fpga/spartan-3a-fpga-gaebalbodeu–elbert/overview
  • https://dkeemin.com/vivado-verilog-%EC%BD%94%EB%94%A9%ED%95%B4%EB%B3%B4%EA%B8%B0/

사진 인코딩, 비디오 스트링 전처리 등
방화벽, 웜바이러스, 디도스 등등 – 패턴화된 네트워크 처리

FPGA router project

FPGA로 라우터를 만든다면?

  • https://en.wikipedia.org/wiki/NetFPGA
  • https://www.turris.cz/cs/omnia/predstaveni/
  • https://www.solid-run.com/marvell-armada-family/macchiatobin/
  • https://librecmc.org/
  • https://openwrt.org/toh/recommended_routers

Postgresql 버전 업데이트

도커 컨테이너 사용

짐은 11에서 13으로 업데이트를 하였다

sudo docker run --rm -it -v "/현재데이터디렉토리/data:/var/lib/postgresql/11/data/" -v "/타겟디렉토리빈폴더/data:/var/lib/postgresql/13/data" tianon/postgres-upgrade:11-to-13

그냥 명령어 실행시키면 되는거긴 한데

따로 설치하기 힘드니까 도커로 하면 편하다

11에서 13으로 업데이트 하려고 하다가 골치아팠는데 덕분에쉽게 처리했다

모든 버전별로 제공중

리액트 웹앱 제작 총론 2/e: 리액트와 리덕스를 이용한 웹앱 개발 가이드, 2019

그냥 간단하게 잘 나와있다

jquery, jsp, php, asp 등등 구닥다리 웹프론트 기술을 좀 알고 있고
angular, typesript, express 정도는 조금 만져본 상태의 지식수준에서
볼 때는 대충 넘기면서 한두시간 보면 되는 정도..
요약을 잘 해 놓으면 네다섯페이지도 안되는 분량

리엑트나 웹 프레임웤을 처음 접하는 사람이 볼 수 있을지는 모르겠다
난 이 책을 보기전에 리엑트로 된 어드민사이트를 며칠 살짝 만져보긴 한 상태라서 좀 더 쉬웠는지도 모르겠다.
아예 프로그래밍 초보자라면 따라하고나서 남는거 하나도 없을 듯 하고

React

생명주기 메서드

  • componentWillMount
  • componentDidMount
  • componentWillUnmount
  • componentWillUpdate
  • componentDidUpdate
  • shouldComponentUpdate
    • if ~~~ return true else false
      true면 업데이트, false면 무시
  • componentWillReceiveProps
  • componentDidCatch

동작

초기 렌더링

  • 기본 속성 설정
  • 기본 상태 설정
  • componentWillMount
  • render
  • componentDidMount

상태변경

  • shouldComponentUpdate
  • componentWillUpdate
  • render
  • componentDidUpdate

속성변경

  • componentWillReceiveProps
  • shouldComponentUpdate
  • componentWillUpdate
  • render
  • componentDidUpdate

언마운트

  • componentWillUnmount

scaffold

npm i -g create-react-app
create-react-app hellowork-app

Redux, HOC

Admin 개발 편하게 하려면

쓸만한 무료 어드민 툴종류

어드민 프레임워크

  • Vaadin
    • https://vaadin.com/
  • CUBA Platform – vaadin에 의존성 있는듯
    • https://www.cuba-platform.com/
    • https://github.com/cuba-platform/cuba

프레임웤 내부지원

  • RubyOnRails – ActiveAdmin
  • django – admin

템플릿

react template도 많고 등등..

교훈

관리자 사이트를 리엑트로 만들지 말라

– 소크라테스 AI

디자인도 하지말고

2020 DevOps 기술 트렌드

CI/CD

메이저

CircleCI, TravisCI, GithubAciton, GitlabAction, AWS Code Build
tekton.dev, drone.io
argo(https://github.com/argoproj/argo)

애매한

GoCD

밀려난

Jenkins

Provisioning

메이저

Ansible, python fabric

애매한

SaltStack

밀려난

Chef

Container

메이저

k8s, helm,

애매한

keel(https://github.com/keel-hq/keel), quay.io, docker swarm, flynn

밀려난

….

Cloud

메이저

Terraform, Python boto
AWS – MSK, RDS, EC2, ElasticCache, EKS, Route53
GCP, DigitalOcean

애매한

밀려난

AWSCloudFormation, AWS ElasticBeanstalk, ECS

Cors – python flask on Dokku

파이썬 개 똥언어

서버가 오류나뒈지면서 에러메시지 처리도 제대로 안되고
코드 중간에 오류나면 오류는 처먹고 뒤져버린다

솔직히 연습용으로는 좋다. 구석구석 에러가 나니까 개발할 때 프로토콜은 잘 배울 수 있겠다
라이브러리도 죄다 쓰레기라 하나하나 손봐서 써야되고 커스텀도 불가능한 구조로 만들어진 경우가 많아 pip고 뭐고 그냥 복사붙여넣기 해서 수정해야 하는 경우가 많다

이런 심플함(좆도없음)이 파이썬의 장점이라고 하니까

이쓔상황

Dokku에서 돌리는 Flask 서버에서 Cors가 난다고 한다.
swagger에서는 괜찮은데 react 클라이언트에서만 발생

문제는 뭘까? 의심가는 부분은..

  1. flask cors가 쓰레기라 제대로 동작을 안한다
  2. nginx reverse proxy가 제대로 일을 못한다
  3. 클라이언트가 코딩을 제대로 못했다
  4. 리엑트는 원래 병신 쓰레기라 아무 오류나 나온다

1번체크

curl \
--verbose \
--request OPTIONS \
'https://dokku-api-server' \
--header 'Origin: http://localhost:3000' \
--header 'Access-Control-Request-Headers: Origin, Accept, Content-Type' \
--header 'Access-Control-Request-Method: GET'

2번체크

/home/dokku/api-server/nginx.conf

별 이상없어보인다

3번체크

실행…
서버 호출을 잘못하기는 했는데…
서버오류가 cors가 아닌데 cors라고 나오는게 문제고

4번체크

????

추가체크

서버로그를 보니 flask jwt인증부분을 손을 댔는데 여기서 오류가 난 모양…
헤더가 안 들어올 때 401을 내려줘야하는데 그러질 못하고 있다
서버에서 응답이 없으면 cors가 뜨나? http 프로토콜문제인지 리엑트가 원래 병신인지 잘 모르겠다.

리엑스에서 cors오류발생시 리엑트와 플라스크서버가 모두 병신일 수 있다는걸 기억하자