'Software'에 해당되는 글 9건

  1. 2018.12.27 새로운 저장소로 옮기기
  2. 2018.03.26 위도 경도
  3. 2013.09.12 Git 정리
  4. 2013.09.09 Git 작업 취소 관련 명령
  5. 2013.09.04 가벼운 패킷 캡쳐 프로그램
  6. 2013.05.31 우분투 SVN 설치
  7. 2011.02.19 Kernel
  8. 2010.12.30 프로그래밍 격언
  9. 2010.11.29 대칭키와 비대칭키

git 서버가 내부망인 관계로 내가 공부하느라 만든 내용도 밖에서 쓸 수가 없어서 찾아 봄..

우선은 내부망에 접근이 가능한 상태에서 한번은 bare(서버 형태)로 받아야함 (1에서만 내부망 접속 필요)


1. 기존 소스 git을 서버 형태로 받는다.

 $ git clone --bare 내부망_저장소_주소

예) $ git clone --bare git@192.168.0.2:repo/Tistory.git


2. github나 Bitbucket 등에 새로운 git 저장소(B)를 하나 만든다.

 (B) 저장소에 (A)의 이력과 소스를 계속해서 보고싶어 시작한 일이니 

 내부망이 아닌 외부망 git 서버로 갈아타는 것


3. (A)에는 소스코드가 안보이지만 git log 명령은 먹는다.

 기존 사용하던 소스에서 반영이 안된 것은 없는지, 수정 중인 내용은 없는지 확인한다.


4. 최신으로 업데이트 및 반영이 확인되었다면 (A) 저장소 위치로 가서 다음 명령 실행

 $ git push --mirror 사용할_저장소_주소

 예) $ git push --mirror https://asgawa.bitbucket.org/tistroy


5. 새로운 저장소와 무슨 문제가 있다면 아무 파일이나 새로운 저장소 홈페이지에서 commit 했다가 지워보자

  새로운 저장소를 하나 더 clone 해보고 로그에 이력이 잘 남았는지 확인해보자.


6. 올리는 곳이 외국 서버라 좀 느린것 같았다. 본인은 push가 잘 되었다.

fatal: HttpRequestException encountered. 이런 오류가 보였지만 무시하고 그냥 진행하고 있다.

잘 되는데 찾아보기 귀찮아..


7. BitBucket에 접속해서 확인해보니 지난 이력을 모두 확인할 수 있었다.

이제 BitBucket의 프로젝트를 다시 clone해보니 잘 되었다.


8. 새로운 서버를 얻었으니 bare 형태인 폴더를 지우고 마무으리


마치며..


콘솔 명령어로 쓰긴 했으나 TortoiseGIT 에서도 bare 체크박스가 확인되니 문제 없을 것 같다.


github는 private 저장소를 쓰려면 업그레이드해야 한다. (유료) 기본적으로 public, 공개해야 한다.

https://github.com/


그래서 본인은 BitBucket에 만들었다. (여기도 근데 1개만 되는듯)

https://bitbucket.org


'Software > Git' 카테고리의 다른 글

Git 정리  (0) 2013.09.12
Git 작업 취소 관련 명령  (0) 2013.09.09
Posted by 독뽀
,


GPS 정보를 사용할 일이 있어서 찾아봄.

아래 정보는 외우기 편하려고 기록하는 것이므로 명칭 등 정확한 정보가 목적이라면

위키를 참조할 것.


지리좌표계: https://ko.wikipedia.org/wiki/...

위도(latitude): https://ko.wikipedia.org/wiki/...

경도(longitude): https://ko.wikipedia.org/wik/...


적도: 북극과 남극 사이. 북반구와 남반구를 나누는 기준. 지구에서 가장 긴 원둘레


위도: 적도를 기준으로 남/북으로 얼마나 떨어져있는지

독도의 경우 북위 37 이라 함은 적도에서 북쪽으로 37도만큼 떨어져있다는 뜻


경도: 그리니치 천문대(영국)를 기준으로 서/동으로 얼마나 떨어져있는지

독도의 경우 동경 132 이라 함은 그리니치 천문대로부터 동쪽으로 132도 떨어져있다는 뜻


위도와 경도는 소수점을 가진 값 하나로 표현하거나 도/분/초로 표현한다.

독도를 예로 들면


북위 37도 14분 29.403초 (37° 14' 29.403")

동경 131도 51분 44.0028초 (131° 51' 44.0028")


소수점을 가진 하나의 값으로 변환하는 것은 의외로 간단하다.

1. 도는 시간으로 계산

2. 시/분/초를 시간 단위로 통일하여 합산 (1분 = 1/60시간, 1초=1/3600시간)


위의 예에서 북위를 변환한다고 하면

N 37 (37은 시간이므로 그대로)

+ 0.2333333 (= 14/60)

+ 0.0081675 (= 29.403/3600)

= N 37.241500 (소수점 아래 6자리까지만 → 37.2415008 에서 마지막 자리 버림, N (북위)는 당연 그대로)


이를 간단히 엑셀에서 사용하게 만들어 봄. (첨부파일 참조)


깨알 상식


지구의 자전축이 기울어진 것은 알 것임.

지구가 엄청난 속도로 자전을 하다보니 (시속 1600~1700키로)

회전에 의해 강함 원심력을 받다보니 살짝 타원형이 됨.


아래 그림을 보면 북극(북위90도)과 남극(남위90도)이 보이고

가운데 큰 둘레가 바로 적도인데 (위도 0도) 지구 둘레를 잴 때 가장 김.

원심력이 가장 크게 작용하는 곳이다 보니 로켓 발사에 유리함.

원심력을 이용하면 지구 탈출에 필요한 로켓의 속도를 줄일 수 있음

하지만 원료를 줄이는 것은 적도에 위치한 국가가 많이 없다보니

발사대를 구축하거나 빌리는데 드는 돈이나 아낄 수 있는 연료비나 그게 그거인건 함정

(로켓 운송, 인건비 등등의 금액도 추가 발생)


earth spin에 대한 이미지 검색결과



이미지 출처: https://www.tes.com/lessons/hgaBw0cbvQOe5w/8-7a-rotation-revolution

'Software > Common sense' 카테고리의 다른 글

프로그래밍 격언  (0) 2010.12.30
Posted by 독뽀
,

Git 정리

Software/Git 2013. 9. 12. 11:05

잘 정리되어 있어서 퍼옴


http://dimdim.tistory.com/entry/GIT%EC%97%90-%EB%8C%80%ED%95%9C-%EB%82%B4%EC%9A%A9%EC%A0%95%EB%A6%AC-%EC%A0%95%EB%A6%AC%EC%A4%91

'Software > Git' 카테고리의 다른 글

새로운 저장소로 옮기기  (0) 2018.12.27
Git 작업 취소 관련 명령  (0) 2013.09.09
Posted by 독뽀
,

http://ecogeo.tistory.com/276

'Software > Git' 카테고리의 다른 글

새로운 저장소로 옮기기  (0) 2018.12.27
Git 정리  (0) 2013.09.12
Posted by 독뽀
,

불필요한거 다 빠지고 매우 가벼운 패킷 캡쳐 프로그램..


그냥 [  ] 버튼만 누르면 됩니다.

포트나 패킷 타입 보고 클릭하면 데이터가 나옵니다.

한글 파일도 같이 넣어두었으니 영어로 보실려면 ini 파일만 빼시면 되요..


제작사 홈페이지: http://www.nirsoft.net/utils/smsniff.html


smsniff.zip



'Software > Network' 카테고리의 다른 글

대칭키와 비대칭키  (0) 2010.11.29
Posted by 독뽀
,

우분투 SVN 설치

Software/SVN 2013. 5. 31. 11:21

전체적인 개념 등은 아래 사이트 참고..


http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/SVN/Tutorial


아래는 가장 자주 쓰는 명령어들..


svn up


소스 업데이트 시 사용, 충돌이 일어날 경우 작업 사본을 삭제하고 해당 파일만 svn up 하기도 함

와일드카드(*, ?) 가 사용 가능함, 파일명 뿐 아니라 폴더에도 적용됨

파일명, 폴더명을 쓰지 않으면 현재 디렉토리 포함 하위 모두 업데이트 시도


ex)

$rm testfile.java

$svn up testfile.java


svn ci


소스 커밋(업로드) 시 사용.

파일명, 폴더명 등을 안쓰면 현재 디렉토리 포함 하위 모두 커밋 시도함

충돌이 일어날 경우 svn di 파일명으로 다른 곳을 찾아 머지 후 커밋.

-m 옵션을 사용하면 로그 메시지를 바로 기록할 수 있다.


ex)

$svn ci testfile.java -m "null 처리 추가"


svn di


작업 사본과 서버 원본의 다른 세부사항을 보여줌

파일명, 폴더명 등을 안쓰면 현재 디렉토리 포함 하위 모두 비교하여 출력.

개인적으로 파일 하나 정도 비교할 때 씀. 너무 많으면 보기 힘들기 때문..


ex)

$svn di testfile.java

Index: testfile.java

===================================================================

--- testfile.java  (리비전 33)

+++ testfile.java  (작업 사본)

@@ -10,6 +10,6 @@

        private int a = -1;

-      void setDefault(final int vol) {

+      void setDefault(int vol) {


-는 기존 코드, +는 변경된 코드

-10,6 은 라인, 위치


svn st


작업 사본과 서버 원본에서 변경된 내용을 보여줌.

di와 다른 점은 세부 내용이 아니라 추가/삭제/수정 정보를 알려줌


ex)

$svn st

M /DATA/Project1/testfile.java

D /DATA/Project1/res/testfile.png

A /DATA/Project1/res/test.png

? /DATA/Project1/res/test_land.png


M - 원본 소스에서 변경된 파일

D - 원본에서 삭제 대기 중인 파일(commit을 해야 삭제됨)

A - 원본에 추가 대기 중인 파일(commit을 해야 추가됨)

? - 새로 생성된 파일(원본에 없는 파일, add+commit 을 해야 추가됨)


svn add


서버 원본에 파일 등을 추가할 때 사용.

파일명, 폴더명을 쓰지 않으면 현재 디렉토리 포함 하위 모두 추가.

커밋하지 않으면 서버에는 적용되지 않음.


ex)

$svn add /DATA/Project1/*.java

$svn ci /DATA/Project1 -m "자바 소스 추가"


svn rm


서버 원본에 파일 등을 삭제할 때 사용.

파일명, 폴더명을 쓰지 않으면 현재 디렉토리 포함 하위 모두 삭제.

커밋하지 않으면 서버에는 적용되지 않음.


$svn rm /DATA/Project1/*.tmp

$svn ci /DATA/Project1 -m "임시 파일 삭제"


Posted by 독뽀
,

Kernel

Software/Computer Science 2011. 2. 19. 12:07
On the definition of "kernel", Jochen Liedtke said that the word is "traditionally used to denote the part of the operating system that is mandatory and common to all other software." [3] Most operating systems rely on this concept of the kernel. The existence of a kernel is a natural consequence of designing a computer system as a series of abstraction layers, [4] each relying on the functions of layers beneath it. The kernel, from this viewpoint, is simply the name given to the lowest level of abstraction that is implemented in software.



A kernel connects the application software to the hardware of a computer.



A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications (see also Structured Computer Organization, by Andrew S. Tanenbaum)

Article from: http://iphoneapp.wapedia.mobi/en/Kernel_(computing)

iPhone 에서 작성된 글입니다.
Posted by 독뽀
,

프로그래밍 격언

 

일 반

 

- 자신의 프로그램에 많은 주석을 두어라. 그래야 다른 프로그래머에게 도움이 된다.

- “KISS(Keep It Simple, Stupid)”의 원칙을 사용하라. 간결함과 간략함은 복잡하고 이상한 것보다 낫다.

- 부작용을 피하라. 별도의 라인에서 ++과 --를 사용한다.

- 조건 내에 할당문을 두지 마라. 그 외 문의 내부에도 할당문을 두지 않는다.

- =와 ==의 차이를 알고 있어야 한다. =와 ==를 잘못 사용하면 에러를 찾기가 쉽지 않다.

- 아무 것도 하지 않은 상태로 두지 않는다.

// 다음과 같이 프로그래밍하지 마라

for (index = 0; data[index] < key; ++index);

// 세미콜론을 살펴보자

이럴 때는 다음과 같이 항상 주석을 넣는다.

for (index = 0; data[index] < key; ++index)

/* 아무 것도 하지 않는다. */;

- 습관은 기술과 창조성(예를 들어, 예술가나 운동선수)을 필요로 하는 전문 분야에 종사하는 사람에게 중요하다. 코딩도 마찬가지어서 이미 알고 있는 것을 계속 복습하여 좋은 코딩 습관을 만들도록 한다.

 

설 계

 

- 빠르고 간단한 방법과 일반적이고 유연성 있는 방법 사이에서 하나를 선택해야 한다면 언제나 유연성 있는 방법을 사용한다.

- 사용자가 정해진 형식대로 입력한다고 생각하지 마라. 고양이가 키보드 위를 걸어갔을 때 프로그램이 어떻게 될지도 생각할 수 있어야 한다.

- 부호가 있는 것과 부호가 없는 것의 변환과 오버/언더플로우 조건에 유의한다.

 

선 언

 

- 라인마다 하나의 변수 선언을 하고 주석을 단다.

- 쉽게 이해할 수 있게 긴 이름을 사용한다. 하지만 너무 긴 이름은 입력하기가 힘들 수 있다.

- 기본 return 선언문을 사용하지 않는다. 함수가 정수를 리턴하면 int 타입으로 선언한다.

 

switch문

 

- default의 경우에 아무 것도 하지 않더라도 항상 switch문에 default를 두도록 한다.

switch (expression) {

default:

/* 아무 것도 하지 않는다. */;

break;

}

- switch에서의 모든 case는 break나 /* fall through */ 문으로 끝난다.

 

전처리기

 

- #define로 정의되는 상수형 표현식에 ( )를 둔다.

#define BOX_SIZE (3 * 10) /* 상자의 크기(픽셀) */

- 파라미터가 있는 매크로 인자에는 ( )를 둔다.

#define SQUARE(x) ((x) * (x))

- 문장으로 이루어진 매크로는 중괄호로 둘러싼다.

// 심각한 에러가 발생했다. 사용자에게 알리고 프로그램을 강제 종료시킨다.

#define DIE(msg) {(void)printf(msg); exit(8);}

- 조건 컴파일에 #ifdef/#endif 구성을 사용할 때 프로그램의 맨 위 부분에 #define과 #undef문을 두고 주석을 단다.

- 가능하면 #define 대신에 const를 사용한다.

- 인라인 함수는 파라미터가 있는 매크로에서 사용하면 좋다.

 

스타일

 

- { }로 둘러싸인 블록 코드는 2페이지 이상 돼서는 안 된다. 더 큰 블록은 여러 개의 작고 간단한 프로시저로 나눈다.

- 코드가 바르게 동작하면 프로시저를 여러 개의 작고 간결한 프로시저로 나눈다.

- 클래스에 항상 생성자, 소멸자와 복사 생성자를 정의하라. C++의 기본값을 사용한다면 다음과 같이 루틴 안에 주석을 단다.

class example {

public:

// example -- 기본 생성자

 

컴파일

 

- 프로그램을 컴파일하는 방법을 알 수 있게 Makefile을 만들도록 한다.

- 컴파일 할 때 모든 경고 플래그를 On시켜 컴파일러가 발견할 수 있는 모든 문제를 찾아낸다.

 

C++ 프로그래머를 위한 10가지 명령 Phine Straite 만듦

 

1. 간단한 클래스라도 생성, 소멸, 복사 생성이나 할당에 대한 기본 조작을 컴파일러에게 의존하지 마라.

2. 다른 사람이 상속(파생)할 수 있게 소멸자를 가상으로 선언하고 정의하라.

3. 상속(파생) 메커니즘을 남용하여 "is-a" 규칙을 위반하지 마라.

4. 컴파일러, 운영체제나 하드웨어 환경의 구현 의존 동작에 의존하지 마라.

5. 심사숙고 없이 루트에 있는 최하위 클래스의 인터페이스를 확대하지 마라.

6. 비슷한 기능을 갖는 것에 friend 권한을 주지 마라.

7. 특별한 경우를 제외하고 데이터에 public이나 static을 사용하지 마라.

8. 객체 내에 있는 포인터나 참조를 숨기지 마라.

9. 가능하면 정확하게 클래스 라이브러리를 이용한다.

10. printf/scanf를 사용하지 마라.

  출처: C++ 프로그래밍의 이해(한빛미디어 - Steve Oualline)

'Software > Common sense' 카테고리의 다른 글

위도 경도  (0) 2018.03.26
Posted by 독뽀
,

 

대칭키

비대칭키

관계

암호화 키 = 복호화 키

암호화 키 != 복호화 키

암호화키

비밀

공개

복호화키

비밀

비밀

대표 알고리즘

DES

RSA

비밀키 분배

필요

불필요


해시함수 관련 내용: http://100.naver.com/100.nhn?docid=784144

세션키 관련 내용: http://yasa68.blog.me/130009481754

전자서명 관련 내용: http://unius.tistory.com/570

'Software > Network' 카테고리의 다른 글

가벼운 패킷 캡쳐 프로그램  (0) 2013.09.04
Posted by 독뽀
,