반응형

저녁 먹으러 다녀온 사이에 컴퓨터가 재부팅 되어 있고, STS를 실행시켜도 컴퓨터에 아무런 반응이 없었습니다.

정말 아무 창이나 경고도 없이 '무반응' 이었습니다.


해결방법은 STS.ini 파일을 열어서 아래 처럼 빨간색 2줄을 추가합니다.

아마 자바 환경설정에 변화가 있었던 것 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
-startup
plugins/org.eclipse.equinox.launcher_1.3.201.v20161025-1711.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.401.v20161122-1740
-product
org.springsource.sts.ide
--launcher.defaultAction
openFile
-vm
C:\Program Files\Java\jdk1.8.0_144\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.8
-Xms1200m
-Dosgi.module.lock.timeout=10
-Xverify:none
-Dorg.eclipse.swt.browser.IEVersion=10001
-Xmx1200m
 



반응형
반응형

엑셀을 이용하다보면 어떠한 이유에서인지는 알수 없지만 갑자기 '파일이 손상되어 열 수 없습니다.' 라는 메시지가 뜨면서 작업된 파일들을 열 수가 없는 사태가 발생하곤 합니다.


이 때, 실제로 파일이 손상되거나 파일권한문제 윈도우 계정의 권한 문제등을 제외하고는 아래 방법으로 해결이 가능합니다.


1. 엑셀 파일을 열지말고 엑셀 프로그램을 실행합니다. 

 - 시작 버튼을 눌러서 엑셀을 찾아서 열거나

 - 윈도우키+R 누른 후 excel 엔터 하셔도 됩니다.


2. 엑셀이 열리면 아래 캡쳐이미지 처럼 상단의 파일 메뉴를 클릭하며 나오는 메뉴에서 2번 옵션을 메뉴를 클릭합니다.


2. 그러면 아래처럼 화면이 나오는데 1번 '보안센터'를 클릭 후 2번 '보안 센터 설정' 을 클릭 합니다.


3. 그러면 아래 화면이 나옵니다. 여기서 1번 '제한된 보기'를 클릭 후 2번 처럼 체크박스를 모두 '해제' 합니다. 그리고 3번 '확인'을 클릭합니다.


4. 이제 엑셀을 닫고 열리지 않았던 엑셀 파일을 다시 열어 봅니다.


5. 그래도 안되면 '여기' 를 참조하세요.


반응형
반응형


소스트리가 실행되는데 'Pull' 을 실행 했더니 "git-remote-https.exe 시작 지점 없음" 오류가 뜨면서 실행되지 않습니다.


아래와 같이 했더니 해결이 됩니다.


1. C:\Users\사용자\AppData\Local\Atlassian\SourceTree\git_local\mingw32\bin 이동


2. dll 파일들만 복사


3. C:\Users\사용자\AppData\Local\Atlassian\SourceTree\git_local\mingw32\libexec\git-core 이동


4. 붙여넣기


5. 재시작




반응형
반응형
시스템을 구축하다보면 네트워크 환경 때문에 proxy server가 필요한 경우가 종종 있습니다. 이럴 때 이용하는 gpl 라이센스의 balance를 소개합니다.

- Homepage
https://www.inlab.de/balance.html

- 설치 방법
1. 홈페이지에서 Balance 다운로드
2. 압축 파일을 다운 받은 후 임의의 디렉토리에 압축 해제
3. 압축 해제 디렉토리로 이동
4. make
5. make install
6. 압축 해제 디렉토리에 "balance" 실행 파일 생성 확인

- 실행방법
1. balance -f [local Port] [Forwarding 할 서버 아이피:포트]
ex)
브라우저에서 http://서버IP:20001 로 접속 할 경우 네이버 사이트가 출력 됨.(125.209.222.142는 네이버 IP 임)
balance -f 20001 125.209.222.142:80
반응형
반응형

안녕하세요. Git Flow 사용 시나리오에 대해서 한번 가정해 보았습니다.



A 라는 업무를 하던 도중에 급하게 B 라는 업무를 먼저 처리해야하는 시나리오 입니다.


업무에서 흔하게 일어나는 시나리오 입니다.



먼저, Git Flow를 이용하지 않고 그냥 메인 브랜치에서 작업하면 이렇게 됩니다.



  1. A업무를 시작
  2. 수십개의 소스를 여기저기 파헤쳐 놓은 상황.
  3. 커밋하면 엄청난 버그와 에러가 발생할 상황.
  4. 4일 동안 작업한 많은 분량.
  5. 앞으로 4일은 더 해야 마무리 될 상황.
  6. 이 때 긴급 장애 상황으로 당장 B업무를 위한 소스를 수정해야 함!!
  7. A업무의 소스를 커밋 할 수도 없고 버리는 건 더 할 수 없음.
  8. OTL


이런 상황은 정말 최악입니다. 로컬 백업을 해서 복구를 하거나 이상한 방법으로 해결해야 될겁니다.


하지만, Git Flow 기능을 이용한 동일한 상황이라면 아래와 같이 대처가 가능합니다.


  1. A업무를 시작
  2. A업무를 위한 브랜치 생성
  3. 수십개의 소스를 여기저기 파헤쳐 놓은 상황.
  4. 커밋하면 엄청난 버그와 에러가 발생할 상황.
  5. 4일 동안 작업한 많은 분량.
  6. 앞으로 4일은 더 해야 마무리 될 상황.
  7. 이 때 긴급 장애 상황으로 당장 B업무를 위한 소스를 수정해야 함!!
  8. A업무의 소스를 일단 모두 커밋 함.
  9. 다시 개발 브랜치로 체크아웃하고 B 업무를 위한 브랜치 생성.
  10. B업무 개발완료 후 B업무를 위한 브랜치를 개발 브랜치에 병합.
  11. 다시 A업무를 위한 브랜치를 체크아웃.
  12. A업무 개발 완료 후 개발 브랜치에 병합.

네, 깔끔합니다. 하루 이상 걸릴 작업은 꼭 Git Flow 기능을 이용해 별도 브랜치에서 작업합시다.



1. 브랜치를 새로 생성할 경우 사용.

2. 브랜치를 좀 더 편하게 생성할 수 있음.

3. 2번의 깃 플로우를 클릭하면 나타나는 창.
 - 새 기능 시작 클릭





새 기능 시작 창


1. 기능명

 - 업무명, 기능명, 모듈명 혹은 이슈 넘버 등


2. 시작지점

 - 최근 개발 브랜치 : 개발 브랜치의 가장 최신 커밋 이력으로부터 브랜치 파생

 - 작업 사본 부모 : 현재 작업 중인 브랜치로부터 브랜치 파생

 - 명시된 커밋 : 특정 커밋 이력으로부터 브랜치 파생


3. 확인 클릭.




“A업무” 라는 새 기능 시작 후 SourceTree 화면






커밋하지 않은 A업무 폭풍 작업내용.






급하게 B 업무를 처리하기 위하여 임시 커밋






1. 현재 A업무 브랜치를 작업 중 입니다.

 - B업무 작업 시작을 위해 master 브랜치로 작업 브랜치를 이동 합니다.

 - master 를 더블 클릭 합니다.


2. A 업무 브랜치 작업 중일 때 Local Git Repository 입니다.


3. master 브랜치로 이동 후 Local Git Repository 입니다.

- 동일한 Local 폴더이지만 현재 작업 브랜치에 따라서 소스파일들이 변경 됩니다.


4. master 브랜치로 이동한 모습입니다.


5. 현재 커밋 이력 포인터가 A업무 브랜치를 시작하기 바로 전으로 이동하였습니다.







A업무와 동일하게 B업무 새 기능을 시작한 후 SourceTree 화면 입니다.






B업무 완료하고 커밋과 푸시  후 SourceTree 화면 입니다.





깃 플로우 메뉴를 클릭하면 나타나는 창 입니다. - B업무 브랜치를 종료하기 위해 “기능마무리”를 클릭 합니다.






 “기능마무리”를 클릭 후 나타나는 창 입니다.

 

!! 문제가 발생 했습니다.

- B업무 및 A업무 기능 시작을 모두 master 브랜치로부터 파생했는데 깃 플로우를 이용한 기능 마무리는 개발 브랜치로만 병합이 됩니다.

- 깃 플로우의 “새 기능 시작” 기능은 개발브랜치에서만 이용하는 것이 맞는 것 같습니다.

- 어쩔 수 없이 “취소”를 클릭 합니다.

- “깃 플로우” 기능을 이용했지만 결국 브랜치이므로 master 브랜치에서 B업무 브랜치를 병합하고 B 업무를 삭제하면 됩니다.





master 브랜치로 이동 후 메뉴의 “병합” 을 클릭 해서 나타난 창 입니다.


B업무를 종료하기위한 병합입니다.

현재 master브랜치에서 B업무 브랜치를 당겨와 병합니다.

빨간 박스를 선택하고 확인을 클릭합니다.





master 브랜치에 B업무 브랜치 병합 후  SourceTree 화면 입니다.


master 브랜치에 B업무 브랜치 병합 후  LocalRepository 화면 입니다.





A업무 브랜치로 다시 돌아온 후 Local Repository 화면 입니다.

A업무 마무리를 위하여 “새 텍스트 문서” 들을 삭제하고,

“A업무완료.txt” 파일을 추가하였습니다.




A업무를 커밋과 푸시하고 master 브랜치에서 A업무 브랜치를 당겨와 병합한 후 SourceTree 화면 입니다.

최종적인 master 브랜치의 Local Repository 화면 입니다. - A업무 브랜치, B업무 브랜치 모두 병합 완료 하였습니다.



반응형
반응형

요즘쓰는 에디터가 서브라임 텍스트 입니다. 울트라 에디터, 에디트 플러스, 아크로 에디터 등등 여러가지가 있지만 서브라임 텍스트가 뭔가 있어보이고 개발자 스러운 점들이 많이 있어서 배워가며 쓰고 있는 중 입니다.


그 중에서 단연 돋보이는 기능 중 하나가 바로 플러그인 입니다.


아주 많은 플러그인을 제공하고 있고 또 검색해서 바로바로 설치할 수 있는 편의성도 갖추고 있습니다.


그중에서 처음으로 필요해의해 사용하게 된 플러그인이 Transcrypt(https://github.com/eddiejessup/Transcrypt플러그인 입니다.


작성한 내용을 암호화해서 저장하고 다시 복호화해서 볼수 있게 해주는 플러그인 입니다. 


중요한 여러 정보들(계정 및 암호, 계좌번호 등등)을 저장해 놓고 사용하는 경우가 있는데 그냥 저장해놓기에는 뭔가 찝찝할 때 이 플러그인을 이용해 암호화 시켜서 저장해 두곤 합니다.


그럼, 설치방법을 살펴 보겠습니다.


1. 서브라임 텍스트를 다운로드 및 설치한다.

 - URL : https://www.sublimetext.com/


2. 실행한다.


3. Ctrl + Shift + P 를 누른다.


4. install package 라고 친다.


5. Package Control : Install Package 를 선택한다.


6. Transcrypt 라고 친다.


7. 플러그인을 설치한다.


8. 내용을 작성하고 Ctrl + k + e 를 누른다.


9. 비밀번호를 넣는다. -> 암호화 됩니다.


10. 저장하고 닫는다.


11. 다시 그 파일을 열어 Ctrl + k + d 를 누른다.


12. 비밀번호를 넣는다. -> 복호화 됩니다.


13. 내용을 정삭적으로 볼 수 있다.

반응형
반응형

개발을 하다 보면 완전한 삽질에 의한 전혀 쓸모 없는 코드가 나올 때가 종종 있습니다.

이런 경우 싹 날려버리고 싶습니다. 소스.


이럴 때 소스트리를 이용해 Git을 사용하고 있다면, 아래와 같은 방법으로 마지막으로 커밋된 버전으로 소스를 원복할 수 있습니다.

svn의 revert 같은 기능입니다.



스테이지에 올라가지 않은 파일을 선택 후

마우스 오른쪽 버튼을 누르면 메뉴가 나탑니다.

메뉴에서 “폐기(Discard)” 를 클릭하면 작업하던 내용이 커밋된 가장 최신 이력으로 변경 됩니다.



반응형
반응형

Git을 이용해 여러사람과 같이 작업을 하다보면 Commit 하는 순간 오류가 발생하는 경우가 종종 있습니다.

오류의 종류는 여러가지가 있겠지만, 다른 사람이 동일한 소스를 이미 수정해서 Commit 해버린 경우에 충돌이 발생해서 오류가 발생하게 됩니다.


이럴 때는 수동 혹은 좋은 툴을 이용해 자동으로 병합(merge) 후 다시 Commit 과 Push를 해야 합니다.


그 과정을 한번 살펴 보도록 하겠습니다.




1. 하나의 원본 소스를 'GONI' 사용자와 '정현우' 사용자가 각각 내려 받습니다.

2. '정현우' 사용자가 먼저 소스를 수정 후 커밋과 푸시를 합니다.



3. 이제 GONI 사용자가 커밋과 푸시를 하려고 합니다.




정현우 사용자가 이미 커밋 한 파일을 뒤늦게 GONI 사용자가 커밋 하려고 한 경우 충돌 발생.




충돌 후 경고 창 닫은 후 화면입니다.


1. Local Repository 커밋은 성공 했지만, 원격 Repository 푸시는 실패 했으니 푸시를 다시 시도해 보라는 내용 입니다.

 2. master 브랜치에 “풀” 할 커밋이력 1개, “푸시” 할 커밋이력 1개 있다는 뜻 입니다.

- “풀” 할 커밋이력은 정현우 사용자가 커밋한 이력.

- “푸시” 할 커밋이력은 GONI 사용자가 커밋한 이력.

 3. 정현우 사용자가 이미 커밋한 이력 입니다.

- 충돌이 발생해서 원격 repository 브랜치(붉은색 그래프)가 분기 된 상태로 보입니다.(origin/master)

 4. 현재 사용자인 GONI 사용자가 커밋한 이력 입니다. 원격 repository의 master 브랜치에는 합류하지 못하고 현재 Local repository 의 master 브랜치에만(푸른색 그래프) 있는 상태 입니다. 






























반응형
반응형

Git 연동을 위한 SourceTree 설치 입니다.


다운로드 URL : https://www.atlassian.com/software/sourcetree




1. 클릭 해서 다운로드 후 관리자 권한으로 실행

-SourceTreeSetup_1.8.3.exe









Next 신공을 사용합니다. 




설치를 위해서 Atlaasian 계정이 필요합니다. 계정이 없으신 분들은 계정을 생성 후 진행하셔 합니다.



반응형
반응형

" [SourceTree를 이용한 상황별 Git 사용법] 단순 소스 변경 후 커밋 "에 이어서 "다른 사람이 수정한 소스 내려받기" 방법 입니다.



다른 사람이 수정하거나 추가한 소스가 있는지 확인 하려면 “페치”를 클릭 합니다.


* 설정에 따라 일정 시간이 지나면 SourceTree에서 자동으로 “페치”를 합니다.


* “페치” 하지 않은 상태에서 소스를 커밋 시 이미 다른 커밋 이력이 올라온 상태라면 SourceTree에서 경고를 보여주며 커밋이 진행되지 않습니다.






확인을 클릭 합니다.






1. 페치결과 다른 사람이 변경한 소스가 있으면 그 개수 만큼 “풀” 메뉴에 표시 됩니다.

- “풀” 메뉴를 클릭하면 다른 사람의 소스를 나의 Local로 내려 받습니다.


2. 브랜치별로 변경된 소스 개수를 표시 합니다. 


3. 나의 커밋 이력에서 위쪽에 추가로 생성된 커밋 이력을 확인 할 수 있습니다.






“풀” 메뉴를 클릭 후 화면 입니다.


“확인” 버튼을 클릭 합니다.





1. 다른 사람이 수정한 소스 개수가 사라졌습니다.


2. 다른 사람이 수정한 소스 개수가 사라졌습니다.


3. Local 저장소의 포인터가 최신 커밋 이력으로 옮겨졌습니다.



반응형

+ Recent posts