스프링 3

[Spring/스프링] AOP(Aspect Oriented Programming) 이해하기

AOP가 뭔가요? AOP를 설명하기 전, 한가지 상황을 예시로 들어보자. /** * 회원가입 메소드 */ public Long join(Member member){ validateDuplicateMember(member); memberRepository.save(member); return member.getId(); } 위와 같은 회원가입, 회원 조회 등, 1000개의 메소드로 이루어진 회원 관리 프로그램이 있다. 모종의 이유로 회원관리 프로그램에서 모든 메소드의 호출시간과 종료시간을 측정해야 한다고 가정해보자 /** * 회원가입 메소드 */ public Long join(Member member){ long start = System.currentTimeMillis(); try{ validateDup..

Programming/Spring 2022.03.06

[Spring/스프링] Persistence Layer를 위한 JDBC, JPA

지금까지 공부했던 내용은 '메모리에 데이터를 임시 저장'하여 테스트에 사용 하는 비영속적인 방식이었다. 이에 이번 게시글에서는 관계형 데이터베이스 등을 활용하여, 데이터를 영구적으로 DB에 저장하여 영속성을 부여하는 몇가지 방법에 대해 설명할 것이다. JDBC 란 무엇인가요? JDBC의 사전적 정의는 ‘자바에서 DB에 접속할수 있도록 하는 자바 API’로 , 데이터베이스에서 자료를 쿼리하거나 업데이트 하는 방법을 제공한다 이와 관련 한 이야기에 앞서, 프로그램의 아키텍처에서 영속성을 부여해주는 Persistence Layer라는 계층이 존재한다 Persistence Layer 계층을 구현하는데 사용되는 것이 바로 JDBC이다! 하지만 최근의 모든 Java Data Access 기술의 내부적으로 JDBC ..

Programming/Spring 2022.03.06

[Spring/스프링] MVC와 템플릿엔진

MVC가 왜 필요한가요? 정적 컨텐츠를 사용하면 안되나요? 대다수의 웹 개발에서는 HTML을 그대로 주는 것이 아니라 서버에서 필요에 따라 프로그래밍 하여 동적으로 바꾸는 작업이 필요하다. 이런 작업을 원활하게 수행하기 위해서는 각각의 역할을 잘 나눌 필요가 있다. 이때 사용되는 것이 MVC! 다시 말해 정적컨텐츠는 파일을 그대로 웹브라우저로 전송하는 것이라면, MVC는 서버에서 파일을 변형하여 내려주는 방식이다. 그렇다면 MVC란? Model, View, Controller의 약자. View는 화면을 그리는 역할만 수행하고, Controller는 내부의 비지니스 로직이나 서버단의 일을 처리하며, Model은 코드내의 데이터 집합을 전달해주는 역할만을 수행한다! 이런 구조를 MVC 구조라고 부른다. he..

Programming/Spring 2022.02.26