본문 바로가기

전체 글

(197)
[BOJ] Java - 2557 Hello World 문제 풀이 public class Main { public static void main(String[] args) { System.out.print("Hello World!"); } } https://github.com/hyunjin1292/algorithm.git GitHub - hyunjin1292/algorithm: study study. Contribute to hyunjin1292/algorithm development by creating an account on GitHub. github.com 노트 백준으로 알고리즘 문제풀이를 시작했다. 회원 가입하고, 백준 - 깃 연결해서 문제풀이 성공할 때마다 자동으로 푸시되도록 설정하고 이것저것 눌러보다 단계별로 문제풀이 하러 들어갔는데 클래스 선언..
[Java] 다형성 활용하기 앞에서 공부한 상속과 다형성을 활용하면 프로그램을 유지 보수하는데 매우 편리하다. 이때 배열을 함께 사용하면 여러 하위 클래스 자료형을 상위 클래스 자료형으로 한꺼번에 관리할 수도 있다. 일반 고객과 VIP 고객의 중간 등급 만들기 예제 시나리오 고객이 늘어 VIP 고객만큼 물건을 많이 구매하지는 않지만, 그래도 단골인 분들에게 혜택을 주고 싶다. 그래서 GOLD 고객 등급을 하나 추가한다. GOLD 고객 혜택은 다음과 같다. ● 제품을 살 때는 항상 10% 할인해 준다. ● 보너스 포인트를 2% 적립해 준다. ● 담당 전문 상담원은 없다. [실습] 새로운 고객 등급 추가하기 package polymorphism; public class GoldCustomer extends Customer { doubl..
[MySQL] 집합 연산 - UNION RDBMS의 창시자인 에드거 커드(Edgar F. Codd)는 관계형 모델을 고안한 인물이다. 관계형 모델을 채택한 데이터베이스를 관계형 데이터베이스라 부른다. 관계형 모델에서의 관계형은 수학 집합론의 관계형 이론에서 유래했다. 데이터베이스에서 하나의 테이블이 집합이고, 테이블의 행이 요소에 해당한다. 행은 여러 개의 열로 구성되는 경우도 있으므로, 수치 상으로는 복수의 값이 존재하나, 집합의 요소라는 측면에서 보면 하나의 행이 곧 하나의 요소가 된다. 집합의 연산에는 '합집합'이 있는데 이는 집합을 서로 더한 것을 말한다. SQL에서 합집합을 계산할 경우 UNION 키워드를 사용한다. [SYNTAX] SELECT 명령 UNION SELECT 명령 위의 예시에서 보이듯 2라는 요소가 a와 b의 테이블에 ..
[Java] 다형성(polymorphism) 다형성이란 하나의 코드가 여러 자료형으로 구현되어 실행되는 것을 말한다. 즉 같은 코드에서 여러 실행 결과가 나오는 것이다. [실습] 다형성 테스트하기 package polymorphism; class Animal { public void move() { System.out.println("동물이 움직입니다."); } } class Human extends Animal { public void move() { System.out.println("사람이 두 발로 걷습니다."); } } class Tiger extends Animal { public void move() { System.out.println("호랑이가 네 발로 뜁니다."); } } class Eagle extends Animal { publ..
[MySQL] 뷰 작성과 삭제 뷰(VIEW)는 테이블과 같은 부류의 데이터베이스 객체 중 하나이다. 데이터베이스 객체란 테이블이나 인덱스 등 데이터베이스 안에 정의하는 모든 것을 말한다. 반면 SELECT 명령은 객체가 아니다. 본래 데이터베이스 객체로 등록할 수 없는 SELECT 명령을 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰이다. 예를 들어 앞에서 공부했던 서브 쿼리는 FROM구에서도 기술할 수 있다. select * from (select * from sample54) sq; 여기서 FROM구에 기술된 서브 쿼리에 이름을 붙이고 데이터베이스 객체화하여 쓰기 쉽게 한 것을 뷰라고 한다. 뷰를 만든 후 SELECT 명령에서 뷰의 이름을 지정하면 참조할 수 있다. select * from sample_view_67; 복잡한..
노션으로 일정 관리하기 오랜 백수생활로 인해 생활리듬이 망가지면서 최근 코로나와 독감을 연달아 경험했다. 몸이 너무 망가지고 이대로는 안되겠다 싶어 운동을 시작하면서 생활 루틴 만들어야겠다고 결심했다. 꾸미는데 소질없고 글씨도 잘 못쓰는 내가 다이어리를 활용하기에는 꾸준히 못할 것 같았고, 그래서 노션을 활용해서 일정 관리하고 있다는 유튜브를 많이 찾아보게 되었다. 그 중 '따뜻한 보건티' 유튜버를 알게 되었는데 내 맘에 쏙 드는 양식으로 일정관리를 하고 있을 뿐만 아니라 친절하게 본인이 사용하고 있는 서식을 어떻게 만들었는지 자세히 알려주었다. 포스팅 맨 하단의 영상을 참고해서 나도 동일하지만 나에게 맞는 스케줄 관리하는 서식을 만들게 되었다. 나는 노션으로 일정관리를 위와 같이 만들어서 하고 있다. 하나하나 설명해보자면 먼..
[Java] 메서드 오버라이딩 이전에 상속을 공부하면서 만든 상위 클래스 Customer에는 제품 가격을 계산하는 calcPrice() 메서드가 이미 정의되어 있다. 이 메서드는 정가를 그대로 지불하지만, VIP 고객은 정가에 10%를 할인받을 수 있다. 이러한 경우 상위 클래스에서 정의한 calcPrice() 메서드를 하위 클래스에서 구현할 내용과 맞지 않을 경우 하위 클래스에서 이 메서드를 재정의할 수 있는데 이를 메서드 오버 라이딩(method overriding)이라 한다. 오버 라이딩하려면 반환형, 메서드 이름, 매개변수 개수, 매개변수 자료형이 반드시 같아야 한다. 그렇지 않으면 자바 컴파일러는 재정의한 메서드를 기존 메서드와 다른 메서드로 인식한다. [실습] calcPrice() 메서드 재정의하기 package inher..
[MySQL] 인덱스 작성과 삭제 [SYNTAX] CREATE INDEX DROP INDEX 인덱스는 데이터베이스 객체의 하나로 DDL을 사용해서 작성하거나 삭제한다. 표준 SQL에는 CREATE INDEX 명령은 없고, 인덱스 자체가 데이터베이스 제품에 의존하는 선택적인 항목으로 취급된다. 하지만, 대표적인 데이터베이스 제품에는 모두 인덱스 구조가 도입되어 비슷한 관리방법으로 인덱스를 다룰 수 있다. 인덱스는 이름을 붙여 관리하는데 인덱스가 데이터베이스 객체가 될지, 테이블의 열처럼 취급될지는 데이터베이스 제품에 따라 다르다. Oracle이나 DB2 등에서 인덱스는 스키마 객체가 되어 스키마 내 이름이 중복하지 않도록 지정해 관리한다. SQL Server나 MySQL에서 인덱스는 테이블 내의 객체가 되어, 테이블 내에 이름이 중복되지 ..