본문 바로가기

전체 글

<제목없음> 더보기
가<b>볼드</b>나 더보기
Clean Agile #4 - 팀 실천 방법 팀 실천 방법 - 팀 구성원 사이의 관계, 그리고 팀원과 팀이 만드는 제품 사이의 관계를 다룬다. 메타포 - 팀 내에서 효과적으로 의사소통을 하려면, 개념을 나타내는 어휘와 용어를 명확하게 정의하여 일관되게 사용해야 한다. - 메타포는 어휘를 만들어 팀 내 의사소통을 효율적으로 만든다. 반면에 고객을 모욕하는 어리석은 메타포도 있을 수 있다. 1. 도메인 주도 설계 프로그래머, QA, 관리자, 고객, 사용자를 모두 포함한 모든 사람이 해결하려는 문제 도메인의 모델을 동의하는 어휘로 표현해야 한다. 지속 가능한 속도 .... 지치지 않게 속도 유지 1. 초과 근무 가장 말도 안 되는 실수를 하는 때는 늦은 밤 정신없이 일하는 도중이라는 것을 깨달았다. 밤에 저지른 실수를 만회하느라 진짜 제정신인 시간을 계.. 더보기
2020년 회고 그리고 2021년 목표 처음으로 회고를 작성한다. 일단 적어보자. 무엇을 적을까. 올해는 무슨 일이 있었을까 (시간순으로 적어보자) 아윤이 4살 코로나 (죽어라 코로나 자식) 카카오 이사 - 아윤이가 4살이 되었다. 아장아장 걷던 아기가 어느덧 말도 잘하고 삐지기도 한다. 환장한다 흥칫뿡 하ㅏㅏㅏㅏ 회고를 작성하는 지금 시간은 크리스마스이브 11시 35분 아윤이는 콩순이 노트북(이모 산타)과 자석 블록(고모 산타)을 get 하고 주무신다 이모와 고모는 요청하면 나오는 repository와 같은 존재인가... 파이팅한다 돈 많이 벌어라 다들 하하하 각설하고 올해는 아윤이와 많이 놀아주기로 약속했는데 지키기 못한 거 같다. 일이 많다는 핑계, 피곤하다는 핑계, 코로나 핑계, 그냥 핑계 핑계 1, 핑계 2.... 더보기
[study: OS] — ?. Segmentation # 들어가기 전 가상메모리란, 실행중인 프로세스가 가상의 공간을 참조하여 마치 커다란 물리 메모리를 가지고 있는 것처럼 사용할 수 있도록 하는 것 (실제 메모리 주소가 아닌 가상의 메모리 주소를 주는것) 가상메모리는 각 프로세스 당 메인메모리와 동일한 크기를 할당받는다. 그 공간은 보조기억 장치(HDD, SSD) 이용 메모리 관리장치놈에 의해 물리 주소로 변환 유저가 모르게 메모리 맵핑 되어 가상메모리 활용 # Segmentation 페이징과는 다르게 메모리를 서로다른 크기의 논리적인 단위인 Segment로 분할하고 메모리를 할당하여 물리주소를 논리주소로 변환 하는 것 미리 분할 하는것이 아닌 메모리에 적재될 때 빈공간을 찾아 할당 서로다른 크기를 가지는 논리적인 블록이 연속적인 공간에 배치 되는 것 데.. 더보기
Clean Code #2 - 의미 있는 이름 의도를 분명히 밝혀라 좋은 이름을 지으려면 시간이 걸리지만 좋은 이름으로 절약하는 시간이 훨씬 더 많다. 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 변수(혹은 함수나 클래스)의 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. int d; // 경과 시간(단위: 날짜) 이름 d는 아무 의미도 드러나지 않는다. 측정하려는 값과 단위를 표현하는 이름이 필요하다. int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; 의도가 드러나는 이름을 사용하면 코드 이해와 변경이 쉬워진다. 다음 코드는 무엇을 할까? p.. 더보기
Clean Code #1 - 깨끗한 코드 어째서 나쁜 코드를 짰는가? 급해서? 서두르느라? 제대로 짤 시간이 없다고 생각해서 코드를 다듬느라 시간을 보냈다가 상사한테 욕먹을까 봐 지겨워서 빨리 끝내려고 다른 업무가 너무 밀려 후딱 해치우고 밀린 업무로 넘어가려고 르블랑의 법칙을 몰랐다. 나중은 결코 오지 않는다. 마음가짐 코드가 왜 그렇게 되었을까? 좋은 코드가 어째서 순식간에 나쁜 코드로 전락할까? 원래 설계를 뒤집는 방향으로 변한 요구사항 일정이 촉박해 제대로 할 시간 없었다 멍청한 관리자 조급한 고객 쓸모없는 마케팅 부서 이러한 이유로 탓을 떠벌린다. 관리자 혹은 마케팅은 우리에게 정보를 구한다. 정보를 구하지 않더라도 우리가 적극적으로 정보를 제공해야 마땅하다. 사용자는 요구사항을 내놓으며 우리에게 현실성을 자문한다. 그리므로 프로젝트 .. 더보기
List Interface List는 순서가 있는 컬렉션이고 중복을 허용한다. 인덱스로 모든 요소에 접근할 수 있다. ArrayList 크기가 고정되어 있는 Array를 개선한 크기 조절 가능한 Array이다. Array이기 때문에 index를 통한 엑세스가 빠르다. 비동기식이기 때문에 여러 개의 스레드에서 동시에 접근할 수 있다. LinkedList List 및 Deque 인터페이스를 구현 ArrayList와 마찬가지로 비동기식 내부적으로 연결 리스트를 이용하여 저장한다. Stack LIFO 구조 Vector의 5가지 메서드만 상속받아 사용 boolean empty() E peek() - 스택의 최상단 요소를 반환 E pop() - 스택의 최상단 요소를 반환하며 제거함 push(E e) - 스택의 최상단에 요소를 삽입 int s.. 더보기