본문 바로가기

분류 전체보기

[Hyper-V] 네트워크 세팅하기 1. 네트워크를 설정할 가상컴퓨터를 누르고 오른쪽 작업란에 가상 스위치 관리자버튼 클릭 2. 외부/내부/개인 중에 '내부'로 두가지 생성 - 외부: 호스트PC와 동위선상에서 네트워킹 - 내부: 호스트PC 네트워크를 타고 분기 - 외부/내부 두가지 방법으로 설정 다 가능하다. 다만 사내망 정책에 따라 외부로 설정하면 간혹 안되는 경우가 있으니 안전하게 내부로 설정하자 3. 여러개의 Hyper V 가상 PC가 있다면 '내부용 스위치'로 외부통신을 위한 공유네트워크 카드 하나, 호스트통신 전용으로 하나 해서 스위치 두개를 만든다. sudo vi /etc/network/interfaces 4. 제어판>네트워크 및 인터넷>네트워크 연결에 들어가서 이더넷(호스트PC의 네트워크)의 속성>공유 클릭 5. 다른네트워크 ..
[mssql] 기존 테이블에 PK키 추가하기 mssql에서 PK를 추가하려면 기존의 PK를 삭제해주고 재생성해줘야한다. mytable에 PK을 하나 더 추가하려고 PK 추가 구문을 아래와 같이 호출하면, 아래와 같이 이미 기본키가 정의되었다는 에러메세지가 나오면서 실패한다. ALTER TABLE [dbo].[mytable] ADD CONSTRAINT [PK_mytable] PRIMARY KEY CLUSTERED ( [otherPKColumn] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]..
[Python] 파이썬 독립실행환경 virtualenv 만들기 virtaulenv를 통해 활상화된 가상환경 아래에서 개발하면, 파이썬 실행환경을 독립적으로 관리할 수 있는 것은 물론이고, 모듈관리를 체계적으로 할 수 있다. pip 인스톨을 통해 virtualenv를 설치하고, 해당 프로젝트 경로에서 virtualenv 명령어를 통해 가상환경 이름을 명명하면 해당 디렉토리에 가상환경 디렉토리가 생성된다. pip3 install virtualenv cd [프로젝트 폴더] virtualenv venv # 가상환경 활성화하기 윈도우와 리눅스 활성화 방식이 조금씩 다르다. 위에가 윈도우고 아래가 리눅스 실행 명령어이다. venv/scripts/activate source venv/bin/activate # 비활성화 하기 deactivate # 패키지 정리 파일 만들기 pip..
[git] 실수로 용량이 큰 파일을 커밋했을 때 회사에서 gitlab을 쓰면서 쾌적한 git life를 즐기다가 github에서는 100MB이상의 파일이 푸시가 안된다는 것을 알았다. R 스터디 할때 써놓은 코드를 기록하려고 데이터와 함께 커밋을 해버렸는데, 커밋때 경고가 한번 떴(던거같은데)다가 푸시할때도 아래와 같은 에러를 뱉으며 push fail이 일어났다 remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com. --force 명령어에도 푸시가 안돼서 찾아보니, filter-branch를 통해 커밋 히스토리에서 삭제해야한다고. git filter-branch --tree-filter 'rm -f ..
[ES] 도커를 이용해 인덱스 주기적으로 삭제하기 로그를 끊임없이 ES에 저장하다보면 디스크 용량이 부족한 문제가 발생한다. 수동으로 인덱스를 삭제하다보면 단순히 번거로울 뿐만이 아니라 삭제하지 않으려고 했던 인덱스도 삭제될 수 있기 때문에, 삭제 자동화는 ES 운영에 반드시 필요하다. curator는 elasticsearch의 인덱스를 관리를 위한 어플리케이션으로, ES와 격리된 환경에서 http 통신으로 동작이 가능하다. 여기에는 인덱스 삭제만 나와있지만, 샤드의 삭제나 엘라스틱서치의 스냅샷 삭제, 샤드 라우팅 변경도 가능하다. 나의 경우 curator를 세팅할 서버는 폐쇄된 환경이었기 때문에, 로컬에서 curator 공식사이트의 dockerfile을 받아 이미지를 빌드한 다음, 이미지를 파일로 압축해 서버에 세팅하고 cronjob을 통해 매일 인덱..
[docker] 이미지/컨테이너 파일로 저장하고 불러오기 도커의 장점을 폐쇄된 네트워크 환경에서 활용하기란 쉽지가 않다. 그나마 도커를 사용하니까 폐쇄된 리눅스 환경에서 이만큼의 편의를 가질수 있기도 하고. 암튼 매번 업데이트마다 자꾸 여러명의 결재를 거쳐야하는 네트워크인가를 통해 서버를 열기가 껄그러워서, 이미지를 파일로 만들어서 사용하게되었다. 용량때문에 ftp서버 통해서 옮기는데 시간이 조금 걸리지만 그런대로 쓸만하다. 퇴근시간쯤에 이미지를 날려서 처음 이 명령어를 써봤는데, 덕분에 일찍 집에갈 수 있었다. 이미지 저장하기 docker save [option] [image:tag] -o [저장할파일명.tar] 이미지 불러오기 docker load < [tar파일 이름] 이미지 말고도 컨테이너도 저장하고 불러올 수 있다. 컨테이너 저장하기 docker ex..
[docker-compose] docker-compose up에서 네트워크 생성이 되지 않을 때 # 발단 어떤 환경에서 발생하는지는 정확히 알 수 없지만, 회사의 서버에 도커를 설치하면 기본 ip 대역 생성이 되지않아 아래의 메세지와 함께 도커 실행이 되지 않았다. Error starting daemon: Error initionalizing network controller 그래서 아래의 명령어로 직접 bridge ip를 추가해줬었다. root$ ip link add name docker0 type bridge root$ ip addr add dev docker0 172.17.0.1/16 root$ service docker start # 문제 default 네트워크로 bridge를 사용하는 환경에서 컨테이너를 실행해서 잘 사용해오다가, 근래에 서버 점검할때마다 컨테이너가 한꺼번에 종료되는 일이 ..
[EFC#] effective c# - 4. LINQ 활용 # 컬렉션을 반환하기보다 이터레이터를 반환하는 것이 낫다- 지연평가로 인해 파라미터의 유효성 확인이 늦어질 경우 다른 메소드에 유효성 확인 로직을 넣고, 통과하면 이터레이터를 리턴으로 호출하는 방식을 쓸 수 있다. # 루프보다 쿼리 구문이 낫다- 쿼리 구문을 사용하면 프로그램 논리를 명령형 방식에서 선언적인 방식으로 전환할 수 있다.- 이렇게 하면 한번의 순회 단계 내에서 여러 작업을 결합하여 단번에 수행할 수 있고- 원래의 의도도 더 명확하게 구현할 수 있다. # 시퀀스에 사용할 수 있는 조합가능한 API를 사용해라- yield return 문을 사용하면 시퀀스를 반환하는 메서드를 쉽게 만들 수 있다. - 이를 사용하면 매서드 내에서 시퀀스 내의 개별요소를 저장하기 위해 별도의 저장소를 마련할 필요가 ..