분류 전체보기 166

[ React ] - 훅(Hook) 종류와 사용법 ( useContext / useMemo )

[ React ] - 훅(Hook) 종류와 사용법 ( useContext / useMemo ) HTML 삽입 미리보기할 수 없는 소스 react에서 컴포넌트 간 상태 공유를 위해 사용되는 props는 기본적으로 상위컴포넌트에서 하위 컴포넌트로 내려주는 형태이다. 이는 만일 A -> B -> C 로, A 컴포넌트에 B 컴포넌트가 속하고 B 컴포넌트에 C컴포넌트가 속하는 상황에서 A컴포넌트에 있는 props를 C컴포넌트에서 사용하기 위해 해당 props가 B 컴포넌트에서 필요하지 않음에도 불구하고, B 컴포넌트에서도 props로 넘겨받고 내려주는 불필요한 코드를 작성하게 한다. 이러한 불필요한 코드 작성을 줄이기 위해 사용되는 것이 useContext() hook이다. useContext()는 프로젝트 내에..

Javascript/React 2023.01.08

[ React ] - 훅(Hook) 종류와 사용법 ( useState / useEffect )

훅(Hook) 종류와 사용법 ( useState / useEffect ) Hook이란? React 16.8에 새롭게 추가된 것으로, 공식 문서에 따르면 react의 state 관리와 다른 기능을 사용하기 편리하게 만들어준 메서드이다. HTML 삽입 미리보기할 수 없는 소스 useState의 경우 특정 값을 저장하고 해당 값을 변경하는 함수를 반환하여 주는 역할을 하는 react hook이다. (기본적으로 해당 state의 값이 변경되면 리렌더링이 이루어진다.) ex) useState 활용 예시 useState에서 state변경 함수를 통해 state를 변경할 때에 주의점은 기존의 state값과 변경하려는 state의 값이 같으면 메모리 절약을 위해 state가 변경되지 않고, 즉 렌더링이 발생하지 않는다..

Javascript/React 2023.01.04

[ Java ] - 상속 (instanceOf / 멤버변수가 같을 때 )

상속 HTML 삽입 미리보기할 수 없는 소스 상속관계의 클래스에서 해당 클래스가 속한 타입을 구별하는데 도움을 주는 키워드이다. package chapter07; public class InstancdOfEx { public static void main(String args[]) { Person[] people = {new Person(), new Teacher(), new Student()}; for (int i = 0; i HTML 삽입 미리보기할 수 없는 소스 package chapter07; public class BindingTest { public static void main(String args[]) { Parent p = new Child(); Child c = new Child(); ..

JAVA 2023.01.02

[ Java ] - 생성자

생성자 생성자는 클래스가 new 에 의해 인스턴스로 생성될 때 인스턴스의 변수들을 초기화하여주는 생성자 함수를 의미한다. 생성자 함수는 해당 클래스명과 같으며 반환값이 없다는 특징을 가진다. 한 클래스 내부에 인자깂에 따라 오버로딩하여 여러 개의 생성자 함수를 가질 수도 있다. 만약에 해당 클래스 내부에 아무런 생성자 함수가 존재하지 않는 경우에는 컴파일러에 의해 자동으로 아무런 인자를 받지 않는 기본 생성자를 추가하여 준다. * 클래스에 멤버변수가 존재함에도 불구하고 인자를 아무것도 받지 않고 아무런 기능도 하지 않는 기본 생성자 함수가 가능한 이유? 클래스의 멤버변수의 경우 초기화해주지 않아도 각 멤버변수의 타입에 따라 기본값으로 초기화가 이루어지기 때문에 초기화해주지 않아도 문제가 발생하지 않는다...

JAVA 2022.12.30

[ Java ] - 오버로딩과 오버라이딩

* 오버로딩과 오버라이딩은 용어 때문에 헷갈리는 경우가 많은데 오버로딩과 오버라이딩은 크게 관련이 없다. 오버로딩과 오버라이딩 HTML 삽입 미리보기할 수 없는 소스 오버로딩이란 한 클래스 내에 매개변수의 수와, 매개변수의 타입이 다른 동일한 이름의 메서드가 여러 개 정의된 것을 의미한다. public class OverloadingEx { public static void main(String args[]) { PrintlnByType result = new PrintlnByType(); result.println("string"); result.println(123); result.println(true); // string은 String // 123은 int // true은 boolean } } c..

JAVA 2022.12.30

[ Java ] - 클래스 / 객체 / 인스턴스 (인스턴스의 생성과 사용법)

클래스 / 객체 / 인스턴스 (인스턴스의 생성과 사용법) 클래스란 객체를 정의해 놓은 설계도를 의미한다. 클래스는 기본적으로 객체를 생성하기 위해 사용된다. 반대로 객체를 클래스에 정의된 내용이 인스턴스화 되어 실제로 생성된 것을 의미한다. 예를 들어 집을 짓는다고 할 때 집을 짓기 위한 설계도는 클래스이고, 설계도에 따라 지어진 집은 객체이다. 프로그래밍에서 객체의 의미는 클래스에 정의된 내용대로 메모리에 생성된 것을 의미한다. 클래스는 단순히 설계도에 불과하며, 해당 클래스를 실제로 사용하기 위해서는 반드시 인스턴스화하는 과정이 필요하다. 인스턴스화란 클래스를 객체 즉 실제로 사용할 수 있도록 생성하는 것을 의미한다. * 객체와 인스턴스의 차이 객체와 인스턴스는 클래스에 정의된 내용에 따라 생성된 것..

JAVA 2022.12.28

[기타]

instancdOf 해당 변수가 가리키는 인스턴스의 실제 타입이 무엇인지 알려준다. spring boot : 스프링 부트는 웹서버를 손쉽게 구축할 수 있도록 여러 편리한 기능을 제공해주는 프레임워크이다. 스프링 빈을 등록하는 두 가지 방법 Q) 빈(Bean)이란? 컴포넌트 스캔을 통한 자동 의존관계 설정 방식 위의 방식은 어노테이션 등을 사용하는 방식을 의미한다. ex) @Controller public class MemberController { private MemberService memberService; } 자바 코드를 통해 직접 스프링 빈을 등록하는 방식 gradle : gradle은 Groovy를 기반으로 한 빌드 도구로 빌드, 테스트, 배포 등을 자동화하였다. Projects : gradl..

카테고리 없음 2022.12.27

[ Java ] - 변수의 타입(기본형 / 참조형) * 자바메모리 구조

변수의 타입 변수는 값이 저장되어 있는 메모리 공간을 의미한다. 자바에서 변수 타입은 기본적으로 기본형과 참조형으로 구분되는데, 기본형은 변수의 메모리 공간에 값 자체가 할당되는 것이며, 참조형은 변수의 메모리 공간에 해당 값이 저장된 주소가 저장된다. * 상수 한 번 값을 할당한 후 다른 값을 할당할 수 없는 변수를 의미한다. 상수는 값의 재할당이 불가능하기 때문에 기본적으로 변수의 선언과 함께 값의 초기화가 이루어져야 한다. 상수로 선언한기 위해서는 변수의 타입 앞에 final을 붙여주면 된다. HTML 삽입 미리보기할 수 없는 소스 기본형 타입으로는 문자형(char), 숫자형(byte, short, int, long), 실수형(float, double), 논리형(boolean)이 있으며, 변수 메모..

JAVA 2022.12.25

[ Java ] - 어노테이션(annonation)

어노테이션 ( = annonation) @ScopedProxy // @PostConstruct @PostConstruct 어노테이션의 경우 서버가 실행되어, bean이 생성된 후 딱 한 번만 실행된다. bean은 생성된 후 의존성 주입이 이루어지고, 그 뒤에 해당 빈을 초기화하는 작업이 이루어지는데, @PostConstruct는 빈의 의존 관계 주입이 완료된 후 실행되는 초기화 콜백을 적용할 수 있도록 해주는 어노테이션이다. 이 어노테이션이 붙은 메서드의 경우 다른 리소스에서 해당 메서드가 호출되지 않아도, 서버 실행 시 자동으로 수행된다. @PostConstruct 어노테이션은 아래와 같이 사용된다. (@PostConstruct 어노테이션은 빈을 우선 생성 후, 그 뒤에 초기화를 해주는 경우에 사용가능..

JAVA 2022.12.24

[ Spring ] - IoC컨테이너와 DI

IoC컨테이너란? 인스턴스(=객체)의 생명주기를 관리하는 것을 의미하며, 생성된 인스턴스들에게 추가적인 기능을 제공하는 역할도 한다. * 빈 : 객체를 통해 생성된 인스턴스를 빈이라고 한다. Bean 생명 주기 컨테이너란? IoC(Inversion on Control)란? 직역하면 제어의 역전을 의미하며, 개발자가 프로그램의 흐름의 제어하는 것이 아니라, 다른 프로그램에 의해 프로그램의 흐름이 제어되는 것을 의미한다. 예를 들어 의존 관계가 있는 클래스들을 인터페이스를 통해 추상화하여 관리한다면, 개발자는 해당 의존관계에 대한 설정만을 해주고, 실질적인 의존 관계의 연결은 스프링 프레임워크가 맡아 하게 되는 것이다. ** 스프링 IoC 컨테이너 : 스프링 프레임워크로, 의존 관계를 식별하고 인스턴스화하면..

JAVA 2022.12.09