본문 바로가기

반응형
전체 글 70

[Clean Code] 5장. 형식맞추기 Intro 코드의 형식을 맞추는 목적이 무엇일까? 깔끔하고, 일관적이며, 꼼꼼하고, 질서정연한 코드라고 느껴지는 코드는 어떤 코드일까? 책에서는, 그리고 나 또한 공감하는 부분으로써 가독성이 높고, 형식을 깔끔하게 맞춰서 규칙을 착실하게 지키는 코드를 보면 '깔끔하다', '질서정연하다', '진짜 잘짰다' 싶은 생각이 드는 것 같습니다. 이건 팀으로 일할 경우에도 합의하여 규칙을 정하고, 모두가 그 규칙을 따른다면 깔끔하고 잘짰다는 인상을 줄 수 있는 것 같아요. 책에서 필자는 다음과 같이 얘기를 합니다. 오늘 구현한 코드의 가독성은 앞으로 바뀔 코드의 품질에 지대한 영향을 미친다. ... 코드가 많이 바뀌어도 맨 처음 잡아놓은 구현스타일과 가독성 수준은 유지보수 용이성과 확장성에 계속 영향을 미친다. 그.. 2020. 12. 1.
작심 30일 파워블로거 되기! 회사에서 30일동안 좋은 습관을 들이자는 차원으로 매달 작심30일이라는 프로젝트를 진행하는데, 이번 12월에 '일주일에 2번이상 블로그 포스팅하고, 파워블로거 되기!'라는 프로젝트에 참여했다. 프로젝트로는 되게 다양한 항목들이 있는데, 예를들어 매일 8000보 걷기, 매일 물 2L 마시기, 매일 일기쓰기, 매일 무언가 열정적으로 해보기?, 일주일에 3회이상 운동하기, 일주일에 2번이상 블로그 포스팅올리기 등등이 있다. 사실 나는 작심30일 참여가 이번이 처음은 아니다. 7월에 입사했을 때, 입사교육으로 작심3일(3일동안 습관들이기!)을 진행했었는데 너무 재밌고 좋은 취지인 것 같아 8월에는 직접 신청했다. 그때 신청한 프로젝트는 '매일 8000보 걷기'라는 프로젝트였는데, 당시 이 프로젝트를 신청한 이유.. 2020. 11. 29.
[k8s study] 15. 쿠버네티스 인프라 관리 15장에서 다루는 내용 클러스터 업그레이드 클러스터 스케일링 클러스터 유지보수 기반 인스턴스와 리소스 불안정성을 처리하는 방법 부분적으로만 사용할 수 있는 기반 HW에서 고가용성 워크로드를 실행하기 위한 전략 - 쿠버네티스 컴포넌트의 배포 계획 수립 - 쿠버네티스 인프라의 보호 - 클러스터와 kubeadm 업그레이드 - 클러스터 스케일업 - 사용할 수 있는 외부 리소스 클러스터 계획 클러스터 구축을 계획할 때 사용할 수 있는 옵션을 간략하게 짚고 가봅시다. 적합한 솔루션 선택 로컬 솔루션 minikube: 단일 노드 클러스터 우분투에 LXD/KVM설치: 멀티인스턴스 클러스터 IBM 클라우드 프라이빗 CE: 멀티인스턴스 클러스터 kubeadm-dind(Docker-in-Docker): 멀티 노드 클러스터 .. 2020. 11. 27.
Apache Hadoop (v1 특징, v2 특징, yarn 아키텍처, HDFS, 맵리듀스) 하둡은 분산 파일 시스템인 HDFS(Hadoop Distributed File System)에 데이터를 저장하고, 분산처리 시스템인 맵 리듀스(MapReduce)를 이용하여 데이터를 처리한다. Hadoop은 현재 v1, v2, v3까지 나왔다. (v3는 추후 기술 예정) Hadoop의 특징 Distributed (데이터를 분산하여 저장) 수십만대 컴퓨터에 자 분산 저장 및 처리 => 데이터를 block단위로 나누어 저장 하나의 큰 file을 아래와 같이 블록단위로 나누어서 저장 (일반적으로 64M~128M) 블록을 보통 크게 만드는 이유? 디스크 seek time 감소 네임 노드가 관리하는 metadata의 개수 감소 metadata의 개수가 적으면 뭐가 좋을까? 클라이언트와 네임노드의 통신 감소 Sca.. 2020. 11. 24.
[Data Structure] 선형 자료구조 선형 자료구조를 시작하기 앞서 자료구조가 뭔지 알아보자 자료구조 란? 자료(데이터)를 저장하는 도구로 삽입/삭제/탐색 연산을 적절한 상황에 알맞게 사용하기 위해 사용한다. 배열 (Array) 같은 종류의 자료 여러개를 저장하기 위한 선형 자료구조 원소들이 메모리의 연속된 위치에 저장된다 => 캐시의 효율성과 연결 주어진 위치의 원소를 반환하거나 변경하는 동작이 O(1)로 가능 삽입, 삭제 연산 후 shift 비용이 발생하기 때문에 O(n)의 시간복잡도를 가짐 크기가 제한적이다 => 이를 보완한 것으로 동적 배열(Dynamic Array)가 있다 링크드리스트 (Linked List) 논리적 저장 순서와 물리적 저장 순서 비일치 (포인터로 연결) 특정 위치에서의 삽입과 삭제를 상수 시간에 할 수 있게 해줌 .. 2020. 11. 24.
[Clean Code] 4장. 주석(comments) Intro 나쁜 코드에 주석을 달지 마라. 새로 짜라. - 브라이언 W. 커니핸, P. J. 플라우거 주석을 사용하면 좋을까요, 나쁠까요? 예상하셨듯 잘달린 주석이라면 그 어떤 정보보다 유용하지만, 코드로 의도를 잘 표현하지 못해 실패를 만회하기 위한 주석은 절대 좋지 못합니다. 주석이 필요한 상황에 처하면 상황을 역전해 코드로 의도를 표현할 방법이 없는지 곰곰히 생각하고, 주석을 유지보수하기 힘들고, 오래될수록 완전히 그릇될 가능성도 커지기 때문에 주석은 가능한 줄이도록 꾸준히 노력해야 합니다. 필자는 크게 2가지를 얘기합니다. 1. 주석은 나쁜 코드를 보완하지 못한다. 표현력이 풍부하고 깔끔하고 주석이 거의 없는 코드가 복잡하고 어수선하며 주석이 많이 달린 코드보다 훨씬 좋다. 2. 코드로 의도를 표.. 2020. 11. 24.
반응형