Web27 [Swagger] Swagger2 2.xx 버전오류 swagger 도입하면서 사소한 오류들이 은근히 짜증나서 정리해 두기로 했다. 사실 정리랄 것도 없는 게 결론적으로 버전을 3.0.0으로 잡아주면 해결된다. swagger 페이지 매핑이 안 되는 경우. There was an unexpected error (type=Not Found, status=404). No handler found for GET /swagger-ui.html org.springframework.web.servlet.NoHandlerFoundException: No handler found for GET /swagger-ui.html 이 에러는 짚이는 구석이 너무 많아서 애먹었다. 원인은 찾았고 해결은 했는데 솔직히 이게 왜 뜬 건지는 아직도 모르겠음... 역시 동일하게 2.xx버전.. 2021. 11. 2. [Spring] OXM, 서비스 추상화, 빈 애노테이션, @Import, @Profile, @Enable* 7. 스프링 핵심 기술의 응용 SQL과 DAO의 분리 개별 SQL 프로퍼티 방식 XML→오브젝트→Map 인터페이스 분리와 자기참조 빈 XML 읽어오기 JAXB XML에 담긴 정보를 파일에서 읽어오는 방법 가운데 하나. XML 문서정보를 거의 동일한 구조의 오브젝트로 직접 매핑 마샬링Marshalling XML→오브젝트 언마샬링Unmarshalling 오브젝트→XML 스프링 컨테이너에서 XML 읽어들이는 초기 작업 순서 @PostConstruct [Spring] @PostConstruct란?(정의와 장점) 책임에 따른 인터페이스 분리 자기참조 빈 스프링은 프로퍼티의 ref항목에 자기 자신을 넣는 것을 허용한다. 책임과 관심사가 복잡하게 얽혀 있어 확장이 힘들고 변경에 취약한 구조의 클래스를 유연한 구조로 .. 2021. 10. 29. [Spring] 프록시, AOP, 트랜잭션 6. AOP 기존의 강한 의존관계 트랜잭션 오브젝트가 적용된 의존관계 기존 의존구조 테스트 대상 오브젝트를 고립시킨 의존구조 테스트 대상이 환경이나 외부 서버, 다른 클래스의 코드에 종속되고 영향을 받지 않도록 고립 단위테스트/통합테스트 가이드라인 항상 단위테스트를 먼저 고려한다. 하나의 클래스나 성격과 목적이 같은 긴밀한 클래스 몇 개를 모아서 외부와의 의존관계를 모두 차단하고 필요에 따라 스텁이나 목 오브젝트 등의 테스트 대역을 이용하도록 테스트를 만든다. 외부 리소스를 사용해야만 가능한 테스트는 통합 테스트로 만든다. DAO 테스트는 DB(외부 리소스)를 사용해야만 하므로 통합테스트. DAO를 이용하는 코드는 DAO 역할을 스텁이나 목 오브젝트로 대체해서 테스트한다. 스프링 테스트 컨텍스트 프레임워.. 2021. 10. 29. [Spring] 테스트, 템플릿, 예외 2. 테스트 단위테스트 작은 단위의 코드에 대해 수행한 테스트 테스트주도적개발 TDD 테스트 코드를 먼저 만들고, 해당 테스트를 성공하게 해주는 코드를 작성하는 방식 최대한 주기를 짧게 가져간다 → 단위테스트 위주 JUnit4의 @Test 수행 방식 JUnit의 애플리케이션 컨텍스트 JUnit 확장기능은 테스트가 실행되기 전에 딱 한 번만 애플리케이션 컨텍스트를 만들어두고, 테스트 오브젝트가 만들어질 때마다 특별한 방법을 이용해 애플리케이션 컨텍스트 자신을 테스트 오브젝트의 특정 필드에 주입해 주는 것. 성격은 다르지만 일종의 DI DI를 이용한 테스트 테스트 코드에 의한 DI 테스트를 위한 별도의 DI 설정 컨테이너 없는 DI 테스트 테스트 방법의 선택: 3 → 1 → 2 학습테스트 기존 기술의 확인을.. 2021. 10. 29. [Spring] IoC, Singleton, DI, 팩토리메소드/템플릿메소드/전략 패턴 1. 오브젝트와 의존관계 자바 → 객제지향 프로그래밍 스프링은 오브젝트에 가장 관심을 둔다. 애플리케이션에서 오브젝트가 생성되고 다른 오브젝트와 관계를 맺고, 사용되고, 소멸하기까지의 전 과정 고려해야 함 객체지향 설계의 기초와 원칙을 비롯해 디자인 패턴, 리팩토링, 단위테스트 같은 오브젝트 설계와 구현에 대해 배울 것 관심사의 분리 분리와 확장을 고려한 설계 개방폐쇄 원칙 관심사 분리 기법 메소드 추출 기법 이용해서 리팩토링 상속을 통한 확장 → 클래스 계층 구조를 통해 두 개의 관심이 독립적으로 분리 → 확장 용이 템플릿 메소드 패턴 슈퍼클래스에 기본적인 로직을 만들고, 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 protected 메소드 등으로 만든 뒤 서브클래스에서 이러한 메소드를 필요에 .. 2021. 10. 29. [MSA] Erlang과 RabbitMQ 설치 INTRO 나름대로 MSA를 짜 보려고 RabbitMQ를 사용하기로 했다. RabbitMQ는 Kafka보다 똑똑한 메세지 브로커라 알아서 다 해준단다. 예전 필기 보니까 얘네가 RDBMS랑 NoSql같은 느낌이라고 적어놨는데 왜 그랬는지는 알겠음 Kafka 쓰고 싶은데 공부 더 해야 할 듯 Erlang 설치 RabbitMQ는 Erlang이라는 언어로 AMQP 프로코콜을 개발한 메세지 브로커다. 그러므로 Erlang이 설치되어 있어야 한다. https://www.erlang.org/downloads Erlang Programming Language OTP 24.0 has been released OTP 24.0 Readme File OTP 24.0 Source File (248) OTP 24.0 Windo.. 2021. 7. 5. 이전 1 2 3 4 5 다음 반응형