본문 바로가기

컴퓨터공학

[소프트웨어공학] 수평조직, 방어적태도, 공격적태도, 오버커뮤니케이션 조직이 커지면서 수평적 조직, 방어적인, 공격적인, 오버커뮤니케이션 등의 단어 대해서 제대로 정의를 해서 컨센서스를 가져야하는구나를 느끼고있다. 대략 수평적조직은 결정에 마음껏 반발해도 되는것처럼, 방어적인 태도의 지양은 그냥 받아들이는 척만 하면 되는것처럼, 공격적인 태도의 지양은 비난의 말이나 단어만 사용하지 않으면 되는것 처럼, 오버커뮤니케이션은 그냥 계속 이야기만 많이하면 되는것처럼 이해되는것 같이 보인다. 그 반대로 상대를 평가할때도 마찬가지이다. 사람들에 대한 기대(?)가 너무 큰것인가? 전부 다 모른다고 생각하고 접근해야하는것인가? 답은 적절히 그때 그때 맞게 였던것 같은데 그게 적용하기가 참 힘들다. 다 모른다고 접근하면 무시한다 생각할 것이고, 너무 다 안다고 생각하면 상대가 부담을 느낀.. 더보기
[가상화] KVM 기본 구조 이전에 그려둔 그림이 내 삭제된 도메인에 있어서 복구가 안되가지고.... 내 그림을 보고 그렸다는 동생의 것을 가져왔다. 가상화가 어떻게 돌아가는지 이보다 더 잘 그려놓을 순 없을듯. 이전에 가상화 보안 연구하면서 했던건데 생각해보니 참 오래됐네... 간단한 설명 1. 일단 가상화는 EMULATION이 필요한데 그걸 해주는게 QEMU. 2. QEMU로 OS 이미지를 실행하면 QEMU는 리눅스 커널에 있는 디바이스 드라이버 KVM에 요청한다. 이과정에서 vcpu 등등을 익명으로 만든다(파일 시스템에 노출 안됨) 3. KVM이 VM Entry 명령어를 실행하면 VMX root 모드(host os) -> VMX non-root 모드(guest os)로 모드가 변경된다. 4. guest os(VMX non-ro.. 더보기
[개발이야기] CD(Continuous Development) 지속적인(지속가능한) 개발 이런뜻인데, 이게 현재 개발자들이 말하는 CI(Continuos Integration)/CD(Continous Deployment/Delivery) 보다 조금더 넓은 개념이다. CI/CD는 개발->QA로 넘어가는 단계에서 구성원들이 조금 더 편하게 만들고자 등장한것인데 빌드자동화, 코드 인스펙션 자동화, 성능 분석자동화 툴, 테스트 자동화 등이 여기에 들어간다. CI/CD는 툴에 보통의존하는데 툴을 사용하여 구성원들의 신경을 분산시킬 여지를 막는데 목적이 있다. 본인의 Main Job에 더 집중하란 이야기. 집중하는 환경을 만들어줘야 한다는 대세에 의거 해서SDLC(Software Development Life Cycle)의 한 부분을 차지하고 있는것이라고 보면 된다.아래의 그.. 더보기
[성능튜닝] Java Primitive Type Array vs ArrayList 자바이야기를 해볼건데, 이건 모든 VM(Virtual Machine)관련 언어들도 관련있는 이야기다. 결국 스크립트 언어들도 관련이 있다는 이야기. 상식적으로 생각했을때, Stack에서 사용하는 자료구조들이 더 빠를수 밖에 없는데 왜냐면 CPU Register가 가리키는 Pointer에 의하여 관리가 되기 때문. 이야기를 이해하려면 컴퓨터 구조를 알아야함. 간단히 설명하면 Native Execution 하는 프로그램의 경우 SP(Stack Pointer) + 숫자. 로 변수에 접근함. 그런데 Heap만 되어도 포인터로 관리하기 떄문에 메모리에서 관리하는 Pointer를 Cpu에 넣고 그 Pointer 주소를 가지고 다시 Heap에 접근함. 한단계 더 가니까 느릴수 밖에?... 그런데 이 한단계가 Cpu .. 더보기
[성능튜닝] 자바스크립트 페이지로딩 옛날에 호스팅 해서 쓰던 사이트가 결혼하고 애 생기면서 관리를 안해가지고 다 날라가서... ㅠㅠ 날라간 자료들은 어쩔수 없고... 이제라도 다시 좀 정리해봐야겠다는 생각에 정리를 해봅니다.. 도메인은 모르겠는데 호스팅은 이제 안하는걸로...ㅋㅋㅋ 자바스크립트는 성능 최적화가 필요합니다.(모든 프로그램이 다 똑같지만) 인터프리터 언어는 더 심해요 인터프리터가 어떻게 동작하는지까지 알아야해서요. Native Execution 되는 프로그램들은 computer architecture에 따라 실행되고 컴파일러의 성능최적화에 의존해도 어느정도 괜찮습니다. 메모리 leak과 pointer만 잘 신경쓰면요...(만... 이라고 하기에는 신경써야 하는난이도가 높지만 ㅋㅋ). 어쨋든 컴퓨터 구조를 알아야 native로 .. 더보기
[ANDROID] Funf wifi-scanner 구조 더보기