분류 전체보기

    이해 안돼서 다시 정리하는 IoC/DI

    IoC(Inversion of Control, 제어의 역전) 프로그래머가 작성한 프로그램이 재사용 라이브러리의 흐름 제어를 받게 되는 소프트웨어 디자인 패턴을 말한다. 전통적인 프로그래밍에서 흐름은 프로그래머가 작성한 프로그램이 외부 라이브러리의 코드를 호출한다. 하지만 IoC가 적용된 구조에서는 외부 라이브러리의 코드가 프로그래머가 작성한 코드를 호출한다. Spring에서 IoC 즉 메소드의 호출, 객체의 생성과 소멸, 의존관계 설정 행위 등을 모두 프레임워크가 대신해 준다. → 주도권이 역전됨 → 제어의 역전 프레임워크가 흐름을 주도하며 개발자가 작성한 코드를 사용한다 기존의 흐름은 개발자가 new를 하여 heap 공간에 올리는 행위를 개발자가 했다면 Spring에서는 오브젝트를 클래스로 모두 만들어..

    Spring Annotation 정리

    Annotation? 사전적 의미로는 주석이라는 뜻 자바에서는 코드 사이에 주석처럼 쓰이며 소스코드에 추가하면 단순 주석의 기능을 하는 것이 아닌, 특별한 기능을 수행하도록 하는 기술이다. 프로그램 코드의 일부가 아닌 프로그램에 관한 데이터를 제공, 코드에 정보를 추가하는 정형화된 방법으로 프로그램에게 추가적인 정보를 제공해주는 메타데이터라고 볼 수 있다. 해당 클래스 위에 작성하여 표시한다. 💡 메타 데이터? 데이터에 대한 데이터 , ‘어떤 목적을 가지고 만들어진 데이터’ 라고도 정의함 역할 클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할 해당 클래스의 역할을 정함 Bean을 주입하기도 함 자동으로 getter, setter를 생성하기도 함 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 ..

    Spring Framework 개념 정리

    1. 등장 배경 EJB(Enterprise Java Bean) 엔터프라이즈급 어플리케이션 개발을 단순화하기 위해 발표한 스펙 비즈니스 객체들을 관리하는 컨테이너를 만들어서 필요할 때마다 컨테이너로부터 객체를 받는 식으로 관리하면 효율적이겠다 라는 것에서 탄생 기능은 좋지만 복잡한 스펙으로 개발의 효율성이 떨어지고 EJB를 돌릴 서버가 따로 필요한 단점이 있음 즉 현실에서의 반영이 어려움 POJO(Plain Old Java Object) 특정 프레임워크나 기술에 의존적이지 않은 자바 객체 종속적이지 않기 떄문에 생산성, 이식성 향상 EJB가 제공하는 서비스를 지원해 줄 수 있는 프레임워크가 등장하며 EJB 없이 만들어졌다. 2. Spring Framework 스프링 프레임워크란? 스프링 프레임워크는 자바 ..

    Java 정리(JVM, 객체지향, 싱글톤 패턴)

    JVM(Java Virtual Machine) 말 그대로 자바를 실행하기 위한 가상 기계 C, CPP은 운영체제에 종속적이라 컴파일한 코드를 바로 실행시킴 → 윈도우에서 만든 것을 맥이나 리눅스 등에서 사용 불가능함 Java의 경우 컴파일을 하면 바이트 코드(바이너리 코드)로 변하고 JVM이라는 가상 머신이 실행시킴. 메모리에서 JVM이 동작하다보니 아직까지 하드웨어를 사용하지 않았기 때문에 JVM만 설치되어 있다면 OS에 종속적이지 않게 실행시킬 수 있음 즉 플랫폼에 독립적임. Write Once, Run Anywhere 가상환경인 JVM 위에서 동작하기 때문에 실행 속도가 상대적으로 느린 단점이 있음 💡 바이너리 코드? 컴퓨터가 인식할 수 있는 0과 1로 구성된 이진 코드 가비지 컬렉션(Garbage..