Spring 15

JPA(2), ORM Annotation

ORM(Object Relational Mapping)- Entity와 데이터베이스 테이블(들)간을 mapping 하는 방법- Annotation 또는 XML을 이용 나는 이번에 Annotation 방법만 알아볼 것이다. @Entity객체라고 지정기본 생성자 필수(인자있는 생성자 있을때.. 없으면 자동생성)final 정의 X @Table(name="EXAMPLE")대응되는 테이블 지정, 테이블과 Entity의 이름이 같으면 생략 가능함 @Id식별자 필드 지정, 테이블의 PK(Primary Key)컬럼과 대응됨Field 또는 Property(getter)에 적용 가능float, double 등 정밀도의 제한이 있는 타입은 피해야 함 @Column(name="example")테이블 내 대응되는 컬럼명 지정 ..

Spring 2024.06.10

JPA(1), EntityManager

JPA(Java Persistence API)- ORM(Object-Relational Mapping)을 실행하기 위한 Java 표준 API- Entity로 정의된 Java 객체와 데이터베이스 사이의 mapping 방법을 설정한다.(annotation이용)- EntityManager: 설정된 mapping에 따라 Java 객체를 테이블에 저장하고, 수정, 삭제, 검색할 수 있는 인터페이스를 제공- Java 객체 중심의 데이터 관리 기능 Persistence(영속성)- Java 객체를 데이터베이스를 통해 저장 및 관리함으로써 객체의 영속성을 보장한다. Persistence Provider- JPA의 기능을 구현한 라이브러리: Hibernate, DataNucleus, EclipseLink 등..- SQL문..

Spring 2024.06.01

[Spring] XML기반의 Bean 설정(Configuration)

1. 기본 구조  2. Bean 사용 방법BeanFactory 또는 ApplicationContext 객체(container)에 대해 getBean() method 호출한다.ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("springIdol.xml");TalentCompetition competition = ctx.getBean("springIdol", TalentCompetition.class);Performer performer1 = (Performer) ctx.getBean("abc"); 3. DI 방법①생성자(Constructor)이용가능한 생성자가 bean 클래스에 정의되어 존재해야 한다. 를 사용하여 생성자의 인..

Spring 2024.03.21

[Spring]#12 이전 실습 정리&마무리

김영한님의 인프런 스프링 강의를 듣고 있습니다. 모든 강의내용의 저작권은 김영한님께 있습니다. 유료 강의라서 모든 코드는 비공개 됩니다. 강의 정보: https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 출신 김영한의 스프링 완전 정복 로드맵 - 인프런 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 1. appConfig 리팩토링 2. 할인율 정책 변경 3. IoC(Inversion of Control), 제어의 역전 프로그램이 직접 프로그램의 제어 흐름을 제어하는 것이 아니라 외부에서 관리하는 것을 말한다. 우리가 만든 Imp 구현체들은 로직을 실행만 할 뿐 구현 객체를 스스로 생..

Spring 2024.02.22

[Spring]#11 객체 지향 원리와 적용

김영한님의 인프런 스프링 강의를 듣고 있습니다. 모든 강의내용의 저작권은 김영한님께 있습니다. 유료 강의라서 모든 코드는 비공개 됩니다. 강의 정보: https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 출신 김영한의 스프링 완전 정복 로드맵 - 인프런 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 앞에서 한 개발에서 요구사항이 변경되었다고 가정해보자. 이때 객체 지향 원리를 저해하지 않고 개발할 수 있을까? 실습 통해 공부해보자. 1. 변경된 요구사항(VIP면 -1000원 -> VIP면 -10%)에 맞춰서 구현체(RateDiscountPolicy) 생성 ..

Spring 2024.02.18

[Spring]#10 순수 Java 개발 실습

김영한님의 인프런 스프링 강의를 듣고 있습니다. 모든 강의내용의 저작권은 김영한님께 있습니다. 유료 강의라서 모든 코드는 비공개 됩니다. 강의 정보: https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 출신 김영한의 스프링 완전 정복 로드맵 - 인프런 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com 순수 java 코드로 개발할거지만 나중에 Spring을 사용할거라서 Spring으로 프로젝트를 생성한다. 1. enum으로 회원 등급 생성 2. Member 클래스 생성 3. MemberRepository 인터페이스 생성하고 구현체(MemoryMemberRepository) 만들기 4. ..

Spring 2024.02.03

[Spring]#09 Spring과 객체지향

김영한님의 인프런 스프링 강의를 듣고 있습니다. 모든 강의내용의 저작권은 김영한님께 있습니다. 이전까지는 무료강의라서 코드를 공개했지만 이후로는 유료라서 비공개로 포스팅하거나 가려서 올립니다. 강의 정보: https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 출신 김영한의 스프링 완전 정복 로드맵 - 인프런 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com Spring은 객체지향을 위한 프레임워크이다. 좋은 객체지향은 무엇인가? 1. 다형성 다형성은 객체지향의 꽃이다. 실제 세계에서 비유하자면 자동차를 바꿔도 운전면허가 있다면 운전자가 다 운전할 수 있다는 것을 얘기한다. 연극에서 출연..

Spring 2024.01.30

[Spring]#08 Spring AOP

AOP(Aspect Oridented Programming): 원하는 곳에 공통 관심 사항을 적용할때 사용한다. 모든 메소드의 작동 시간을 구한다고 해보자. 메소드가 한 두개라면 '시작점 ~~코드~~ 끝나는점' 이런식으로 몇 줄만 추가하면 되지만, 메소드가 100개라면? 1000개라면? 하나하나 일일히 작성할 수 없다. 그렇다고 외부함수로 빼기도 어렵다. 이때 사용하는 것이 AOP라고 한다. 회원가입, 회원 조회등 핵심 관심사항과 시간을 측정하는 공통 관심 사항을 분리한다. 시간을 측정하는 로직을 별도의 공통 로직으로 만들었다. 핵심 관심 사항을 깔끔하게 유지할 수 있다. 변경이 필요하면 이 로직만 변경하면 된다. 원하는 적용 대상을 선택할 수 있다. 대충은 알겠는데 완전히 이해하기 어렵다 일단 넘어가

Spring 2024.01.29

[Spring]#07 스프링 DB 실습

1. h2 설치&실행 Spring 버전에 맞춰서 h2를 깔아준다. 내가 설치한 Spring 부트는 3.xx라서 2.1.214 버전 이상( 2.2.224)을 설치했다. All platforms을 선택했다. https://www.h2database.com/html/main.html H2 Database Engine H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around..

Spring 2024.01.29

[Spring]#06 회원 관리 예제 웹 MVC 개발

앞에서 만든 회원 관리 예제를 웹으로 띄울것이다. 1. 메인 페이지인 Home과 Controller 생성 2. 회원 가입&등록 기능 연결 설명은 주석에 적혀있다. 20번째 라인: localhost:8080/members/new 에 들어가면 createForm()이 실행되고 members/createMemberForm을 화면에 띄운다. templates에서 생성해야함 25번째 라인: 20번째 라인과 같은 localhost:8080/members/new 이지만 Post방식이라서.. 좀 다르다... 아직 html을 잘 몰라서 뭐라 설명하기 어렵다. 일단 넘어가기.. 위에서 members/createMemberForm 에서 받은 내용을 이용해 객체를 만들고 getter&setter를 이용해 회원을 등록한다. l..

Spring 2024.01.25