1️⃣ 의존성주입 (DI : Dependency Injection) 방법 의존성 주입에는 3가지 방법이 존재한다. 필드 주입 수정자 주입 (setter 주입) 생성자 주입 💚 필드 주입 필드에 @Autowired를 붙여서 바로 주입하는 방법이다. 필드 주입의 특징 코드가 간결해진다. 단, 외부에서 변경이 불가능하여 테스트하기 어려운 단점이 있다. @Component public class CoffeeService { @Autowired private MemberRepository memberRepository; @Autowired private CoffeeRepository coffeeRepository; } 필드 주입을 사용하지 않는 이유 DI 프레임워크가 없으면 아무것도 할 수 없다. 테스트 코드의 ..
Server/Spring Boot
1️⃣ ORM ORM 이란 Object-Relational Mapping 의 약자로 객체(Object)와 관계형 데이터(Relational data) 를 매핑하기 위한 기술 관계형 데이터베이스와 객체 지향 프로그래밍은 서로 패러다임이 달라 패러다임 불일치가 발생함 객체 지향 필드와 메서드 등을 묶어서 객체로 잘 만들어 사용하는 것이 목표 객체 지향 프로그래밍은 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 있는 다양한 장치들을 제공한다. 관계형 데이터베이스 데이터를 잘 정규화해서 보관하는 것이 목표 이를 해결하기 위해 ORM 기술이 필요하고 JPA는 Java Persistence API의 약자로, 자바 ORM 기술에 대한 API 표준 명세이다. 2️⃣ JPA 자바 ORM 기술..
1️⃣ TDD "테스트 주도 개발: 테스트가 개발을 이끌어 나간다." RED : 항상 실패하는 테스트를 먼저 작성 GREEN : 테스트에 통과하는 프로덕션 코드 작성 REFACTOR : 테스트가 통과하면 프로덕션 코드를 리팩토링 테스트를 작성하고 그걸 통과하는 코드를 만드는 과정을 반복하며 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것 💚 TDD를 사용하는 이유? 개발 단계 초기에 문제를 발견하게 해준다. 추후에 코드를 리팩토링하거나 라이브러리 업그레이드 등에서 기존기능이 올바르게 작동하는지 확인할 수 있다. 기능에 대한 불확실성을 감소시켜준다. 시스템에 대한 실제 문서를 제공한다. 즉, 단위 테스트 자체가 문서로 사용할 수 있다. 테스트 코드 작성시 사람의 눈으로 검증하지 않게 자동검증이 가능 ..
1️⃣ 인텔리제이 설치 [IntelliJ] 인텔리제이 설치 방법 IntelliJ 설치 1. 사이트 접속!! https://www.jetbrains.com/idea/ IntelliJ IDEA – the Leading Java and Kotlin IDE IntelliJ IDEA is undoubtedly the top-choice IDE for software developers. It makes Java and Kotlin development a more productive and enjo dev-cini.tistory.com 책에서 뭐 이것저것 설치하고 만들라는데 뭐라는지 1도 이해 안가서 그냥 따로 찾아봄 이 글 참고했습니다 [Spring boot] 01. 스프링 부트 개발환경 만들기(JDK 설치부터..
1️⃣ 스프링의 콘셉트(IoC, DI, AOP, PSA) 쉽게 이해하기 💚 IoC와 DI IoC IoC→ Inversion of Control → 제어의 역전 기존 자바코드 제어 역전 사용 → B객체를 어딘가서 받아와 사용 객체 외부 관리 가능, 사용시에 외부 제공 객체 사용 가능 스프링은 이 제어의 역전 개념을 사용함 외부(=객체를 관리하는 주체)를 “스프링 컨테이너” 라고 함 DI DI → Dependency Injection→ 의존성 주입 제어의 역전을 구현하기 위해 사용하는 방법 어떤 클래스가 다른 클래스에 의존한다는 뜻 @Autowired → 스프링 컨테이너에 있는 빈(스프링 컨테이너에서 관리하는 객체)을 주입하는 역할을 하는 애너테이션 B b; 선언, 직접 객체 생성 X → 객체를 스프링 컨테..