목록[백엔드] (125)
개발자로 후회없는 삶 살기
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 본론 - 트랜잭션 활용 지금까지 배운 트랜잭션 전파에 대한 내용을 실제 예제로 알아봅니다. - 요구사항 예제를 위한 간단한 요구사항을 만듭니다. 회원을 등록하고 조회할 수 있어야하고 회원에 대한 변경 이력을 추적할 수 있도록 회원 데이터가 변경될 때 변경 이력을 DB LOG 테이블에 남겨야 합니다.(회원가입을 하면 회원 DB에도 저장이되고 로그 DB에도 저장이 되어야합니다.) 회원을 가입하거나 수정할 때 왜 가입하고 왜 수정했는지 테이블에 남겨야하는게 요구사항입니다. 여기서는 가입시에만 남깁니다. - 구현 -> 도메인 @Entity @Getter @Setter public cl..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com:443 본론 - 스프링 트랜잭션 전파 트랜잭션이 둘 이상이 있을 때 어떻게 동작하는지 알아보고 전파를 알아봅니다. 스프링 동작 원리도 더 깊이있게 이해할 수 있습니다. > 트랜잭션을 사용 중인데 그 안에서 또 트랜잭션을 쓰는 복잡한 경우에 스프링이 이를 어떻게 해결하는지 알아봅니다. 이를 이해하면 스프링의 트랜잭션을 완성할 수 있습니다. - 구현 @Autowired privat..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com:443 본론 - 스프링 트랜잭션 소개 트랜잭션이 왜 필요한지 앞서 학습했습니다. 내부 원리를 알아봤고 이번 시간부터 더 깊이있게 학습하고 다양한 기능들을 자세히 알아보겠습니다. -> 복습 public void accountTransfer(String fromId, String toId, int money) throws SQLException { Connection con = d..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com:443 본론 - 스프링 데이터 JPA 예제와 트레이드 오프 여러가지 배운 데이터 접근 기술을 실무에 사용할 때 팁을 배워봅니다. 스프링 데이터 JPA 예제를 보면 서비스가 레포 구현체V2를 사용하고 레포가 스프링 데이터 JPA 프록시 구현체를 썼습니다. 중간에서 레포 구현체 V2가 어댑터 역할을 해서 서비스 코드를 전혀 변경하지 않아도 되는 장점이 있었습니다. -> 고민 여기서..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com:443 본론 - Querydsl 소개 갑자기 요구사항이 추가됐습니다. 나이, 이름의 검색 조건을 추가해야합니다. 너무 쉽습니다. sql에 where로 나이와 이름 넣으면 됩니다. 그런데 버그가 발생했습니다. 문자를 합쳐보면 member 뒤에 띄어쓰기가 없어서 memberwhere가 됩니다. 퀴리는 문자라서 실행해보기 전까지 작동 여부를 확인하기 어렵다는 문제가 있습니다. 컴파일..
서론 중간점검 3에 작성된 순수 jdbc 레포지토리를 sql 맵퍼를 사용하도록 바꿔봅니다. 기획과 설계는 동일하고 레포지토리 구현체만 바꿔끼울 것입니다. 스프링의 OCP를 제대로 활용해 봅니다. 본론 - 개발 시작 1. 도메인별 역할 개발 1) 회원 도메인 기존에는 web과 domain 폴더만 있었고 domain에 레포와 서비스가 있었습니다. 여기서 서비스를 domain과 같은 계층으로 올립니다. 서비스 패키지를 만드고 하위 패키지 만들지 말고 그 안에 그냥 바로 서비스 구현체 클래스를 넣습니다. 서비스는 보통 인터 안 만듭니다. 레포지토리도 같은 계층으로 올립니다. 레포 패키지를 만들고 하위에 도메인 처럼 멤버, item 패키지를 만들고 그 안에 member면 member인터, member구현체를 만듭..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com:443 본론 - 스프링 데이터 JPA 등장 이유 옛날에 java 정파당 무술로 EJB라고 있었습니다. 근데 너무 기술이 복잡했습니다. 그래서 EJB 없이 개발하자고 해서 스프링과 하이버네이트가 나오게 됩니다. - 스프링 데이터 스프링과 jpa의 조합으로 개발을 해나갑니다. 과거에는 rdb의 세상이었는데 이제 몽고 하이브 등 신흥 세력이 등장합니다. 스프링 데이터라는 기술은 몽고..
서론 ※ 이 포스트는 다음 강의의 학습이 목표임을 밝힙니다. https://www.inflearn.com/roadmaps/373 우아한형제들 최연소 기술이사 김영한의 스프링 완전 정복 - 인프런 | 로드맵 Spring, MVC 스킬을 학습할 수 있는 개발 · 프로그래밍 로드맵을 인프런에서 만나보세요. www.inflearn.com:443 본론 - jpa 소개 스프링과 jpa 자바 엔터프라이즈 시장의 주력 기술입니다. 스프링이 DI 컨테이너를 포함한 어플리케이션 전반의 기능을 제공한다면, JPA는 ORM 데이터 접근 기술을 제공합니다. jpa는 데이터 접근 기술에서 매우 큰 생산성을 향상할 수 있습니다. SQL도 JPA가 대신 작성하고 처리해줍니다. > jpa, 스프링 데이터 jpa, Querydsl로 이..