Develop23 [Spring] IoC/Di? 객체 주입 방법 ⭐IoC란 (제어의 역전)?프로그램 제어 흐름이 전통적인 방식과 다른 즉 개발자가 제어 하는것이 아닌, 프레임워크가 프로그램 제어 (객체 생성,호출,소멸) 하는 방식. ⭐IoC가 필요한 이유는? 객체를 관리해주는 프레임워크와 내가 구현 하고자 하는 부분으로 역할과 관심을 분리해 응집도를 높이고 결합도를 낮추며, 이에 따라 변경에 유연한 코드를 작성 할 수 있는 구조가 될 수 있기 때문에 제어를 역전한 것이다. ⭐DI란(의존성 주입)이란?스프링 컨테이너에서 객체를 주입해주는 방식이다. 의존 관계 주입 방법은 3가지가있다.1.필드 주입2.setter 주입3.생성자 주입 ⭐ (생성자 주입을 선호한다) 1. 필드주입@Componentclass Door {}@Component class Engine {} @C.. 2024. 8. 29. [Spring] Bean/component-scan 동작 과정 ⭐Bean 이란 ? spring 컨테이너가 관리하는 객체이가 바로 빈이다. new 연산자로 생성하는 자바 객체는 스프링이 관리하지 않기 떄문에 빈이 아니다 ⭐스프링 컨테이너Bean의 저장소, Bean을 저장,관리(생성,소멸,연결)을 스프링 컨테이너가 해준다. ⭐Bean 등록방법빈을 등록하는 방법은 3가지xml 파일에 직접 등록 @Bean 어노테이션을 이용@Component, @Controller, @Service, @Repository 어노테이션을 이용 1. 객체를 xml에 등록 2.@Bean 어노테이션을 이용package com.example.myapp.di;import org.springframework.beans.factory.annotation.Configu.. 2024. 8. 29. [Java] JVM , 자바 프로그램 실행 과정 ✅JVM(Java virtual Machine)PermalinkJvm은 자바를 실행하기 위한 가상 컴퓨터 이다.(자바로 작성된 애플리케이션은 모두 이 가상 Jvm 에서 실행)✅JDK(Java Development kit)자바 개발도구PermalinkJDK를 설치하면 JVM,JAVA API외에 자바를 개발하는데 필요한 프로그램들이 설치된다.Javac.exe 자바 컴파일러. 자바소스코드를 바이트코드로 컴파일java.exe 자바 인터프리터. 컴파일러가 생성한 바이트코드를 해석하고 실행한다.✅컴파일과 실행Permalink✅컴파일 과정Permalink.java 자바 소스코드 작성(.java는 사람이 이해할수있는언어,즉 본인이 작성한 소스코드)자바 컴파일러 javac를 통해 .class 파일 생성(.class파일은.. 2024. 8. 27. [Java] String, StringBuilder, StringBuffer의 차이 코딩을 하면서 문자열을 다루는 일은 엄청 많다. 하지만 3개의 클래스 전부 String, StringBuilder, StringBuffer 문자열을 다루는 클래스나, 정확히 어떤 차이를 갖고있는지 잘 알고 사용해야한다. String 불변 클래스String은 한번 생성되면 내용을 변경할수 없는 불변 클래스 이기떄문에 아래 예제처럼 문자의 결합을 하면 새로운 문자로 바뀌고 새로운 String의 인스턴스가 생성된다. 이러한 + 를 이용한 문자 결합은 성능이 떨어진다. String a = "abc"String b = "d" a = a+b ; StringBuffer 와 StringBuilder 가변 클래스String의 불편 클래스와 달리 StringBuffer 와 StringBuilde는 객체의 공간이 .. 2024. 7. 16. [Java] 자료구조 Arraylist/LinkedList 특징 개발시에 실제 다루고자하는 데이터의 특징을 파악하고 어떤 인터페이스를 구현할 컬렉션 클래스를 사용해야하는지 잘 알아야 함으로써 각 인터페이스의 특징과 차이점을 잘이해하고 있어야 한다. ✅컬렉션 프레임웍크 핵심 인터페이스✅ArrayListArrayList란 일반 배열을 사용하지만, 일반 배열과 다른점은 맴버변수로 object 배열을 선언하기떄문에 다양한 타입의 객체를 저장할수있다. ✅ArrayList 에 저장된 객체의 삭제 과정ArrayList에 저장된 세 번쨰 데이터를(data[2])를 삭제하는 과정 (1/2).list.remove(2);를 호출삭제할 데이터 아래의 데이터를 한 칸씩 위로 복사해서 삭제할 데이터를 덮어쓴다.데이터가 모두 한 칸씩 이동 했으므로 마지막 데이터는 null로 변경한다.데.. 2024. 7. 10. [Spring] Spring vs Springboot 차이 .스프링 프로젝트 종류기술명설명스프링 프레임워크핵심스프링 부트여러 스프링 기술 편리하게 사용하도록 help스프링 데이터CRUD 사용 편리하게스프링 세션세션 기능 편리하게스프링 시큐리티보안 관련스프링 Rest DocsAPI 문서화스프링 배치배치 처리 특화스프링 클라우드클라우드 관련 스프링 프로젝트에는 여러가지 기술이있다. 스프링 프레임워크를 중심으로 다양한 기술들을 만들어 더욱 개발자가 스프링 기반의 애플리케이션을 편히 개발할수 있도록 도와준다. 스프링 프레임워크?Java 기반 애플리케이션 개발을 지원하는 오픈소스 애플리케이션 프레임워크이다. 우리가 스프링을 사용하는 진짜 이유는 자바언어의 '객체 지향' 특성을 잘 살려내는 프레임워크 이기떄문이다.즉 유연하고 변경에 유리하게 코드를 작성할수있게 스프링.. 2024. 6. 2. [Spring] 스프링 xml 설정 파일 - web.xml, root-context.xml, servlet-context.xml 차이 web.xml, root-context.xml, servlet-context.xml 에서 스프링 관련 설정 파일들을 빈으로 주입 시켜주는데 상황에 따라 xml 설정 파일에 주입 위치가 달랐다. 서로 어떤 차이가 있는지 궁금했다. web.xml WAS가 최초로 구동시킬떄 web.xml파일을 읽어 각종 설정들을 정의해준다. web.xml 파일에는 주로 이러한 설정을 해준다. DispatcherServlet, Filter , ContextLoaderListener, contextConfigLocation /WEB-INF/spring/root-context.xml org.springframework.web.context.ContextLoaderListener appServlet.. 2024. 5. 21. [Spring] DAO,DTO,VO 알아보기 DAO(Data Access Object) 데이터베이스의 데이터에 접근하기 위해 생성하는 객체, 데이터베이스에 접근하기 위한 로직과 비지니스 로직을 분리하기 위해서 사용된다. 즉, DB에 CRUD 작업을 수행하는 클래스 이다 DTO(Data Transfer Object) 계층간의 데이터를 주고 받기 위해 사용되는 객체(바구니) DTO 특성상 데이터 전달 목적으로 사용하기떄문에 getter/setter 메서드를 제외한 다른 로직은 필요하지 않다. setter 를 이용하여 값을 담아 전달하고, 받는 에서는 getter를 이용해서 값을 꺼내 사용. VO(Value Object) 값 그자체를 나타내는 객체. DTO와 반대로 로직을 포함할수 있으며 , VO의 경우 특정 값 자체를 표햔하기 떄문에 불변성의 보장을 .. 2024. 3. 13. [Java/Error] 기본 생성자가 필요한 이유 클래스를 작성하면서 기본 생성자는 왜 쓰는건지 , 메개변수가 존재하는 생성자를 만들면 왜 기본생성자를 만들어줘야 하는지 이해하지 못했다, 해당 예제를 접하면서 기본생성자의 필요성을 이해할수 있었다. 컴파일 오류 class Point{ //부모 int x; int y; Point(int x, int y) { this.x = x; this.y = y; } String getLocation() { return "x:"+x + ", y:" + y; }}class Point3D extends Point{//자식 int z; Point3D(int x, int y, int z) { this.x = x; .. 2024. 3. 2. 이전 1 2 3 다음