본문 바로가기

전체 글206

혼자 공부하는 자바 (40강 ~ 45강) 40강. 상속(1) - 클래스 상속, 부모 생성자 호출41강. 상속(2) - 메소드 재정의, final 클래스와 final 메소드42강. 타입 변환과 다형성(1) - 자동 타입 변환43강. 타입 변환과 다형성(2) - 필드의 다형성, 매개변수의 다형성44강. 타입 변환과 다형성(3) - 강제 타입 변환, 객체 타입 확인45강. 추상 클래스    40강. 상속(1) - 클래스 상속, 부모 생성자 호출  ㅁ 상속- 상속: 부모 클래스의 멤버(필드, 메서드)를 자식 클래스에게 물려주는 것. - 이미 개발된 클래스를 재사용하여 새로운 클래스를 만들기에 중복되는 코드를 줄임.- 부모 클래스의 한번의 수정으로 모든 자식 클래스까지 수정되는 효과가 있어 유지보수 시간이 줄어듦. ㅁ 클래스 상속- 자식 클래스 선언 시.. 2024. 5. 31.
혼자 공부하는 자바 (34강 ~ 39강) 34강. 인스턴스 멤버와 정적 멤버(1) - 인스턴스 멤버와 this35강. 인스턴스 멤버와 정적 멤버(2) - 정적 멤버와 static36강. 인스턴스 멤버와 정적 멤버(3) - 싱글톤, final 필드와 상수37강. 패키지와 접근 제한자(1) - 패키지 선언38강. 패키지와 접근 제한자(2) - 접근 제한자39강. 패키지와 접근 제한자(3) - Getter와 Setter 메소드    34강. 인스턴스 멤버와 정적 멤버(1) - 인스턴스 멤버와 this  ㅁ 클래스의 멤버는 인스턴스 멤버와 정적 멤버 2가지로 구분할 수 있다.  ㅁ 인스턴스 멤버- 객체 마다 가지고 있는 멤버- 인스턴스 필드: 힙 영역의 객체 마다 가지고 있는 멤버. 객체마다 다른 데이터를 저장.- 인스턴스 메서드: 객체가 있어야 호출.. 2024. 5. 29.
혼자 공부하는 자바 (27강 ~ 33강) 27강. 객체지향 프로그래밍28강. 자바 필드29강. 자바 생성자(1) 기본 생성자, 생성자 선언, 필드 초기화30강. 자바 생성자(2) 생성자 오버로딩, 다른 생성자 호출 : this()31강. 자바 메서드(1) 메서드 선언32강. 자바 메서드(2) 메서드 선언, return문33강. 자바 메서드(3) 메서드 호출, 메서드 오버로딩     27강. 객체지향 프로그래밍  ㅁ 객체(Object)- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한 것.- 속성(필드)과 동작(method)으로 구성. - 현실 세계의 객체를 SW인 자바로 설계하는 것을 객체 모델링이라고 함. - 객체 모델링(Object Modeling)은 소프트웨어 개발 과정에서 현실 세계의 개체와 .. 2024. 5. 28.
혼자 공부하는 자바 (20강 ~ 26강) 20강. 참조 타입과 참조 변수(1) - 기본 타입과 참조 타입21강. 참조 타입과 참조 변수(2) - String 타입22강. 배열(1) - 배열 선언, 생성, 길이23강. 배열(2) - 명령 라인 입력24강. 배열(3) - 다차원 배열, 객체를 참조하는 배열25강. 배열(4) - 배열 복사, 향상된 for문26강. 열거 타입    20강. 참조 타입과 참조 변수(1) - 기본 타입과 참조 타입  ㅁ - 참조 타입이 무엇이고 참조 타입으로 어떻게 변수를 선언하는지 - 참조 타입의 종류와 참조 변수를 어떻게 만드는지- 기본 타입과 참조 타입의 변수가 메모리를 어떻게 사용하는지- 참조 변수의 ==, != 연산- 참조 변수만이 가지고 있는 null이라는 값과 NullPointException 예외에 대해- .. 2024. 5. 26.
혼자 공부하는 자바 (13강 ~ 19강) 13강. 변수와 시스템 입출력(1) - 모니터로 변수값 출력하기14강. 변수와 시스템 입출력(2) - 키보드에서 입력된 내용을 변수에 저장하기15강. 연산자와 연산식16강. 연산자의 종류(1) - 단항 연산자, 이항 연산자17강. 연산자의 종류(2) - 이항 연산자, 삼항 연산자18강. 조건문 - if문, switch문19강. 반복문 - for문, while문, do-while문    13강. 변수와 시스템 입출력(1) 모니터로 변수값 출력하기  ㅁ 프로그래밍 언어에는 시스템 표준 출력 장치와 표준 입력 장치가 있음.- 자바에서 표준 출력 장치는 모니터를 말하고, 표준 입력 장치는 키보드를 말함.  ㅁ println() 메소드- 괄호 안에 리터럴 넣으면 그대로 출력, 변수 넣으면 저장된 값 출력  ㅁ 다.. 2024. 5. 24.
혼자 공부하는 자바 (7강 ~ 12강) 7강. 자바의변수8강. 변수 기본 타입(1) 정수 타입9강. 변수 기본 타입(2) 실수 타입, 논리 타입10강. 변수 타입 변환(1) 타입 변환11강. 변수 타입 변환(2) 정수/실수 연산에서의 자동 타입 변환12강. 변수 타입 변환(3) +연산에서의 문자열 자동 타입 변환, 문자열을 기본 타입으로 강제 타입 변환     7강. 자바의변수  ㅁ 컴퓨터 메모리(RAM)는 값을 저장할 수 있는 수많은 번지(주소)들로 구성되어 있다.- 메모리의 어디에 어떤 방식으로 저장할지 정해놓지 않으면 프로그램 개발이 무척 어렵게 된다.- 프로그래밍 언어는 이 문제를 해결하기 위해 변수라는 개념을 사용한다.  ㅁ 변수(Variable)- 값을 저장할 수 있는 메모리의 특정 번지에 붙여진 이름을 말함.- 영어 대소문자를 구.. 2024. 5. 23.
혼자 공부하는 자바 (1강 ~ 6강) 1강 ~ 3강. 프로그래밍 언어와 자바4강. 이클립스 개발 환경 구축5강. 자바 프로그램 개발 과정6강. 프로젝트 생성부터 실행까지    1강 ~ 3강. 프로그래밍 언어와 자바 ㅁ 기계어- 컴퓨터는 기계어만 알아들을 수 있다. 0과 1로 이루어진.- 사람의 언어인 프로그래밍 언어로 작성한 파일이 소스 파일.소스파일은 프로그래밍 언어로 작성된 파일을 말한다. - 컴파일은 소스 파일을 기계어 파일로 번역하는 것. - 컴파일 하는 SW가 컴파일러.- JVM은 자바를 실행할 수 있는 환경을 제공하는 SW.   ㅁ 자바- 안드로이드 게임 애플리케이션도 자바로 만듦. - 모든 운영체제에서 실행 가능. 한번 작성한 소스 파일로 컴파일을 하면 소스 파일 수정 없이 여러 운영체제에서 실행 가능.- 객체 지향 프로그래밍... 2024. 5. 23.
자바 58 ㅁ c언어는 절차적인 언어라 줄줄줄줄 읽다가 함수 만나면 가서 읽고 그러면 됐다. - 그런데 자바는 객체지향 언어. 줄줄줄 읽는게 아님. 객체를 생성하고, 객체 안엔 멤버 변수가 있고, 상속도 있고, 오버로딩-오버라이딩 등이 존재한다. ㅁ 클래스의 이름 car와 동일한 이름을 가진 메소드를 생성자라고 함. - 그 외에는 멤버 변수와 메서드다. - 멤버 변수는 그 클래스가 가진 고유한 값. - 생성자는 기본적으로 세팅이 되는거. 생성할 때. (객체를 생성할 때 호출되는 특별한 메서드) - 멤버변수는 세미콜론으로 끝나고 메서드나 생성자는 중괄호로 끝남. ㅁ 실제 자바 문제를 풀 때는 main부터 보면 된다. ㅁ 1번 예제 - 1 - this.name = name; 이 클래스의 name에 인자로 받은 name.. 2024. 4. 18.
C언어 143 58 37 1. - 모든 프로그램은 선언 -> 입력 -> 처리 -> 출력 구조이다. - ㄱ은 입력, ㄴ은 처리, ㄷ은 선언, ㄹ과 ㅁ은 출력이다. - ㄴ은 result 선언이 아니라 처리다. +연산이 있으니까. 2. - 전컴어링 전처리기 -> 컴파일러 -> 어셈블러 -> 링커 4. 2 45 2 22 1 2 11 0 2 5 1 2 2 1 1 0 나눌 때 몫을 아래에, 나머지를 오른쪽에 적는다. 소수는 2로 곱하면서 곱할대마다 0, 1이 되면 1, 1말고 나머지는 또 곱한다. 5. - main의 a, b, c도 지역변수다. 중괄호 끝나면 사라짐. - 처음 a, b, c가 만들어지고, 중괄호에서 b, c가 또 만들어짐 중복으로, 다음 중괄호에서 c가 또 만들어지고 중복으로. - 세번째 c는 멀리 있는게 아니고 가장 가까.. 2024. 4. 17.
깨알 c언어 특강 01 ~ 03 01. printf 출력순서 02. ++가 연속으로 있을 때 처리 03. fork 01. printf 출력순서 ㅁ 개떡같은 문제. 이런 문제 나오면 다 틀림. - 너무 깊게 안봐도 됨. 컴파일러마다 다르다. - (9개월 전) 이런 문제는 아마 출제되지 않을 거에요. - 5, 7, 7, 9 틀린 답이다. 왜냐, printf는 뒤에서부터 연산을 시작해서. - 4번째 ++i 그런데 연산만 먼저하고 출력은 안함. 이 시점에서 i는 6. 맨 마지막 ++i가 6으로 확정되지 않음. 최종적으로 i값을 참조. - 3번째 i++ 후위 증감식은 지금 현재 i값을 참조함. 6값 출력. 이 시점에서 i는 7 - 2번째 ++i 연산만 먼저하고 출력은 안함. 이 시점에서 i는 8. - 1번째 i++ 8값 출력. 이 시점에서 i는.. 2024. 3. 11.
깨알 c언어 ch.56 ~ 60 56. 재귀함수(4) 57. 재귀함수(5) 58. 중복 재귀함수(1) 59. 중복 재귀함수(2) 60. 중복 재귀함수(3) 56. 재귀함수(4) ㅁ 문제 - my(5, 14) i = 5, j = 14 i = 4가 됨. j는 13이 됨. 2024. 3. 11.
깨알 c언어 ch.51 ~ 55 51. STATIC 변수(3) 52. STATIC 변수(4) 53. 재귀함수(1) 54. 재귀함수(2) 55. 재귀함수(3) 51. STATIC 변수(3) ㅁ 문제 - 출력결과 F1 = 2, F2 = 6, F3 = 2, F4 = 3 52. STATIC 변수(4) ㅁ 문제 - 첫번째 func() a는 101이 됨. b는 201이 됨. 전역변수 c는 30에서 101이 됨. - 두번째 func() a는 102가 됨. b는 201이 됨. 전역변수 c는 101에서 102가 됨. - 출력 a= 10, b=20, c=102 - static이 선언된 함수는 func에서 선언이 되었다. static한 a는 func에서만 사용할 수 있다. main함수는 func의 a를 사용할 수 없다. 정적변수는 지역변수와 전역변수의 특.. 2024. 3. 11.
깨알 c언어 ch.46 ~ 50 46. 함수에 주소전달(6) 47. 함수에 주소전달(7) 48. 함수에 주소전달(8) 49. STATIC 변수(1) 50. STATIC 변수(2) 46. 함수에 주소전달(6) ㅁ 문제 - func 함수 포인터변수 a는 main a의 주소값 100번지가 들어감. 변수 b는 20 포인터변수 c는 main 배열 c의 주소값 300번지가 들어감 x는 func의 포인터변수 a의 실제값이 들어감. 20. 100번지의 실제값이 20에서 20이 됨. 그리고 x는 21이 됨. x는 20이 됨. b는 21이 됨. 300번지의 실제값이 20에서 19가 됨. 함수종료. func의 a, b, c, x 다 사라짐. - a=20, b=20, c=19 - --(*c) 괄호니까 먼저 처리. c의 값. - return 0; 은 0을 리.. 2024. 3. 10.
깨알 c언어 ch.41 ~ 45 41. 함수에 주소전달(2) 42. 함수에 주소전달(3) 43. 함수가 주소를 리턴 44. 함수에 주소전달(4) 45. 함수에 주소전달(5) 41. 함수에 주소전달(2) ㅁ 문제 - 각각의 함수 안에 변수들이 있음. 지역변수가 각각. - main에 a=5, b=3, c=0 a의 주소값 100, b의 주소값 200, c의 주소값 300 - b=foo(a, &c); 함수 foo의 지역변수 a = 5, b = 300번지 c 선언 b의 실제값을 6으로 바꿈. => main의 c 값이 6이 됨. c=4 리턴 4. main의 지역변수가 a=5, b=4, c=6이 됨. - c=foo(b, &a); 함수 foo의 지역변수 a = 4, b = 100번지 (a에는 4라는 값이 들어가게 되는거고 b라는 공간엔 100이라는 .. 2024. 3. 10.
깨알 c언어 ch.36 ~ 40 36. 배열포인터 37. 함수 38. 함수와 반복문 39. 함수에 주소전달(1) 40. 함수와 변수의 유효범위 36. 배열포인터 ㅁ 22년 1월 25일 기준, 배열포인터는 딱 1문제 출제되었음. 나온다면 극강의 난이도. ㅁ 배열포인터 - 포인터인데 배열이다. 근데 자기가 가지고 있는 개수로 다시 잘라서 재조합 함. - 배열의 시작 주소값을 저장할 수 있는 포인터 2차원 배열의 구조 - 하나의 포인터다. ㅁ - int (*in)[2]; 배열포인터를 선언할땐 이런식으로 선언. in이라는 포인터를 만들건데 2개씩 자른다. 그리고 2차원행렬 형태로 만들어버림. - 2차원 배열은 행 대표주소가 있음. 0행의 행 대표주소는 100번지다. - in의 값은 0행의 대표주소를 가리키고 있다. ㅁ - **( in+1 ) .. 2024. 3. 9.
깨알 c언어 ch.31 ~ 35 31. 포인터 배열(1) 32. 포인터 배열(2) 33. 포인터 배열(3) 34. 포인터 배열(4) 35. 구조체 31. 포인터 배열(1) ㅁ 포인터 배열 - 포인터 변수인데 배열화 시킨 것. - 배열 형태인데 그 배열의 각각의 요소에 주소값이 들어가는 것. - 배열의 요소가 포인터(메모리주소)로 이루어진 것. char a[3]; 2024. 3. 8.
깨알 c언어 ch.26 ~ 30 26. 배열과 포인터(2) 27. 배열과 포인터(3) 28. 배열과 포인터(4) 29. 2차원 배열과 포인터(1) 30. 2차원 배열과 포인터(2) 26. 배열과 포인터(2) ㅁ 배열과 포인터의 관계 (포인터도 배열처럼 사용할 수 있다!) - int a[5]; int *b=a; a[2] = 10; b[2] = 20; a[0] a[1] a[2] a[3] a[4] 10이 대입됐다가 20이 대입됨. (같은 주소값을 가지고 있으므로) a는 100번지임. 그래서 b 2024. 3. 8.
깨알 c언어 ch.21 ~ 25 21. 배열(1) 22. 배열(2) 23. 포인터 24. scanf와 변수 25. 배열과 포인터(1) 21. 배열(1) ㅁ 배열의 정의 - 배열이란 같은 자료형을 가진 연속된 메모리 공간으로 이루어진 자료구조. - 배열이란 같은 자료형의 변수를 연속적으로 묶어 놓은 저장공간. - 변수라는 건 자료형(크기)이 있음. char는 1바이트, int는 4바이트. 같은 크기의 변수들 연속적으로 묶어놓은 거. ㅁ 배열의 종류 - 1차원 배열. int array[5] (1차원 배열은 1개의 행을 가진 배열이다) - 2차원 배열. int array[4][3] (4행 3열) (행과 열로 이루어져 있으면 2차원 배열) (개수는 12개) - 3차원 배열. int array[2][3][4] (2면 3행 4열) ㅁ 배열은 0부.. 2024. 2. 22.
깨알 c언어 ch.16 ~ 20 16. while문 17. do~while, for, while 18. while, if문 19. for, continue, break 20. 다중 for문, continue, break 16. while문 ㅁ while 구조 - while (조건) { 수행하는 작업들 } ㅁ 문제 출력결과. i = : 0 i = : 1 i = : 2 sum = : 3 ㅁ 문제 count가 2일 때, sum = 2, count는 4가 됨. count가 4일 때, sum = 6, count는 6이 됨. count가 6일 때, sum = 12, count는 8이 됨. count가 8일 때, sum = 20, count는 10이 됨. count가 10일 때, sum = 30, count는 12가 됨. 출력결과. 30 17. d.. 2024. 2. 22.
깨알 c언어 ch.11 ~ 15 11. 진법변환, 비트연산 12. 매크로, 비트연산 13. 삼항 연산자 14. if문, switch문 15. 반복문, for문 11. 진법변환, 비트연산 ㅁ 진법 변환이 왜 필요하냐. 우리는 0~9까지 표현하는 10진수를 쓰고 있음. 컴퓨터는 1과 0밖에 모름. 16진수나 8진수는 주소체계. 렘(주기억장치)의 주소체계가 8진수나 16진수로 되어 있기 때문이다. ㅁ 어떤 값을 대입할 때 8진수면 앞에 0을 붙임. 어떤 값을 대입할 때 16진수면 앞에 0x를 붙임. ㅁ 8진수라는건 0~7까지 표현하는거. 그래서 3자리씩 끊음. 4 + 2 + 1 = 7 (1) 5&3 0101 0011 = 0001(이진수) 1(십진수) (2) 5I3 0101 0011 = 0111(이진수) 7(십진수) (3) 5^3 >) - 비.. 2024. 2. 22.
깨알 c언어 ch.6 ~ 10 06. 연산자 우선순위 07. 관계/논리연산자, 조건문 08. 논리연산자, 증감연산 09. 산술연산자 10. 출력형식 06. 연산자 우선순위 ㅁ 연산자 우선순위(자바나 c나 같음) - 괄호, 단항, 곱하기나누기, 더하기빼기, ~~~~, 논리연산자(&&, II), 대입연산자 ㅁ 연산자 우선순위 예시 - Int a=3, b=4, c=5, d=6; (1) a*b+c >= d && d/a-b != 0 = 왼쪽: 17 >= 6 여기서 >= 비교연산자임. 17이 6이상이냐. 맞으므로 1이 됨. 오른쪽: 2-4 != 0 여기서 -2와 0이 같지 않으니 참임. 1. 답은 1이 된다. (2) d%b + ++a*c-- = 2 + 20이므로 22. 6 나누기 4는 몫은 1이고 나머지는 2다. ㅁ 아래 c프로그램의 출력은? .. 2024. 2. 21.
깨알 c언어 ch.1 ~ 5 01. 프로그래밍이란? 02. 컴파일러 & 인터프리터 03. 변수 04. 변수의 종류와 유효범위 05. 산술연산자 01. 프로그래밍이란? ㅁ 프로그램 동작 과정 선언 -> 입력 -> 처리 -> 출력 - 모든 프로그램이 똑같은 과정을 거친다. ㅁ scanf("%d%d", &age1, &age2); - scanf: 입력을 받는 함수 - %d%d: 정수 2개를 받겠다. - age1, age2: 라는 공간에 값을 집어 넣겠다. ㅁ 변수 선언 - 입력받기 위한 공간을 만드는 것. 02. 컴파일러 & 인터프리터 - 두 개가 하는 역할은 같다. - 컴퓨터는 0과 1만 안다. 그래서 컴퓨터가 알아들을 수 있게 번역해 주는 것. - 컴파일: 인간이 만든 고급언어를 컴퓨터가 해설할 수 있는 저급언어로 번역. - 컴파일러든.. 2024. 2. 21.
오답노트 (문39 ~ 문64) (2-1 과목 [하]) ㅁ 문39. 다음 중 결과가 다른 sql 문장은? 2014년12월00시에 가입해서 2015년 1월에 서비스가 끝나는 서비스 아이디를 찾는 문제. = 답39. WHERE '201501' = TO_CHAR(SVC_END_DATE, 'YYYYMM') 실행 결과로 'X'를 반환한다.(3) SELECT COUNT(COL1) FROM TAB1 WHERE COL2 = NULL; -> 실행 결과는 1이다. (3) SELECT COUNT(COL2) FROM TAB1 WHERE COL2 IN ('b', 'c'); -> 실행 결과는 1이다. = 답45. (2). NULL이 널로 인정됐네. 오라클, SQL Server 다 null이라 써있으면 null이네. = 일단 이 문제는 ORACLE 문제가 아니라 MYSQL 문제임. 근.. 2023. 11. 14.
오답노트 (문1 ~ 문38) (2-1 과목 [상]) ㅁ 문4. 데이터베이스를 정의하고 접근하기 위해서는 데이터베이스 관리 시스템과의 통신수단이 필요한데 이를 데이터 언어(Data Language)라고 하며, 그 기능과 사용 목적에 따라 데이터 정의어(DDL), 데이터 조작어(DML), 데이터 제어어(DCL)로 구분된다. 다음 중 데이터 언어와 SQL 명령어에 대한 설명으로 가장 부적절한 것은? (1) 비절차적 데이터 조작어(DML)는 사용자가 무슨 데이터를 원하며, 어떻게 그것을 접근해야 되는지를 명세하는 언어이다. (2) DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터베이스를 실질적으로 접근하는데 사용되며 SELECT, INSERT, DELETE, UPDATE 등이 있다. (3) DDL은 스키마, 도메인, 테이블, 뷰, 인.. 2023. 11. 14.
오답노트 (문1 ~ 문52) (1과목) 1-1. 데이터 모델링의 이해 - 데이터 모델링의 이해 ㅁ 모델링의 특징. - '시스템 구현만을 위해 진행하는' 게 아님. ㅁ 데이터 모델링이 필요한 주요 이유 - '데이터베이스를 구축하기 위한 용도를 위해 데이터모델링을 수행하고 업무에 대한 설명은 별도의 표기법을 이용한다.' 이거 오답. 이유=> 데이터모델링은 단지 데이터베이스만을 구축하기 위한 용도로 쓰이는게 아니라, 데이터모델링 자체로서 업무를 설명하고 분석하는 부분에 의미가 있다. ㅁ 데이터모델링을 할 때 유의해야 할 사항 - 중복이 발생하면 안됨, 비유연성으로 데이터 모델이 자주 변경되면 안됨, 비일관성으로 데이터의 신뢰성이 훼손되면 안됨. - 유연해야함. '데이터의 정의를 사용 프로세스와 분리하여 유연성을 높인다.' 이거 맞는 말임. 분리가 .. 2023. 11. 12.
SQLD 개요 ㅁ SQL(Structured Query Language)의 정의-  SQL(Structured Query Language)은 데이터베이스에 직접적으로 액세스할 수 있는 언어이다.-  데이터를 정의하고(Data Definition), 조작하며(Data Manipulation), 조작한 결과를 적용하거나 취소할 수 있고(Transaction Control), 접근권한을 제어하는(Data Control) 처리들로 구성된다.  ㅁ SQL 개발자의 정의- SQL 개발자(SQLD*, SQL Developer)란 데이터베이스와 데이터 모델링에 대한 지식을 바탕으로 응용 소프트웨어를 개발하면서 데이터를 조작하고 추출하는데 있어서 정확하고 최적의 성능을 발휘하는 SQL을 작성할 수 있는 개발자를 말한다.  ㅁ 과목 1.. 2023. 10. 18.