두두의 IT/Spring (26) 썸네일형 리스트형 IoC/DI 컨테이너 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스로운 흐름이다. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. 예를 들어서 'OrderServiceImpl'은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지 모른다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 'OrderServiceImpl'도 AppConfig가 생성한다. 그리고 AppConfi.. 객체지향설계와 스프링 스프링은 다음 기술로 다형성+OCP, DIP를 가능하게 지원 DI(Dependency Injection) : 의존관계, 의존성 주입 DI 컨테이너 제공 클라이언트 코드의 변경 없이 기능 확장 쉽게 부품을 교체하듯이 개발 실무 고민 인터페이스를 도입하면 추상화라는 비용이 발생한다 기능을 확장할 가능성이 없다면, 구체 클래스를 직접 사용하고, 향후 꼭 필요할 때 리팩터링해서 인터페이스를 도입하는 것도 방법이다 인프런 스프링 핵심 원리 - 기본편 객체 지향 설계와 스프링 객체 지향 설계와 스프링 개발 프로세스 (비즈니스 요구사항, 설계) 1. 기획자의 요구사항 분석 2. 기획자와 같이 볼 수 있는 도메인 관계 작성 3. 클래스 다이어그램 작성 - 역할 4. 인터페이스 다이어그램 작성 - 역할 & 구현 4. 실제 객체 다이어그램 작성 - 주문과 할인 도메인 설계 pdf 참고하기........ 5. 단위 테스트 >> 스프링 서버 띄우고 하는 거보다 속도가 빠름 Spring Boot Junit5 1. JUnit이란? 프로그래밍 언어마다 테스트를 위한 프레임워크가 존재합니다. 이러한 도구들을 보통 xUnit이라고 말합니다. 자바언어의 경우는 JUnit이라고 말합니다. 각 언어마다 사용되는 xUnit은 다음과 같습니다. xUnit이름 해당 언어 관련 사이트 CUnit C http://cunit.sourceforge.net CppUnit C++ https://sourceforge.net/projects/cppunit PHPUnit PHP https://phpunit.de PyUnit Python http://pyunit.sourceforge.net JUnit Java http://junit.org 2. JUnit 사용하기 JUnit을 사용하려면 JUnit 라이브러리가 클래스패스(CLASSPATH)에 .. Spring Boot Mapper & Dao Annotation 스프링 빈 컨테이너에서 관리한다는 것은 개발자가 직접 인스턴스를 생성하지 않는다는 것을 의미합니다. 스프링 빈 컨테이너가 인스턴스를 생성해 관리한다는 것을 뜻합니다. 스프링 빈 컨테이너가 CalculatorService클래스를 찾아 빈으로 등록할 수 있도록 클래스 위에 @Component를 붙입니다. 스프링 빈 컨테이너를 사용할 때는 개발자가 직접 인스턴스를 생성하면 안됩니다. @Mapper @Select("SELECT * FROM xxx WHERE xxx") @Update("UPDATE xxx SET xxx WHERE xxx") @Results(id = "xxx", value = { @Result(property = "xxx", column = "xxx"), @Result( property = "xxx.. Spring Boot Service Annotation @Service @Slf4j @Autowired @PersistenceContext @Override @Transactional @PostConstruct @Component @Override 상속받은 메서드를 재정의할 때 메서드 이름이 틀리지 않게 쓰기 위한 어노테이션 컴파일러에게 부모 클래스에 있는 메서드명과 매개 변수 등이 동일한지 체크를 함 일종의 프로그램이 짜임새 있게 개발되기 위한 안전장치 @PostConstruct 스프링 빈의 빈 생명주기 콜백 지원방법 중 하나 스프링에 종속적인 기술이 아니라 JSR-250라는 자바 표준이기 때문에 스프링이 아닌 다른 컨테이너에서도 동작함 객체의 초기화 부분 객체가 생성된 후 별도의 초기화 작업을 위해 실행하는 메소드를 선언한다. @PostConstruct .. Spring Boot Main Annotation @SpringBootApplication @ComponentScan("xx.xxx.*") @EnableJpaRepositories("xx.xxx.*") @EntityScan("xx.xxx.*") @MapperScan("xx.xxx.xxx") @EnableOAuth2Client @SpringBootApplication 스프링 부트의 가장 기본적인 설정을 선언 자동 설정을 해주기 위한 어노테이션 https://bamdule.tistory.com/31 [Spring Boot] @SpringBootApplication 이란? 1. XXXApplication.java 스프링부트는 main 메소드가 선언된 클래스를 기준으로 실행됩니다. import org.springframework.boot.SpringApplic.. Spring Boot Git Open Source PageHelper 이전 1 2 3 4 다음