목록네트워크 캠퍼스/회고록 (18)
Information Security Study
1월 4주차 학습내용 요약 도커: 개요 (컨테이너 기술의 개념과 사례, 컨테이너의 생성 타입, Docker, 가상화, 컨테이너 가상화와 VM 가상화의 차이) 컨테이너화 기술 (play with docker) 명령어 (curl, stop) 이미지 생성 절차 virtualbox와 ubuntu os로 docker에서 제공하는 shell script로 로컬 환경 설정 로컬 환경에서 도커 다루기(rocky linux 컨테이너로 띄우기, 우분투 띄우기, 도커 내부 ip 배정 순서, 이미지 실존 여부 확인, alpine버전, nginx로 오픈 포트 확인, index.html 생성해 nginx에 적용, nginx 이미지 생성, MySQL 컨테이너 생성과 파라미터 전달 실습, 컨테이너로 띄운 DB엔진 워크벤치로 다루기(..
MySQL 정상 종료 후 재시작 과정 exit하면 mysql이 정상 종료 된다. 재시작을 위해서는 아래와 같은 절차를 밟아야 한다. docker start 컨테이너 id 종료된 mysql 컨테이너 재시작 docker exec -it 컨테이너 id bash 명령어 입력을 위한 mysql 인스턴스의 bash 창으로 진입 /etc/init.d/mysql start mysql 데몬을 기동해 외부에서 접속 가능한 상태로 만들기 mysql -uroot -p root계정의 비밀번호를 입력해 접속
전략 패턴 : 다형성이 적용되는 특정 인터페이스 타입에 구현체를 선택적으로 대입하는 패턴 전략 패턴 예시 List list = new ArrayList(); // 1.8버전부터는 생성자에 제네릭 표시 X List list = new LinkedList(); // 위와 동일하게 사용 가능 LinkedList와 ArrayList는 둘 다 List 인터페이스를 구현한 클래스이고 사용방법은 같지만 내부 구조가 다르다. ArrayList는 인덱스로 관리하기 때문에 조회가 빈번한 경우에, LinkedList는 링크로 관리하여 추가, 삭제가 빈번한 경우에 사용하는 것이 좋다.

컨테이너 기술 Infrastructure : 하드웨어 및 기기로 구성된 시스템 전반을 나타낸다. Host Operating System : 물리적인 서버 또는 호스트 컴퓨터에서 실행되는 운영 체제로, 하이퍼바이저에게 자원을 할당하고 가상 머신들을 관리한다. Hypervisor : 가상 환경을 생성하고 관리하는 소프트웨어로, 호스트 운영 체제 위에서 실행되어 가상 머신에게 필요한 자원을 분배한다. 프로세스의 개수만큼 서버를 두지 않아도 가상 환경을 효율적으로 운영할 수 있다. 하나의 OS위에 여러개를 배포하면 생기는 문제 : 프로그램 하나가 죽어버리면 다른 프로그램도 죽는다. 컨테이너 기술은 개발 그 자체에 집중할 수 있고 최소한의 이미지를 통해 실행되므로 경량이다. 컨테이너는 가상회 프로그램과 달리 메모..
1월 3주차 학습내용 요약 리눅스: 파일 시스템(find, grep, help, man, which), 텍스트 에디터(텍스트파일/바이너리파일, vim 파일 편집/커서이동, 잘라내기/복사/붙여넣기, undo/redo, 검색/치환, vimtutor/help), 프로세스(개요, ps, top, jobs, fg), 프로세스 잡 관리(bg, 잡/프로세스 종료, kill, killall), 운영체제, 셸스크립트(개요, 셔뱅, source, source와 .의 차이, .profile, 전역 경로, 변수, quote, 치환, 파라미터, 제어문, $?, if, test, 문자열/정수/파일 비교, 연산자, &&와 ||, for, case, while, until, 함수) 자바: 싱글톤 패턴, final(class/변수),..
if [ 명령어 ] 리눅스에서는 if문의 조건식을 입력할 때 소괄호가 아닌 대괄호를 사용한다. 리눅스에서는 셸에서도 []가 입력 가능하기 때문에 if [ 조건식 ]이 아닌 if [ 명령어 ]라 다른 프로그래밍 언어와는 개념이 살짝 다르다. &&와 || &&의 경우 왼쪽이 참이면 오른쪽을 수행하고 ||의 경우 왼쪽이 거짓일 때 오른쪽 명령어를 수행한다. String과 StringBuffer / StringBuilder String 클래스는 초기화된 데이터에 변화가 생기면 새로운 객체를 매번 생성하기 때문에 메모리를 과소비한다는 문제점이 있다. 그래서 속도가 느려지는 현상이 발생할 수 있다. String 클래스보다 StringBuffer, StringBuilder가 속도적인 측면에서 낫다. StringBuf..

source와 .의 차이 셸스크립트 안에 alias로 등록한 명령어를 입력한 뒤 source로 실행하면 해당 sh파일을 잘 수행하지만 . 명령어는 수행하지 못한다. 그 이유는 source 명령어는 현재 셸에서 실행하지만 . 명령어는 새로운 셸을 하나 더 열어서 실행하기 때문이다. (새로 연 셸에는 alias 설정이 되어있지 않다.) 파일명으로 셸 스크립트 실행하기 셸 스크립트가 모여있는 디렉터리가 ~/bin이라고 가정한다면 이 경로를 .profile 파일 내부의 환경변수에 추가해야 한다. PATH="$PATH:~/bin" 위 코드를 .profile 파일 내부에 작성한 뒤 $ source ~/.profile 를 실행해야 적용이 된다. if문 사용 시 주의사항 셸 스크립트에서 if문을 사용할 때 조건식은 대..

잡의 종료 1) 포그라운드에서 실행 중인 잡은 ctrl+c로 종료 2) 백그라운드에서 실행 중인 잡은 kill %잡번호 로 종료 프로세스의 종료 kill pid번호로 종료 * 프로세스는 현재 로그인 중인 유저가 실행한 프로세스만 삭제할 수 있다. 셔뱅 : 셸 스크립트 작성 시 어느 경로에서든 바로 실행할 수 있도록 첫 행에 파일/경로를 작성하는 것 운영체제 VIRT, RES, SHR은 현재 프로세스가 사용중인 메모리와 관련된 값이다. VIRT: 위의 VIRT + RES + SHR를 모두 포함한 영역으로 각 Task에 할당된 메모리 전체 RES: 할당된 메모리 중 실제로 사용되고있는 물리 메모리의 양이 SHR: 다른 프로세스와 공유중인 메모리의 양 가상 메모리를 배정하는 이유 메모리를 물리적으로 처음부터 ..