본문 바로가기

Spring5

Spring AOP AOP(Aspect Oriented Programming) Spring의 핵심 개념중 하나이며 관점지향 프로그래밍을 의미한다. 관점지향 프로그래밍이란 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 나누어진 관점들을 기준으로 각각 모듈화 하겠다는 의미다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는것을 의미한다. 예를들어 핵심적인 관점이란 개발자가 적용하고자 하는 핵심 비즈니스 로직이 된다. 또한 부가적인 관점은 핵심 로직을 실행하기 위해서 행해지는 데이터베이스 연결, 로깅, 파일 입출력 등을 예로 들 수 있다. AOP에서 각 관점을 기준으로 모듈화한다는 것은 코드들을 부분적으로 나누어 모듈화하겠다는 의미가 된다. 이때, 소스 코드상에서 수행되는 비즈니스 로직.. 2023. 1. 1.
Spring Spring Java Enterprice 개발을 편하게 해주는 Opensource 경량급 Application Framewrok DI(Dependency Injection), IoC(Inversion Of Control), AOP(Aspect Oriented Programming)를 지원하는 경량의 컨테이너 Java 개발을 위한 Framewrok로 종속 개체를 생성해주고, 조립해주는 도구 자바로 개발할때 편하게 개발할 수 있도록 도와주는 도구이다. Container Spring 하면 빠질 수 없는 키워드이다. Container는 자바 객체의 생명주기를 관리하며, 생성된 Java 객체들에게 추가적인 기능을 제공하는 역할을 한다. 여기서 말하는 Java 객체를 Spring에서 Bean이라고 부른다. Spri.. 2022. 12. 31.
ORM 최근 JPA에 대해 공부하고 있다. JPA란 Java Persistence API의 약자로 현재 자바 진영의 ORM 기술 표준이라고 한다. JPA는 자바어플리케이션에서 RDB(관계형 데이터베이스)를 사용하는 방식을 정의한 인터페이스이다. 따라서 무언가 특정기능을 하는 기술은 아니라는 것이다. 스프링의 PSA에 의해 표준 인터페이스를 정하는데 그 중 ORM을 사용하기 위해 만들어진 인터페이스가 바로 JPA라고 한다. 그렇다면 ORM이란 무엇인가?? 보통 자바에서 DB를 사용할 때에는 SQL Mapper를 이용한다. 그렇다면 ORM과 Mapper는 어떤 차이가 있을까? Mapper는 SQL(쿼리)를 직접 명시해주어야 한다. 하지만 ORM은 DB테이블을 자바 객체로 매핑함으로써 그 관계를 바탕으로 SQL을 자.. 2021. 2. 17.
@Valid를 이용한 데이터 유효성 체크 최근 회사일이 많이 바빠서 따로 개인공부를 할 시간이 없었다....(사실은 퇴근하면 피곤해서 아무것도 하기 싫었었다가 맞다 ㅎㅎㅎ) 아무튼 오늘은 @Valid 어노테이션을 통한 데이터 유효체크에 대해 글을 작성해보고자 한다. 최근 Map에서 DTO를 이용한 방식으로 작업방식을 바꾸면서 한가지 애를먹은 부분이 있었다. 보통 API 개발을 할 때 request parameter를 넘겨받을 때 HttpMethod가 Post 또는 Put일 경우 특정 데이터를 필수적으로 요구해야하는 경우가 있을 수 있다. 이럴 때에는 필수적으로 요구하는 데이터가 없는 경우 별도의 예외상황을 발생시켜 요청자에게 이러한 부분으로 문제가 발생했다는 것을 알려야하는데 통상적으로 400(Bad Request) 응답으로 처리했었다. Map.. 2020. 12. 15.