🌱 오늘의 주제 : 예외 되던지기, 연결된 예외 🌱 예외 되던지기 (exception re-throwing) 한 메서드에서 발생할 예외가 여럿인 경우, 몇 개는 매서드 안에서 try - catch 문을 통해서 처리하고, 나머지는 선언부에 지정하여 호출한 메서드에서 처리하도록 함으로써, 양쪽에서 나눠서 처리하도록 하는 것. 예외를 처리한 후에 인위적으로 다시 발생시키는 방법을 통해서 가능하다. 이것을 예외 되던지기 (exception re - throwing)라고 한다. 하나의 예외가 발생한 메서드와 이를 호출한 메서드 양쪽 모두에서 처리해줘야 할 작업이 있을 때 사용. 주의할 점: 예외가 발생한 메서드에서 try-catch문으로 예외처리를 해줌과 동시에, 메서드의 선언부에 발생할 예외를 throws에 지..
🌴 문제 문제 아래 예제와 같이 개를 출력하시오. 입력 없음. 출력 개를 출력한다. 🌴 문제 분석 package BAEKJOON; public class day02 { public static void main(String[] args) { // 개를 출력한다. // 역슬래쉬를 단독으로 사용하기 위해서는 연속적으로 두번 적어야 한다. (\\) // 큰따옴표를 출력하기 위해서는 \"를 사용. System.out.println("|\\_/|"); System.out.println("|q p| /}"); System.out.println("( 0 )\"\"\"\\"); System.out.println("|\"^\"` |"); System.out.println("||_/=\\\\__|"); } } ------..
🌱 오늘의 주제 : 메서드에 예외 선언하기 🌱 메서드에 예외 선언하기 예외 처리하는 방법 - 1. try - catch문을 사용 2. 예외를 메서드에 선언 메서드에 예외를 선언하는 법 : 메서드의 선언부에 키워드 throws를 사용, 예외가 여러개이면 쉼표, 로 구분한다. 최고 조상인 Exception클래스를 메서드에 선언하면, 모든 종류의 예외가 발생할 가능성이기 때문에, 자손타입의 예외까지 발생할 수 있다. 예외를 메서드에 선언하는 이유 : 메서드를 사용하려는 사람은 어떠한 예외들이 처리되어야 하는지 쉽게 알 수 있기 때문에, 프로그래머들의 짐을 덜어 주고, 견고한 프로그램 코드를 작성하기 도와준다. 예외 선언 : 예외 처리 x, 자신을 호출한 쪽으로 예외를 떠넘김. void method() thro..
🌱 오늘의 주제 : checked 예외, unchecked 예외 🌱 멀티 catch 블럭 여러 catch블럭을 '|' 기호를 이용해서, 하나의 catch블럭으로 합칠 수 있다. 중복된 코드를 줄일 수 있다. try { ... } catch (ExceptionA | ExceptionB e) { e.printStackTrance(); } 🌱 예외 발생시키기 키워드 throw를 사용해서 프로그래머가 고의로 예외를 발생시킬 수 있다. 1. 연산자 new를 이용해서 발생시키려는 예외 클래스의 객체를 만든다. Exception e = new Exception("고의로 발생시켰음"); 2. 키워드 throw를 이용해서 예외를 발생시킨다. throw e; package try_catch; public class Ex8..
🌱 오늘의 주제 : Database - INDEX란? 🌱 Database - INDEX란? 데이터를 빠르게 조회하기 위한 Key 개념 WHERE 절에서 자주 조회되는 컬럼을 index로 등록하면 조회가 빨라진다. 특정 컬럼 또는 여러 컬럼을 묶어 INDEX로 등록할 수 있다. 여러 컬럼을 묶은 INDEX: 복합 INDEX 또는 복합키 데이터가 insert 될 때, 인덱스 데이터도 따로 저장 된다.(인덱스가 너무 많으면 입력 속도 느려지고 용량 차지) 🌱 InnoDB의 인덱스 구조 MySQL의 스토리지 엔진인 InnoDB의 경우 B+Tree 자료구조로 구성되어 있다.(B-Tree의 확장 개념) - 균형 트리 - 복잡도: O(LogN) 🌱 INDEX의 종류 🌱 인덱스는 언제 사용하는가? WHERE절에서 조회..
🌱 오늘의 주제 : Database - 테이블 설계 🌱 Database - 테이블 설계 한 테이블에는 각 행(레코드)에 유일한 key 값을 두어 고유한 데이터들이 저장되도록 한다. 유일한 key로 쉽고 빠르게 데이터를 조회할 수 있다. 중복 값을 방지할 수 있다. 하나의 컬럼 값으로 여러 정보가 들어가지 않도록 설계한다 - 데이터의 중복이 생기는 경우에는 테이블을 적절히 나누어야 한다. - 이 과정에서 다른 테이블의 데이터들과의 연결이 필요하다면 연결할 테이블의 key 값을 저장한다.
🌱 오늘의 주제 : 데이터베이스란? 데이터를 저장하는 저장소 🌱 관계형 데이터베이스 - Relation DB(RDB) 행과 열로 구성된 테이블 형태 테이블 형태를 정의/설계(Scheme)하고 그 형태에 맞게 데이터를 저장한다. 외부, 개념, 내부 스키마 여러 테이블이 서로 관계가 있는 구조일 수 있다 대표적인 RDB의 예 - MySQL - Oracle DB - Maria DB 🌱 관계형 데이터베이스가 아닌 SQL - No SQL No SQL (Non Sql 또는 Not Only SQL) 설계를 변경하지 않아도 동적으로 속성을 추가 가능 테이블 간의 연결을 통한 조회 불가 속도가 빠름 서버를 클라우드 형태로 구성한다. 대표적인 No SQL의 예 - Mongo DB: 데이터를 key-value의 쌍으로 저장..
🌱 오늘의 주제 : try - catch문 🌱 예외 클래스의 계층구조 Exception 클래스들 : 사용자의 실수와 같은 외적인 요인에 의해 발생하는 예외. RuntimeException클래스들 : 프로그래머의 실수로 발생하는 예외. 🌱 예외 처리하기 - try - catch문 예외처리(exception handling)란, 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것. 예외처리 목적 : 비정상 종료를 막고, 정상적인 실행상태를 유지할 수 있도록 하는 것. try { // 예외가 발생할 가능성 있는 문장들을 넣는다. } catch (Exception1 e1) { // Exception1이 발생했을 경우, 이를 처리하기 위한 문장을 적는다. } catch (Exc..
🌱 오늘의 주제 : 객체지향 프로그래밍 규칙 총 정리 (1) 🌱 객체지향 프로그래밍 (1) 한 파일에 여러 클래스 작성하기 소스파일의 이름은 public class 이름과 일치해야 한다. 만일 소스파일 내에 public class 가 없다면, 소스파일의 이름은 어떤 클래스의 이름을 해도 상관 없다. 객체의 생성 : 클래스명 변수명 = new 클래스명(); 객체 배열: Tv[] tvArr = new TV[3] // 참조변수 배열을 생성 tvArr[0] = new Tv(); // 객체를 생성해서 배열의 각 요소의 저장 // ** 저장하는 법 주의 - 객체 수 많을 때는 for문 사용. tvArr[1] = new Tv(); tvArr[2] = new Tv(); 선언 위치에 따른 변수의 종류 멤버변수 : 클래스..