본문 바로가기

전체 글227

[ML] NumPy, SciPy, matplotlib, pandas 개념 정리 scikit-learn은 파이썬 과락 라이브러리인 numPy와 SciPy를 기반으로 만들었다. scikit-learn을 잘 활용할 수 있도록 NumPy, SciPy, matplotlib, pandas, mglearn들의 개념을 알아보자. NumPy 넘파이는 다차원 배열을 위한 기능과 선형 대수 연산과 푸리에 변환같은 고수준 수학 함수와 유사 난수 생성기를 포함한다. 사용 다차원 배열을 위한 기능 선형 대수 연산 푸리에 변환 고수준 수학 함수와 유사 난수 생성기 scikit-learn에서 넘파이 배열은 기본 데이터 구조이다. scikit-learn은 넘파이 배열 형태의 데이터를 입력으로 받는다. 그렇기 때문에 우리가 사용할 데이터는 모두 넘파이 배열로 변환되어야 한다. NumPy의 핵심 기능 다차원(n-차.. 2023. 8. 27.
[JAVA] 자바 인터페이스(Interface)의 기본 개념을 알아보자 인터페이스(Interface)는 사전적 의미로 두 장치를 연결하는 접속기라고 나온다. 인터페이스의 역할 위의 그림으로 설명하자면 인터페이스는 '객체'와 '개발 코드A', '객체' 와 '개발 코드B'를 연결하는 역할을 한다. '객체'는 인터페이스를 통해 '개발코드 A'나 '개발코드 B'를 사용할 수 있다는 것이다. 인터페이스와 구현 클래스 선언 인터페이스는 물리적 형태는 클래스와 동일하다. 단, 소스를 작성할 때 선언하는 방법과 구성 멤버가 클래스와 다르다. 인터페이스 선언 인터페이스 선언은 class 키워드 대신 interface 키워드를 사용한다. 접근제한자로는 클래스와 마찬가지로 같은 패키지 내에서만 사용 가능한 default나 패키지와 상관없이 사용하는 public을 붙일 수 있다. interfac.. 2023. 8. 25.
[JAVA] 추상 클래스와 추상 메소드 정리 '추상'은 사전적 의미로 실체 간에 공통되는 특성을 추출한 것이라고 말한다. 예를 들어 새, 곤충, 물고기 등의 공통점은 동물이다. 여기서 동물은 실체들의 공통되는 특성을 가지고 있는 추상적인 것이라고 볼 수 있다. 추상 클래스 객체를 생성할 수 있는 클래스를 실체 클래스라고 한다면 이 클래스들의 공통적인 필드나 메소드를 추출해서 선언한 클래스를 '추상 클래스'라고 한다. 쉽게 말하면, 추상 클래스는 실체 클래스의 부모 역할을 한다. 예를 들어 Bird, Insect, Fish와 같은 실체 클래스에서 공통되는 필드나 메소드를 따로 선언한 Animal 클래스를 만들 수 있고, 이것을 상속한 실체 클래스를 만들 수 있다. 추상 클래스는 실체 클래스의 공통되는 필드나 메소드를 추출해서 만들었기 때문에 new .. 2023. 8. 23.
[JAVA] 자바 다형성과 instanceof 다형성이란? 사용방법은 동일하지만 실행 결과가 다양하게 나오는 성질을 말한다. 자동차의 부품을 교환하면 성능이 다르게 나오듯이 객체는 부품과 같아서, 프로그램을 구성하는 객체를 바꾸면 프로그램의 실행 성능이 다르게 나올 수 있다. 다형성을 구성하기 위해서는 자동 타입 변환과 메소드 재정의가 필요하다. 1. 필드 다형성 필드 다형성은 필드 타입은 동일하지만, 대입되는 객체가 달라져서 실행 결과가 다양하게 나올 수 있는것을 말한다. 예제를 통해 알아보자. class Tire{ public void roll() { System.out.println("회전합니다."); } } class HankookTire extends Tire{ @Override public void roll() { System.out.pr.. 2023. 8. 21.
[JAVA] 상속 중 타입 변환(자동 타입 변환, 강제 타입 변환) 타입 변환이란 타입을 다른 타입으로 변환하는 것을 말한다. 클래스의 타입 변환은 상속 관계에 있는 클래스 사이에서 발생한다. 1. 자동타입 변환 자동타입 변환은 의미 그대로 자동적으로 타입 변환이 일어나는 것을 말한다. 자동 타입 변환 - Cat cat = new Cat(); Animal animal = cat; ↓ - Animal animal = new Cat( ); (cat과 animal 변수는 타입만 다를 뿐 모두 동일한 Cat 객체를 참조한다.) 예제) class A{ } class B extends A{ } class C extends A{ } class D extends B{ } class E extends C{ } public class PromotionExample { public stat.. 2023. 8. 18.
[JAVA] 메소드 오버라이딩 알아보기 메소드 재정의 부모 클래스의 모든 메소드가 자식 클래스에게 맞게 설계되어 있다면 가장 이상적인 상속이지만 어떤 메소드는 자식 클래스가 사용하기에 적합하지 않을 수 있다. 이런 메소드는 자식 클래스에서 재정의해서 사용해야 한다. 이러한 것을 '메소드 오버라이딩'이라고 한다. 메소드 오버라이딩(Method Overriding) 메소드 오버라이딩은 상속된 메소드를 자식 클래스에서 재정의하는 것을 말한다. 메소드 오버라이딩이 되었다면 해당 부모 메소드는 숨겨지고 자식 메소드가 우선적으로 사용된다. 한마디로 부모것을 사용하지 않고 내것을 사용하겠다는 것이다. 위 그림을 보면 자식 클래스에도 method2()가 있고 부모 클래스에도 method2()가 있다. 이때 부모것을 선택하지 않고 자식 클래스의 method2.. 2023. 8. 16.
[자바] 상속의 기초 개념 상속 상속은 부모가 자식에게 물려주는 행위를 말한다. 객체 지향 프로그램에서도 부모 클래스의 필드와 메소드를 자식 클래스에게 물려 줄 수 있다. 상속을 사용하는 이유? 상속은 이미 잘 개발 된 클래스를 재사용해서 새로운 클래스를 만들기 때문에 중복되는 코드를 줄여 개발 시간을 단축시킨다. 예를 들어, 자식 클래스 B에서 처음부터 필드와 메소드 4개를 작성하는 것 보다는 필드1과 메소드1을 부모 클래스 A에서 상속 받고 필드2와 메소드2만 추가 작성하는 것이 보다 효율적이다. 상속의 이점 이미 개발된 클래스를 재사용하므로 중복 코드를 줄임 클래스 수정을 최소화함 클래스 상속 자식 클래스를 선언할 때 어떤 부모로부터 상속받은 것인지를 결정하고 부모 클래스를 다음과 같이 extends 뒤에 기술 ※ 주의 ※ .. 2023. 8. 14.
[JAVA] for-each문 사용방법 foreach문은 for,while,do-while 등과 같은 반복문이다. 또한, 배열같이 리스트들을 하나씩 뽑을 때 사용한다. foreach 기본 구조 foreach문의 기본구조를 알아보자. for(타입 변수 : 배열 명){ ---반복할 내용--- } 상당히 심플하다. for문과 비교 for문 public class Main { public static void main(String[] args) { int arr[] = {10,20,30,40,50}; for(int i = 0; i < arr.length; i++) { int value = arr[i]; System.out.println(value); } } } foreach문 public class Main { public static void ma.. 2023. 8. 8.
[React] 간단한 코드로 애니메이션 만드는 법(Fade, Zoom, Flip 등) 여러 사이트에서 스크롤을 내리면 글자나 이미지가 나타나는 애니메이션을 볼 수 있다. 이것을 하나하나 코드로 작성하기에는 코드 양이 많아 질 수 있다. 이런 문제를 해결하기 위해 리액트에서 라이브러리를 제공해 준다. 이것을 사용하면 몇 줄 안되는 코드로 애니메이션을 만들 수 있다. https://www.react-reveal.com/ Home - React Reveal React Reveal React Reveal is high performance animation library for React. It's MIT licensed, has a small footprint and written specifically for React in ES6. It can be used to create various.. 2023. 7. 13.