etc 18

vsftpd 모드 설명.

vsftpd를 지난번에 설치해 보고 나서 조금더 알아봐야 할 상황이 발생하여 찾아본 내용에 대해여 기록한다. 우선 ftp는 command port와 data port 두 개의 port를 사용한다. 서버 측에서는 일반적으로 21번 port를 command port로 사용하고, 20번 port를 data port로 사용한다. 클라이언트에서는 1024~65535번 사이의 임의의 port를 골라서 command port로 사용하고 선택된 포트에 +1을 한 port를 data port로 사용한다. Ubuntu - vi /etc/vsftpd.confCentOS - vi /etc/vsftpd/vsftpd.conf 1. 엑티브 모드(Active Mode) - 설정파일 수정.: pasv_enable=NO 2. 패시브 모..

etc 2017.12.13

git 명령어 모음.

Git 명령어 모음에 대해서 기록한다. 모든 명령어를 기록하는 것은 아니고 주로 내가 사용했던 명령어에 대해서기록한다. 나중에 더 업데이트를 하도록 하고, 일단 어느정도 기록하도록 하자. - git config --global user.name "유저이름"- git config --global user.email "유저 이메일"- git remote add origin http://github.com/유저이름/프로젝트명.git: 원격저장소 연결.- git remote -v: 연결 상태 확인. - git init: 현재 디렉토리에 git 저장소 생성. - git status: 커밋되지 않은 변경사항을 조회 - git add: git add 파일명- 스테이징 영역에 파일 추가.: git add .- 모든 파..

etc 2017.11.21

Github 사용법 - 3. 브런치(branch)

이번 내용은 github branch에 대한 내용이다. 브런치가 무엇이고, 왜 사용해야 하는지에 대한 내용은... 생략. 1. Branch 생성. - git branch 브런치명 : 브런치 생성. - git branch 로 현재 생성된 브런치와 현재 활성화된 브런치를 확인. - checkout 명령으로 활성 브런치 변경. - 확인해 보면 TestBranch가 활성화 된 것을 확인 할 수 있다. - 여기서는 빠져 있지만, 코드의 일부를 수정하였다. - 수정 후에 status 를 확인하고, git add -A 로 변경 내용을 추가하고, commit으로 스냅샷을 찍었다. - 대상을 TestBranch로 하여 push 하였다. - TestBranch가 올라온것을 확인 할 수 있다. - 브런치 탭에서도 확인 가능..

etc 2017.11.20

Github 사용법 - 2. 저장소

앞서 github에 가입을 했고, git-scm을 설치 했다. 이번 내용은 저장소 생성과 파일 커밋에 대한 내용이다. 1. 저장소 생성. - 1번 혹은 2번을 통해서 신규를 저장소를 생성할 수 있다. - 1번에 저장소 이름을 넣어주고, - 2번 설정으로 무료 버전을 선택할 수 있다.: github는 기본적으로 오픈 소스를 지향하기 때문에 private를 선택 할 경우 유료로 할 수 있다. - 3번을 눌러 저장소 생성. - 저장소가 만들어 졌다. 2. 로컬 저장소. - 1번은 이미 앞서 했던 내용이고, - 2번은 로컬 깃 저장소라는 것을 알리는 것이다. - 로컬 저장소로 설정된 모습. 3. 저장소 연결. - 첫 명령어에서 저장소를 연결하였고,: 모자이크 부분은 유저 네임에 해당하는 부분이다. - 다음 명령..

etc 2017.11.20

Github 사용법 - 1. 설치

이번에는 github 사용법에 대하여 기록하도록 한다. github에 대한 설명은 따로 하지 않도록 한다. 이미 많은 내용들이다른 곳에서 친절하게 설명되어 있으니, 바로 본론으로 들어가자. 1. 계정 생성. - github 홈페이지에 접속해서 계정을 생성한다. - 가입 후 모습. 2. git 설치. - https://git-scm.com/download 에 접속하여 다운 받는다. - 일부 브라우저는 자동 다운로드가 진행된다. - 현재 최신 버전은 2.15.0 이고 이를 다운 받아 실행한다. - 터미널 설정이다. - 설정에 따라 cmd에서도 진행 할 수 있다. - 그림의 순서대로 진행을 한다면 어려움 없이 완료를 할 수 있다. - 완료 된 후의 모습이다. - 여기서 git 명령어를 실행 할 수 있으니, 앞..

etc 2017.11.20

Ubuntu FTP Server 2.

ubuntu ftp server 에 대한 두번째 기록으로 이번에는 테스트에 대한 기록이다. 1. 테스트 파일 준비. - ftp 폴더를 만들어 준다. - test 파일을 만들어 준다. 2. 테스트 AWS 에 파일을 올려두기 위해서는 다음과 같은 체크가 필요하다.1. 인스턴스의 보안 그룹에서 인바운드/아웃바운드에 SSH 추가.2. FileZilla를 통해서 /var/ftp/pub 폴더에 파일 추가.: 이때 권한이 문제 될 수 있다. 만일 문제가 된다면.: sudo chown -R : 경로 로 권한을 변경해 준다.- ex) sudo chown -R ubuntu:ubuntu /var/ftp/pub

etc 2017.09.19

Ubuntu FTP Server 1.

Ubuntu에 ftp 서버를 설치해서 활용해 보는 내용을 기록하도록 한다. 1. vsftpd 설치. - vsftpd 를 설치해 준다. - 설정 파일을 수정해야 하니 만일을 대비해서 설정 파일을 백업해 둔다. 2. 방화벽 설정. - 처음은 방화벽이 비활성화 되어 있다. - 방화벽을 활성화 시켜주고. - 순서대로 추가해 주고, 마지막으로 방화벽 상태를 확인하면 추가된 것을 볼 수 있다. 3. 설정 파일 수정. - vi 편집기를 사용해서 설정 파일을 연다. - 정확히 하기 위해 다시 표기하면 sudo vi /etc/vsftpd.conf 이다. - 두 설정을 변경 해 주고. - 다음을 추가해 준다. 파일의 어느 곳에 추가해도 된다.: anon_root : 디렉토리의 사용자를 가리킨다.: no_anon_passw..

etc 2017.09.19

[STL] 지역 변수를 STL Container에 삽입시 발생하는 일.

STL Container에 지역 변수를 push하면 발생하는 일. - 지역변수 1. 함수 내부에 선언된다. 2. Life Cycle은 함수의 종료 시점과 같이 한다. 3. 저장소는 therad-stack 이다. 4. thread-stack은 1Mb 이다. 5. 1Mb를 초과하면??? - 어떻게 되는지는 또 찾아봐야지... 우선 계속 진행. - 지역변수를 STL Container에 push 하면. 1. 지역 변수 선언시 thread-stack에 생성. 2. STL Container에 삽입시 new를 통해서 heap에 할당 된다. : Move Semantics를 통해서 가능. ※ 다음 할 이야기. 1. thread-stack 초과시 어떻게 되는가? 2. Move Semantics 자세히 기술하기.

etc 2015.08.03

[C++] 메모리 가시성과 메모리 장벽

메모리 가시성 (Memory Visiblity)1. 정의- Thread에서 변경한 특정 메모리 값이, 다른 Thread에서 제대로 읽어지는가 라고 할 수 있다 2. 문제- cpu의 메모리 아키텍쳐. 즉, 레지스터와 캐쉬가 존재하기 때문이다. : 각각의 코어는 메인 메모리와 별도로 각각의 레지스터와 캐쉬를 가지기 때문이다.- 컴파일러의 최적화: 컴파일러는 프로그램이 최대한 빠르게 실행될 수 있도록 코어의 레지스터와 캐쉬를 사용하도록 한다. 3. 결론- Shared Memory 모델의 Concurrent, Parallel Programming에서는, 한 코어에서의 값 변경을 여러 코어가 공유하는 메인 메모리로 반영하는 작업을 적절히 수행해야 메모리 가시성을 유지할 수 있다 메모리 장벽 Memory Barri..

etc 2015.07.29

[C++] Explicit 의미

Explicit는 생성자 앞에 사용하게 되는데. 생성자 앞에 이 키워드를 사용하게 되면 암시적 형변환을 막아준다.예를들어 다음의 코드가 있다고 한다면. class Temp{public:explicit Temp(int number) {};}; void main(){Temp temp(10);} 이런 코드는 정상적으로 동작한다. 하지만. void main(){Temp temp = 1;} 이런건 안된다는 뜻이된다. 만약 explicit 키워드가 생성자 앞에 선언되어 있지 않다면 컴파일러가 암시적으로 형변환하여 성공을 했겠지만, explicit 키워드를 사용함으로 인해서 차단된다.

etc 2013.05.10