Programming 67

[Spring] 스프링 AOP 개념 이해 및 적용 방법

[Spring] 스프링 AOP 개념 이해 및 적용 방법 1. AOP(Aspect Oriented Programming) Spring은 Spring Triangle이라고 부르는 세 가지 개념을 제공해준다. 각각 IoC, AOP, PSA를 일컫는다. AOP는 Aspect Oriented Programming의 약자로 '측면/양상 지향적인 프로그래밍'이라는 의미이다. '측면/양상 지향 프로그래밍'이 무엇을 의미하는가? class A { method a() { AAAA method a가 하는 일들 BBBB } method b() { AAAA method b가 하는 일들 BBBB } } class B { method c() { AAAA method c가 하는 일들 BBBB } } cs 위와 같이 동일한 일을 하는..

Programming/Spring 2022.05.29

[Spring] 스프링을 시작하며 : 스프링 프레임워크의 개념과 특징, MVC 구조, 스프링 부트 (Spring Framework, Spring MVC, Spring boot)

> 스프링 프레임워크 (Spring Framework) 스프링(Spring) 이란? 자바 엔터프라이즈 개발을 편하게 해주는 오픈 소스 경량급 애플리케이션 프레임워크 - 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공 - 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다 스프링의 특징 ˙ 경량 컨테이너로서 자바 객체를 직접 관리한다 ˙ POJO(Plain Old Java Object) 방식의 프레임워크 - POJO : 단순하고 가벼운 자바 객체(우리가 자바에서 개발하는 지극히 평범한 객체) ˙ IoC(Inversion of Control; 제어 반전) 지원 - 필요에 따라 컨트롤의 제어권을 사용자가 갖지 않고 스프링에서 사용자의 코드를 호출 ˙ DI(Dependency injection; 의..

Programming/Spring 2022.05.29

[스프링부트 (1)] 스프링부트 시작하기 (SpringBoot 프로젝트 설정 방법)

[스프링부트 (1)] 스프링부트 시작하기 (SpringBoot 프로젝트 설정 방법) 이번 포스팅은 [ 스프링 부트 기초. 스프링 부트란? 그리고 스프링 부트 프로젝트 생성 방법 ] 입니다. : ) 스프링 부트가 나온지 어느덧 꽤 많은 시간이 흐른것 같다. 계속 해오던 쇼핑몰 운영 업무를 해오다 보니 스프링 부트를 제대로 사용할 일이 없어, 이번 잠시 주어진 휴식 기간에 스프링 부트에 대한 내용을 정리해 보려 한다. 운영 업무를 하다보면 쓰던 기술, 해오던 업무에 익숙하고 무언가의 불안함이 생긴다. 다시 SI를 하고 싶은 마음도 간간히 생기기도 하고.. 주저리 그만하고 스프링 부트에 대해 알아보자. 1. SpringBoot 기초 ▶ 스프링 부트란? - 스프링 프레임워크를 사용하는 프로젝트를 아주 간편하게 ..

Programming/Spring 2022.05.29

[스프링부트 (12)] SpringBoot 에러 페이지 설정(Custom Error Page)

[스프링부트 (12)] SpringBoot 에러 페이지 설정(Custom Error Page) 이번 포스팅은 [ Spring Boot Custom Error Page ] 입니다. : ) 0. 에러 페이지를 만들기 앞서 개발하면서 기본적으로 tomcat에서 제공 되는 에러 페이지를 보았을 것이다. 이번 포스팅에선 이런 에러 페이지를 커스터마이징 하기 위한 내용들을 알아보려고 한다. ▶ 공식 문서 참고 https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-error-handling 들어가기 앞서 공식 doc에 있는 내용을 먼저 살펴 보도록 하자. By default, Spring..

Programming/Spring 2022.05.29

[스프링부트 (11)] SpringBoot YAML 적용하기(properties vs yaml)

[스프링부트 (11)] SpringBoot YAML 적용하기(properties vs yaml) 이번 포스팅은 [ Spring Boot Properties 대신 YAML적용하기 ] 입니다. : ) 1. YAML이란? ▶ YAML (YML Ain't Markup Language) - 자세한 내용은 위키 참조(위키를 참조하여 간략히 정리 하였다.) : https://ko.wikipedia.org/wiki/YAML - XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 '사람이 쉽게 읽을 수 있는' 데이터 직렬화 양식. - YAML은 모든 데이터를 리스트, 해쉬, 스칼라 데이터의 조합으로 적절히 표현할 수 있다는 믿음을 가지고 만들어졌다. 문법은 상대적으로 이해하기..

Programming/Spring 2022.05.29

[스프링부트 (10)] SpringBoot Test(3) - 단위 테스트(@WebMvcTest, @DataJpaTest, @RestClientTest 등)

[스프링부트 (10)] SpringBoot Test(3) - 단위 테스트(@WebMvcTest, @DataJpaTest, @RestClientTest 등) 이번 포스팅은 [ 스프링 부트 단위 테스트 하기 (@WebMvcTest, @DataJpaTest, @RestClientTest, @JsonTest 등)] 입니다. : ) 0. 들어가기 앞서 이번 포스팅의 대부의 내용도 공식 레퍼런스 문서에 더 자세하게 나와 있다. 다음 공식 문서를 꼭 참고 하면 좋을 것 같다. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing SpringBoot는 테스트 목적에 따라 다양..

Programming/Spring 2022.05.29

[스프링부트 (9)] SpringBoot Test(2) - @SpringBootTest로 통합테스트 하기

[스프링부트 (9)] SpringBoot Test(2) - @SpringBootTest로 통합테스트 하기 이번 포스팅은 [ 스프링 부트 통합 테스트 하기 (@SpringBootTest)] 입니다. : ) 0. 들어가기 앞서 이번 포스팅의 대부분의 내용은 공식 레퍼런스 문서에 더 자세하게 나와 있다. 다음 공식 문서를 꼭 참고 하면 좋을 것 같다. https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-testing SpringBoot는 테스트 목적에 따라 다양한 어노테이션을 제공한다. ☞ 통합테스트 @SpringBootTest ☞ 단위테스트 @WebMvcTest, @DataJp..

Programming/Spring 2022.05.29

[스프링부트 (8)] SpringBoot Test(1) - Junit 설정 및 실행

[스프링부트 (8)] SpringBoot Test(1) - Junit 설정 및 실행 이번 포스팅은 [ 스프링 부트 테스트 시작하기 (Junit 테스트 방법)] 입니다. : ) 0. 들어가기 앞서 사실 Junit을 포스팅 한다기 보다는 Spring Boot에서 제공하는 테스트 기능을 사용하기 앞서 한번 끊어가는 시간이라고 보면 될 것 같다. 궁극적으로는 스프링 부트에서 제공하는 기능으로 통합테스트, 단위테스트 방법을 정리 하려고 한다. 이에 앞서 기본적으로 사용되는 Junit의 설정 및 IntelliJ에서 Junit 테스트 방법에 대해 간단히 정리 하려고 한다. 1. Junit 설정 ▶ 1. Junit 이란? 특징? - Java에서 독립된 단위테스트(Unit Test)를 지원해주는 프레임워크이다. - 단정..

Programming/Spring 2022.05.29

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정

[스프링부트 (7)] Spring Boot JPA(1) - 시작 및 기본 설정 이번 포스팅은 [ 스프링 부트 JPA 설정 방법] 입니다. : ) 0. 기본개념 JPA를 들어가기 전에 ORM부터 간단하게 알아보자. 실제 예제부터 먼저 돌려보고 나중에 이해해도 무방 할 것 같다. # ORM이란? - Object-Relational Mapping (객체와 관계형데이터베이스 매핑, 객체와 DB의 테이블이 매핑을 이루는 것) - 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 이다. - 프로그램의 복잡도를 줄이고 자바 객체와 쿼리를 분리할 수 있으며 트랜잭션 처리나 기타 데이터베이스 관련 작업들을 좀 더 편리하게 처리할 수 있는 방법 - SQL Query가 아닌 직관적인 코드(메서드)로서 데이터를 조작할 수 있다..

Programming/Spring 2022.05.29

[스프링부트 (6)] Spring Boot 로그 설정(2) - DB로그(log4jdbc)

[스프링부트 (6)] Spring Boot 로그설정(2) - JDBC 로그 (log4jdbc) 이번 포스팅은 [ 스프링 부트 DB 로그 설정] 입니다. : ) 0. logback 앞서 포스팅에서 logback설정을 해보았을 것이다. 다만 스프링 부트에서 logback은 기본으로 포함되어 있지만 jdbc에 대한 logback 설정은 되어 있지 않기 때문에 추가 설정이 필요하다. 이 부분에 대해서 간단하게 다음 포스팅과 같이 설정하면 하면되니 참고 하도록 하자. 1. JDBC 로그 설정 이번 포스팅에선 log4jdbc를 사용하려 쿼리를 예쁘게 찍어보려 한다. 쿼리문을 Console또는 로그 파일로 출력하고자 할때 다음과 같은 설정을 하면 된다. ▶ 1. 라이브러리 추가 (디펜던시 추가) 1) 메이븐 사용시 ..

Programming/Spring 2022.05.29