Spring

    Spring Framework - AOP Overview

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - AOP (Aspect-Oriented Programming) : AOP 는 Aspect-Oriented Programming 의 약자이다. 객체 지향 프로그램 개발시에, 서로 다른 클래스라 할지라도, 비슷한 기능을 하는 부분이 존재할 수 있다. 반복해서 서로 다른 클래스에 나타나는 이런 코드나 메소드들을 각 클래스에 따로 따로 작성하기 보다는 하나의 모듈로 묶어서 처리한뒤, 개별 클래스에 위임(Delegation) 하는 방식이 더 유지보수가 쉬울것이다. 이런 공통되는 기능을 Cross-cutting Concern 이라 부른다. AOP 는 ..

    Spring Framework - Layered Architecture

    참조한 강의 : www.boostcourse.org/web326/lecture/58982/ - Layered Architecture : 큰 규모의 기업용 소프트웨어를 개발할때는, 단순히 개인의 토이프로젝트 처럼 아무런 구조 없이 막 짜내는게 아니라, 일정한 구조를 가지고 설계되어야 한다. 그래서 소프트웨어 개발이전에 설계 단계를 거치고, 이때 자주 사용되는 아키텍처들을 패턴화해서 묶어놓은 것을 아키텍처 패턴이라 부른다. 레이어드 아키텍처는 이 아키텍처 패턴 중 하나로, N-Tier Architecture 라고도 불리며, 이름에서 알 수 있듯, 여러개의 레이어를 나눠놓고 각 레이어마다 서로 다른 기능을 담당하도록 분리해 놓은 것을 말한다. 각 레이어가 서로 독립적이며, 아래 그림에서 보듯이, 위에서 아래로..

    Spring Framework - 연관 관계 매핑

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번에는, Hibernate ORM 을 이용하여, DB 의 테이블과 엔티티 클래스간 관계 매핑을 하는 방법에 대해서 알아본다 관계형 데이터베이스 에서 테이블 설정시에, 각 테이블 간의 관계를 설정할 수 있는데, 두 테이블간의 관계는 아래 처럼 3가지로 설정된다. (여기에 추가로 단방향, 양방향이 존재하는 경우가 있다) 1) 1:1 관계 2) 1:N 관계 3) N:M 관계 각각의 관계를 Hibernate ORM 을 통해서 어떻게 구성하는지 학사정보 관리앱 예제를 만들어보면서 파악해본다. (거창한 이름이 붙었을뿐 그냥 간단한 예제 수준이다) -1..

    Spring Framework - Eager, Lazy Loading

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Fetch : Fetch 는 사전적인 의미로는, 어디에 가서 뭔가를 가져오다 라는 의미인데, 웹 프로그래밍에서는, JS 의 경우, 서버와의 네트워크 통신을 매개체로, 정보를 주고 받기위한 메소드이다. 여기서 언급할 Fetch 도 비슷한 의미로, 자바에서 DB 서버에게 데이터 요청을 위한 수단을 의미한다. Hibernate ORM 을 이용해서 DB 서버에게 어떤 정보를 요청할때, 두 가지 타입으로 요청을 할수있는데, 첫번째는 Eager Loading 두번째는 Lazy Loading 이다. - Eager Loading : 이 타입은, Fetc..

    Spring Framework - Persistence Context

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번에는, 영속성 컨텍스트(Persistence Context) 와 Entity LifeCycle 이 뭔지 알아본다. - Persistence Context 앞선 포스팅에서 Entity Class 에 대해서 언급한 적이 있었다. Entity Class 는 DB 의 테이블과 매핑되는 클래스를 일컫는말이다. 이 Entity Class 들은 EntityManager 라는것에 의해서 관리되는데, 유저로부터 특정한 Entity 에 대한 요청이 들어올때마다, EntityManagerFactory 라는것에서 각 Entity 에 대한 EntityManage..

    Spring Framework - CRUD Using Hibernate ORM

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번에는, Hibernate ORM 을 이용해서 간단하게 CRUD (Create, Read, Update, Delete) 를 하는 방법에 대해 알아본다. 먼저 사용할 DB (여기선 MySQL) 에 Student 테이블을 만들어준다 - SQL CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `first_name` varchar(45) DEFAULT NULL, `last_name` varchar(45) DEFAULT NULL, `email` varchar(45) DEFAULT NUL..

    Spring Framework - Hibernate ORM

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) 이번 포스팅에서는 Hibernate ORM 에 대해 알아본다 - Persistence : persistence 는 한글로 하면 '영속성' 을 의미한다. 영속성이란것은, 사전적으로 영원히 계속되는 성질이나 능력 이라고 정의되는데, 프로그램이 꺼지더라도, 프로그램 실행시에 사용했던 데이터들을 남겨야할 필요가 있을때가 있다. 스프링을 통한 웹 개발시에, 사용되는 데이터들에 대해서 영속성을 부여하는 방법이 있는데, 그것은 DB 와 연동시켜서 DB 에 저장하는 방법이다. 자바에서 DB 와 연동하는 방법은 JDBC 를 쓰는 것이다. JDBC 는 Java..

    Spring Framework - Validation

    참조한 강의 : Spring & Hibernate For Beginners (www.udemy.com/course/spring-hibernate-tutorial/) - Validation 앞선 포스팅에서 까지는, 사용자의 입력을 받아서 컨트롤러와 모델을 이용해서 로직을 처리한뒤, 뷰를 통해 화면상에 보여주는 방법을 알아봤다. 이번에는, 사용자가 입력을 할때, 입력값에 대해서 유효한 값인지를 검증하는 방법에 대해서 알아본다. 예를들면, 회원가입시에, 비밀번호는 몇자리가 가능하고, 어떤 부분은 필수로 넣어야 하는 값이고 등 이런것들을 스프링으로 어떻게 처리하는지 알아본다. - Bean Validation Bean Validation 이란 것은 스프링에서 Bean 에 대한 데이터 유효성 검증을 위한 메타데이터..