본문 바로가기

IT

(228)
[Git] commit 목록 확인 git log --branches --not --remotes git log --branches --not --remotes --oneline --graph --decorate git에서 push하지 않은 커밋 확인 :: Outsider's Dev Story git은 svn과는 달리 commit을 한 뒤에 나중에 모아서 push를 하기 때문에 작업을 하다보면 어디까지 푸시를 했는지 헷갈리는 경우가 있습니다. 브랜치를 왔다갔다 하면서 작업하면 더 헷갈리기 마련 blog.outsider.ne.kr
3rd party란 3rd party, 써드파티 프로그래밍에서의 서드파티란 프로그래밍을 도와주는 plug_in 이나 library 등을 만드는 회사를 말한다. 개인 개발자나 프로젝트 팀, 혹은 업체등에서 개발하는 라이브러리 즉 제 3자 라이브러리 . 제작사에서 만든것이 아니라 다른 업체에서 만든 해당 툴 지원 라이브러리 제조사와 사용자 이외 외부의 생산자를 가리키는 뜻으로 쓰인다. - 위키 편하고 효율적인 개발을 위해, 플러그인이나 라이브러리 또는 프레임워크등을 사용하게 된다. 예로 프로그래밍 개발과 개발자 사이에 플러그인,라이브러리,프레임워크를 서드파티로 볼 수 있다. ... 이처럼 제 3자로써 중간다리 역할을 하는 것을 서드파티라고 합니다.
[Linux] GPU 정보 확인 우분투 그래픽 카드 GPU 확인 방법 $ lspci | grep -i VGA 혹은 $ nvidia-smi --query | fgrep 'Product Name'
Memory bound vs Compute bound I/O Bound vs CPU Bound Process I/O bound Process : 연산보다, I/O 에 더 시간이 들어가는 프로세스다. CPU burst 가 작다. CPU bound Process : 연산에 주로 시간이 들어가는 프로세스다. CPU burst 가 크다./ compute bound 빽 투더 기본기 [OS 1편]. 프로세스 이 글에서는 운영체제의 기초가 되는, Process (프로세스)에 대해 정리해본다. 1. Process 란 1.1. Program vs Process Program : 디스크에 저장된 실행가능한 명령어 파일. 수동적인 개체. Process : 메모리에 올.. dailyheumsi.tistory.com Memory-bound function Mem..
[Linux] vi 이동 단축키 vi 페이지 이동 명령 ctrl+f - 다음 페이지로 ctrl+b - 이전 페이지로 gg - 파일 첫 문장으로 G - 파일 끝으로 :숫자 – 숫자 번째 문장으로 이동 vi 페이지 이동 명령 vi 명령 노트 가끔 까먹는 vi 명령들을 적어 놓습니다. vi 페이지 이동 명령 ctrl+f - 다음 페이지로 ctrl+b - 이전 페이지로 gg - 파일 첫 문장으로 G - 파일 끝으로 :숫자 – 숫자 번째 문장으로 이동 * ingorae.tistory.com vi 단축키 정리 · 초보몽키의 개발공부로그 vi 단축키 정리 27 Mar 2017 | vim 학습자료 vi 단축키 삽입 키 기능 i 커서 위치에 Insert I 줄 맨 앞에서 Insert a 커서 다음에 Insert A 줄 맨 뒤에서 Insert o 커서 ..
[Linux] vi 에서 문자열 검색 1. 먼저 vi 를 실행하고 : 를 눌러 명령어 모드에 들어갑니다. 2. / or ? 으로 문자열 탐색 현재 커서 위치에서 아래방향으로 탐색 /찾을문자열 예) :/text 현재 커서 위치에서 윗방향으로 탐색(역방향 탐색) ?찾을문자열 예) :?text 3. 그 다음 문자열를 탐색(계속 탐색)을 하려면 소문자 "n" 을 누르면 되고 이전 문자열를 탐색(계속 탐색 - 역방향)을 하려면 대문자 "N"을 누르면 됩니다. 4. 정규식도 사용할 수 있다! 예) Text 로 시작하는 문자열을 찾을때 /^Text
[Linux] 리눅스의 구조 (커널,kernel) 리눅스는 기본적으로 커널,쉘,응용프로그램으로 동작됩니다 커널이란 하드웨어와 소프트웨어 사이에서 제어 역활을 해주는것이며 쉘로 부터 데이터를 받아와서 주 기억 장치로 보내는 역활을 하고 있습니다 커널이 주 기억 장치로 보낸 데이터를 프로세스라고 하며 그 프로세스를 cpu는 처리하게 됩니다 또한 커널은 프로세서 및 메모리 파일 시스템 디바이스 네트워크르 관리하며 리눅스 커널의 특징은 Free,가상 메모리 시스템,가상의 파일시스템,멀티 쓰레드등을 지원합니다 커널은 이벤트 중심 프로그램으로써, 응용 프로그램으로부터의 시스템 콜 요청이나 하드웨어의 인터럽트 요청을 처리한다. 리눅스 커널이란? 응용 프로그램 동작을 위한 환경을 제공하고 하드웨어를 제어하는 역할을 해주어, 응용 프로그램이 본래 목적만을 실행하도록 돕..
[Spring] 프로젝트 참고 사이트 [SPRING] 스프링 프레임워크 시작하기-4 자바 웹개발 JDK Eclipse Tomcat DBMS (ORACLE, MySQL, H2...) 어제 공부한 내용 복습 1. bean 엘리먼트 속성 1-1. init-method : Servlet 컨테이너는 생성자로 Servlet 객체의 멤버변수를 초기화할 수 없다 velog.io
[Linux] gcc Include / library 경로 설정 * INCLUDE gcc가 어떤 path에서 헤더 파일을 읽어오는지 알고 싶다면, gcc를 실행할 때 -v gcc test.c -v C_INCLUDE_PATH 환경 변수를 써서 지정할 수도 있습니다 (포맷은 PATH와 동일) C++ include path를 지정하기 위해서 CPLUS_INCLUDE_PATH를 쓰기도 합니다. -I option을 써서 지정할 수 있으며 (여러 디렉토리를 지정하기 위해 중복으로 사용 가능) -I C 소스는 표준 디렉토리에 있는 헤더 파일을 이용하여 개발을 할 수도 있지만, 표준 디렉토리가 아닌 위치에 있는 레더 파일을 가져와서도 개발을 할 수 있다. 그 때 그 디렉토리의 위치를 지정해주는 옵션이다. 이 옵션 또한 예제를 보고 하면 금방 진행할 수 있다. * LIB etc/ld..
[putty] 라인 수 늘리는 방법 [Linux] puTTy 라인 수 늘리는 방법 리눅스 puTTy 에서 화면에 보이는 라인 수 늘리는 방법! 바로 보시죠! 1. puTTy 를 열었을 때 첫 화면 입니다. 2. Window 에 가면 라인 수를 변경할 수 있습니다. 3. 저장을 하기위해 다시 Session 으로~!! elena90.tistory.com
[Linux] gcc컴파일 옵션 [gcc 컴파일] 1) gcc 파일명(*.c) : Default로 out 파일이 생성된다. (ex a.out) 2) gcc -c 파일명(*.c) : 오브젝트 파일을 생성한다. 3) gcc -c 오브젝트_파일명(*.o) 파일명(*.c) gcc -o 실행파일명(*.out) 오브젝트_파일명(*.o) 4) gcc -o 실행파일 파일명(*.c) : 실행 파일을 만든다. (3번을 한줄로...) [gcc 옵션] 1. -Wall 옵션 : 모든 모호한 코딩에 대해서 경고를 보내는 옵션 2. -W 옵션 : 합법적이지만 모호한 코딩에 대해서 경고를 보내는 옵션 3. -W -Wall 옵션 : 아주 사소한 모호성에 대해서도 경고가 발생 4. O2 옵션 : 최적화 레벨 2로 설정. (대부분의 최적화를 시도) 5. -E 옵션 : ..
[Linux] 파일속 문자열 찾기 리눅스 파일 찾기, 파일속 문자열 찾기 1. 리눅스 파일명으로 검색하는법. 사용법 find [찾을위치] -name [파일명] 예) 최상위 폴더부터 하위로 'apache'로 시작하는 파일 찾기. find / -name 'apache*' 예) usr 폴더부터 하위로 'apa'로 시작하는 파.. overcode.tistory.com
volatile 변수 volatile 변수 변수를 선언할 때 앞에 volatile을 붙이면 컴파일러는 해당 변수를 최적화에서 제외하여 항상 메모리에 접근하도록 만듭니다. volatile로 선언한 변수는 사용할 때 항상 메모리에 접근합니다. 즉, 이 변수는 언제든지 값이 바뀔 수 있으니까 항상 메모리에 접근하라고 컴파일러에게 알려주는 것입니다. 예를 들어 다음과 같은 반복문이 있습니다. 컴파일러는 이 코드를 최적화하여 while 반복문을 없애버리고 i에 그냥 10을 할당해버립니다(Visual Studio의 /O2 옵션, GCC의 -O3 옵션). 대략 이런 모습이 됩니다(어셈블리까지 설명하지 않고 C 코드로 대신 설명했습니다). 여기서 i를 volatile로 선언하면 반복할 때마다 항상 i의 메모리에 접근해야 하므로 컴파일러는 ..
[Linux] gcc -o 컴파일 과정
[Spring] Spring 설치 https://jerryjerryjerry.tistory.com/64?category=280350 [Spring] Spring 설치방법, 톰캣 서버 연결, 디렉토리 구조 * Spring 이란?에 대한 포스팅 : http://jerryjerryjerry.tistory.com/62 * Spring 설치 방법 1. 첫번째 설치방법으로는 이클립스 안에서 STS 플러그인을 설치하는 방법이 있다. 2. 두번째 설치방법으로는 이클립.. jerryjerryjerry.tistory.com
[Spring] 스프링, 스프링 프레임워크(Spring Framework) 1. 스프링이란? 스프링프레임워크(Spring Framework) - 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 스프링(Spring)이라고도 불린다. - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공한다. - Framework : 개발할 때 설계 기본이 되는 뼈대나 구조 / 환경 (문제 영역을 해결한 재사용, 확장 가능한 라이브러리.) 프레임 워크는 자주 쓰일 만한 기능들을 한데 모아 놓은 유틸(클래스)들의 모음(집합) - 설계의 기반이 되는 부분을 기술한 확장 가능한 기반 코드와 사용자가 이 코드를 자기 입맛대로 수정, 확장하는데 필요한 라이브러리 이 두가지 요소가 통합되어 제공되는 형태이다. - 사용자가 이 기반 코드를 이용해 일정 수준 이상의 품질을 보장받는 코드를, 비교적..
OSI 7계층 > [LAYER 4] 전송 계층 > PORT 1. PORT(포트), 넌 누구니? 포트는 운영 체제 통신의 종단점이다. 이 용어는 하드웨어 장치에도 사용되지만, 소프트웨어에서는 네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다. 사용법 : URI 문법에 의해서 사용 및 표기할 수 있으며, IP 주소와 함께 표기하는 예는 다음과 같다. ftp://000.000.000.000:21 여기서 000.000.000.000은 IP 주소를 나타내며 : 다음의 21이 포트 번호를 의미한다. 2. PORT(포트), 언제 사용될까? 포트(port)는 보통 항구나 공항(airport)을 나타냅니다. 이러한 항구와 공항은 외부세계와 접속할 수 있는 관문이 됩니다. 컴퓨터에서도 마찬가지입니다. 컴퓨터에서의 포트(port)란 외부의 다른 장비와 접속하기 위한 플러그와..
Debug mode, Release mode, Assert Debug mode 와 Release mode -Visual studio에서 Complie 모드로는 debug 모드와 Release 모드로 나눌 수 있다. - debug 모드 : 실행 파일에 디버그와 관련된 디버깅 정보를 삽입하여 디버깅을 효율적으로 할 수 있도록 도와준다. 프로젝 gatsbyv.tistory.com 85.21 assert 사용하기 assert 매크로는 assert.h 헤더 파일에 정의되어 있으며 정해진 조건에 맞지 않을 때 프로그램을 중단합니다. 즉, assert에 지정한 조건식이 거짓(false)일 때 프로그램을 중단하며 참(true)일 때는 프로그램이 계속 실행합니다. assert(표현식) 단, NDEBUG 매크로가 정의되어 있으면 assert는 무시됩니다. 그러므로 Visual S..
크로스 컴파일(cross compile) 크로스 컴파일러(cross compiler)는 컴파일러가 실행되는 플랫폼이 아닌 다른 플랫폼에서 실행 가능한 코드를 생성할 수 있는 컴파일러이다. 크로스 컴파일러 툴은 임베디드 시스템 혹은 여러 플랫폼에서 실행파일을 생성하는데 사용된다. 이것은 운영 체제를 지원하지 않는 마이크로컨트롤러와 같이 컴파일이 실현 불가능한 플랫폼에 컴파일하는데 사용된다. 이것은 시스템이 사용하는데 하나 이상의 플랫폼을 쓰는 반가상화에 이 도구를 사용하는 것이 더 일반적이게 되었다. A 머신(host) 에서 컴파일러를 돌려서 B 머신(target) 에서 동작하는 바이너리를 만드는 것을 크로스 컴파일이라고 합니다. 이때 사용하는 컴파일러가 크로스 컴파일러 입니다. 예를들어, 맥북에 안드로이드 스튜디오를 설치하고 소스코드를 빌드한 ..
[python] 설치된 패키지 버전 확인 [python] 설치된 package 버전 확인 pip로 설치된 package 목록을 보기 위해서는 pip에 freeze 옵션을 사용합니다. freeze에 대한 옵션 설명은 아래와 같습니다. freeze Output installed packages in requirements format. 실제로.. jybaek.tistory.com
[Jupyter Notebook] 가상환경 Kernel 연결하기 jupyter notebook 시작과 설정 설명 Jupyter Notebook에 가상환경 Kernel 연결하기 목차 1. 아나콘다 가상 환경 만들기 아나콘다에 가상환경을 구성하도록 합니다. tf2.0 이라는 이름을 가진 파이썬 가상 환경을 만들었습니다. conda create -n tf2.0 python 자세한 내용은 이전 글을 통해 chancoding.tistory.com
[Jupyter notebook] 단축키 Command Mode ( press Esc to enable) shift-Enter : run cell, select below Ctrl-Enter : run cell Alt-Enter : run cell, insert below Y : to code M : to markdown B : insert cell below X : cut selected cell C : copy selected cell Shift-V : paste cell above V : paste cell below Z : undo last cell deletion D,D : delete selected cell Shift-M : merge cell below Edit Mode ( press Enter to enable) Shift-Ta..
[Jupyter notebook, anaconda]ModuleNotFoundError: No module named 'tensorflow' Jupyter Notebook에 가상환경 Kernel 연결하기 [텐서플로우] ModuleNotFoundError: No module named 'tensorflow' 오류 해결 방법 단일 응용 프로그램이 아닌 경우에는 환경 설정이 제일 어려운 일입니다. 동일한 방법으로 했는데 왜 난 안될까? 포기했다가 다시 설치하면 되는 경우도 있고 이것 저것 다 따라해서 뭐때문에 copycoding.tistory.com
anaconda 기본 명령어
anaconda 가상환경(Virtual Environment)은 앞서 말씀드린대로 python을 개발할 때 필수라고 할 수 있습니다. 저도 Android 개발만 할 때는 가상환경에 다소 생소했습니다. 하지만, python을 다루게 되면서 가상환경이 왜 필요한지에 대해 깨닫게 되었습니다. 가상환경(Virtual Environment)이란? 가상환경은 말 그대로 가상의 개발 환경을 만들어 주는 것입니다. 들어 보셨을지는 모르겠지만, 가상머신(Virtual Machine)을 이용해 os를 가상으로 올려서 윈도우 환경이나 리눅스 환경을 만들어 개발을 하는 경우가 있습니다. tensorflow라는 패키지(package)를 import해서 사용하고 있습니다. 그럼 왜 그냥 설치해서 사용하면 되지, 굳이 가상환경을 만들어서 새로 패..
Jenkins, Docker, AWS 처음에는 Jenkins 를 단독으로 설치하려고 하였으나, 이참에 Docker 를 이용해서 자동화된 테스트까지 돌리고 싶어서, Docker 위에 Jenkins 를 설치하기로 마음 먹었다. Docker Docker 는 환경의 구성을 Image 로 만들어 두고 이를 Container 를 이용해 항상 동일한 환경을 제공해주는 Platform 이다. 여기서 Image 는 세팅 환경이고, Container 는 실행 환경이라고 볼 수 있다. Image 로 Jenkins 를 세팅하고, Container 에서 Jenkins 를 구동한다. Docker 를 이용해 Jenkins 를 세팅하게 되면, Docker 내부의 Docker 를 만들어서 일정한 테스트 환경을 유지하는데 사용할 수 있다. AWS CLI AWS CLI 는 ..
backend 이해하기 사용한 서버 목록 - WAS 서버 (자바+스프링) 3대 - Mysql 서버 2대 (Master, Slave) - Redis 서버 1대 (세션,캐시) - Nginx 웹서버 1대 - Jenkins 서버 1대 - Vault 서버 1대 - Ngrinder 서버 1대 - Pinpoint 서버 1대 프로젝트 서버 구조에 대한 전반적인 설명 - 사용자는 Nginix IP로 Http 요청을 보냅니다. - Nginix의 Reversed Proxy 기능을 통해 WAS서버 3대에 부하를 분산시킵니다. - WAS서버는 데이터 접근을 위해 Mysql서버와 Redis서버에 요청을 보냅니다. - Jenkins서버는 CI/CD 구축을 위해 사용하여 Github에 코드를 push할 시 통합, 배포를 자동화 시켜줍니다. - Jenkin..
[Jenkins] CI ( Continuous Integration ) / CD ( Continuous Delivery ) CI 서비스는 전체 응용 프로그램을 컴파일하고 테스트합니다. 또한 지속적인 딜리버리는 이 테스팅 된 애플리케이션을 예를 들어 알파 테스터가 조기 피드백을 사용하고 제공 할 수 있도록 저장소로 푸시합니다. CD 빌드는 프로덕션 환경에 자동으로 배포되며 광범위한 베타 테스트에도 사용할 수 있습니다. CD는 린 로지스틱스를 목표로 합니다. 새 코드 추가부터 승인 테스트까지 프로세스를 자동화합니다. CD는 모든 단계를 자동화하여 빌드를 배포 할 준비가 되었습니다. 지속적인 딜리버리 : 응용 프로그램을 구축하고 테스트를 실행하는 것 외에도 응용 프로그램은 "전달"되기도합니다. 이는 종종 누군가가 수동 테스트를 수행 할 수 있도록 서버에 배치하거나 테스트 그룹의 사용자에게 전자 메일로 전송하는 것을 의미합니다. 프..
[Jenkins] 젠킨스 설치 및 구동 젠킨스는 자바로 개발되었으며 서블릿 컨테이너 위에서 구동된다. 따라서 WAS인 Toacat, Jetty 등 서블릿 컨테이너를 설치하고 이 위에서 젠킨스 war파일로 구동한다. 각 OS별로 별도의 설치파일을 제공하고 있으나, OS에 제한적이지 않고 WAS에 배포함으로써 구동할 수 있도록 .war파일을 다운받았다. JDK 설치 http://www.oracle.com/technetwork/java/javase/downloads/index.html 접속 후 JDK 설치 windows 환경 변수 설정 WAS 설치 http://tomcat.apache.org/ 접속 후 Tomcat 설치 원하는 위치에 압축 해제 Jenkins 설치 https://jenkins.io/ 접속 후 LTS 버전 탭 이동 Download J..
[Jenkins] Jenkins란 젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integration) 툴 이라고 표현한다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합이 가능하도록 해준다. 젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이었다. 특히 개발자들이 당일 작성한 소스들의 커밋이 모드 끝난 심야 시간대에 이러한 빌드가 타이머에 의해 집중적으로 진행되었는데, 이를 nightly-build라 한다. 하지만, 젠킨스는 정기적인 빌드에서 한발 나아가 서브버전, Git 과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스..