전체 글
-
Live Study - Java ExceptionHello, World 💻/Java ☕️ 2021. 1. 23. 12:54
프로그램 오류, Error / Exception의 차이 프로그램이 실행 중에 어떤 원인으로 오작동하거나, 정상적으로 종료되지 않는 경우가 있다. 여기서 '어떤 원인'을 에러(Error) 혹은 오류(Exception)라고 한다. 에러와 오류의 차이는 뭘까? 에러, Error 에러는 시스템 레벨에서 문제가 발생한 경우를 말한다. 메모리 부족(OutOfMemoryError), 스택오버플로우(StackOverflowError)와 같이 이러한 에러가 발생하면 복구할 수 없는 심각한 오류이다. 예외, Exception 예외는 사용자가 프로그램을 잘 못 사용했거나, 프로그래머의 실수로 인한 문제를 말한다. 어떤 수를 0으로 나눴거나(ArithmeticException) 배열의 크기를 벗어나서 접근(IndexOutOf..
-
Live Study - Java InterfaceHello, World 💻/Java ☕️ 2021. 1. 7. 21:14
인터페이스를 정의하는 방법 public interface 인터페이스명 { public static final 타입 상수변수명 = 값; // public static final 생략 가능 public abstract 반환타입 메서드명(); // public abstarct 생략 가능 static 반환타입 메서드명() { } default 반환타입 메서드명() { } private 반환타입 메서드명() { } private static 반환타입 메서드명() { } } 인터페이스에는 - 상수 - abstract method (Java 7 부터) - static method (Java 8 부터) - default method (Java 8 부터) - private method (Java 9 부터) - priva..
-
Live Study - Java PackageHello, World 💻/Java ☕️ 2020. 12. 30. 22:49
package - 관련된 클래스, 인터페이스, Enum, Annotation 들의 묶음, 물리적으로 하나의 디렉토리이다. - 접근 제어, namespace 관리 기능을 제공한다. - 실제 클래스의 이름은 패키지 명을 포함한 것이다. me.ohhhmycode 패키지에 Study 클래스가 있다면 실제 클래스 이름은 me.ohhhmycode.Study 이다. 패키지 + 클래스명을 붙인 것을 Fully Qualified Name 이라고 한다. - 디렉토리가 디렉토리를 포함할 수 있는 것 처럼, 패키지도 다른 패키지를 포함할 수 있다. '.' 점으로 구분한다. package 선언 - 패키지 선언은 주석과 공백을 제외하고 첫번째로 와야한다. 단 한번만 허용된다. - 클래스는 선언한 패키지 이름과 똑같은 디렉토리에 ..
-
Live Study - Java 상속 (Inheritance)Hello, World 💻/Java ☕️ 2020. 12. 23. 22:15
정리한 내용 - Java 의 상속과 특징 - Super - 오버라이딩 - 제어자 - 다형성 - Dynamic Method Dispatch - 추상 클래스 - Object 클래스 Java 의 상속(Inheritance)과 특징 클래스를 상속 받는 다는 것은 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것이다. 상속의 목적도 결국 중복의 제거인 것 같다. 프로그래밍의 많은 개념은 코드의 재사용성을 높이고, 중복을 제거하기 위해 만들어지고 발전되는 것들이 정말 많은것 같고, 상속이라는 개념도 그 과정 속의 산물이라고 생각한다. Java 에서 클래스를 상속 받기 위해서는 extends 라는 키워드를 사용한다. class Product { String productCode; String productTyp..
-
Live Study - Java 의 ClassHello, World 💻/Java ☕️ 2020. 12. 14. 20:37
정리한 내용 - 클래스를 정의하는 방법 - 객체를 만드는 방법, new 연산자 이해하기 - 변수 선언하기 - 메서드 선언하기 - 생성자 정의하기 - this 키워드 이해하기 Class, 클래스는 객체를 정의해 놓은 것이고, 사용자 정의 타입(User-Defined Type)이다. 언어에서 제공하는 자료형(primitive type) 외에 개발자가 서로 관련된 변수들을 묶어서 하나의 타입으로 새로 추가하는 것을 사용자 정의 타입이라고 한다. 여기서 '객체'는 무엇인지, 객체지향은 무엇인지.. 에 대한 내용을 쓰게되면 글도 한없이 길어지고 정리도 힘들 것 같아서 단순히 프로그래밍적인 관점에서 정리해보려고 한다. 넘어가기 전에 프로그래밍에서 데이터 처리를 위한 저장 형태의 발전 과정을 짚어보면 다음과 같다. ..
-
Spock Test Framework 정리Hello, World 💻/Test ✅ 2020. 12. 7. 23:54
JUnit 5 을 좀 더 세세하게 공부해볼까 하다 새로운 언어와 프레임워크를 사용해보고 싶어서 Spock Framework 를 공부하게 되었다. Spock 는 Java, Groovy 애플리케이션을 위한 테스트 프레임워크다. BDD(Behaviour-Driven Development) 프레임워크라고도 한다. Groovy 언어로 작성할 수 있고, 아름답고 표현력이 뛰어나다고 소개하고 있다(ㅎㅎ). JUnit Runner 덕분에 대부분의 IDE, 빌드 툴, CI 서버에서 구동시킬 수 있다고 한다. 짧게 일주일정도 Spock 를 좀 써보고 느낀 점은 확실히 JUnit 보다 더 쉽고 명시적인 느낌이 있었다. 예를 들어 JUnit 을 쓸 때 테스트 메서드에 주석으로 given, when, then 이라고 작성했는데..
-
Live Study - Java 선택문, 반복문Hello, World 💻/Java ☕️ 2020. 12. 6. 15:18
코드는 위에서 아래로 한 문장씩 순차적으로 수행된다. 코드를 작성하다 보면 어떤 조건에 따라 어떤 코드는 건너뛰고 수행하고, 같은 코드를 반복적으로 수행시킬 때가 있다. 프로그램의 흐름을 바꾸는 역할을 하는 것을 '제어문'이라고 하고 제어문에는 선택문과 반복문이 있다. 선택문 선택문에는 if, switch 문이 있다. 선택문은 조건문이라고도 한다. if if 문은 가장 기본적인 조건문이다. 아래와 같이 조건식, 괄호로 이루어져 있다. if (조건식) { // 코드 블록 } 조건식이 True 이면 중괄호 내의 문장을 수행한다. 조건식은 일반적으로 비교 연산자, 논리 연산자로 구성된다. >, 1 (만 출력!) switch switch 문은 if else 와 다르게 하나의 조건으로 여러 분기를 가질 수 있다...
-
Live Study - Java 가 제공하는 다양한 연산자Hello, World 💻/Java ☕️ 2020. 11. 24. 21:28
학습내용 연산자 우선순위 산술 연산자 비트 연산자 관계 연산자 논리 연산자 삼항 연산자 assignment(=) operator instanceof 화살표(->) 연산자 (optional) Java 13. switch 연산자 용어 정리 피연산자 - 연산자가 연산을 수행하려면 연산의 대상이 있어야 한다. 이 대상을 '피연산자' 라고 한다. 피연산자로 상수, 변수, 식 등을 사용할 수 있다. 식 - 식은 연산자와 피연산자를 조합해 계산하고자 하는 바를 표현한 것을 '식'이라고 한다. 예) 10 * x + 20 연산자의 종류 종류 연산자 산술 연산자 +, -, *, /, %, 비교 연산자 >, =, y * 2 산술연산자 (+, -, *, /, %) 가 비교 연산자 (>, =, , 0 || x > 5 && x ..