본문 바로가기
728x90
반응형

전체 글202

[객체 지향 설계와 스프링] 좋은 객체 지향 프로그래밍이란? 좋은 객체 지향 프로그래밍이란? 객체 지향 특징 - 추상화, 갭슐화, 상속, 다형성 객체 지향 프로그래밍 1. 객체들의 모임 2. 객체는 메시지를 주고받고 데이터 처리 3. 유연하고 변경 용이 -> 다형성 다형성 역할과 구현으로 세상을 구분 역활과 구현으로 구분하면 세상이 단순해지고, 유연해지며 변경도 편리 장점 대상의 역할(인터페이스)만 알면 된다. ex) 줄리엣의 역할 구현 대상의 내부구조를 몰라도 된다. ex) 자동차 내부구조 구현대상의 내부 구조가 변경되어도 영향을 받지 않는다. ex) k5 -> 테슬라 구현 대상 자체를 변경해도 영향을 받지 않는다. ex) k5 -> 아반떼 역할과 구현을 명확히 분리 역할 = 인터페이스 구현 = 인터페이스를 구현한 클래스, 구현 객체 객체 설계시 역할(인터페이스.. 2022. 1. 29.
[객체 지향 설계와 스프링] 스프링이란? 스프링이란? 스프링 생태계 스프링 데이터 : CRUD 도움 스프링 세션 : 세션 기능 스프링 시큐리티 : 보안 스프링 Rest Docs : API문서를 편리하게 스프링 배치 : 배치 처리 특화 스프링 클라우드 : 클라우드 -------------------------- 핵심 컨셉은? - 스프링은 자바 언어 기반의 프레임워크 - 자바 언어의 가장 큰 특징 - 객체 지향 언어 - 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 - 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다. 스프링 핵심 원리 - 기본편 - 인프런 | 강의 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 .. 2022. 1. 29.
[객체 지향 설계와 스프링] 이야기 - 자바 진영의 추운 겨울과 스프링의 탄생 스프링 EJB 컨테이너 대체 간순함의 승리 현재 사실상 표준 기술 하이버네이트 EJB 엔티티빈 기술을 대체 JPA(Java Persistence API) 새로운 표준 정의 EJB 엔티티빈 --등장--> 하이버네이트 --자바표준--> JPA 하이버네이트, EclipseLink, 기타 ... (JPA 구현체들) ---> JPA(표준 인터페이스) 스프링 역사 - EJB의 문제점 지적 - EJB 없이도 충분히 고품질의 확장 가능한 애플리케이션을 개발할 수 있음을 보여주고, 30,000라인 이상의 기반 기술을 예제 코드로 선보임 스프링 이름은 전통적인 J2EE(EJB)라는 겨울을 넘어 새로운 시작이라는 뜻으로 지음 인프런 강의 "스프링 핵심 원리 - 기본편"을 정리한 것 입니다. 스프링 핵심 원리 - 기본편 - .. 2022. 1. 28.
[AOP] AOP 적용 AOP 적용 import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.springframework.stereotype.Component; @Aspect @Component public class TimeTraceAop { @Around("execution(* hello.hellospring..*(..))") // hello.hellospring 패키지 하위에 다 적용 public Object execute(ProceedingJoinPoint joinPoint) throws Throwable { long star.. 2022. 1. 27.
[AOP] AOP가 필요한 상황 AOP가 필요한 상황 import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; @Transa.. 2022. 1. 26.
[스프링 DB 접근 기술] 스프링 데이터 JPA 스프링 데이터 JPA src > main > java > hello.hellospring > repository public interface SpringDataJpaMemberRepository extends JpaRepository, MemberRepository { @Override Optional findByName(String name); } @Configuration public class SpringConfig { private final MemberRepository memberRepository; public SpringConfig(MemberRepository memberRepository) { this.memberRepository = memberRepository; } @Bean p.. 2022. 1. 25.
[스프링 DB 접근 기술] JPA JPA build.gradle파일 dependencies에 아래 내용 추가 implementation 'org.springframework.boot:spring-boot-starter-data-jpa' application.properties에 아래 내용 추가 # 테이블은 이미 만들어져 있기 때문에 none으로 설정 # show-sql : JPA가 생성하는 SQL을 출력한다. # ddl-auto : JPA는 테이블을 자동으로 생성하는 기능을 제공하는데 none 를 사용하면 해당 기능을 끈다. # none이 아닌, create 를 사용하면 엔티티 정보를 바탕으로 테이블도 직접 생성해준다. spring.jpa.hibernate.ddl-auto=none spring.jpa.show-sql=true @Entit.. 2022. 1. 24.
[스프링 DB 접근 기술] 스프링 JdbcTemplate 스프링 JdbcTemplate public class JdbcTemplateMemberRepository implements MemberRepository { private final JdbcTemplate jdbcTemplate; // @Autowired // 생성자가 하나일 경우 @Autowired 생략 가능 public JdbcTemplateMemberRepository(DataSource dataSource) { jdbcTemplate = new JdbcTemplate(dataSource); } @Override public Member save(Member member) { // insert 문을 만들어 줌 SimpleJdbcInsert jdbcInsert = new SimpleJdbcInser.. 2022. 1. 23.
728x90
반응형