all 125

# 21대 총선, 핵심키 준연동형 비례대표제 정리

말도 많고 탈도 많았던 20대 국회를 뒤로하고 다가오는 21대 총선을 치르기에 앞서 작년 말 우여곡절 끝에 패스스트랙으로 통과되었던 개정된 선거법에 대해 알아보자. 1. 우리 나라의 개정 전 선거법은? 20대 총선까지 우리는 병립형 비례대표제를 사용했다. 병립형 비례대표제란, 소선거구제(지역구 득표율)와 비례대표제(정당 득표율) 두 가지 방식을 모두 사용하여 각 득표 결과의 합산으로 정당별 국회 의석수를 정하는 방식을 말한다. - 소선거구제 : 다수표 승자의 원칙으로 유권자가 가장 많이 뽑은 후보자가 당선되는 선거 형태이며 당선자는 지역구 의원이 된다. - 비례대표제 : 특정 후보자가 아닌 특정 정당에 투표하며, 정당 득표율에 따라 각 당은 의석 수를 할당 받는다. 단, 병립형 비례대표제는 소선거구제와 ..

# docker 기반 Gitlab-CI 구축 4 - Backup & Restore

지난 포스팅(# docker 기반 Gitlab-CI 구축 3 - Gitlab-runner 실행)에 이어 Gitlab 서버의 Backup과 Restore에 대해 정리했다. Gitlab의 Backup은 Gitlab의 프로젝트, 이력, CI/CD 진행 내역 등 Gitlab 서버의 전반적인 내용을 모두 Backup 한다. 단, gitlab-ci.yml, gitlab-secrets.json파일은 민감 정보라고 하여 Backup 대상에서 제외된다. 따라서 위 정보가 필요하다면 수동으로 Backup 해줘야 한다. Backup 기능은 주로 Gitlab 서버의 이전이나 프로젝트 관리를 위해 사용될 것이다. 1. Gitlab Backup Backup 하려는 Gitlab 기동 서버에서 아래 작업을 진행한다. # 1. git..

Git 2020.03.30

# 중국 동북공정 정리

동북공정(東北工程)이란, 2002년 2월부터 5년간 중국사회과학원 산하 중국변강사지연구중심과 동북 3성이 연합해서 추진한 중국의 국책 연구사업이다. 라고 정의한다. 그래서 그게 뭔데? 동북공정에 대해 한번쯤 들어는 봤을 것이다. 그리고 그것에 대해 흔히 알고있는 수준은 중국이 우리 고구려의 역사를 자기네들의 역사로 편입하려고 한다 정도가 아닐까 싶다. 내가 그랬다. 그러다 문득 그 정도로 되나? 그렇게만 알고있으면 되는건가? 왜 중국은 고구려 역사를 자기네 역사로 만들려고하지? 왜 우리나라는 그것을 적극적으로 막지 않지? 라는 생각이 꼬리에 꼬리를 물었고, 이런 생각들이 결국 동북공정에 대해 제대로 알아봐야겠다는 결론에 이르게 만들었다. 그럼 동북공정의 배경부터 알아보자. 동북공정은 하나의 중국 이라는 ..

# docker 기반 Gitlab-CI 구축 3 - Gitlab-runner 실행

지난 포스팅 # docker 기반 Gitlab-CI 구축 2 에서 Gitlab을 Docker로 실행했고 CI 스크립트(.gitlab-ci.yml)까지 등록해주었다. 1. CI 상태 보기 그리고 CI의 Pipelines를 확인했을 때, Pending 상태인 것을 확인했는데, 이는 CI를 수행해줄 Runner가 없기 때문에 생기는 현상이다. 따라서 이번 포스팅에서는 CI를 수행해줄 Gitlab-runner를 등록하는 방법을 알아보자. 2. Gitlab-runner 등록 1) gitlab 서버의 Runners 설정 페이지에서 Runner Setup 정보(URL / TOKEN)를 확인할 수 있다. 2) gitlab 서버에서 확인한 URL과 TOKEN 정보로 배포 서버에서 Gitlab-runner를 등록한다. $..

Git 2020.03.27

# docker 기반 Gitlab-CI 구축 2 - Gitlab 실행

※ 사전 준비 사항으로 docker(# docker 설치)가 설치 되어 있어야 한다. 1. Gitlab 실행 # docker gitlab 실행 $ sudo docker run --detach \ --hostname 192.168.10.X \# git pull or push 에서 사용될 hostname --publish 443:443 --publish 80:80 --publish 22:22 \ # hostPort:containerPort hostPort에서 지정한 Port의 방화벽은 반드시 오픈해줘야 한다. --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \# volume은 gitlab 기동시 필요한 파일들을 저장하기 위..

Git 2020.03.27

# docker 기반 Gitlab-CI 구축 1 - Gitlab-CI란 무엇인가?

이번엔 docker를 이용한 Gitlab-CI 구축 방법에 대해 포스팅하려고 한다. 1. 왜 Gitlab 인가? 본 포스팅에 들어가기 앞서 아래 이미지에서 보듯이 최근 5년간의 트렌드를 보면 github가 압도적이다. 그런데 왜 git 저장소를 github가 아닌 gitlab으로 선택했는가? git 저장소로서의 점유율은 github에 밀려 만년 2위 자리를 지키고 있지만 gitlab이 가지는 장점이 분명히 있다. github에서는 private repository는 유료이나, gitlab에서는 무료로 사용 가능하다. 따라서 github에서는 무료로 사용하기 위해서 모든 소스를 오픈해야하고 그에 따른 장점은 많은 사람들이 공유할 수 있게되므로 자연스레 시장 점유율도 올라갔던게 아닐까하고 생각해본다. 필자가..

Git 2020.03.27

# Java Concurrency In Practice - Chapter3

Sharing Object 2 장 초반에 올바른 동시 프로그램 작성은 주로 변경 가능 공유 상태에 대한 액세스 관리에 관한 것이라고 언급했습니다. 이 장에서는 여러 스레드가 안전하게 액세스 할 수 있도록 객체를 공유 및 게시하는 기술에 대해 설명합니다. 이 둘은 스레드 안전 클래스를 구축하고 java.util.concurrent 라이브러리 클래스를 사용하여 동시 애플리케이션을 안전하게 구성하기위한 토대를 마련합니다. 우리는 동기화 된 블록과 메소드가 어떻게 동작이 원자 적으로 실행되도록 하는지를 보았지만 동기화는 원 자성 또는 "중요한 부분"에 대한 경계라는 일반적인 오해입니다. 동기화에는 또 다른 중요하고 미묘한 측면이 있습니다 : 메모리 가시성. 우리는 다른 스레드가 객체를 사용할 때 한 스레드가 객..

JAVA/Concurrency 2020.02.15

# Java Concurrency In Practice - Chapter 2

Thread Safety Java 동기화의 기본 메커니즘은 synchronized 키워드이지만 "synchronized (동기화)"라는 용어에는 volatile 변수, exclusive locking (명시적 잠금) 및 atomic 변수의 사용도 포함된다. 이 규칙이 적용되지 않는 "특별한"상황이 있다고 생각하려는 유혹을 피해야한다. Java의 동기화 메커니즘을 사용하지 않더라도 테스트를 통과하고 프로그램이 작동하고 수년 동안 성능이 좋을 수 있지만, 그 프로그램은 여전히 동기화 문제로 인해 언제든지 중단 될 가능성이 있는 위험한 프로그램일 것이다. 여러 스레드가 적절한 동기화없이 동일한 변경 가능 상태 변수에 접근하면 프로그램은 예기치 않게 동작할 것이다. 이런 문제를 해결하기 위한 세가지 방법이 존재..

JAVA/Concurrency 2020.02.13

# 팔레스타인과 이스라엘 분쟁 정리

이번 포스팅은 최근 트럼프가 중동 평화안을 발표하면서 다시 한번 대두된 팔레스타인-이스라엘 분쟁에 관해서 정리해보려고 한다. 트럼프가 주장한 중동 평화안이란, 자칭 현실적인 2개 국가 해법이라고 하며 그 내용인 즉슨 지금까지 이스라엘이 압도적인 군사력을 바탕으로 팔레스타인을 점령해온 사실을 인정하는 것 부터 시작한다. 더 들을 필요가 있나 싶다. 이 분쟁에 조금이라도 관심을 갖고있던 사람들이라면 미국-이스라엘-유엔을 필두로 한 팔레스타인 점령 과정이 얼마나 폭력적이고 비인도적이었는지 알고 있을 것이다. 하나씩 살펴보자. 팔레스타인-이스라엘 분쟁의 역사는 아주 오래되었고 그 기원은 그리스도교의 구약 시대(기원전 1800년경)까지 거슬러 올라간다. 분쟁의 역사 1. 디아스포라-유대인들이 전세계로 흩어진 이유..

Issue 2020.02.04