💡 Static 메모리 - main 함수가 시작되기 전에 메모리에 떠서 main 함수가 종료될 때 메모리에서 사라진다. - 주로 하나 밖에 없는 것, 무조건 떠 있는 것, 끝까지 띄우려는 것에 사용 - 무조건 전역 변수이다. - main이 실행되기 전 뜨기 때문에 타이밍 컨트롤 x 💡 Stack 메모리 - 함수 내부에 존재하는 메모리로 생명주기가 짧으며 이를 지역변수라고도 한다. - 실행 시에 뜬다. 💡 Heap 메모리 - method를 new할 때 사용하는 메모리
💡 컴포넌트 스캔 : 스프링이 스프링 빈(Bean)으로 등록될 준비가 된 클래스들을 스캔하여 빈(Bean)으로 등록해주는 과정 👉 컴포넌트 스캔 대상 @Component : 컴포넌트 스캔에서 사용 클래스 레벨에서 선언함으로써, 스프링이 런타임 시 컴포넌트 스캔을 통해 자동으로 빈을 찾고 등록하는 어노테이션 @Controller : 스프링 MVC 컨트롤러에서 사용 @Service : 스프링 비즈니스 로직에서 사용 @Repository : 스프링 데이터 접근 계층에서 사용 @Configuration : 스프링 설정 정보에서 사용 @Bean 메소드 레벨에서 선언함으로써, 반환되는 객체(인스턴스)를 개발자가 수동으로 빈으로 등록하는 어노테이션
💡 어노테이션 스프링은 IoC(Inversion of Control) 컨테이너 관리권을 가지고 있어 어노테이션을 사용하여 의존성 주입을 한한다. 👉 어노테이션 정의 - 주석이라는 의미를 가진다. - 자바 소스 코드 사이에 @기호를 앞에 붙여 사용한다. - 컴파일 시 JVM이 보는 주석으로 기본적으로 메타 데이터 역할을 한다. 👉 어노테이션 용도 - 컴파일러에게 코드 자성 문법 에러를 체크하도록 정보를 제공 - 소프트웨어 개발툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공 - 실행 시(런타임 시) 특정 기능을 실행하도로 정보를 제공 👉 어노테이션 종류 @Component @RestController @Controller @Configuration @Service @Bean ✔ IoC(In..
💡 람다식 (Lambda Expression) 람다식이란 함수를 하나의 식(expression)으로 표현한 것! 함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 익명 함수의 한 종류라고 볼 수 있다! (매개변수, ...) -> {실행문 ... } () -> {} () -> 1 () -> {return 1;} (int x) -> x+1 (x) -> x+1 x->x+1 (String lam) -> lam.length() lam -> lam.length() 람다식은 불필요한 코드를 줄이고, 가독성을 높이기 위함이다. 그렇기 때문에 함수형 인터페이스의 인스턴스를 생성하여 함수를 변수처럼 선언하는 람다식에서는 메소드의 이름이 불필요하다고 여겨지기 때문에 이를 사용하지 X 👉 람다식 장점 1. 코드 ..
💡 인터페이스 👉 인터페이스(interface) 정의 인터페이스를 작성하는 것은 추상 클래스를 작성하는 것과 같다고 보면 된다.(추상 메서드 집합) 인터페이스도 필드를 선언할 수 있지만 변수가 아닌 상수(final)로서만 정의할 수 있다. public static final과 public abstract 제어자는 생략이 가능하다. interface 인터페이스 이름{ public staic final 타입 상수이름 = 값; public abstract 타입 메서드이름(매개변수목록); } .java 형태의 소스 파일로 작성되고 컴파일러를 통해 .class 형태로 컴파일 됨. 👉 인터페이스(interface) 역할 - 인터페이스는 객체를 어떻게 구성해야 하는지 정리한 설계도 - 인터페이스는 객체의 교환성(다형..