StoryCode

static

Python, 파이썬
반응형

1) Python 에는 그런 거 없다. 다른 방식으로 비슷하게 구현해야 한다.

 

2-1)

def func(static_var = [0]):

       static_var[0] +=1

        return static_var[0]

 

# func 를 의도한대로 사용한 결과

print(func()) # 1 출력

print(func()) # 2 출력

 

# func 를 의도에서 벗어나 사용한 결과 문제점

print(func()) # 1 출력

print(func([10, 20, 30])) # 11 출력

print(func()) # 2 출력

 

2-2) 2-1 의 문제점 해결한 방식. class member variable 방식

def func()

    func.counter += 1

    return func.counter

 

func.counter = 0

처럼 하면 func 객체 ( def 라 함수지만 python 에서 모두 객체이다. counter 는 member 변수가 되고, 객체가 사라지지 않는 이상 유지된다. Ex> del func.counter)

 

2-3) 2-1 의 문제점 해결한 방식. nonlocal 방식. in 에서 out의 변수 참조가 존재할 수 있어서 변수 유지해줌.

def out_func():
    static_var = 0
     def in_func():
          nonlocal static_var # static_var 는 in_func 에서만 변경할 수 있다.
          static_var 十= 1
          return static_var
     return in_func

 

out_func()

반응형

locals, return 될 변수를 동적으로 변경하는 방법

Python, 파이썬
반응형

# locals 에는 메소드의 변수가 저장되어 있음. 이를 이용해서 returns 가 요구하는 변수들만 뽑아서 리턴할 수 있다.

def forward(x, f, h, returns):

    xf = x + f
    fh = f + h
    xfh = xf * fh

    result = xfh

 

    variables = locals()

    return tuple(variables[r] for r in returns)

 

a, b = forward(1,2,3, returns=("xf", "fh")) # xf 와 fh 를 리턴해달라 요구

d, e, f = forward(1,2,3, returns=("xf", "fh", "result")) # xf 와 fh오f result 를 리턴해달라 요구

반응형

'Python, 파이썬' 카테고리의 다른 글

static  (0) 2024.12.05
Debuggin,디버깅,pdb  (0) 2024.05.24
import directory 지정해주기  (0) 2024.04.19
csv 를 읽어 mysql create table 문장 생성  (0) 2024.03.16
..., :, Ellipsis  (0) 2023.09.21

키후.브레이크.패드

자전거
반응형

- 키후 자전거에 사용되는 브레이크 모델명이 없다.

- 이름으로 찾는 건 실패했다.

- TP-11G 가 가장 비슷하나, 사이즈가 좀 작다. 사용할 수는 있지만 브레이킹 능력이 조금 딸린다.

- AVID-BB5 도 비슷하지만, 가운데 끼우는 스프링(?) 모양이 다르다. 그냥 1자 모양 스프링이어야 하는데, 가운데가 2겹인 스프링이서 자전거에 장착되지 않았다.

- 해외에서 있는 곳을 찾기는 했는데 비싸다.

 

반응형

'자전거' 카테고리의 다른 글

구매후기  (0) 2024.09.22
BodyCam.A50.사용법.녹화방법  (0) 2024.09.05
프리휠 분리  (0) 2024.03.24
BodyCam.A50.초기화  (0) 2024.03.05
네비게이션.BSC-300.Menu  (0) 2023.11.20

SW 인증 절차

TTA.GS인증
반응형

1) 사전 심사

공지에 글 있으니 사전 심사부터 진행.

매뉴얼 잘 만들 것.

간단한 유선상 회의후, 견적서 나오니 입금해야 함.

 

2) 시험 신청

시험 기간은 20 영업일 소요.

통과되면 발급에 일주일 소요.

도합 한달로 잡는 듯.

 

비용도 한달 X 투입 인력 비용인 듯.

GS 인증 발급 하려면, SW 저작권도 등록 필요하다고 알려줌.

 

시험신청해도 한달은 무조건 대기. 두달 기다려야 할 수도 있음.

 

반응형

구매후기

자전거
반응형

2024년 9월 22일 현재

 

- 너무 싼거는 안 사려고 잘 찾아보고 샀다고 생각했다.

40만원대라 싸다면 싸고 비싸다면 비싼 거 라고 생각한다. 난 물론 후자로 생각하고 샀다.

8단 비슷한 스펙의 20만원대 자전거도 있어서 그거 살까 하다가 그래도 너무 싼거 같아서 이거 샀다.

 

- 동일한 모델을 두 번 샀고, 2024년 3월에 두번째를 샀다.

 

- 비싼 왁스 오일로 체인 도포질도 하고, 닦고 조였다.

 

좋은 점)

있나 ? 백만원 가냥 날린거 같은데...ㅎㅎ

그냥 돈 좀 보태서 로드 살 껄~ 1년 타면 망가지는 자전거일 줄은 몰랐음. 아니면 자전거란게 1년 타면 망가지는 게 일반적인 건가 ?

 

불편한 점)

- 첫번째 산 자전거는  1년 반을 탔는데, 한 반년만에 삐걱거리기 시작하더니 더 이상 타기 힘들 정도가 되었다.

내가 우중에도 좀 타고 해서 내가 잘 못 한 건줄 알았다.

 

- 두번째 자전거는 비도 안 맞히고 고이 출퇴근 했다. 출퇴근 거리 도합 20km 정도.

 

- 접이식 페달 : 내부에 스프링이 있어서 그런 건지, 한 달만에 페달밟고 있는데도 스스로 한바퀴 정도를 돌아버린다. 진짜 스스로 !!! 걍 쓰레기다. 두대 그래서 모두 돈 들여서 페달을 바꿨다.

 

- 체인 시프트 : 한 칸 올리거나 내리거나 해도 시프트가 안된다. 수시로 위 아래로 자동 시프트 (?) 된다. 이건 뭐 내가 관리를 못해서겠지. 두칸 내렸다가 다시 한칸 올리는 식으로 대처하고 있다. 방법을 찾아야지.

 

- 비비 : 반년 쯤 타니, 양 페달을 밟으면 매우 불쾌한 뚝뚝 끊어지는 진동이 발에 전달된다.  타다가 부서져서 내가 죽는 거 아닌가 하는 불안감이 엄습니다. 첫번째 자전거는 그래도 1년 걸렸는데 두번째 자전거는 반년만에 그렇다.

 

- 헤드셋 관절 접는 부분 : 첫번째 자전거는 이 부분이 심하게 벌어졌고 육각바 같은 걸 조절해도 대처가 안됐다..

두번째 자전거도 좀 벌어지기 시작해서 다행히 육각바 같은 걸 조절하니 나아졌다.

 

- 브레이크 패드 : 온라인에서는 동일한 브레이크 패드를 찾을 수가 없다. 비슷해보이지만 다 다르다. 날린 돈만 ... ㅎㅎ

얼마전에 비슷한 걸로라도 교체해보려고 또 샀다. 소리 땜에 못 살겠다. 분해해서 청소해도 안된다.

 

- A/S 맡기려고 홈페이지들 뒤져보니, 홈페이지 찾기도 힘들고 겨우 찾은 홈페이지에서 A/S 보니 일주일 이상 기다려야 하는 듯한데 너무 복잡해서 포기.

 

- 부품 종류를 알 수 없고 팔지도 않아서 부품 구매하기도 어렵다. 이것도 포기.

 

- 잘 타보려고 동일 모델 두대나 산건데 ... 다음 자전거는 동네 삼천리에서 자전거 사야겠다.

반응형

'자전거' 카테고리의 다른 글

키후.브레이크.패드  (0) 2024.11.10
BodyCam.A50.사용법.녹화방법  (0) 2024.09.05
프리휠 분리  (0) 2024.03.24
BodyCam.A50.초기화  (0) 2024.03.05
네비게이션.BSC-300.Menu  (0) 2023.11.20

BodyCam.A50.사용법.녹화방법

자전거
반응형

1. 첫번째 버튼 (빨간 점 있는 버튼) 켠다. ( 블랙박스 ON )
   켜지는 데 몇 초 걸리는 지 모름.

   녹색과 파란불이 켜지고 좀 있으면, 녹색불이 꺼진다.

   파란 불이 깜빡이면 자동 녹화가 시작 된 것이고, 안 깜빡이면 세번 째 버튼을 누른다.


2. 촬영시작 용 세번째 버튼 누른다. ( 파린 불 깜빡임 )


3. (중요) 종료시 세번째 버튼 누른다. ( 그래야 저장 됨 )

 

* 특) 너무 짧은 시간 녹화시 ( 대충 1분 미만 ) 저장이 안되는 듯. 

반응형

'자전거' 카테고리의 다른 글

키후.브레이크.패드  (0) 2024.11.10
구매후기  (0) 2024.09.22
프리휠 분리  (0) 2024.03.24
BodyCam.A50.초기화  (0) 2024.03.05
네비게이션.BSC-300.Menu  (0) 2023.11.20

인생은 Burger 와 Donut 사의 Chicken 이다.

아무거나
반응형

치킨이 최고다.

반응형

Docker logs 가 저장되는 위치

Docker, 도커
반응형

HOST:/var/lib/docker/containers/<containerid>/<containerid>-json.log

반응형

Database Docker (mysql, mariadb, oracle, postgres...)

Database 관리
반응형
# docker-compose.yml

services:
  oracle:
    image: gvenzl/oracle-xe
    container_name: oracle
    environment:
      - ORACLE_PASSWORD=oracle
    ports:
      - "1521:1521"
    volumes:
      - ./volume.oracle-data:/opt/oracle/oradata

  mysql:
    image: mysql:8.0
    container_name: mysql
    environment:
      - MYSQL_ROOT_PASSWORD=mysql
      - MYSQL_DATABASE=mydb
    ports:
      - "3306:3306"
    volumes:
      - ./volume.mysql-data:/var/lib/mysql

  mariadb:
    image: mariadb:latest
    container_name: mariadb
    environment:
      - MYSQL_ROOT_PASSWORD=mariadb
      - MYSQL_DATABASE=mydb
    ports:
      - "3307:3306"
    volumes:
      - ./volume.mariadb-data:/var/lib/mysql

  mssql:
    image: mcr.microsoft.com/mssql/server:2019-latest
    container_name: mssql
    environment:
      - ACCEPT_EULA=Y
      - SA_PASSWORD=SqlServer2021
    ports:
      - "1433:1433"
    volumes:
      - ./volume.mssql-data:/var/opt/mssql

  db2:
    image: ibmcom/db2:11.5.5.1
    container_name: db2
    privileged: true
    environment:
      - DB2INST1_PASSWORD=db2inst1
      - LICENSE=accept
      - DB2INST1=inst1
      - DBNAME=testdb
    ports:
      - "50000:50000"
    volumes:
      - ./volume.db2-data:/database

  mongodb:
    image: mongo:4.4
    container_name: mongodb
    environment:
      - MONGO_INITDB_ROOT_USERNAME=mongo
      - MONGO_INITDB_ROOT_PASSWORD=mongo
    ports:
      - "27017:27017"
    volumes:
      - ./volume.mongodb-data:/data/db

  redis:
    image: redis:alpine
    container_name: redis
    ports:
      - "6379:6379"
    volumes:
      - ./volume.redis-data:/data

  informix:
    image: ibmcom/informix-developer-database
    container_name: informix
    environment:
      - LICENSE=accept
      - INFORMIX_PASSWORD=in4mix
    ports:
      - "9088:9088"
    volumes:
      - ./volume.informix-data:/opt/ibm/data

  sqlite:
    image: nouchka/sqlite3
    container_name: sqlite
    volumes:
      - ./volume.sqlite-data:/db
    command: tail -f /dev/null

  couchdb:
    image: couchdb:latest
    container_name: couchdb
    environment:
      - COUCHDB_USER=admin
      - COUCHDB_PASSWORD=admin
    ports:
      - "5984:5984"
    volumes:
      - ./volume.couchdb-data:/opt/couchdb/data

  cassandra:
    image: cassandra:latest
    container_name: cassandra
    environment:
      - CASSANDRA_START_RPC=true
    ports:
      - "9042:9042"
    volumes:
      - ./volume.cassandra-data:/var/lib/cassandra

  postgres:
    image: postgres:latest
    container_name: postgres
    environment:
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_DB=mydb
    ports:
      - "5432:5432"
    volumes:
      - ./volume.postgres-data:/var/lib/postgresql/data

volumes:
  volume.oracle-data:
  volume.mysql-data:
  volume.mariadb-data:
  volume.mssql-data:
  volume.db2-data:
  volume.mongodb-data:
  volume.redis-data:
  volume.informix-data:
  volume.sqlite-data:
  volume.couchdb-data:
  volume.cassandra-data:
  volume.postgres-data:

 

mkdir    volume.oracle-data   volume.mysql-data   volume.mariadb-data   volume.mssql-data   volume.db2-data   volume.mongodb-data   volume.redis-data   volume.informix-data   volume.sqlite-data   volume.couchdb-data   volume.cassandra-data   volume.postgres-data

chmod 777 volume.oracle-data

docker-compuse up
반응형

'Database 관리' 카테고리의 다른 글

데이타베이스 콘솔 기본 명령어 모음  (0) 2022.01.14
디비별 SQL 비교  (0) 2020.01.12

2024-398.EMR.설정

AWS, 아마존/AWS, EMR
반응형

용어) EMR : EMR 클러스터를 생성하여 코드 실행한다. 학습 모델 코딩시 집중해서 계속 작업하는 용도이다. 비용보다는 작업 효율에 집중할 때 사용한다.

 

용어) EMR Serverless : 코드 실행시에 EMR 클러스터를 할당 받아서 코드 실행하고 종료후 클러스터를 종료한다. 즉, 가끔 인퍼런스 돌릴 때 사용하면 비용 절감에 효과적이다.

 

1) EMR 설정

쥬피터 포함.

[이름 및 애플리케이션]

- 이름 : project.emr.cluster

- Amazon EMR Release : 최신 ( 2024/6/11현재 emr-7.1.0)

- 애플리케이션 번들 : Spark Interactive 선택 후 Jupyter Hub 1.5.0 추가 체크하면, 자동으로 Custom 으로 변경됨.

( Hadoop, Hive, JupyterEnterpriseGateway 2.6.0, JupyterHub 1.5.0, Livy, Spark, 옵션으로 Tensorflow )

 

[클러스터구성]

균일한 인스턴스 그룹

- 프라이머리 : m5.xlarge : 이건 작업에 맞춰 서버 스펙을 키울 것.

- 코어 : m5.xlarge : 이건 작업에 맞춰 서버 스펙을 키울 것.

- EBS 루트 볼륨 : 크기 - 15 ( 이건 작업할 파일 사이즈에 맞춰 키워야 될 수도 있음. 작업하면서 맞춰 볼것 )

 

[클러스터 크기 조정 및 프로비저닝]

- 옵션 : 수동으로 클러스터 크기 조정

- 구성 프로비저닝 : 인스턴스 크기 : 2 ( 이건 작업에 따라 조정할 것 ). 이걸 2로 맞추면 "프라이머리 m5.xlarge EC2 한 대" + "코어 m5.xlarge EC2 2 대" = 총 3대의 EC2 가 생성됨.

 

[네트워킹]

자신의 네트워크 설정

 

[클러스터 종료 및 노드 교체]

- 종료 옵션 : 유휴 시간 : 3시간

- 비정상 노드 교체 : 켜기

 

[클러스터 로그]

- s3 에 작업 폴더 아래에 로그 폴더 만들어서, s3://uri/workfolder/logfolder 등록

 

[Identity and Access Management(IAM)]

- Amazon EMR 서비스 역할 : 서비스 역할 생성

- 보안그룹 : 내 보안 그룹 선택

- Amazon EMR용 EC2 인스턴스 프로파일 : 인스턴스 프로파일 생성

 

 

# 작업이 끝난 후 클러스트를 사용종료하세요.

 

반응형