본문 바로가기

전체 글49

JPA Basic - 4 연관관계 매핑 객체와 테이블 연관관계의 차이를 이해하고 , 객체의 참조와 테이블의 외래키를 매핑하는 것에 대해 알아본다. @Entity public class Members { @Id @GeneratedValue @Column(name = "MEMBER_ID") private Long id; @Column(name = "USERNAME") private String username; @ManyToOne @JoinColumn(name = "TEAM_ID") private Teams teams; @Entity public class Teams { @Id @GeneratedValue @Column(name = "TEAM_ID") private Long id; private String name; 다음과 같은 .. 2021. 12. 28.
Event Driven Architecture Event Driven Architecture 이벤트(Event) : 컴퓨터 회로를 구동시키기 위해 발생하는 일 , 시스템 내, 외부에서 주목할 만한 상태의 변화 Event Driven Architecture ( EDA ) : 이벤트를 기반으로 하는 아키텍쳐 설계 방식 등장 배경 EDA 가 등장한 배경에는 마이크로서비스 아키텍처(MSA)로 적용된 시스템의 단점을 보완하고 대책을 마련하기 위함이다. 마이크로서비스 아키텍처는 독립적으로 배포 및 확장 될 수 있는 서비스(Loosely Coupled)들을 조합하여 하나의 애플리케이션을 완성하는 아키텍처이다. 마이크로서비스를 적용하면 빠른 배포 주기와 장애 확산 차단, 대용량 분산환경 시스템 구축, 폴리그랏 프로그래밍 적용 등의 장점을 얻을 수 있으며, 현재 빠.. 2021. 12. 28.
JPA Basic - 3 객체와 테이블 매핑 @Entity : JPA 가 관리하는 클래스를 뜻한다. 주의할 점으로는 1. 기본 생성자 필수(파라미터 없는 public 또는 protected 생성자) 2. final, enum , interface , inner 클래스 사용 불가 3. 저장할 필드에 fianl 사용 불가 @Table : 엔티티와 매핑할 테이블을 지정한다. 데이터베이스 스키마 자동 생성 @Entity 가 붙어있으면 알아서 테이블을 Create 해서 생성해준다. persistence.xml 파일의 hibernate 설정을 다음과 같이 바꿔줄 수도 있다. 필드와 컬럼 매핑 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 package hellojpa; im.. 2021. 11. 18.
JPA Basic - 2 영속성 컨텍스트 JPA에서 가장 중요한 2가지는 객체와 관계형 데이터베이스를 매핑하는 방법과(ORM) / 설계 - 정적 '영속성 컨텍스트' (JPA 가 내부적으로 동작하는 방식) 이다. EntityManger.persist(entity); persist 메소드는 사실 DB에 저장하는 것이 아닌 '영속성 컨텍스트' 에 저장하는 것이다. '영속성 컨텍스트' 는 논리적인 개념이다. EntityManger 를 통해서 영속성 컨텍스트에 접근한다. EntityManger 가 생성되면 PersistenceContext 라는 컨테이너가 생기고 이 안에 저장한다. 엔티티의 생명주기 비영속 : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 // 객체를 생성한 상태 Member member = new Member(); m.. 2021. 11. 16.
JPA Basic - 1 JPA Basic 이번 챕터에서는 Spring Framework와 떼어놓을 수 없는 JPA 에 대해서 공부해보도록 하겠다. JPA 란 ? JPA 란 Java Persistence API 의 줄일맘로 , 자바 진영의 표준 *ORM 기술이다. Hibernate와 EclipesLink 등 여러 구현체를 상속받아 만든 인터페이스의 모음이다. *ORM 이란 ? Object Relational Mapping 의 줄임말로 , 객체는 객체대로 설계하고 , 관계형 데이터베이스는 관계형 데이터베이스대로 설계하는 것을 뜻한다. 객체지향적인 설계를 하면 할수록 관계형 데이터베이스와 연동하면 join 이 복잡해지고 어려워지는 문제점을 가지고 있었는데 이를 해결해주는 것이 ORM 이다. 객체와 관계형 데이터베이스를 지탱하는 다리.. 2021. 11. 16.
(Spring) JSP 에서 스프링 MVC 패턴 구축하기 -2 MVC 패턴의 출현 너무 많은 역할 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을 하게되고, 결과적으로 유지보수가 어려워진다. 비즈니스 로직을 호출하는 부분에 변경이 발생해도 해당 코드를 손대야 하고, UI를 변경할 일이 있어도 비즈니스 로직이 함께 있는 해당 파일을 수정해야 한다. HTML 코드 하나 수정해야 하는데, 수백줄의 자바 코드가 함께 있다고 상상해보라! 또는 비즈니스 로직을 하나 수정해야 하는데 수백 수천줄의 HTML 코드가 함께 있다고 상상해보라 변경의 라이프 사이클 사실 이게 정말 중요한데, 진짜 문제는 둘 사이에 변경의 라이프 사이클이 다르다는 점이다. 예를 들어서 UI 를 일부 수정하는 일과 비즈니스 로직을 수정하는 일은 각각 다르.. 2021. 11. 1.