swimminginthecode DIVE!

BACK/Spring 19

Spring 07

로그 레벨 순서TRACE > DEBUG > INFO > WARN > ERROR > FATAL종류설명TRACEDEBUG보다 조금 더 상세한 정보DEBUG프로그램을 디버깅하기 위한 정보 지정INFO상태 변경과 같은 정보성 메시지 WARN처리 가능한 문제, 향후 에러가 발생할 수 있는 경고성 메시지ERROR요청을 처리하는 중 문제가 발생한 경우FATAL아주 심각한 에러가 발생한 상태, 애플리케이션 작동이 불가능할 경우JPA에서 lombok의 @Data@Getter, @Setter, @EqualsAndHashCode, @ToString, @RequiredArgsConstructor, @AllArgsConstructor 가 포함된 어노테이션 lombok이 제공하는 @Data 어노테이션은 여러 기능을 한번에 제공하..

BACK/Spring 2024.07.22

Spring 06

hibernate자바 언어를 위한 ORM 프레임워크로, JPA*를 구현하며 내부적으로는 JDBC** API를 사용한다.* JPA : 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스** JDBC : 자바 프로그래밍 언어와 다양한 데이터베이스 SQL 또는 테이블 형태의 데이터 사이에 독립적인 연결을 지원하는 표준 장점단점생산성SQL을 직접 사용하지 않고, 메소드 호출만으로 쿼리가 수행되므로 반복 작업을 하지 않아 생산성이 높아진다.성능메소드 호출만으로 쿼리를 수행하는 것은 직접 SQL문을 작성하는 것보다 성능상 좋지 않다.유지보수테이블 컬럼이 변경되었을 때, 관련된 DAO의 파라미터, 결과, SQL 등을 대신 수행해 주기 때문에 유지보수 측면에서 좋다.세밀함메소드 호출만으로 데이..

BACK/Spring 2024.07.19

Spring 05 - JdbcDaoSupport

JdbcDaoSupport여러 Template* 들을 위한 클래스로, 자체적으로 jdbcTemplate와 dataSource** property를 가진다. DataSource 객체가 주입되면 내부적으로 JDBC template 객체를 생성하므로 설정 파일에 JDBC template bean을 명시적으로 선언할 필요가 없다.* Template : 리소스를 생성, 해지 처리하고 statement의 생성과 실행을 처리하며 SQL 조회, 업데이트, 저장 프로시저 호출, resultset 반복 호출 등을 실행** DataSource : DB와의 커넥션을 제공하는 factory 객체사용해 보기public class Sample extends JdbcDaoSupport { // @Autowired 사용으로 의..

BACK/Spring 2024.07.16

Spring 04 - annotation

AOP에 관련된 annotation @PointcutAOP를 적용시킬 지점을 설정@Before설정한 pointcut 의 메소드를 실행하기 전에 수행하도록 설정@After설정한 pointcut 의 메소드를 실행한 뒤에 수행하도록 설정 (예외 상관 없음)메소드 호출 성공시에만 수행하도록 설정하고 싶을 경우 @AfterReturning메소드 호출 실패시에만 수행하도록 설정하고 싶을 경우@AfterThrowing@Around설정한 pointcut 의 메소드를 실행하기 전, 실행한 뒤를 모두 제어하도록 설정@AspectAOP 를 정의하는 클래스를 설정  참고 블로그 Spring AOP(2) @Annotation 설정 및 실습, 트랜잭션 사용하기 (velog.io)

BACK/Spring 2024.07.15

Spring 03 - annotation

@Value설정 파일에 설정한 내용을 주입하는 어노테이션. DB 연결에 필요한 정보 같은 민감한 정보들은 파일로 따로 빼 두어 관리하는데, 이 파일을 필요한 곳에 주입해 주는 역할을 한다.@Qualifier@Autowired 를 사용해 의존성을 주입할 때, 동일한 타입을 가진 bean 객체가 두 개 이상일 때 사용할 의존 객체를 선택할 수 있도록 하는 어노테이션. 단독으로 사용하지 않는다.@PostConstruct의존성 주입이 완료된 후 실행되어야 하는 메소드에 설정하는 어노테이션. 다른 리소스에서 호출하지 않아도 수행된다.  주로 생성자가 호출될 때 Bean의 초기화를 위해 사용한다.@PreDestroy마지막 소멸 단계에서 실행되어야 하는 메소드에 설정하는 어노테이션. 주로 Bean을 제거하기 전 수행..

BACK/Spring 2024.07.12

Spring 03

POJO (Plain Old Java Object)오래된 방식의 간단한 자바 객체라는 뜻으로, 필드와 Getter · Setter 같은 기본 기능만을 갖은 기본 객체를 의 POJO 규칙객체 지향적인 설계를 하였는가?특정 기술에 종속되어 있지 않은가?테스트가 간편하고 용이한가?Spring EL (SpEL)객체 그래프를 조회하고 조작하는 기능을 제공한다. Unified EL과 비슷하지만, 메소드 호출을 지원하며, 문자열 템플릿 기능도 제공한다.· #{"표현식"}· ${"프로퍼티"}· 표현식은 프로퍼티를 가질 수 있지만, 프로퍼티가 표현식을 가지는 것은 불가SpEL을 사용하는 스프링 프로젝트@Value@ComditionalOnExpressionspring-security @PreAuthorize @PostAu..

BACK/Spring 2024.07.11

Spring 02 - annotation

@Configuration스프링 IoC Container에게 해당 Class가 Bean 구성 Class 임을 알려 주는 어노테이션.@Bean을 해당 클래스의 메소드에 적용하면 @Autowired로 빈을 부를 수 있다.@Bean개발자가 직접 제어가 불가능한 외부 라이브러리 등을 Bean으로 만들려고 할 때 사용되는 어노테이션@Component개발자가 직접 작성한 Class를 Bean으로 등록하기 위한 어노테이션.@ComponentScan 선언에 의해 특정 패키지 안의 클래스들을 자동 스캔하여 @Component 어노테이션이 있는 클래스들에 대하여 Bean 인스턴스를 생성.Component에 대한 추가 정보가 없다면 Class의 이름을 camelCase로 변경한 것이 Bean id로 사용되지만, @Compo..

BACK/Spring 2024.07.04

Spring 02

constructor injection생성자를 통해 의존 관계를 주입하는 방법public class Message { private String msg; public Message(String msg) { this.msg = msg; }} 메시지  setter injection객체의 필드에 대한 의존성을 설정하는 메소드를 통해 주입하는 방법 public class Message { private String msg; public void setMsg(String msg) { this.msg = msg; }} 메시지 singleton scope, prototype scope스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어, 스..

BACK/Spring 2024.07.04

Spring 01

Spring엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해 주는 오픈 소스 경량급 애플리케이션 프레임워크Spring의 특징종류설명IoC (제어의 역행)작업을 수행하는 쪽에서 객체를 생성하는 일반적인 개념을 뒤집은 것으로, 프로그램 제어를 자신이 아닌 다른 곳에 위임하는 것이다.1. IoC에서는 객체가 자신이 사용할 객체를 생성하거나 선택하지 않는다.2. 객체는 자신이 어떻게 생성되고 어떻게 사용되는지 알 수 없다.3. 모든 객체는 제어 권한을 위임받은 특별한 객체(컨테이너)에 의해 만들어지고 사용된다.DI (의존성 주입)클래스 간의 의존관계를 Bean 설정에 기반해 컨테이너가 자동으로 연결해 주는 방식이다. AOP (관점 지향 프로그래밍)횡단 관심사*의 분리를 허용함으로써 모듈성을 증가..

BACK/Spring 2024.07.03