코딩, 개발에 대한 기록 저장소
레이블이 기타인 게시물을 표시합니다. 모든 게시물 표시
레이블이 기타인 게시물을 표시합니다. 모든 게시물 표시

프로그램 개발시 행동을 지칭하는 단어 비교

하나의 행동을 지칭하는 단어로는 "Act", "Task", "Process", "Event", "Activity", "Procedure" 등이 있습니다. 각각의 의미와 차이를 살펴보겠습니다.

1. Act (행위, 행동)

  • 특정한 목적을 가진 하나의 행위 또는 결정적인 행동을 의미합니다.
  • 예시:
    • The act of pressing a button (버튼을 누르는 행위)
    • An act of kindness (친절한 행동)

2. Task (작업, 과업)

  • 완료해야 하는 특정한 일을 의미하며, 일반적으로 작은 단위의 작업을 지칭합니다.
  • 예시:
    • Complete a task (작업을 완료하다)
    • Assign a task (작업을 할당하다)

3. Process (과정, 절차)

  • 일련의 단계로 이루어진 행동의 흐름을 의미하며, 하나의 행동이라기보다는 연속적인 절차를 강조할 때 사용합니다.
  • 예시:
    • The process of authentication (인증 과정)
    • A learning process (학습 과정)

4. Event (사건, 이벤트)

  • 특정 시점에서 발생하는 하나의 사건을 의미하며, 소프트웨어 개발에서는 주로 UI 이벤트나 시스템 이벤트를 의미합니다.
  • 예시:
    • Click event (클릭 이벤트)
    • A scheduled event (예약된 이벤트)

5. Activity (활동, 행위)

  • 특정한 목표를 가지고 수행하는 행동을 의미하며, 비교적 범위가 넓습니다.
  • 예시:
    • User activity (사용자 활동)
    • Physical activity (신체 활동)

6. Procedure (절차, 순서)

  • 어떤 행동을 수행하는 공식적인 방법이나 절차를 의미합니다.
  • 예시:
    • Safety procedure (안전 절차)
    • Login procedure (로그인 절차)

어떤 단어를 선택해야 할까?

의미 사용 예시
Act 단순한 행동 문을 열다, 버튼을 누르다
Task 할당된 작업 문서를 작성하는 작업
Process 여러 단계를 거치는 과정 로그인 과정, 데이터 처리
Event 특정 시점에서 발생하는 사건 클릭 이벤트, 시스템 알림
Activity 지속적으로 수행하는 활동 사용자 활동 기록
Procedure 정해진 방법에 따라 수행하는 절차 보안 절차, 데이터 백업 절차

용도에 따라 적절한 변수명을 사용하면 선택하면 됩니다!



Github 소스 하이라이트를 만들어 링크하는 방법

우연히 알게된 github 소스를 링크 걸때 특정 블럭에 하이라이트를 만들어 링크하는 방법을 정리한다.

예를 들어 https://github.com/angular/angular.js/blob/master/src/auto/injector.js 의 링크를 만들때

10라인에서 20라인까지 하이라이트 처리하고 싶다면 다음과 같이 하면 된다.

https://github.com/angular/angular.js/blob/master/src/auto/injector.js#L10-L20



windows 10 에서 start program 등록 방법

pc 부팅할 때 자주사용하는 프로그램을 바로 띄워놓기 위해 시작프로그램을 등록하여 사용하는데

windows 7에서 windows 10으로 넘어가면서 시작프로그램 등록하는게 익숙하지 않아 정리합니다.

다음과 같이하면 windows 10에서 쉽게 시작프로그램을 등록할 수 있습니다.

1. 시작프로그램 폴더를 열기
: 윈도우키+R 또는 시작 버튼을 오른쪽 클릭해서 "실행" 선택하여 실행 창 실행

2. shell:startup 입력

3. 시작프로그램 폴더가 열리면 등록하려는 프로그램의 바로가기를 추가



css에서 first-of-type 과 first-child 의 차이

css 문법중 first-of-typefirst-child 에 대한 내용을 정리합니다.

  • first-of-type : 속성이 처음으로 나올때 css를 적용합니다.
  • first-child : 속성이 첫번째 자식인 경우 css를 적용합니다.

라고 설명할 수 있겠지만 말로는 쉽게 이해되지 않습니다. ^^

아래 예를 보시면 차이점을 쉽게 이해할 수 있을 것 같습니다.

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="utf-8">
    <style>
        div p:first-of-type {   /* div에 p가 처음으로 나올때 배경색을 변경 */
            background: #00ff00;
        }

        div p:first-child {     /* div의 첫번째 자식이 p인 요소에 배경색을 변경 */
            background: #ff0000;
        }

    </style>
</head>
<body>
    <div>
        <h1>h1태그1번</h1>
        <p>p태그1번 first-of-type</p>
        <p>p태그2번</p>
    </div>
    <div>
        <p>p태그1번 first-child</p>
        <p>p태그2번</p>
    </div>
</body>
</html>


Docker에 bitcoin 데몬 설치하기

Docker에 bitcoin 데몬 설치하기

docker image 생성

docker image를 생성하기 위해 dockerfile를 작성하고 빌드합니다.

$ vi dockerfile
FROM ubuntu:18.04
MAINTAINER indexall
RUN mkdir /bitcoin
RUN mkdir /bitcoin/block
WORKDIR /bitcoin
RUN apt-get update
RUN apt-get install -y software-properties-common
RUN apt-add-repository ppa:bitcoin/bitcoin
RUN apt-get update
RUN apt-get install -y bitcoin-qt bitcoind
RUN apt-get install -y vim

# docker build -t [tag] [path:dockerfile]
$ docker build -t ubuntu-bitcoin:1.0.0 .

docker image 실행

다음 명령어를 통해 생성된 이미지를 컨테이너로 만들고 인스턴스를 실행합니다.

$ docker run -it -d --name ubuntu-bitcoin ubuntu-bitcoin:1.0.0 /bin/bash

# 컨테이너 인스턴스가 실행되었는지 확인
$ docker ps

# 컨테이너 인스턴스 접속
$ docker exec -it ubuntu-bitcoin /bin/bash

bitcoind 실행

이후에는 접속된 docker 인스턴스에서 진행합니다.

$ vi /bitcoin/tnotify.sh
#!/bin/sh
echo "Type=$1, Arg=$2" >> /bitcoin/testnotify.log

$ chmod 755 /bitcoin/tnotify.sh

# -datadir= 는 block을 넣을 디렉토리로 설정 
$ bitcoind -datadir=/bitcoin/block -daemon -server -testnet -txindex -reindex -rpcuser=indexall -rpcpassword=xxxxxx -alertnotify="/bitcoin/tnotify.sh ALERT %s" -walletnotify="/bitcoin/tnotify.sh WALLET %s" -blocknotify="/bitcoin/tnotify.sh BLOCK %s"

# 동작 확인
$ tail -f /bitcoin/block/testnet3/debug.log

bitcoin.conf 파일을 생성하면 bitcoin-cli 사용시 편리합니다.

bitcoin.conf 를 생성하면 -testnet -rpcuser -rpcpassword 등 을 넣지 않아도 됩니다.

$ vi ~/.bitcoin/bitcoin.conf

# 백그라운드 실행
daemon=1

# 테스트넷 여부
testnet=1

# rpcuser, passwrd설정
rpcuser=indexall
rpcpassword=xxxxxx

# 적용 여부 확인 (현재 동기화된 블럭수를 확인)
$ bitcoin-cli getblockchaininfo

bitcoind 종료

$ bitcoin-cli -testnet -rpcuser=indexall -rpcpassword=xxxxxx stop


[git][error] would clobber existing tag

> git pull --tags origin master
From https://github.com/MY/TEST
 * branch            master     -> FETCH_HEAD
 ! [rejected]        latest     -> latest  (would clobber existing tag)
   123456...7890     master     -> origin/master

After merging from VSC to the development branch, I tagged it so that it can be built. If another developer makes changes to the branch and then PULLs, you may get an error like the title. The approximate content seems to be caused by different locally tagged sources. (guess)

Anyway, to solve this problem, you can do a force update as shown below.

git pull --tags -f


GPL vs LGPL

GPL과 LGPL의 차이점을 조사하여 정리함

GPL(GNU General Public License)

  • GPL 코드를 일부라도 사용하게 되면 그 프로그램은 GPL이 됨
  • 프로그램을 유료로 판매하는 것은 가능하지만, 반드시 전체 소스코드는 무료로 공개해야 함

LGPL(GNU Lesser General Public License)

  • LGPL 코드를 라이브러리로 사용한 프로그램을 개발하여 판매/배포할 경우에 프로그램의 소스코드를 공개하지 않아도 됨
  • LGPL 코드를 단순히 이용하는 것이 아니라 수정 또는 이로부터 파생된 라이브러리를 개발하여 배포하는 경우에는 소스코드를 공개해야함

차이점

  • 범위: GPL은 라이브러리와 애플리케이션 모두에 적용, LGPL은 라이브러리에만 적용
  • 파생물: GPL은 파생물이 배포될 경우 전체 소스 코드를 공개, LGPL은 파생물이라도 라이브러리의 소스코드만 공개
  • 독립성: LGPL은 라이브러리가 다른 소프트웨어와 결합될 때도 해당 소프트웨어의 라이선스를 따르지 않아도 됨. GPL은 다른 소프트웨어와 결합될 때 전체 소스 코드를 공개해야 함


윈도우11 에서 make 설치 방법

맥이나 리눅스에서 자주 사용하는 make 명령어를 윈도우 환경에 설치하는 방법입니다.

GNU Make 설치

설치파일 경로

  • 아래 경로에서 setup 파일을 받아 설치
    https://gnuwin32.sourceforge.net/packages/make.htm
  • 기본 설정 그대로 Next로 설치하면 정상적으로 설치됨
  • 설치가 완료된 이후 GnuWin32가 설치된 폴더를 찾아 bin 폴더를 환경 변수로 등록해야 정상적으로 이용 가능
    C:\Program Files (x86)\GnuWin32\bin
  • 아래 명령어로 버전 정보가 나오면 정상적으로 설치된 것임
    make -v

choco 를 사용하여 설치

choco 설치 후 아래 명령어로 설치

choco install make


공공 데이터 사이트 목록

Open API를 제공하는 공공 데이터 사이트 목록

공공데이터포털

  • https://www.data.go.kr/
  • 공공기관이 생성 또는 취득하여 관리하고 있는 공공데이터를 한 곳에서 제공
  • 쉽고 편리하게 공공데이터를 이용할 수 있도록 파일데이터, 오픈API, 시각화 등 다양한 방식으로 제공
  • 대한민국 공식 전자정부 누리집

KOSIS 국가통계포털

서울 열린데이터광장

경기데이터드림

TAAS 교통사고정보 개방시스템

지방행성 인허가 데이터

기상청 기상자료개발포털

농림축산식품 공공데이터 포털

지표누리

고속도로 공공데이터 포털

  • http://data.ex.co.kr/
  • 교통, 건설, 유지관리, 통행료, 휴게소 등 고속도로 관련 데이터 제공

보건의료빅데이터개방시스템

기타 데이터 사이트

통계청 통합회원 서비스 안내

통계청 통합회원 가입 시 다음 서비스를 하나의 아이디로 이용 가능:

  • KOSIS (국가통계포털)
  • MDIS (마이크로데이터 통합서비스)
  • SGIS (통계지리정보서비스)
  • 지표누리
  • SDC (통계데이터센터)


github 요금제 변경

소스 관리를 위해 github를 사용하고 있습니다.
다시 github 요금정책이 변경되었네요.
private repository 갯수로 요금제를 나누었다가 기능적인 내용으로 요금제를 나누었네요.
현재는 무료 계정에서도 자유롭게 비공개 저장소를 생성할 수 있어 부담이 없어졌습니다.

자세한 내용은 github 페이지에서 확인하세요.

GitHub 요금제 확인 URL



Facebook API 버전에 따른 로그인 오류

어느날 갑작이 이전 프로젝트에서 구현해 놓은 페이스북 소셜 로그인이 동작하지 않는다.
아무리 찾아봐도 소스상에 오류는 없다.
어쩔 수 없이 다시 처음부터 페이스북 문서를 보다 보니 API 버전 문제!
갑자기 페이스북 소셜 로그인이 동작하지 않는다면 API 버전을 체크해 보자.

  • 페이스북 API V2.1 은 2016년 10월 30일까지 사용 가능
  • 페이스북 API V2.6 은 2018년 4월 까지 사용 가능

참고 사이트들

Facebook 공식 doc 사이트

페이스북 API 2.1 변경사항이 정리되어 있는 사이트

페이스북 Graph API Explorer 사이트

페이스북 Graph API Reference 사이트



Logstash jdbc 에서 데이터 update, delete

Logstash - jdbc 에서
  • 변경된 row는 update
  • 변경되지 않고 추가된 row는 insert
  • 없어진 row는 delete...

동작하는지 확인

관련 링크

결론

삭제는 안되고, insert와 update만 되는 것을 보임
Delete는 db 데이터에서 delete status로 구분하여 처리하면 될 듯...