전체 글 83

[git] 깃 (기본)

1) 시작하기 소스코드 파일의 버전 백업 코드작성을 하다가 망하게 되면 우린 어찌하는가? 가장 단순하고 확실한 방법은 수정을 시작하기 전에 소스코드 파일들을 따로 백업해 두는 것이다. 수정하다 망해버린 파일들을 삭제하고, 백업해둔 파일을 다시 꺼내면 간단하게 수정 전 상태로 되돌아 갈 수 있다. 그런데 이 방법의 문제는, 소스코드 파일을 편집할 때마다 매번 백업하는 일이 번거롭다는 점이다. 그래서 가끔 백업을 깜빡했다가 낭패를 보곤 한다. 또 백업이 너무 많아지면, 백업의 구체적인 내용이 기억나지 않아서 혼란스럽기도 하다. 프로젝트 공동 작업 친구들이랑 같이 프로젝트를 할 때, 내가 애써서 구현한 코드를 다른 팀원이 실수로 망쳐버린 경우.. 팀원들이 각자 구현한 버전들을 전부 취합할 때 어려움.. 버전 ..

git 2020.09.10

[알고리즘] 스도쿠 (백트래킹) : 백준 2580 자바 / 사람과 컴퓨터의 관점

조금 원론적인 이야기를 하자면 .. 스도쿠를 해봤다면 알겠지만 인간이 이 게임을 할때 사실 어려운 문제는 간단하지 않다.. 여러 방면에서 공식을 대입해가면서 풀어야하고 초보자의 경우에는 실수도 많이 튀어나와서 연필로 수도쿠를 하고 있었다면 지우개로 지우다가 종이가 너덜너덜(?) 해지는 케이스가 있을 때가 있다. 사람의 두뇌는 사실상 모든 케이스를 판별하기보다는 공식에 혹은 경험에 의거하여 결론을 도출하는 경향이 크다. 하지만 컴퓨터의 경우는 다르다. 컴퓨터는 먼저 매우 빠르다.(!!) 그 빠름의 강점을 이용해서 모든 케이스를 판별하는 것이 가장 일반적인 혹은 기본적인 활용 방법 중 하나이다. 우리가 코딩을 할때는 조건문과 반복문을 통해서 어떤 코드를 짜는데 사실 그게 다이다.. 빠른 컴퓨터를 이용해서 빠..

알고리즘 2020.09.10

[알고리즘] N-Queen (백트래킹)

백트래킹이란 dfs문제에서 깊이를 탐색하다가 요쪽(?)으로 계속가면 원하는 값을 얻지 못함을 미리 깨닫고 더이상 들어가지 않는 기법이다. 일명 가지치기라고 한다. dfs의 단점은 무한 반복될 수 있는 구간에서는 빠져나올 수 없다는 단점이 있다. 이를 적절하게 해결할 수 있는 하나의 기법이 되고, 그 외에 bfs를 통해서 빠르게 탐색하는 방법도 있지만 bfs는 인덱스가 진행될 수 록 메모리가 지수승으로 폭발 증가한다는 단점이 있다. 그래서 적절하게 dfs를 활용해서 앞서 미리 이 가지가 유효할지를 검사하여 잘라낼지 진행할지를 결정한다. N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오..

알고리즘 2020.09.02

[git] 파일 경로명

Windows 운영체제의 파일시스템에는 디스크 드라이브 개념이 있다. (예: C: D: E:) (여담이지만 .. C부터 시작하는 이유는, 이전에 a b가 플로피 디스크였다. 관례적(?)으로 a b를 안쓴다.. Linux 에는 디스크 드라이브 개념이 없다. Windows 에 설치한 Git base 쉘에서, Windows 파일시스템의 디스크 드라이브를 다음과 같이 다룬다. 예를 들어 Windows 에서 파일 경로명이 다음과 같을 때 C:/PJ/node1/chap01/hello1.js 위 경로명에 해당하는 Git bash 경로명은 다음과 같다. /c/PJ/node1/chap01/hello1.js Git bash에서 C:/PJ/node1/ 디렉토리로 이동하는 명령은 다음과 같다. cd /c/PJ/node1/

git 2020.09.01

[git] 명령어

너무너무 기본이지만 모르는 사람을 위해.. 디렉토리 생성 mkdir 디렉토리명 하위 디렉토리로 이동하기 cd 디렉토리명 현재 디렉토리의 파일 목록 출력 ls -al 상위 디렉토리로 이동하기 cd .. Linux에서 부모 디렉토리를 의미하는 기호는 .. 이다. 디렉토리 삭제하기 rm -rf 디렉토리명 디렉토리와 그 아래 파일들이 모두 삭제된다. 파일 삭제하기 rm 파일명 파일 복사하기 #1 cp 소스_파일 새_파일명 파일 복사하기 #2 cp 소스_파일 대상_폴더 현재 디렉토리 경로명 확인 pwd 사용자 홈 디렉토리로 이동 cd ~ Linux에서 사용자 홈 디렉토리를 의미하는 기호는 ~ 이다.

git 2020.09.01

[git] git

1) 소스코드 버전 관리, 형상 관리 git은 소스코드 버전 관리 도구이고, 소스코드 형상 관리 도구이다. 소스코드 버전 관리와 소스코드 형상 관리는 비슷한 개념이다. 버전 관리보다 형상 관리가 좀 더 큰 개념이다. 즉, 형상 관리 개념에 버전 관리가 포함된다. 소스코드 버전 관리 도구는, 클라이언트와 서버로 구성된다. 개발PC에 git 클라이언트가 설치되어야 한다. 소스코드 변경 내역이 git 서버에 저장된다. 2) git 클라이언트 git 서버를 따로 구축할 수도 있지만, 보통 github 사이트의 서버를 이용한다. 개발 PC에 git 클라이언트가 설치되어야 한다. Windows용 git 클라이언트에는, 기본 유닉스 명령 실행 파일도 포함되어 있어서, 유닉스 명령 공부를 시작하기에 좋다. 3) 줄바꿈..

git 2020.09.01