본문 바로가기

분류 전체보기170

클린코드 3장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 3장 함수 의도를 분명히 표현하는 함수를 어떻게 구현할 수 있을까? 함수에 어떤 속성을 부여해야 처음 읽는 사람이 프로그램 내부를 직관적으로 파악할 수 있을까? 작게 만들어라 중첩 구조가 생길만큼 함수가 커져서는 안된다. 함수에서 들여쓰기 수준은 1단이나 2단을 넘어서면 안된다. if문, while문 안에 들어가는 코드가 길어질거 같다면 함수로 쪼개자 한 가지만 해라 함수는 한 가지만 해야 한다. '한가지' 의 기준이 좀 모호한데... 의미 있는 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 한다고 봐도 된다. 함수 당 추상화 수준은 하나로 추상화 수준이 높은 함수랑 추상화 수준이 낮은.. 2022. 9. 15.
클린코드 2장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 2장 의미 있는 이름 의도를 분명히 밝혀라 좋은 이름으로 절약하는 시간이 많다... 예를들면 날짜 변수라면 int d; 이딴식으로 짓지 말고 int elapsedTimeInDays; int daySinceCreation; 이렇게 짓자. 이렇게 이름을 통해 정보를 제공하면 코드의 단순성(연산자 수, 상수 수 등)은 똑같더라도 코드가 더욱 명확해진다. 그릇된 정보를 피하라 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안된다. 예를들어 직각삼각형의 빗변(hypotenuse)를 hp라고 하면...오해의 소지가 있다. 그냥 int 변수를 어쩌구_List 이렇게 짓는 것도 피하자. 헷갈릴 여지가.. 2022. 9. 15.
클린 코드 1장 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 1장 깨끗한 코드 모든 프로그래머가 기한을 맞추려면 나쁜 코드를 양산할 수밖에 없다고 느낀다. ..(중략).. 나쁜 코드를 양산하면 기한을 맞추지 못한다. 오히려 엉망진창인 상태로 인해 속도가 곧바로 늦어지고, 결국 기한을 놓친다. 깨끗한 코드란? 전문가들에게 물었다. 깨끗한 코드는 한 가지에 집중한다. 너무 많은 일을 하려 애쓰다간 의도가 뒤섞이고 목적이 흐려지기 때문. 가독성이 좋아야 한다. 코드를 읽는 사람에게 프로그래머가 단호하다는 인상을 줘야 한다. 다른 사람이 고치기 쉬운 코드여야 한다. 그리고 테스트 케이스가 있는 코드여야 한다. 깨끗한 코드는, 세세한 사항까지 꼼꼼하게 신경쓴, 주의 깊게.. 2022. 9. 15.
알파벳 배열 쉽게 만들기 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. from string import ascii_uppercase from string import ascii_lowercase alpha = list(ascii_uppercase) print(alpha) alpha2=list(ascii_lowercase) print(alpha2) 알파벳 하나하나 쳐가면서 배열만들거나 아스키코드가 몇이엇지...26빼서 만들면 되나? 하는 그지같은 나날은 이제 끝이다. from string import ascii_lowercase 기억하자! 참고로 a->97 같은걸 원하면 ord 함수를 쓰면 된다. ord('a')=97!! 2022. 9. 14.
SQL 고득점 킷 정리 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. n개의 데이터 뽑기 limit를 이용한다. SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1 정렬한 다음에 맨 첫번째 데이터를 반환 SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 6,3 7번째 행부터 3개의 데이터 반환 중복없이 데어터 뽑기 distinct를 이용한다. SELECT distinct NAME from ANIMAL_INS 중복 없을때 몇 개 있을까? SELECT count(distinct NAME) from ANIMAL_INS group by에서의 조건절 group by에서 조건쓸때는 where 대.. 2022. 9. 14.
파이썬 깊은 복사 이 포스트는 2021.12~2022.09 기간동안 벨로그에 작성한 글을 티스토리에 옮겨 적은 것입니다. 코테 대비를 하다보면 원본배열을 복사해야할 때가 많다. graph=[0,0,0,0,0] #원본배열 tempgraph=graph #복사 tempgraph[0]=1 #복사 배열 수정 print(graph) #[1,0,0,0,0]출력 bfs 문제에서 아무생각없이 이런식으로 대입했다가 한참 헤맸다.. list,set 같은 애들한테 이렇게 하면 원본 객체를 복사하는게 아니라 같은 주소값을 참조하는 것 뿐이므로...이런사태가 발생했다. 원본 객체에 영향을 줄 수 없는 복사본 객체를 만드려면 copy.deepcopy를 사용해야 한다. import copy graph=[0,0,0,0,0] tempgraph=copy... 2022. 9. 14.
반응형