전체 글 139

Spring , log message

로깅 레벨의 의미 및 설정 로깅 레벨은 애플리케이션의 실행 상황을 다각도로 파악할 수 있도록 도와주는 각기 다른 중요도를 가진 로그 메세지이다기본설정은 info 레벨이며 , 필요시 debug , trace 레벨로 조정이 가능하다조정 : application.properties 에서 설정  - logging levelTRACE : DEBUG 보다 더 상세한정보를 표시한다.DEBUG : 내부 실행 상황을 추적하기 위한 정보 (MyBatis SQL log 확인가능.)INFO : 주요 실행정보 , 상태 변경 사항 등을 표시한다.WARN : 잠재적인 위험을 알리는 경고성 메세지ERROR : 오류 발생헀으나 애플리케이션이 계속 실행 가능한 상황FATAL : 애플리케이션 주지를 요구하는 심각한 에러 발생  logge..

Spring , 기본 mvc 패턴 제작형식 , 주요 애노테이션

패키지 구조com.example.demo01.controller → Controllercom.example.demo01.service →Servicecom.example.demo01.domain → DTOcom.example.demo01.model → DAOmain 메서드의 @SpringBootApplication @SpringBootApplicationpublic class Demo01Application { public static void main(String[] args) { SpringApplication.run(Demo01Application.class, args); }}➡️ 해당 클래스가 Springboot의 설정 클래스임을 명시하며 해당 클래스를 메인으로 실행됨해당 클래스가 있는 Pack..

spring , service를 나누는 이유

Service를 인터 페이스와 구현 클래스로 나누는 이유 Service 클래스를 인터페이스로 만들어서 구현하는 방식은 스프링에서 자주 사용되는 디자인 패턴이다.이렇게 하면 확장성과 유지보수성이 크게 향상된다.여기서 중요한 개념은 느슨한 결합과 높은 응집도인데, 인터페이스를 사용하면 각 클래스들이 서로 강하게 결합되지 않고, 기능이 변경되더라도 서로 영향을 덜 받게 된다.  인터페이스로 Service 작성:인터페이스는 클래스들이 따라야 할 규칙을 정의한다.이를 통해 여러 구현체가 동일한 메서드를 사용할 수 있게 되고, 이후 필요에 따라 구현체만 변경하면 된다.인터페이스는 구체적인 비즈니스 로직을 포함하지 않고, 어떤 작업을 수행해야 하는지 정의만 제공한다.Service 구현 클래스 작성:인터페이스를 구현하..

Spring, 스프링의 MVC

MVC 모델 스프링의 MVC (Model-View-Controllor) 모델은 웹 어플리 케이션 개발에서 가장 많이 사용되는 구조중 하나MVC 패턴은 애플리 케이션 비즈니스 로직 , UI , 그리고 이들 간의 상호작용을 분리하는데 중점을 둔다.이 구조를 사용하면 코드의 유지보수와 확장성이 좋아진다. MVC 모델의 흐름 사용자 요청: 사용자가 웹 브라우저를 통해 특정 URL을 요청하면, 요청은 DispatcherServlet으로 전달.Controller: DispatcherServlet은 해당 요청을 처리할 컨트롤러를 찾아서 매핑하고, 컨트롤러가 비즈니스 로직을 처리한다. 필요한 경우 모델 데이터를 준비하고, 이를 뷰에 전달할 준비를 한다.Model: 비즈니스 로직에서 처리된 데이터를 모델 객체로 담아 컨..

Spring , java_config 방식을 활용한 스프링 빈 설정 관리, xml과 혼용 관리

Factory 패턴  다시보는 Factory 패턴에 대하여..소스 코드 수정 없이 실시간으로 교체 작업이 필요하게 되었다.객체를 생성해서 교체해줄 역할자가 필요하다. 요구 사항에 따라 클래스를 Factory에게 전달하는 방법이 3가지가 있다. 1. xml 방식2. @ 방식3. JavaConfig(Java_code)지금 보는 방식은 3번에 해당한다. 자바 클래스를 활용한 스프링 빈 설정 이때 가장 중요한 애노테이션이 두가지가 있는데 , @Configuration과 @Bean이다.  [✔️1. @Configuration ]@Configuration은 해당 클래스가 스프링 설정 파일로 사용됨 을 의미이 클래스는 설정 파일 역할을 하므로, XML 설정 파일 없이도 자바 코드에서 직접 빈을 등록  -사용시 주의사..

Spring , @Autowired & @Qualifier 를 활용한 bean 주입

스프링 프레임 워크의 의존성 주입,@Autowired & @Qualifier 는 의존성 주입을 할 떄 사용하는 애노테이션.의존성 주입은 스프링이 자동으로 객체를 생성해주고 , 이를 필요한 곳에 주입하는 방식을 말한다. @Autowired @Autowired를 붙이면 , 스프링이 알아서 해당 타입의 빈을 찾아 멤버 변수에 넣어준다.대입의 역할만 하는거고 직접 인스턴스를 생성하는 것이 아니기 때문에,인스턴스는 미리 bean으로 생성이 되어 있어야한다.스프링은 @Autowired를 보고 메모리에 있는 타입이 일치하는 객체를 자동으로 주입해준다.속성으로는 required가 있다.@Autowired(required = false)로 설정하면, 주입할 빈이 없을 때 오류를 발생시키지 않고 null을 주입이를 통해 ..

Spring , @Component 스프링 빈 등록

XML 파일 을 통해 컴포넌트 설정@Component 애너테이션을 사용하여 클래스를 스프링 빈으로 등록하는 방법  1. XML 파일에 네임스페이스 추가하기➡️스프링에서 XML 설정 파일을 사용할 때, 특정 태그를 사용하기 위해 네임스페이스를 정의해야함.이 경우, context 네임스페이스가 필요 애너테이션 (Annotation, @) Component 를 Scan 할 패키지 정의  2. Component 스캔 패키지 정의하기//-> 이 패키지를 읽어서 애너테이션이 있다면 전부 한번씩 생성한다.@Component가 붙은 클래스들을 스프링 컨테이너에서 자동으로 스캔해서 빈으로 등록하려면,context:component-scan 태그를 사용해 패키지를 정의해야한다.이 패키지 안의 클래스들을 스캔해서 스프링 빈..

Spring , 의존성 처리 방법

Spring 의 의존성 처리 ? ➡️스프링에 대해 다시보기➡️스프링 컨테이너에 대해 다시보기 Spring 의 의존성 처리는 객체간의 결합도를 낮추고 유연한 설계를 하기 위해 중요한 개념이다.의존성 주입 (Dependency Inhection , DI)은객체를 직접 생성하는 대신 외부에서 주입받는 방식을 통해 의존성을 해결하는 방법을 말한다.의존성 주입에는 크게 두가지 방법이 있는데 생성자 주입방식과 setter 주입 방식이다.이 두가지 외에도 고전적 방법으로 직접 객체를 생성하는 방법도 있다이 세가지 방식에 대해 알아보자. 1. 고전적 방법직접 new 키워드로 객체 생성고전적인 방법은 클래스가 자신의 의존성을 직접 관리하는 방식.즉, 필요한 객체를 내부에서 new 키워드를 사용하여 생성하는 방식.publ..

Spring , FactoryBean . 스프링 컨테이너

스프링이란 ?➡️앞서 보고오기 링크 Spring , 스프링 프레임 워크란 ?스프링 프레임 워크의 특징을 한줄로 서술한다면," IoC와 AOP를 지원하는 경량의 컨테이너 프레임 워크"   경량크기 측면에서 가볍다.스프링은 여러개의 모듈로 구성되어 있으며 , 각 모듈은 하radaonmommy.tistory.com   BeanFactory 개념예전 프로그래밍에서는 절차지향이였고 , 이후에 객체 지향이 되어가면서 다형성이 적용되었다. [✔️절차 지향 ]➡️ 인스턴스 교체가 필요할 경우 새로이 생성하여 사용// test 01 . 절차지향System.out.println("test 01 . 절차지향");//SsTV tv = new SsTV();//tv.turnOn();//tv.turnOff();//tv.soundU..

JAVA , Exception의 직접 처리와 위임 처리 , 사용자 정의 Exception

1. 직접 처리 해당 메서드 내에서 try ~ catch 블럭 처리public static String readString1() { byte [] bf = new byte[100]; System.out.println("readString1 ) 문자를 입력하세요."); System.in.read(bf); //컴파일 오류 : Unhandled exception…} Java의 system.in.read()메서드는 입력 스트림에서 바이트를 읽어들이는 과정에서 다양한 예외가 발생할 수 있기 때문에 이를 처리할 필요가 있다. 입력 및 출력 작업 중에 발생하는 예외로, 스트림이 닫혔거나, 입출력 장치가 사용 불가능한 경우에 발생 → IOException즉 system.in.read 는 IOException 을 던질 ..

Developer/JAVA 2024.09.23
728x90