Spring(21)
-
2. IOC와 DI
앞서 살펴봤듯이 기본적인 다형성으로는 OCP와 DIP를 충분히 지킬 수 없었다. 이는 DI를 통해 해결할 수 있다. 1. 도메인 설계 휴대폰 매장을 오픈한다고 가정해보자. 클라이언트는 통신사에 해당하는 휴대폰을 개통할 수 있을 것이다.사장님은 SKT, KT, LG U+ 중에 어떤 매장으로 오픈할지 정하지 못하셨다. 일단은 KT로 생각 중이라고 하신다. 그렇다고 손만 빨고 있을 수는 없다. 다형성을 이용해 미리 개발해놓도록 하자. 이를 역할과 구현을 분리하여 클래스 다이어그램으로 표현하면 다음과 같다. 이를 간단하게 코드로 구현해보자. public interface MemberService { void open(); } public class MemberServiceImpl implements Member..
2021.11.22 -
1. 객체지향 설계와 스프링
1. 스프링의 탄생 배경 초기의 자바 웹 개발은 EJB를 통해 개발했다. 당시에 분산 시스템, 트랜잭션 등과 같은 기능을 지원하고 ORM, 객체지향적 설계 등이 적용된 통합적인 프로그램이었다. 하지만 개발자가 사용하기가 상당히 어렵고 느리다는 단점이 있었다. 그래서 로드 존슨이라는 개발자가 EJB를 비판하며 책을 내는데 이것이 스프링의 시작이 된다. 스프링이라는 이름도 EJB라는 겨울에서 봄(Spring)이 왔다는 뜻으로 붙여진 이름이다. 2. 스프링의 핵심 개념 기술을 배울 때 가장 중요한 것은 그 기술이 어떤 문제를 해결하기 위해 탄생했는지, 핵심 원리가 무엇인지 파악하는 것이다. 그 외의 것들은 부가적인 부분인 것이다. 이를 깨우치면 아무리 기능이 많아지더라도 빠르게 기술을 습득할 수 있다. 스프링..
2021.11.22 -
[JPA/Hibernate] Hibernate 기초
1. Hibernate란? Hibernate는 객체 지향 프로그래밍과 관계형 데이터베이스 설계의 관점 차이를 해결하여 개발자가 더 객체 지향 프로그래밍에 집중할 수 있도록 해주는 ORM 중 하나이다. Java 진영에서는 JPA가 표준 인터페이스로 있으며 구현체 중 가장 많이 사용되는 것이 Hibernate이다. 2. 환경 설정 파일 gradle 또는 maven 프로젝트는 기본적으로 src/main 디렉터리에서 java와 resources 패키지로 나뉘는데 resources에 대부분의 환경 설정 파일 및 정적 파일들이 포함된다. Hibernate의 환경 설정도 resources에서 작성하면 된다. 환경 설정의 대표적인 파일 형식으로 properties와 xml이 있다. 파일 이름은 hibernate.pro..
2021.10.12