아래 글은 로버트 C. 마틴의 Clean Code라는 책을 읽고 스스로 정리하며 학습한 목록입니다. 특히 우아한 테크코스 - 프리코스 1 주차를 진행하며 학습이 필요하다 스스로 판단한 부분을 집중적으로 다루었습니다. 1. 깨끗한 코드 나쁘 코드로 치르는 대가 나쁜 코드는 개발 속도를 크게 떨어뜨린다. 나쁜 코드가 쌓일수록 팀 생산성은 떨어진다. 기한을 맞추려면 나쁜 코드를 양산할 수밖에 없다고 느끼지만 실제로는 나쁜 코드를 양산하면 기한을 맞추지 못한다. 오히려 엉망진창인 상태로 인해 속도가 곧바로 늦어지고 결국 기한을 놓친다. 기한을 맞추는 유일한 방법은, 빨리 가는 유일한 방법은 언제나 코드를 최대한 깨끗하게 유지하는 습관이다. 비야네: 깨끗한 코드 == 보기에 즐거운 코드. == 세세한 사항까지 꼼..
1. 질문하기 전에 해야 할 것들 5 why 원칙에 따라 생각해보기. 더보기 5 why란 말그대로 5번의 왜 그랬는지 이유를 생각해 보는 것이다. 도대체 왜 이런 문제가 생겨났는지 곰곰이 세 번 정도 생각해보고 시도를 해보기 (50 퍼 정도 해결이 된다.) 질문에 시도를 포함시키기. 2. 그래도 해결이 안되면 충분한 구글링을 해보자 내가 모르는 것은 남들도 모르고 내가 실수하는 것은 남도 한다. 원하는 답이 없다고 여러 페이지를 뒤지지 않는다. 거기 답이 없으면 키워드를 바꾸자. 대부분 답은 stackoverflow가 알려준다. 3. 그래도 해결이 안되면 질문을 하자 (1) 제목을 잘 짓기 [질문 -미해결] or [질문 - 해결됨] 같이 질문의 status를 추가하자. 제목이 잘 떠오르지 않을 때는 본문..
Git 커밋 메시지 컨벤션을 찾아보면서 다양한 커밋 메시지 컨벤션이 존재하는 것을 알았다. 그래서 검증되지 않은 블로그나 사이트를 참고 하지 않으려 했다. 특히 어디에서는 제목 첫 글자는 대문자 사용하지 말라하며 어느 곳에서는 대문자를 사용하라고 한다. 그러니 그냥 속한 팀의 convention을 따르는 것이 1순위인 것 같다. 나는 ConventionalCommits.org라는 152명의 contributer로 이루어진 곳을 참고했으며, NHN Meetup!에 있는 글을 참고하였다. 1. git 커밋 메시지를 잘 쓰려고 노력해야 하는 이유 - 커밋 로그 가독성을 높인다. - 더 나은 협업과 리뷰 프로세스 - 더 쉬운 코드 유지보수 git log을 통해 여러 커밋 메시지를 확인하면 과거 어떤 코드를 변경..

Junit5의 기본적인 메소드들을 학습하는데, assertIterableEquals과 assertLinesMatch의 차이점이 궁금하였다. 먼저 Junit5 공식 문서를 통해 assertIterableEquals과 assertLinesMatch은 다음과 같음을 확인할 수 있었다. (1) assertIterableEquals() assertIterableEquals(Iterable expected, Iterable actual) Asserts that expected and actual iterables are deeply equal. 두 객체 Iterable(Iterable 인터페이스를 구현한 클래스)가 deeply equal한지 (내용 비교) 비교하는 것이다. 이때 두 iterable은 같은 순서로 동..
1. Graph - graph is simply a set of values that are related in a pair wise fashion. - Node(=Vertex)와 Edges(간선)로 이루어짐. - great data structure to model real world relationships. - LinkedList는 Tree의 일종이고, Tree는 Graph의 일종이다. (Tree는 directed graph) - self-edge라고 node가 자기 자신을 가리키는 경우가 있을 수 있다. 2. Graph의 종류들 (1) directed : 방향성이 있음. 일방통행 (2) undirected : 방향성이 없음. 양방향 통행 (1) weighted : 가중치 그래프 (2) unweig..

1. github remote repository 이름 변경 후 github remote repository에 repository naming convention을 보고, 그에 맞게끔 변경을 완료했다. 하지만 push 하려고 보니 push가 안되길래, remote -v 통해서 경로를 확인해보니 repository 이름 변경하면 repository url 주소까지 변경되는 것. 그래서 오류가 발생했다. 일단 내 성격상 어떻게 대처해야 하는지 찾아보지도 않고 경로를 다시 git remote add origin 로 설정하고 다시 올리니, push가 안되었다. 거기에 다름과 같은 에러가났던 걸로 기억한다. 위와 같은 에러가 나는 이유는 정확히 원격 저장소 이름을 언급해 주지 않았다는 것이다. 위와 같이 remo..

1. 검색 알고리즘 일단 이 포스트에서 다룰 것은 a의 배열 검색이다. 배열 검색은 다음과 같은 알고리즘을 사용한다. (1) 선형 검색 (Linear Search) : 무작위로 늘어놓은 데이터 모임에서 검색을 수행한다. (2) 이진 검색 (Binary Search) : 일정한 규칙으로 늘어놓은 데이터 모음에서 아주 빠른 검색을 수행한다. (3) 해시법 : 추가, 삭제가 자주 일어나는 데이터 모임에서 아주 빠른 검색을 수행한다. 2. 선형 검색 ( ==순차검색 ) 배열에서 검색하는 방법 가운데 가장 기본적인 알고리즘이다. 요소가 직선 모양으로 늘어선 배열에서의 검색은 원하는 키 값을 갖는 요소를 만날때 까지 맨 앞부터 순서대로 요소를 검색한다. (기본적으로 n(배열길이) for문 돌면서 키 값 요소와 비교..
1. 정렬이란? 정렬은 이름, 학번, 키 등 핵심 항목의 대소 관계에 따라 데이터 집합을 일정한 순서로 줄지어 늘어서도록 바꾸는 작업을 말한다. 이렇게 정렬하면 검색을 더 쉽게 할 수 있다. (파일을 알파벳 순으로 정렬하고 찾으면 더 찾기 쉬운것 처럼) 또한 정렬시에 같은 값의 키를 가진 요소의 순서가 정렬 전후에도 유지되는것을 안정된 정렬이라고 하고, 안정되지 않은 알고리즘을 사용하면 같은 키를 가진 요소의 순서가 정렬 전후에 유지 되지 않는다. 2. 외부 정렬과 내부 정렬 (1) 내부 정렬 : 정렬할 모든 데이터를 하나의 배열에 저장 할 수 있는 경우에 사용하는 알고리즘 (2) 외부 정렬 : 정렬할 데이터가 너무 많아 하나의 배열에 저장할 수 없는 경우에 사용하는 알고리즘 3. 버블 정렬 (Bubbl..
- Total
- Today
- Yesterday