분류 전체보기359 문자열 slice 슬라이스 : [start:end:step] (1) start = 시작 offset (2) end = 끝 offset (3) step = 옵션 [:] = 처음부터 끝까지 전체 sequence를 출력 [start:] = 시작 offset부터 끝까지 sequence를 출력 [:end] = 처음부터 [end-1] offset까지 sequence를 출력 [start:end] = 시작 offset부터 [end-1] offset까지 sequence를 출력 [start:end:step] = step만큼 문자를 건너뛰면서, 시작 offset부터 [end-1] offset까지 sequence를 출력 ex) >>>data='abcdefghijkl' >>>data[::2] 'acegik' 2018. 7. 23. docker 기본명령어 아래 명령어 = 컨테이너 이미지를 가져오고 컨테어너 제어 및 상태를 확인하기 위해 알아야 하는 명령어 $ docker run 명령어 = 이미지를 다운받고 이미지에 맞는 컨테이너를 생성하고 실행 후 시작까지 하는 명령어 시연 1. MYSQL 이미지 다운로드 및 생성 후 실행 2. 컨테이너 생성 시 -v 옵션을 주어 host의 /home에 info_database가 있는지 확인 3. exec 명령어 -d로 생성하여 detached 모드로 생성되어 백그라운드에서 실행되도록 설정 즉, shell과 입출력 옵션을 주지 않았으므로 exec 명령어를 이용하여 입출력이 가능하도록 shell 실행 # mysql -u root -p 명령어로 MYSQL에 접속시도 후 # password 컨테이너 생성 시 MYSQL_ROOT.. 2018. 7. 16. 메모리와 변수 1. 메모리 내의 변수 - 어셈블리어에서 메모리를 사용할 때 메모리 크기를 결정해야하고, 사용할 메모리의 위치를 결정해야함 - 코드 작성 시 사용할 메모리의 크기는 프로그래머가 결정 - 메모리에서 사용할 주소의 위치는 어셈블러가 바이너리로 변경될 때 결정 2. segment .bss - 초기화되지 않은 변수를 선언하는 블록 - RESx 로 표현, x에는 저장될 데이터 크기를 지정 - 1byte[b], 2byte[w], 4byte[d], 8byte[q], 10byte segment .bss ; 메모리상에 초기화되지 않은 변수를 저장할 공간 [변수이름] [데이터 크기] [개수] ; 형식 test resd 10 ; 4btye짜리 10개만큼 공간 확보, C언어에서는 int test[10]; 로 표현 3. seg.. 2018. 7. 14. 레지스터 1. 단위 1) 64bit = RAX 2) 32bit = EAX 3) 16bit = AX 4) 8bit = AH, AL 2018. 7. 14. 어셈블리어란? 1. 어셈블리어란? - 기계어를 1:1로 매핑하는 가장 저레벨의 언어 - CPU(레지스터)와 메모리(RAM) 사이에 데이터를 조작 - C언어 기준에서 보면 어셈블리어에서 사용하는 instruction은 CPU에 내장 - CPU에서 지원하는 함수는 저레벨이라 반복적인 일을 하기 힘들기 때문에 운영체제에서 미리 함수로 구현하여 사용할 수 있도록 제공[CPU의 API를 이용하여 OS의 API 개발] - 그 외 메인보드에 있는 ROM BIOS에 있는 API도 사용가능 2. 장점 - 소스가 공개되지 않은 프로그램을 디스어셈블하여 바이너리수준에서 분석하여 이해 가능 - 하드웨어를 직접제어하는 부분(운영체제의 커널, 드라이버)은 간결성과 편의성때문에 어셈블리언어로 코딩 3. 단점 - 다양한 문법형식, 호환성이 낮음 .. 2018. 7. 14. 용어 1. hInstance(=handle instance) - 프로세스 ID (=프로그램을 일컫는 정수 값) - 프로그램 실행 시 시작되는 주소 값을 가직 있는 포인터 변수 2. hWnd(=handle window) - 윈도우의 핸들 번호를 저장해서 사용 - 하나의 프로그램에서 많은 양의 창을 띄울 수 있다. - 즉, 창의 번호(hWnd)로 구분하는 것이다. - 창의 번호는 캡션바, 버튼, 닫기, 최소화 등으로 구성되어 있다. 3. hdc(=handle device context) - device context : 모듈의 내용정보를 담고 있는 구조체 + 모듈은 하나의 윈도우(창)을 의미 + 내용정보는 폰트, 색상, 굵기, 무늬, 그리기, 시작위치 등을 의미 범주 - hInstance > hWnd > hdc .. 2018. 7. 14. 상속, 패키지, 제네릭컬렉션 그림은 "명품 자바프로그래밍" 책을 참고하였습니다. 5장. 상속 (=extends) 1. 장점 ① 클래스의 간결화 - 멤버의 중복작성 불필요 ② 클래스 관리용이 - 클래스의 계층적 분류 ③ 생산성 향상 - 클래스의 재사용과 확장 용이 2. 특징 ① 다중상속은 지원되지 않는다. ② 상속 횟수에 제한두지 않는다. (=무제한) ③ 모든 클래스는 java.lang.Object를 상속받는다. 3. 상속과 생성자 ① 생성자의 목적은 객체초기화이다. ② 슈퍼클래스의 생성자 실행 후 서브클래스 생성자 실행 ③ 슈퍼클래스의 생성자를 명시적으로 지정하지 않으면 슈퍼클래스의 기본생성자를 호출한다. ④ super()를 사용하거나 슈퍼클래스에 기본생성자 생성 ⑤ super()은 항상 맨 첫 줄에 와야한다. ⑥ 모든 서브클래스의.. 2018. 7. 14. 클래스와 객체 그림은 "명품 자바프로그래밍" 책을 참고하였습니다. 4장. 클래스와 객체 1. 자바의 특징 1) 절차 지향 프로그래밍 ▶ 작업 순서를 표현하는 컴퓨터 명령 집합 ▶ 함수들의 집합으로 프로그램 작성 2) 객체 지향 프로그래밍 ▶ 프로그램을 실제 세상에 가깝게 모델링 ▶ 컴퓨터가 수행하는 작업을 객체들 간의 상호 작용으로 표현 3) 캡슐화 ▶ 메소드(함수)와 데이터를 클래스 내에 선언하고 구현 ▶ 외부에서는 공개된 메소드의 인터페이스만 접근 가능 ▶ 외부에서는 비공개 데이터에 직접 접근하거나 메소드의 구현 세부를 알 수 없음 ▶ 객체 내 데이터에 대한 보안, 보호, 외부 접근 제한 4) 다형성 ▶ 동일한 이름의 기능이 서로 다르게 작동하는 현상 ▶ 자바의 다형성 사례 - 슈퍼 클래스의 메소드를 서브 클래스마.. 2018. 7. 14. test package Test; import java.util.HashMap; import java.util.Iterator; import java.util.Set; import java.util.Scanner; public class practice { public static void main(String[] args) { HashMap dic = new HashMap(); dic.put("apple", "사과");//key = apple, value = 사과 dic.put("love", "사랑"); //dic 컬랙션에 들어있는 모든 (key, value) 쌍 입력 Set keys = dic.keySet();//.keySet() 메소드를 통해 키값을 얻어온다 Iterator it = keys.iterator.. 2018. 7. 14. Overflow - 2 BOF.c 소스파일 #include #include #include void goal() { puts("\n==================================="); puts(" you got the shell! \n==================================="); setreuid(0,0); system("/bin/sh"); } void bp1() { char buf1[20]; fgets(buf1, 40, stdin); } void bp2() { char buf2[30]; fgets(buf2, 60, stdin); } void bp3() { char buf3[40]; fgets(buf3, 80, stdin); } int main() { int choice; printf("1.. 2018. 5. 24. for문 - 3 dictionary를 반복문에 활용 예제 1) key 출력 소스코드 accesses = { 'a' : 'apple', 'b' : 'banana', 'c' : 'catch', } for access in accesses : print access 예제 1) 실행 결과 예제 2) values 출력 소스코드 accesses = { 'a' : 'apple', 'b' : 'banana', 'c' : 'catch', } for access in accesses.values() : print access 예제 2) 실행 결과 예제 3) items 출력 소스코드 accesses = { 'a' : 'apple', 'b' : 'banana', 'c' : 'catch', } for access in accesses.item.. 2018. 5. 23. for문 - 2 문자열로 반복문 예제 1) 문자열 출력 소스코드word = "start" for w in word : print w 예제 1) 실행 화면 예제 2) 리스트 출력 소스코드operators = ['plus', 'minus', 'multiful', 'division'] for operator in operators : print operators 예제 2) 실행 화면 2018. 5. 23. 이전 1 ··· 25 26 27 28 29 30 다음