전체 글
-
Container, Docker, Kubernetes Basics 요약CS 창고/Cloud Computing 2020. 4. 15. 11:49
Container vs VM VM Container 호스트 운영 체제와 기타 VM으로부터 완벽하게 격리. 어디에나 포팅 가능하고 보안 위협으로부터 안전함. 일반적으로 호스트 및 기타 컨테이너로부터 어느 정도 격리하지만, VM처럼 강력한 보안 경계를 제공하지는 않음. Hyper-V 격리 모드를 사용해서 각 컨테이너 간 격리도를 높일 수는 있음. 커널을 포함한 운영체제의 모든 구성요소를 호스트 운영체제 위에서 구동하는 방식이므로 리소스를 많이 소요함. 운영 체제의 사용자 모드 부분만을 실행하며, 앱에 필요한 서비스만 포함하도록 조정할 수 있어 리소스 사용이 적고 더 빨리 실행 가능. 게스트호환성 - 가상 운영체제 위에서만 구동. 호스트의 커널 위에서 실행되므로 호스트와 동일한 운영체제 사용함. 각 컨테이너는..
-
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte 해결 방법CS 창고/Python 2018. 4. 5. 15:41
회사 컴퓨터에 계정명을 이름 석자로 해 두었더니 python의 여러 프로그램을 설치하는 데 인코딩 문제로 애로사항이 꽃피는 상황이다. 섣부르게 계정명을 바꾸는 것이 불가능하기 때문에 임시방편으로 pip을 원활하게 쓸 수 있는 방법을 찾아보니... __init__.py 파일을 수정하는 것으로 해결이 가능하다. pip에서 설치가 실패하며 에러 메시지가 실행되는 경우가 간혹 존재한다. 다음과 같은 메시지가 뜬다면 유니코드 인코딩 관련 에러인 것. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc1 in position 45: invalid start byte 이러한 문제가 발생하는 원인은 Windows의 한글 인코딩 문제이다. 일반적으로 웹 환경이나 Unix ..
-
Jenkins와 외부 ssh git storage 연동하기CS 창고/Software Engineering 2017. 8. 14. 15:23
원래 연구실 젠킨스가 git server 설치되어 있어서 문제없이 사용하고 있었는데... 이번에 기존 워크스테이션을 git server로 활용하다보니 젠킨스 서버와 git 서버가 서로 다른 시스템이 되어버렸다. 그래서 연동해본다고 삽질을 하다 결국 해결. 방법은 다음과 같다. 1. ssh 연결이 가능해야 한다.일단 ssh로 연결을 할 수 있어야 한다. 먼저 ssh username@domain_address 로 ssh 연결이 되는지 확인해본다. 2. jenkins user가 비밀번호 없이 공개키를 사용해 로그인이 가능해야 한다.(다른 유저 계정은 상관이 없다.)우리 연구실 jenkins 마스터 사용자는 jira 라는 이름이다. Jenkins 유저로 따로 로그인해 여기서 git 연결을 할 수 있어야 한다.j..
-
Java Pathfinder 설치 및 실행법CS 창고/Software Engineering 2017. 3. 18. 06:40
Java Pathfinder 는 NASA Ames 연구소에서 개발한 Java 언어용 모델 검증 도구입니다. Java bytecode를 대상으로 검증합니다. 테스팅이 아닌 모델 검증 도구이므로, 한 번의 실행에 하나의 경로만을 검사하지 않고 모든 가능한 실행 경로를 탐색하여 모델이 검증 속성을 위배하는지 아닌지 검사해줍니다. 그래서 Race Condition처럼 테스팅만으로 알아내기 힘든 부분을 손쉽게 검증할 수 있습니다. 일반적으로 모델 검증은 모델링 언어로 정형 모델을 작성할 것을 요구하는 경우가 많은데 Java 코드를 그대로 사용하는 도구라는 점에서 진입 장벽이 상대적으로 낮다고도 볼 수 있겠습니다. 다만 Java Pathfinder의 경우, 다른 검증 도구인 CBMC나 Spin, BLAST 등에 비..
-
deque vs vector vs listCS 창고/C&C++ 2016. 8. 20. 11:19
dequedeque 는 double-ended queue의 약자로, 앞/뒤로 모두 삽입/제거 할 수 있는 큐를 의미한다.deque 는 메모리 공간에 연속적으로 존재한다는 보장이 되어 있지 않지만, Random access iterator를 통한 개별 원소에 대한 접근이 가능하다. 따라서 C의 배열과 같은 [] 연산자를 이용한 특정 원소에 대한 접근도 가능하다.deque는 앞/뒤 삽입/제거에 드는 비용이 거의 차이나지 않는다.단 임의의 위치에 원소를 삽입할 경우 성능이 저하된다. vectorvector는 동적인 배열로 구현되어 있으며 C의 동적배열의 단점을 보완해준다.컨테이너의 뒤에서 삽입/제거할 시 일반적으로 다른 컨테이너에 비해 빠른 성능을 갖고 있다. 그러나 컨테이너의 앞, 임의의 위치에 삽입/삭제를..
-
NAT 의 개념CS 창고 2015. 7. 10. 13:39
Network address translation (NAT) 은 하나의 IP 주소를 다른 주소로 바꾸는 방법으로, 하나의 라우터 장비를 거쳐 다른 네트워크로 이동할 때 IP 데이터그램 패킷 헤더의 네트워크 주소를 변경하는 것이다. 가장 기본적으로는 one-to-one 스타일의 주소 변환이 가능하지만, 일반적으로 쓰이는 것은 one-to-many 스타일의 주소변환이다. 이는 대부분의 경우 NAT이 사설 ip를 사용하는 경우 이 IP로 외부 패킷이 접근하는 것을 가능하게 하기 위해서이다.사설IP는 서로 다른 네트워크끼리 여러 개가 동시에 존재하는 것이 가능하다. 그러므로 외부 네트워크에서 진입한 패킷이 아무런 다른 처리 없이 라우팅을 수행하여 목적지에 찾아가는 것은 불가능하다. 이를 해결하기 위해 모든 외부..