웹_프론트_백엔드 210

2020.03.23

1. 객체지향프로그래밍(Object-oriented programming, OOP) : 사람의 사고와 비슷한 형태의 프로그래밍 1) 장점 ① 신뢰성 있는 소프트웨어를 작성할 수 있다. ② 코드 재활용하기 쉽다. ③ 업그레이드가 쉽다. ④ 디버깅이 쉽다. 2) 단점 ① 실행 크기 ② 실행 속도 2. 절차적 프로그래밍 (Procedural programming) : 물 흐르듯이 순서대로 처리하는 프로그래밍 3. 객체 (Object) : 우리 생활에서 이해하고, 인지할 수 있는 대상 4. 클래스 (Class) : 객체를 청사진화, 설계도화 5. 인스턴스 (Instance) : 클래스를 통해 실제로 만들어진 객체(들) 6. 생성자(Alt + Shift + S + O), getter & setter(Alt + S..

[단과_C] 2020.03.20

1. dArTask.c#include#include#includevoid sortASC(int arData[], int length);void sortDESC(int arData[], int length);void main() { //정수 개수 입력받고 그 만큼 할당하기 //입력받은 정수로 오름차순(void 함수) 또는 내림차순(void 함수) 선택 후 결과 출력 //1.오름차순\n2.내림차순\n3.나가기 int* dArNum = 0; int length = 0; int choice = 0; char* dot[] = { ".", "..", "..." }; char* loading[] = { "■□□□□□□□□", "■■□□□□□□□", "■■■□□□□□□", "■■■■□□□□□", "■■■■■□□□□",..

2020.03.20

1. 메소드 정의(definition) 수식어(modifier) 리턴타입 메소드이름 매개변수 리스트(parameter list) { 메소드 본체(body) } 2. 메소드 호출(call, invoke), 메소드 리턴(return) [실습코드] 1. 과제, 369게임 만들기 package practice.game369; /* * 369게임 * 1~100 까지의 자연수를 나열하되, * 10개 단위로 줄바꿈을 하고 * 숫자에 3,6,9 중 하나라도 있으면 * 표시를 하기 * * 주의! 순환문, 조건문만 사용(문자열 관련하여 사용 금지) * * 패키지: practice.game369 * 클래스: Game369 */ public class Game369 { public static void main(String[..

[단과_C] 2020.03.19

1. void 포인터  : 타입이 정해져있지 않은 포인터    사용시 형변환 후 사용 2. 동적 배열1) 동적할당(Dynamic allocation)    malloc(크기) : 리턴타입은 void*이다.    malloc(), 엠 얼로케이션, 말록이라고 불리움    헤더파일 필요   3. 자료형* 포인터명 = (자료형*)malloc(sizeof(자료형)*칸수);  4. 칸 수에 변수 사용이 가능하다.     int* arData = (int*)malloc(sizeof(int)*length); 5. 동적 할당 clear(clear allocation)  : 모든 비트를 0으로 만들어준다(초기화랑 개념이 다름)    자료형* 포인터명 = (자료형*)calloc(칸수, sizeof(자료형)); 6. 동적 ..

2020.03.19

1. JVM의 메모리 영역 1) Method Area(메소드 영역) : 프로그램 시작될때 생성, 프로그램 종료될 때 소멸 byte code, 리터럴(literal), 상수(final), static 2) Heap(힙) : new 생성시 생성, reference가 끊기면 Garbage Collection에 의해 자동으로 소멸 객체(object), 배열, new로 생성되는 모든 것 3) Stack(스택) : 블럭 안에서 선언될 때 생성, 블럭이 끝날 때 소멸 지역변수(local variable), 매개변수(argument) 2. 배열 생성 초기화 할 때 JVM 메모리에서 일어나는 일 : new 는 위와 같이 heap 에 객체를 생성하고, 생성된 주소를 리턴한다. 리턴된 주소는 score 변수값에 대입되고 s..

[단과_C] 2020.03.18

1. 포인터(주소값)    포인터 변수    포인터 상수(배열) : 값을 변경하기 위해서는 strcpy() 필요      변수 : 값을 담기 위한 저장공간    포인터 변수 : 주소값을 담기 위한 저장 공간    포인터 변수를 줄여서 포인터라고 부르기도 한다. 2. 포인터를 사용하는 이유 1) return값은 반드시 한 개여야 하기 때문에 포인터를 사용한다.    주소값은 유일하기 때문에(중복이 없기 때문에)    주소값을 다른 영역에 전달하면 (참조로 접근해서)값을 수정할 수 있다. 3. 포인터 확인하는 방법 1) 중단점 : F9 2) 디버그 : F5 3) 디버그클릭 > 창 > 자동 > 주소값 우클릭 > 값 복사 클릭 4) Ctrl + Alt + m, 1 : 메모리1 창 5) 주소 붙여넣기 6) 다음 ..

2020.03.18

1. 버그 : 논리적인 오류 2. 디버깅 : 시작점(breakpoint) 설정 > 벌레 모양 클릭 혹은 단축키 F11 이용 > 디버그 관점으로 바꾸기 > 디버그 모드에서 봐야하는 화면은 ①②③임(① 메소드 확인, ② 콘솔 출력 확인, ③ 변수값 확인) [추가] 디버그 종료 버튼과 디버그 관점 추가 확인하기 [추가] 최종적으로 디버그 모드가 종료되면 빨간색 종료버튼이 회색으로 변경됨 3. 제어문 1) 조건문(Conditional, branch, selection) : if~else, switch~case 2) 순환문(loop, iteration) : for, while, do~while 4. for문과 while문은 100% 전환 가능 5. 코딩 문제 은행 : http://jungol.co.kr/ [실습코..

[단과_C] 2020.03.17

1. 다른 파일의 변수를 사용하고 싶을 때는 전역변수로 선언한 후 사용할 파일에서 extern키워드로 선언한다.  2. 다른 파일의 함수를 사용하고 싶을 때에는 헤더파일에 선언 후 사용할 파일에서 #include키워드로 사용한다.  3. 전역 변수가 먼저 있었고 메모리 관리를 위해 지역 변수가 생김  4. 오늘 실습 코드1) 헤더파일 선언 후 함수 사용, 다른 파일에 있는 변수 사용하기 예제** storage_class.c **#include//정적변수는 해당 파일에서만 사용 가능하다.//static int data = 100;//전역변수는 다른 파일에서 extern 키워드로 선언하면 사용 가능하다.int data = 100;//void main() {// //function();// printf("%d..

2020.03.17

1. Java Primitive Type 8가지 : byte 1바이트, short 2 바이트, int 4바이트, long 8바이트, float 4바이트, double 8바이트, char 2바이트, boolean 2. 기본 타입간의 자동 형변환(implicit casting) : byte > short > int > long > float > double : char > int 기본적으로 작은 크기에서 큰 크기로, 정수타입에서 실수타입으로 자동형변환 3. 연산자(Operator) : 연산, 연산자, 피연산자 연산(Operation) : 4 + 2 연산자(Operator) : 4, 2 피연산자(Operand) : + : 단항연산자(unary operator), 이항연산자(binary operator), 삼항..

[단과_C] 2020.03.16

1. 기억 저장 부류   해당 파일만 가능 : 정적변수    다른 파일도 가능 : 전역변수  2. 오늘 실습 코드1) functionTask.c#include#include/* [고급] 4자리 정수를 한글로 바꿔주는 함수 5개의 정수를 오름차순으로 정렬하는 함수*///5개의 정수를 입력받고 최소값과 최대값을 구해주는 함수//int* getMaxAndMin(int arData[], int length) {// //result[0] : 최대값// //result[1] : 최소값// int result[2] = { arData[0], arData[0] };// for (int i = 1; i arData[i]) {// result[1] = arData[i];// }// }// return result;..