본문 바로가기

전체 글312

[Spring] 기본적인 @AutoWired Annotation 사용법 @AutoWired Annotation이란? - 필요한 의존객체에 해당 타입의 객체를 주입시켜주는 Annotation이다. - AutoWired Annotation은 3가지 경우(생성자, Setter, 필드)에 사용가능한데, 이는 다음 게시물을 참고하면 된다. https://ghcode.tistory.com/168 AutoWired에 주입되는 객체는 Spring Container에 Bean으로 등록되어야 있어야 사용가능하다. @Component Annotation을 이용해서 Bean을 등록하는 방법과 @Configuration과 @Bean Annotation을 이용한 방법이 있는데, @Configuration과 @Bean Annotation을 이용한 방법과 관련된 정보는 아래 글을 참고하고, 이 글에서는.. 2022. 2. 21.
[Spring] Spring Framework 정리 Spring Framework란? ->Spring Framework은 엔터프라이즈 애플리케이션 개발의 복잡함을 겨냥해 만들어진 오픈 소스 프레임워크이다. 궁극적인 목적은 Java 개발의 간소화이다. - Java 개발 간소화를 위한 4가지 전략 POJO(Plain-Old Java Object)를 이용한 가볍고 비 침투적인 개발 POJO는 주요한 Java Object 모델이나 프레임워크 등에 종속적이지 않은, 따르지 않는 Java Object이다. 미리 지정된 클래스를 extends 하면 안된다. 미리 정의된 인터페이스를 implement 하면 안된다. 미리 정의된 Annotation을 포함하면 안된다. DI(Dependency Injection)와 인터페이스 지향을 통한 느슨한 결합도 DI(종속성 주입, .. 2022. 2. 21.
[Spring] Spring MVC 패턴 작동 방식 웹 브라우저에서 요청이 들어오면 이는 DispatcherServlet으로 전송된다. DispatcherServlet은 공통적으로 수행하는 작업을 마친 뒤 연결된 Controller를 호출하는데, 해당 RequestURl에 어떤 Controller에 연결되었는지를 알기 위해서 HandlerMapping 인스턴스를 참조한 후 사용가능한 Handler Adapter를 조회한 후 HandlerAdapter가 해당 Controller를 호출한다. Controller는 비즈니스 로직을 수행한 결과를 HandlerAdapter가 받고 ModelAndView 인스턴스로 변환해 반환한다. DispatcherServlet이 받은 View 이름을 가지고 ViewResolver 인스턴스에게 요청하고 View Resolver는.. 2022. 2. 19.
[JAVA] Java의 컴파일 과정 및 메모리 구조 우리가 작성한 Java 코드, 즉 .java file은 java 컴파일러인 javac에 의해서 확장자가 .class인 바이트 코드로 변환된다. 이 바이트코드를 JVM 내의 Class Loader가 읽어들이고 메모리에 배치하는데, 클래스를 읽어와(Loading) 레퍼런스에 연결(Linking)하고, Static 변수 초기화 및 변수 할당(Initialization)의 과정을 거친다. Class Loader에 의해 배치된 바이트 코드는 Execution Engine에 의해 실행되고, 실행 엔진은 이를 줄 단위로 읽어서 수행한다. Garbage Collecter는 객체의 사용여부를 판단하고 사용되지 않는 객체를 자동적으로 해제시키는 역할을 수행한다. Runtime Data Areas는 총 6개의 영역으로 구분.. 2022. 2. 19.
[CS] 객체 지향 설계 원칙(SOLID) S(SRP)(Single Responsibility Principle) 단일 책임 원칙 -> 한 클래스는 하나의 책임만 가져야 한다. O(OCP)(Open/Close Principle) 개방-폐쇄 원칙 -> 소프트웨어 요소는 확장에는 개방되어야 하나, 변경에는 폐쇄적이어야 한다. L(LSP)(Liskov Substitution Principle) 리스코프 치환 원칙 ->부모클래스의 객체는 언제든지 자식 클래스의 객체로 바뀔 수 있어야 한다. I(ISP)(Interface Segregation Principle) 인터페이스 분리 원칙 -> 특정 클라이언트를 위한 인터페이스 여러 개가 범용적인 인터페이스 1개보다 낫다. 즉, 세부적으로 나눌 수 있으면 나누는 것이 좋다. D(DIP)(Dependency In.. 2022. 2. 19.
[CS] 객체 지향 프로그래밍의 특징 1. 캡슐화 데이터와 그 처리함수를 하나로 묶는 것으로 캡슐화된 객체는 자신의 정보를 감출 수 있으며, 객체 정보 변경 시 오류의 파급효과가 적다. 2. 추상화 필요하거나 중요한 부분을 중점적으로 모아서 표현하는 것. 객체 지향 프로그래밍의 입장에서는 공통적으로 사용되는 속성이나 기능을 중심으로 추상화를 한다. 3. 상속성 상위 클래스의 기능을 하위 클래스가 사용할 수 있는 특성으로 기존 코드를 재활용함으로써 코드의 재사용성을 높여준다. 4. 다형성 동일한 명령을 연결된 객체에 따라서 다르게 해석할 수 있는 특성으로 Overloading과 Overriding이 있다. Overloading : 같은 이름의 함수를 여러 개 정의한 후에 매개변수를 다르게 구현하고 호출 시 매개변수에 따라 다른 함수가 호출되도.. 2022. 2. 19.