목록백엔드 (52)
wintertreey 님의 블로그
스프링 프레임워크는 자바 기반의 엔터프라이즈 애플리케이션 개발을 위한 강력한 도구로써, 다양한 기능과 라이브러리를 제공하여 개발자가 보다 쉽게 엔터프라이즈 레벨의 프로젝트를 개발할 수 있다.스프링 부트는 스프링 기반 애플리케이션을 더 빠르고 쉽게 개발할 수 있도록 도와주는 도구이다. 개발 프로젝트의 기본적인 설정을 자동으로 해주며, 내장 서버를 통해 별도의 서버 설정 없이 애플리케이션을 실행할 수 있게 해준다. 이 기능들은 개발자가 애플리케이션을 더 빠르게 개발하고 배포할 수 있게 해주기 때문이다.다시 말해 스프링 부트는 스프링의 설정을 자동화하고, 개발자가 비즈니스 로직에 더 집중할 수 있게 해주며, 애플리케이션의 빠른 프로토타이핑과 개발을 가능하게 한다. 스프링부트의 자동설정 + mvc 패턴의 역..
AOP의 핵심기능, 부가기능 애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다. 핵심 기능 Core Concerns : 해당 객체가 제공하는 고유의 기능. 부가 기능 Cross-cutting Concerns : 핵심 기능을 보조하기 위해 제공되는 기능 ( ex: 로그 추적 기능, 트랜잭션 기능 )보통 기존 프로젝트에 부가 기능을 추가하게 되면, 그림처럼 하나의 클래스가 아닌 여러 클래스에 부가 기능을 추가하게 된다. 예를 들어서 프로젝트의 모든 클래스에 로그 기능을 추가 한다고하면, 하나의 부가 기능(로그 추적)을 여러 곳에 동일하게 사용하게 된다. AOP란?Aspect Oriented Programming 관점 지향 프로그램 객체지향의 기본원칙(OOP)으로는 핵심기능에서 부가기능을 분리..
@Qualifier@autowired 타입으로 매핑!@Autowired private SenderInter senderInter;라고 해주고 sender, sender2 둘다 인터페이스해주면 expected single matching bean but found 2: sender,sender2라고 에러문구가 뜬다. 인스턴스된 객체가 두개라 에러가 떨어지는것. 해결방법 :@Qualifier("sender")센더인터타입이 두갠데, 그중에 센더와 매핑한다는것.즉 퀄리파이어는 오토와이어드의 보조어노테이션 @Resource @Resource는 @Autowired와 달리 객체변수이름으로 매핑을 한다. pojo란?POJO란 Plain Old Java Object의 약자로, 이를 직역하면 순수한 오래된 자바 객체..
@Scope("Singleton") vs @Scope("prototype")스코프의 기본값이 싱글톤인건 앞서 공부했다. 그렇다면 프로토타입, 싱글톤은 어떤 상황에서 구분해서 사용할 수 있을까 Bank.javapackage pack.bank;public interface Bank { void inputMoney(int money); //입금 void outputMoney(int money); //출금 int getMoney(); //잔고확인}HanaBank.javapackage pack.bank;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Component;@Component//@Scope(..
MyBatis란?MyBatis는 자바 개발자들이 데이터베이스를 쉽게 다룰 수 있도록 도와주는오픈 소스 ORM(Object-Relational Mapping) 프레임워크이다. MyBatis의 주요 장점유연성: SQL 쿼리를 직접 작성할 수 있으므로 매우 유연하다. 또한, MyBatis는 동적 쿼리를 작성할 수 있다.간결성: MyBatis는 SQL 쿼리와 프로그래밍 언어 코드를 분리하기 때문에 코드가 간결해져 유지보수에 용이성능: MyBatis는 캐시 기능을 제공하여 데이터베이스 연산 속도를 높일 수 있다.다양한 데이터베이스 지원: MyBatis는 다양한 데이터베이스에 대한 지원을 제공한다. Configuration.xml m..
이번에는 Constructor Injection, Setter Injection 모두 적용시켜보자. Sum up! 기본 작업pom.xml - maven 작업. dependencies 넣어주기 분류작업을 위해 package model, controller, other를 만들어주었다. Model 부터 시작인터페이스 & 클라스 생성하기. MyInfoInter.javapackage pack.model;public interface MyInfoInter { String myData();} MyInfo.javapackage pack.model;public class MyInfo implements MyInfoInter { @Override public String myData() { return "취미는 ..
우리가 Spring을 사용하는 수 많은 이유중에 대표적인 장점을 꼽으라면 의존성 주입 컨테이너에 관한 내용을 빼놓을 수 없다. 스프링은 자바 빈을 찾아서 ApplicationContext라고 하는 의존성 주입 컨테이너 오브젝트에 등록을 한다. 그리고 애플리케이션이 돌다가 어떤 오브젝트가 필요하다면 의존하는 오브젝트를 찾아서 연결해준다. 그렇다면 스프링은 어떻게 자바 빈을 찾아가지고 의존성 주입 컨테이너에 등록하는걸까?? @Component 어노테이션으로 이 클래스를 자바 빈으로 등록하라고 알려줄 수 있다. @Component@Component 어노테이션을 붙이면 이 클래스를 자바 빈으로 등록시키라고 알려줄 수 있다. 해당 어노테이션이 명시되어 있으면 Spring이 자동으로 클래스의 인스턴스를 생성해준다...
앞서 constructor injection에 대해서 실습해보았다. 이번엔 setter injection. 생성자의 경우 객체생성을 1번만 할 수있다.그에 반해 setter의 경우 생성자보다 더 유연하다는 장점이 있다. 연습pom.xmlmaven 프로젝트이기에 dependency 부분 추가해서 넣어준다. ShowData.javapackage pack;public class ShowData { public String processNickName() { return "홍길동"; } public String processHobby() { return "프로그래밍 만들기"; }} MyProcess.javapackage pack;public class MyProcess { //DI 중 setter i..