[Clean Code][TIL] 주석
이 포스트는 로버트 C.마틴의 Clean Code 속 4장(68p ~ 94p) 내용에 대한 후기입니다. “나쁜 코드에 주석을 달지 마라. 새로 짜라.” (4장 68p) 주석 말고 코드로 의도를 표현할 것 위키백과에서는 주석을 다음과 같이 설명하였습니다. “소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 주 목적이며, 협업할 때 유용히 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 4장(68p ~ 94p) 내용에 대한 후기입니다. “나쁜 코드에 주석을 달지 마라. 새로 짜라.” (4장 68p) 주석 말고 코드로 의도를 표현할 것 위키백과에서는 주석을 다음과 같이 설명하였습니다. “소스 코드를 더 쉽게 이해할 수 있게 만드는 것이 주 목적이며, 협업할 때 유용히 ...
이 포스트는 로버트 C.마틴의 Clean Code 속 3장(40p ~ 65p) 내용에 대한 후기입니다. 작은 함수에게 한 가지만 시키기 “함수는 한 가지를 해야한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다.” (3장 44p) 코드를 작성하면서 여러 함수가 추가되고 기능이 추가되면서 한 개의 함수가 비대해지는 경험은 프로...
이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. 순차 탐색 여러 탐색 알고리즘 중 가장 가장 기본적인 탐색이 순차 탐색입니다. 순차 탐색은 이름처럼 특정한 데이터를 찾기 위해 앞에서부터 하나씩 차례대로 확인하는 알고리즘 입니다. 보통 정렬되지 않은 배열에서 탐색하기 위해 사용하며 데이터의 개수가...
이 포스트는 로버트 C.마틴의 Clean Code 속 2장(22p ~ 38p) 내용에 대한 후기입니다. “여느 코드 개선 노력과 마찬가지로 이름 역시 나름대로 바꿨다가는 누군가의 질책을 받을지 모른다. 그렇다고 코드를 개선하려는 노력을 중단해서는 안 된다.” (2장 38p) 이름을 잘 짓는 규칙 로버트는 이름을 잘 짓는 규칙으로 15개의...
이 포스트는 로버트 C.마틴의 Clean Code 속 추천사부터 1장까지(1p ~ 20p) 내용에 대한 후기입니다. 기억하고 싶은 내용 모드럽의 추천사 중 다음과 같은 내용이 있습니다. “집 주인이라면 누구나 알겠지만, 지속적인 개선과 보살핌은 결코 끝나지 않는다.” (추천사 xxvi) 이 내용이 프로그램의 유지 보수 작업에 대한 프로그래...
크로아티아 알파벳 문제 크로아티아 알파벳 문제는 입력 받은 문자열에서 특정 문자열을 탐색하는 문제입니다. 처음 코드를 작성할 때, 아래 while()문 처럼 코드를 작성하였습니다. vector<string> croatia_alphabet{"c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="}; stri...
나쁜 코드 다양한 프로젝트를 진행하면서 어려웠던 것 중 하나가 좋은 코드를 작성하는 것 이였습니다. 설계 단계에서는 매번 객체지향의 SOLID 규칙을 지키며 좋은 코드를 작성하려고 하였으나 마무리는 위 코드처럼 정리되지 않은 코드로 작성되었습니다. 이러한 작성 방법은 파일과 클래스, 메소드, 변수 등 네이밍 규칙이 매번 다르고 현재 문제점만...
이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. 정렬은 데이터 집합을 특정한 기준 에 따라 순서대로 나열하는 작업입니다. 특정한 기준으로는 숫자의 내림차순과 오름차순, 문자열의 길이 혹은 각 문자의 합 등 사용자의 필요에 따라 여러 가지가 될 수 있습니다. 정렬 알고리즘은 알고리즘의 효율성을 표...
이것이 취업을 위한 코딩 테스트다 with 파이썬 (나동빈 저) 를 참고해 작성한 포스트입니다. Greedy(탐욕적인) 알고리즘 그리디(Greedy) 알고리즘은 단순하지만 강력한 문제 해결 방법입니다. Greedy 의 사전적 의미는 “탐욕스러운, 욕심이 많은” 이라는 뜻으로 그리디 알고리즘 대신 탐욕법, 탐욕 알고리즘 등의 이름으로 부르기도 ...
이전 문자열 매칭 포스트인 KMP 알고리즘 O(M + N)과 동일하게 특정 문자열을 찾고자 할 때 사용되는 알고리즘인 라빈카프 알고리즘을 이번 포스트에서 설명해보겠습니다. 라빈카프 알고리즘에서 해싱(Hashing) 사용 방법 라빈카프 알고리즘은 해싱으로 문자열을 탐색하는 알고리즘입니다. 문자열 M에서 문자열 N을 찾는 상황에서 라빈카프 알고리즘...