Coding (37) 썸네일형 리스트형 그래프 - 인접 행렬과 인접 리스트 인접 행렬 정의 인접 행렬은 그래프의 연결 관계를 이차원 배열로 나타내는 방식. adj[i][j]: 노드 i에서 노드 j로 가는 간선이 있으면 1, 아니면 0 간선에 방향이 있는 유향 그래프가 아닌, 간선에 방향이 없는 무향 그래프의 경우에는, 노드 i -> 노드 j가 존재하면 노드 j -> 노드 i도 존재하는 것이다. 따라서 대각 성분(adj[i][j]에서 i == j)을 기준으로 대칭인 성질을 가지게 된다. 장점 - 구현이 쉽다 - 노드 i와 노드 j가 연결되어 있는지 확인하고 싶을 때, indexing으로 접근하기 때문에 O(1)의 시간 복잡도를 가진다 단점 - 전체 노드의 개수를 V개, 간선의 개수를 E개라고 하면, 노드 i에 연결된 모든 노드들에 방문하고 싶은 경우 adj[i][1]부터 adj[.. vi, ls 명령어 터미널에서 못찾을 때 (command not found: ls,vi) 환경변수 설정을 하다가 잘못해서 ls, vi와 같은 기본적인 명령어도 작동하지 않기 시작했다 ... zsh: command not found: ls zsh: command not found: vi 터미널 창에 다음과 같이 임시적으로 환경변수 설정을 해주면 vi, ls와 같은 명령어를 사용할 수 있다 export PATH=%PATH:/bin:/usr/local/bin:/usr/bin 그리고 잘못 수정한 ~/.zshrc와 같은 파일에서 환경변수 설정을 올바르게 고쳐준 후, source ~/.zshrc 해주면 원상복귀된다! 출처: vi, ls, ssh등 터미널에서 명령어를 찾을 수 없을 때 CI(Continuous Integration) / CD(Continuous Deploy or Delivery) CI = 빌드 및 테스트 자동화 CD = 배포 자동화 Jenkins라는 솔루선을 많이 사용한다 덕 타이핑(Duck Typing) 덕 타이핑이란 컴퓨터 프로그래밍 분야에서 duck typing은 동적 타이핑의 한 종류로, 객체의 변수 및 메소드의 집합이 객체의 타입을 결정하는 것을 말한다. 클래스 상속이나 인터페이스 구현으로 타입을 구분하는 대신, 덕 타이핑은 객체가 어떤 타입에 걸맞는 변수와 메소드를 지니면 객체를 해당 타입에 속하는 것으로 간주한다. 덕 타이핑이라는 용어의 유래 다음과 같이 표현될 수 있는 덕 테스트에서 유래했다. (duck은 영어로 오리) 더보기 만약 어떤 새가 오리처럼 걷고 ,헤엄치고, 꽥꽥꺼리는 소리를 낸다면 나는 그 새를 오리라고 부를 것이다 덕 타이핑에서는, 객체의 타입보다 객체가 사용되는 양상이 더 중요하다. 덕 타이핑이 없는 프로그래밍 언어로는 오리 타입의 객체를 인자로 받아 객체의 걷기 메소드와 꽥.. TDD(Test-driven Development) TDD(Test-driven development)의 의미 테스트 주도 개발(Test-driven development, TDD)는 매우 짧은 개발 사이클을 반복하는 소프투웨어 개발 프로세스 중 하나이다. 우선 개발자는 바라는 향상 또는 새로운 함수를 정의하는 (초기적 결함을 점검하는) 자동화된 테스트 케이스를 작성한다. 그런 후에, 그 케이스를 통과하기 위한 최소한의 양의 코드를 생성핟나. 그리고 마지막으로 그 새 코드를 표준에 맞추도록 리팩토링한다. [위키피디아] 결국, 개발을 하는 데 있어서 테스트가 주가 되고, 선행된다는 이야기입니다. 테스트를 염두해 둔 프로그램 개발 방법이라고 이해할 수 있습니다. Log Level 구분 - Trace - Only when I would be "tracing" the code and trying to find one part of a function specifically. - Debug - Information that is diagnostically helpful to people more than just developers (IT, sysadmins, etc.) - Info - Generally useful information to log (service start/stop, configuration assumptions, etc). Info I want to always have available but usually don't care about under normal cir.. git branch 이용, 생성, 삭제 * branch 생성하기 표현: git branch 옵션을 지정하지 않고 branch 명령어를 실행하면 브랜치 전체 목록을 확인할 수 있다 issue라는 이름의 branch를 생성한 후, 현재 branch 목록 확인 $ git branch issue $ git branch issue1 *master 표현: git checkout checkout 명령어는 라는 이름의 브랜치를 사용하겠다고 명시적으로 지정해주는 것이다. $ git checkout issue Switched to branch 'issue' 더보기 + checkout 명령에 -b 옵션을 넣으면 브랜치 작성과 체크아웃을 한 번에 실행 가능하다 표현: git checkout -b checkout으로 브랜치를 변경해준 후, add와 commit, p.. git revert - 커밋 변경, reset/revert 복구하기 * git revert git에서 commit 후 commit에 포함시키지 말아야 할 파일을 발견했을때, 즉 커밋한 내용에 실수가 있어서, 수정을 하고 싶을때 commit을 삭제하기 위해 revert를 쓰는 대참사의 경우가 있다. 하지만 이는 매우매우 위험한 행동이다... revert는 절대 함부로 쓰면 안된다 git revert HEAD git revert 는 해당 commit id로 파일을 되돌리는 명령어이기 때문에, 그 이후의 수정사항들이 모두 사라져버린다. 즉, commit을 한 뒤 revert를 사용하면 commit 이전의 상태로 되돌아간다. 나는 commit의 일부 내용을 없애거나 수정하고 싶었던 것인데, 로컬에서 내가 작업하고 수정한 모든 코드와 수정본들, 즉 commit한 파일들도 로컬에서.. 이전 1 2 3 4 5 다음