일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Thymeleaf
- springdatajpa
- 자바
- Spring Boot
- 스프링 핵심 원리
- Greedy
- 인프런
- Servlet
- transaction
- QueryDSL
- jpa
- JPQL
- 알고리즘
- Exception
- http
- SpringBoot
- AOP
- pointcut
- 김영한
- kotlin
- JDBC
- spring
- db
- 그리디
- Android
- 스프링
- 백준
- Proxy
- java
- 스프링 핵심 기능
- Today
- Total
목록java (156)
개발자되기 프로젝트
스프링은 다형성 + OCP, DIP를 가능하게 지원한다. - DI(Dependency Injection): 의존관계, 의존성 주입 - DI 컨테이너 제공 : 자바 객체를 컨테이너에 넣어놓고 의존관계를 연결, 주입하는 기능 제공. 이렇게 해야 클라이언트 코드의 변경 없이 기능을 확장시킬 수 있음 쉽게 부품을 교체하듯이 개발이 가능함! 순수하게 자바로 OCP, DIP원칙을 지키면서 개발하면 결국에는 스프링 프레임워크를 만들게됨 ㅋㅋㅋㅋ 모든 설계에 역할과 구현을 분리!!! 애플리케이션 설계도 공연을 설계 하듯이 배역만 만들어 두고, 배우는 언제든지 유연하게 변경할 수 있도록 만드는 것이 좋은 객체 지향 설계이다!! 이상적으로는 모든 설계에 인터페이스를 부여해야함. 하지만 인터페이스를 너무 도입하면 추상화라는..
스프링의 핵심 스프링은 자바 언어 기반의 프레임 워크 자바 언어의 가장 큰 특징 - 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워 그러하면 좋은 객체 지향은 뭘까?
모든 메소드의 호출 시간을 측정하고 싶다면? 공통 관심사항(cross-cutting concern) vs 핵심 관심사항(core concern) AOP 관련 용어 , Aspect, Advice, Execution .. AOP : Aspect Oriented Programming (관점 지향 프로그램) 핵심적인 관심사항(Core Concern)과 공통 관심 사항(Cross cutting concern)으로 분리하고 각각을 모듈화 하는 것. 예를 들어 각 메서드마다 실행.. bsh-developer.tistory.com 각 메서드의 호출시간을 확인해 보자... 1. AOP 미사용 시 AOP를 사용하지 않으면, 일일히 하나하나 한땀한땀 코드를 넣어줘야 한다. 요렇게... public Long join(..
Spring Data JPA사용하면 와..이게되네? Spring Data JPA는 JPA를 활용하기 쉽게 도와주는 라이브러리임. 핵심은 JPA라는것을 잊지 말자. 1. SpringDataMemberRepository interface 인터페이스를 하나 만들자! JpaRepository와 이전에 만들어둔 MemberRepository를 상속 받는다. public interface SpringDataJpaMemberRepository extends JpaRepository, MemberRepository{ @Override Optional findById(Long aLong); } 간단하게 선언하는 것으로 사용이 가능하다. 그리고 JpaRepository를 상속받는 인터페이서는 스프링 데이터 JPA가 구현체..
JPA를 사용하면 SQL까지 안적어도 된다! 객체를 JPA에 넣어주면 JPA가 중간에서 DB에 SQL날리고 data가져옴 SQL과 Data중심의 설계에서 객체 중심의 설계로 패터다임 전환 JPA 소개 1. ORM(Object Relational Mapping) 객체와 관계형 Database를 자동으로 mapping시켜주는 것을 말한다. 객체지향 프로그래밍의 기본 단위는 object 이고 관계형 Datebase의 기본단위는 table이다. 따라서 객.. bsh-developer.tistory.com 1. build.gradle JPA를 사용하기 위해서 dependency 추가가 필요하다.(jdbc는 지워주자) //implementation 'org.springframework.boot:spring-boot..
JdbcTemplater과 같은 라이브러리는 JDBC API의 반복 코드를 대부분 제거해줌! 하지만 SQL은 직접 작성해야함! 1. JdbcTemplate사용 JdbcTemplate를 사용하기 위해서는 생성자를 통해 DataSource를 주입받아서 jdbcTemplate를 생성하면 된다. public class JdbcTemplateMemberRepository implements MemberRepository{ private final JdbcTemplate jdbcTemplate; @Autowired //생성자가 하나면 @Autowired생략 가능. public JdbcTemplateMemberRepository(DataSource dataSource) { this.jdbcTemplate = new ..
Spring을 사용,DB 연결까지 모두 테스트를 해보자! 0. @SpringBootTest @SpringBootTest //스프링 테스트 class MemberServiceIntegrationTest { 1. 스프링 빈에서 주입을 받자 기존에 작성한 test는 각 Test실행 전 memberReository를 직접 생성하고 memberService에 직접 주입해 줬다. @BeforeEach public void beforeEach(){ memberRepository = new MemoryMemberRepository(); memberService = new MemberService(memberRepository); } 하지만 현재 memberRepository, memberService는 스프링 빈으로 ..
H2 DB 설치 및 사용 준비가 완료되었다. 이제 기존에 사용하던 memory에서 H2DB로 Repository를 변경해야 한다. 1. JdbcMemberRepository 작성 JdbcMemberRepository는 MemberRepository의 구현체이다. Jdbc는 실제 DB에서 동작하는 쿼리를 직접 작성해야 한다....여기서는 생략.. DB에 붙으려면 DataSource가 필요하고, 스프링에서 주입을 받아야 한다. 이전에 DB사용을 위해 datasource를 지정해놨다. 해당 내용이 있으면 스프링에서 datasource를 만들어 놓는다. spring.datasource.url= jdbc:h2:tcp://localhost/~/test 그리고 생성자를 통해 스플이에서 만들어 둔 datasource를..