본문 바로가기

👨‍💻 프로그래밍 82

자바 18 - 오브젝트(Object), 객체지향 프로그래밍 자바 18 - 오브젝트(Object), 객체지향 프로그래밍 오브젝트와 클래스는 객체지향 프로그래밍을 구현하기 위해 존재한다. 객체지향 프로그래밍이란 뭘까? 왜 중요할까? 객체지향 프로그래밍이란? 객체지향 프로그래밍은 프로그램을 객체들이 서로 상호작용하게 구현하는 방법이다. 원래 프로그램을 만든다고 하면, 프로그램이 뭐를 해야 하는지를 차례대로 구현해야 한다. 간단한 계산기 프로그램을 만든다면, 먼저 어떤 연산을 하는지 물어보고, 숫자를 받아오고, 계산을 해서, 결과를 보여주는 식으로 프로그램을 구현할 수 있다. 간단한 프로그램이라면 이런식으로 디자인해도 전혀 문제가 없지만, 문제는 프로그램이 복잡해지면 이러한 방식으로 하기가 쉽지 않다는 것이다. 예를 들어, 체스 프로그램을 이런 식으로 만든다고 하면, 어떻게 접근할지조차 쉽게 떠오르지 않을 것이다. 하지만, 객.. 2021. 5. 6.
자바 17 - 자바 매소드(Method), 오버로딩, Call-by-Value 자바 17 - 자바 매소드(Method), 오버로딩, Call-by-Value 매소드는 함수라고도 불리며, 데이터를 받아 특정한 작업을 수행하고 다시 데이터를 내보내는 대상이다. - 매소드를 왜 써야 할까? - 매소드 선언 - Call-by-Value - 오버로딩(Overloading) 매소드를 왜 써야 할까? 매소드는 기본적으로 프로그램을 더 간편하게 하고, 반복되는 코드를 줄여준다. 코드가 반복되는 걸 줄여주는 건 상당히 중요한데, 예를 들어 어떤 기능을 구현했다고 했을 때, 똑같거나 비슷한 코드를 반복해서 사용하면 오류가 일어났을 때나 수정을 하고 싶을 때 코드를 쓴 모든 부분을 수정해야 하지만, 매소드를 사용하면 매소드만 수정하면 매소드가 사용된 모든 부분에서 코드가 자동으로 수정되기 때문에 버그를 고치기도 편하고, 수정하기도 편하고, 테스트하기도 편하고, 개발할 때도 편하.. 2021. 5. 4.
자바 16 - 2차원 배열 자바 16 - 2차원 배열 컴퓨터는 기본적으로 1차원 자료 구조를 가지고 있다. 그러나, 일상생활에서도 그렇고, 프로그래밍을 할때도 2차원 이상의 자료 구조를 사용하고 싶을때가 많다. 말이 어려울 수 있지만, 쉽게 말해 체스 프로그램을 만든다고 해 보면, 체스 말을 저장할 구조는 2차원이다. 1차원 배열을 사용해서 체스 말을 저장할 수도 있겠지만, 매우 헷갈리고 비효율적이기에, 2차원 배열이 있다. 주의해야 할 것은, 2차원 배열도 컴퓨터 안에서는 1차원 배열도 저장된다는 것이다. 1. 2차원 배열 문법 2. 2차원 배열 활용 1. 2차원 배열 문법 2차원 배열은 1차원 배열과 마찬가지로 대괄호를 사용해 선언한다. 차이점은, 2차원이기 때문에 2개의 대괄호를 써야 한다는 것이다. int[][] ex = new int[3][4]; .. 2021. 5. 2.
자바 15 - 배열(Arrays) 자바 15 - 배열(Arrays) 배열은 한 변수에 여러개의 데이터를 저장하기 위해 고안됐다. 만약에 우리가 한 학년의 시험점수를 저장하고자 하는데, 그때마다 변수를 선언해야 한다면 매우 불편할 것이다. 이런 상황을 위해 하나의 변수에 많은 데이터를 저정하기 위해 배열이 존재한다. 1. 배열 문법 2. 배열 활용 1. 배열 문법 배열은 아래와 같이 선언한다. int[] ex; 배열은 원래 있는 데이터 타입 여러개를 한 변수에 저장하는 것이기 때문에 어떤 데이터를 저장할지 명시하고, 대괄호 2개를 써서 배열임을 나타낸다. 배열은 같은 데이터 타입만 저장할 수 있다. 보통은 데이터 타입 바로 뒤에 대괄호를 쓰지만, 변수 이름 뒤에 써도 상관없다. int ex[]; 배열은 크기가 정해져 있다. 그렇기 때문에 처음에 모든 값을 줘서 그 값의 크.. 2021. 4. 30.
자바 14 - while 루프 자바 14 - while 루프 while루프는 for루프와 비슷하게 코드를 반복할때 사용한다. 하지만 for루프와는 다르게 반복하는 횟수를 모를때 사용한다. 1. while 루프 문법 2. while 루프 예제 3. do-while 루프 4. do-while 루프 예제 1. while루프 문법 while 루프는 boolean 타입의 조건을 주고, 이 조건이 맞는 한 안의 코드를 계속 반복한다. int var = 0; while(var < 10) { System.out.println(var); var++; } 위의 코드에서는 var이 10 미만일 한 while 루프 안의 코드를 계속 반복하게 했다. 여기서 중요한 것이, while 루프는 반드시 제시한 조건에서 빠져나올 수 있게 장치를 해야 한다는 것이다. 그렇지 않으면 무한루프가 발생.. 2021. 4. 28.
자바 13 - for 루프 자바 13 - for 루프 프로그램을 작성할 때 똑같은 코드를 반복하고 싶을 때가 있다. 그럴 때 사용하는 게 루프이다. 루프에는 여러 종류가 있는데, 그중에서도 for 루프는 몇 번 반복하고 싶은지 미리 알 때 유용하다. 1. for 루프 문법 2. break, continue 3. for 루프 예제 1. for루프 문법 for 루프에 필요한 것은 크게 3가지이다. 1. for 루프가 몇 번 실행됐는지 추적해 주는 변수 2. for루프가 멈추는 조건 (몇 번 실행할지) 3. for 루프가 실행될 때 마다 변수를 늘려주는 것 이게 무슨 말인지는 실제 코드를 보고 확인해보자. int i; for(i = 0; i < 2; i++) { System.out.println("자바는 재밌어!"); } 우선 첫 번째 재료인 변수를 선언하고, .. 2021. 4. 26.
자바 12 - String의 모든 것! 자바 12 - String의 모든 것! 자바에서는 문자를 저장하기 위해 char 타입을 사용한다. 하지만 char 타입은 1개의 문자만을 저장할 수 있어서, 우리가 흔히 생각하는 단어나 문장을 저장하기 위해서는 String 타입을 써야 한다. String 타입이 뭔지, 어떻게 활용해야 하는지 알아보자. 1. String 타입 기초 2. String에 쓸 수 있는 유용한 매소드들 3. 익스케이프 시퀜스 (Escape Sequence) 1. String 타입 기초 우선, String은 우리가 여태까지 봤던 데이터 타입과는 달리, 변수에 그 데이터가 아니라 포인터라고 불리는 것을 저장한다. 포인터는 쉽게 말해 메모리 주소이다. 모든 데이터는 메모리에 저장되는데, 일반적인 데이터 타입은 변수에 데이터를 바로 저장하는 반면, String은 String.. 2021. 4. 24.
자바 11 - 유저로부터 데이터 받아오기 (Scanner 클래스 사용) 자바 11 - 유저로부터 데이터 받아오기 (Scanner 클래스 사용) 우리가 프로그램을 만들 때 유저로부터 데이터를 가져와야 할 때가 많이 있다. 이럴 땐 어떻게 할까? Scanner 클래스를 사용한다. 클래스를 활요하는 것의 의미는 Math 클래스 편에서 소개했다. 여기 참고 1. Scanner 활용 2. Scanner 예제 1. Scanner 활용 Scanner를 사용하기 위해서는 우선 Scanner를 import해야 한다. 우리가 컴퓨터를 사용할 때도 (포토샵 같은) 유용한 프로그램을 사용하기 위해선 먼저 다운로드를 하여야 하듯이, 프로그램에서도 유용한 클래스를 사용하기 위해선 import를 해야 한다. import java.util.Scanner; 위의 코드는 java 클래스 안에 있는 util 클래스 안에 있는 Scanner를 import한 코드이다. Scanne.. 2021. 4. 22.
자바 10 - Math 클래스에 있는 매소드 활용 자바 10 - Math 클래스에 있는 매소드 활용 프로그래밍을 할 때는 기본적인 계산을 해야 할 경우가 많다. 더하기, 빼기와 같은 기본적인 산술 연산자를 사용하면 되는 경우도 있지만, 이 보다 조금 더 심화된 수학과 관련된 계산을 하고 싶은 경우도 있다. 이 경우, Math 클래스를 활용한다. 근데, 클래스를 활용한다는 게 뭘까? 1. 클래스를 활용한다는게 뭘까? 2. Math 클래스 안에 있는 프로퍼티(데이터)/매소드 3. 삼각함수 매소드 활용법 4. 지수/로그 매소드 활용법 5. 반올림 매소드 활용법 6. 랜덤 매소드 활용법 7. 기타 매소드 활용법 1. 클래스를 활용 한다는게 뭘까? 클래스를 활용한다는 것은, 자바에서 제공하는 클래스나 다른 프로그래머가 만든 클래스를, 그게 어떻게 동작하는지 몰라도 사용할 수 있다는 것이다. 예를 들어, 우리가 .. 2021. 4. 20.
자바 9 - switch문 자바 9 - switch문 switch문은 if-else문과 비슷하게, 특정한 조건에 따라 코드를 실행하지만, 그 경우가 많을 때 쓰기 위해 고안되었다. 예를 들어, 특정 날짜에 따라 코드를 실행하는 프로그램이 있다면, 만약에 이를 if-else문으로 쓴다면 너무 길고 복잡할 것이다. 하지만 switch문을 사용하면 훨씬 더 간결하게 할 수 있다. 1. switch문의 사용법 2. switch문 사용 예시 1. switch문의 사용법 기본적으로 switch문은 변수를 전해주는걸로 시작하고, 그 안에 각각의 케이스들을 나열한다. 이 케이스 중 하나가 맞으면 케이스 안에 있는 코드와, 그 후의 코드가 모두 실행된다. int var = 3; switch(var) { case 0: System.out.println("0"); case 1.. 2021. 4. 18.
자바 8 - if문 자바 8 - if문 프로그램을 작성할 때는 특정 조건이 맞을 때만 동작을 실행하고 싶을 때가 있다. 예를 들어, 자판기에 들어가는 프로그램을 짠다고 하면, 버튼이 눌릴 때만 음료수가 나오게 하고 싶다. 이럴 경우, 사용할 수 있는 게 바로 if문이다. 1. if-문 소개 2. if, else, else if 문 3. if-문 예제 4. 예제 정답 1. if-문 소개 if-문은 boolean 타입의 표현이 사실일 때만 코드를 실행한다. 앞에서도 소개했듯, boolean 타입은 true와 false 두 가지 중 하나를 가지는 데이터 타입이다. if-문은 특정 조건이 사실일땐 코드를 실행하고, 아닐 땐 실행하지 않음으로 boolean 타입이 이런 역할을 하기에 가장 적절하다. int a = 5; int b = 5; if(a ==.. 2021. 4. 16.
자바 7 - 연산자끼리의 우선순위 자바 7 - 연산자끼리의 우선순위 우리가 덧셈보다 곱셈을 먼저 계산하는 것 처럼, 프로그래밍 언어에도 연산자 끼리의 우선순위가 있다. 1. 연산자의 우선순위표 2. 연습 예제 3. 예제 정답 1. 연산자의 우선순위표 연산은 우선 왼쪽부터 우선시 한다. 하지만 괄호를 가장 먼저 계산하고, 아래에 있는 연산 우선순위표에서 순위가 높을 수록 먼저 계산한다. 이 연산 순위표를 다 외울 필요는 없지만, 기본적인 순서는 알아 두는 편이 좋다. 참고로, 연산 우선순위가 헷갈린다면, 괄호를 쓰면 된다. 1 var++, var-- 2 +, -, ++var, --var 3 타입 변환 (type) 4 ! 5 *, /, % 6 = 7 ==, != 8 && 9 || 10 =, +=, -=, *=, /=, %= 2. 연습 예제 1번 3 + 4 * 4 > 5 * .. 2021. 4. 14.
자바 6 - 자바 연산자(Operator) 자바 6 - 자바 연산자(Operator) 프로그램은 기본적으로 연산(더하기, 뺴기, 나누기, 곱하기 등)을 수행할 수 있다. 1. 연산자가 뭘까? 2. 연산자의 종류 3. 산술 연산자, 다른 데이터 타입끼리의 연산 4. 대입 연산자 5. 관계(비교) 연산자 6. 논리 연산자 1. 연산자가 뭘까? 연산자는 값을 받아서 특정한 규칙에 따라 결과를 내 주는 것을 말한다. 말이 어려울 수 있지만, 쉽게 말해 더하기 또한 연산자이다. 더하기는 두 숫자를 받아서, 더한 뒤(규칙), 결과를 내준다. 연산자는 더하기처럼 숫자(int, double 등)을 받아서 똑같이 숫자를 돌려 줄 수도 있고, 두 숫자가 같은지 비교해주는 비교 연산자는 숫자를 받아서 같은지 아닌지(boolean)을 돌려 주기도 한다. 2. 연산자의 종류 연산자에는 여러가지 종류가 있다. 우.. 2021. 4. 12.
자바 5 - 자바 상수 자바 5 - 자바 상수 상수(Constant)는, 변수와는 달리 한 번 값을 정하면 바꿀 수 없는 데이터이다. 1. 상수 선언 방법 2. 상수 활용법 1. 상수 선언 방법 자바에서 상수는 변수를 선언하는 문 앞에 final를 붙이는 걸로 선언한다. final double PI = 3.1415926; 위의 코드는 PI라는 이름의 상수를 선언했다. PI의 값은 3.1415926이고, 바꿀 수 없다. 관습적으로 상수의 이름은 모두 대문자로 한다. (변수에서 설명했듯 말이 관습이지 꼭 지켜야 한다!) 2. 상수 활용법 상수는 프로그램에서 변하지 않는 값을 저장하기 위해 사용한다. 예를들면, 원의 넓이를 계산해 주는 프로그램을 작성할 경우, 반지름은 계속 바뀌기에 변수로 해야 하지만, 원주율, 파이는 바뀌지 않기에 상수로 해도 된다. .. 2021. 4. 10.
자바 4 - 자바 변수, 데이터 타입 자바 4 - 자바 변수, 데이터 타입 간단하게 말하자면, 변수는 데이터에 주는 이름이다. 1. 변수 이름 짓는 규칙 (Naming Rules) 2. 변수 이름 관습 (Naming Conventions) 3. 변수의 데이터 타입 (Type) 4. 변수 활용 시 주의점 5. 변수 타입 변환 (Type Casting) 개요 모든 프로그램은 사실 본질적으로 2가지로 이루어져 있다. 데이터 + 알고리즘이다. 컴퓨터 프로그램은 기본적으로 데이터를 어떤 방식으로든 받아와서 (유저가 직접 입력할 수도 있고, 스마트폰에서 터치를 할 수도 있고) 데이터로써 저장하고, 그 데이터를 특정한 방식으로 바꿔서 출력하는 것이다. 이 긴 여정을 시작하기 위한 첫 번째 여정이 바로 변수이다. 변수를 저장하기 위해선 이름이 필요하다. 물론, 컴퓨터에게 있어서는 이름이 필요.. 2021. 4. 8.
자바 3 - 프로그래밍 에러의 종류 자바 3 - 프로그래밍 에러의 종류 프로그래밍을 본격적으로 시작하기 전에, 우리가 프로그램을 짤 때 할 수 있는 실수들, 즉 에러들을 알아보자. 에러란 무엇인가 프로그래밍에서 에러(실수)는, 프로그램이 동작하지 않거나, 우리가 의도한 바와는 다르게 동작하는 것을 말한다. 프로그램이 동작하지 않는 경우는 문법이 틀렸거나, 다른 버그가 있을 경우가 있고, 프로그램이 의도한 바와는 다르게 동작한다면 그건 우리가 프로그램을 짤 때 사용한 논리가 틀렸을 가능성이 높다. 이를 각각 구문 오류(Syntax Error), 런타임 오류(Runtime Error), 논리 오류(Logic Error) 라고 한다. 구문 오류 (Syntax Error) 구문 오류란, 쉽게 말해 문법이 틀렸다는 것이다. 프로그래밍 언어는 반드시 따라야 하는 규칙들이 존재한다. 만.. 2021. 4. 6.
자바 2 - 자바를 구성하는 문법 자바 2 - 자바를 구성하는 문법 앞의 Hello World 예시에서 봤듯, 자바는 다양한 문법적 요소들로 구성되어 있다. 여기서는 자바를 구성하고 있는 요소들을 하나하나 알아보자. 자바를 해부한다면? 자바를 해부한다면 자바를 구성하고 있는 요소는 다음과 같은 8개일 것이다. 주석 (Comments) 예약어 (Reserved Words) 제어자 (Modifiers) 문 (Statements) 블록 (Blocks) 클래스 (Classes) 매소드 (Methods) 메인 매소드 (The Main Method) 각각의 요소들은 자바를 구성하는 매우 중요한 요소들이다. 이 8가지의 요소들이 합쳐져 자바 프로그램을 만든다. 하나하나 알아보자. 주석 (Comments) 주석은 컴파일러가 없는 취급을 하는 문장들이다. 주석은 주로 코드가 뭘 하는지 .. 2021. 4. 4.
자바 1 - Hello, World! 자바 1 - Hello, World! 프로그래밍의 세계에서는 처음 배우는 대상에 우선 Hello World를 출력해 보는 게 이른바 국 룰이다. 그렇다면 자바에서는 Hello World를 어떻게 출력할까? 시작하기 전에, 아래에서 다룰 내용이 한 번에 이해 될 리가 없다. 여기서 우리의 목적은 Hello World를 출력하는 프로그램이 어떻게 되어 있는지 구경하고, 앞으로 배울 내용을 대충 훑어보는 것이다. 이해가 되지 않는다고 자책할 필요는 전혀 없다. 보통 프로그래밍 언어에서 Hello World를 출력하기 위해선 print라는 함수를 쓴다. 자바도 비슷하다. 자바에서 Hello World를 출력하는 프로그램은 다음과 같다. public class Hello { public static void main(String[] args) { S.. 2021. 4. 2.
자바 0 - 코딩이란 뭘까? 자바 0 - 코딩이란 뭘까? 자바를 배우러 오신 모든 분들 환영합니다! 이 시리즈에서는 기초적인 자바 프로그래밍을 배움과 동시에 컴퓨터를 배웁니다. 코딩이란 기본적으로 컴퓨터에게 명령을 내리는 행위입니다. 따라서 컴퓨터가 어떻게 구성되어 있는지, 원리가 무엇인지, 컴퓨팅의 본질이 무엇인지 이해를 해야 좋은 코드를 짤 수 있습니다. 오늘은 우리가 코드를 입력할 때, 어떻게 마법같이 컴퓨터가 처리할 수 있는지 알아보겠습니다. 1. 컴퓨터의 구조 2. 코드의 구조 3. 자바의 특징 1. 컴퓨터의 구조 현대인이라면 기본적인 컴퓨터의 구조가 하드디스크, 메모리, 시피유, 모니터, 키보드, 마우스 등으로 이루어진 것은 잘 것이다. 컴퓨터는 이와 같은 장치들의 통신을 통해 원하는 일을 수행한다. 이와 같이 장치들을 연결해 주는 역할을 하는 것을.. 2021. 3. 31.
반응형