본문 바로가기

전체 카테고리326

Spring Cloud (MSA) - 로드밸런싱 Eureka, Feign 이전 포스팅 네이밍서버 (유레카 서버) 여러 포트 번호를 쓰고 있기 때문에 네이밍 서버를 통해 포트 번호에 상관없이 가져옴. Eureka 유레카를 통해 관리 네이밍 서버 naming server 생성 의존성 등록(maven) org.springframework.cloud spring-cloud-starter-netflix-eureka-server org.springframework.cloud spring-cloud-dependencies ${spring-cloud.version} pom import Gradle plugins { id 'java' id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' versio.. 2022. 11. 27.
Spring Cloud (MSA) - Feign 다른 서버 값 가져오기 Feign 다른 서버에서 실행된 결과를 가져옴 Currency Exchange Microservice CurrencyExchange @NoArgsConstructor @Getter @Setter @Entity public class CurrencyExchange { @Id private Long id; @Column(name = "currency_from") private String from; @Column(name = "currency_to") private String to; private BigDecimal conversionMultiple; private String environment; } CurrencyExchangeController @RestController public class C.. 2022. 11. 26.
Spring Cloud (MSA) - Config Server 마이크로 서비스 개발 시작 Dynamic Scaled Up And Down Naming Server (Eureka) Ribbon (Client Side Load Balancing) Feign (Easier REST Clients) Visibility And Monitoring Zipkin Distributed Tracing Netflix API Gateway Ports ApplicationPort Application Port Limits Service 8080, 8081, ... Spring Cloud Config Server 8888 Currency Exchange Service 8000, 8001, 8002, .. Currency Conversion Service 8100, 8101, 8102, ... 2022. 11. 25.
Spring Cloud (MSA) - HATEOAS, HAL Explorer, Static Filtering, Actuator HATEOAS Hypermedia as the Engin of Application State Spring HATEOAS : 하이퍼링크 자원과 함께 HAL(JSON Hypertext Application Language) 자원들 생성 Link라는 클래스로 다른 자원에 접근할 수 있는 링크 하이퍼미디어를 제공 다른 상태로 전이할 수 있는 링크 레퍼런스를 제공 org.springframework.boot spring-boot-starter-hateoas EntityModel A simple EntityModel wrapping a domain object and adding links to it. EntityModel 로 전달 import static org.springframework.hateoas.ser.. 2022. 11. 24.
Spring Boot 시큐리티 + JWT 흐름 정리 시큐리티 로그인/회원가입/인증 로그인 @PostMapping("/signup") public ResponseEntity login(@RequestBody MemberDto loginDto) { // add check for email exists in DB if(memberService.existsByEmail(loginDto.getEmail())) { return new ResponseEntity("이메일이 존재합니다.",HttpStatus.BAD_REQUEST); } User user = memberService.memberLogin(loginDto); if(user == null) return new ResponseEntity("회원가입 실패",HttpStatus.INTERNAL_SERVER_ERR.. 2022. 11. 23.
Spring Boot Rest APIs Test Spring Boot REST APIs 테스트 status code content type JSON response body 를 어떻게 테스트 할 수 있을 까 전체코드 @TestPropertySource("/application-test.properties") @AutoConfigureMockMvc @SpringBootTest @Transactional // JPA Entity Manager 사용 public class GradebookControllerTest { private static MockHttpServletRequest request; @PersistenceContext private EntityManager em; @Mock StudentAndGradeService studentAndGra.. 2022. 11. 14.
Spring Boot MVC 서비스 테스트 전체코드 test/java/com/.../springmvc/StudentAndGradeServiceTest.java @TestPropertySource("/application.properties") @SpringBootTest public class StudentAndGradeServiceTest { @Autowired private StudentAndGradeService studentService; @Autowired private StudentDao studentDao; @Autowired private MathGradesDao mathGradesDao; @Autowired private ScienceGradesDao scienceGradesDao; @Autowired private History.. 2022. 11. 9.
Spring Boot MVC Controller Test (컨트롤러 테스트) 목적 Spring MVC Web Controllers 테스트 HTTP requests 생성과 전송 HTTP response 검증 (status code, view name, model attributes) Process @AutoConfigureMockMvc MockMvc 주입 web requests 수행 Expectations 정의 Assert results 테스트 클래스 package com.luv2code.springmvc; @TestPropertySource("/application.properties") @AutoConfigureMockMvc @SpringBootTest public class GreadeBookControllerTest { @Autowired private JdbcTemplat.. 2022. 11. 5.
Spring Boot MVC 데이터베이스 통합 테스트 @Sql Execution Sequence @BeforeAll (static method) @BeforeEach 2022. 10. 29.
Spring Boot Unit Testing - Mocking with Mockito - @MockBean, ReflectionTestUtils 더블 테스트 Service - DAO - DB - DAO 더블 테스트 목적 DAO 더블 테스트 에서 테스트 후 DAO 실제 세계에 적용 더블 테스트의 기술 : mocking 주어진 클래스를 따로 테스트할 수 있게 해줍니다. 주어진 클래스와 종속성 사이에서 상호작용 Configuration 최소화 , 종속성의 가용성 DAO, DB, REAT API 등 >> Spring Boot는 Mocking 프레임워크 중 Mockito 지원 Mock 테스트 과정 DAO를 위한 Mock 생성 Service 에 Mock 주입 Set up expectations(기대치) Execute test 메소드 Assert results Verify 메소드 호출 @Mock 테스트를 할 때 필요한 실제 객체와 동일한 모의 객체를 만들어 .. 2022. 10. 21.
Spring Boot Unit Testing Support - 1 Maven 종속성 추가 org.springframework.boot spring-boot-starter-test test JUnit 5가 포함되어있어서 자유롭게 사용할 수 있습니다. test 패키지 추가 main 의 패키지와 test 의 패키지 경로가 다르다면 test 클래스에서 @SpringBootTest 애노테이션의 classes 파라미터를 통해 메인의 부트 실행 클래스를 명시 @SpringBootTest(classes = MvcTestingExampleApplication.class) application.properties 파일 읽기 @SpringBootTest(classes = MvcTestingExampleApplication.class) public class ApplicationExampl.. 2022. 10. 10.
jQuery 정리 | css 스타일, 이벤트, 애니메이션 스타일 설정 css 스타일 설정 $("p").css("fontSize", "25px");. $("p").css({ fontSize: "25px", // 모든 요소의 글씨 크기를 25px로 설정함. backgroundColor: "yellow" // 모든 요소의 배경색을 노란색으로 설정함. }); ex) $(function(){ $("button").on("click",function(){ $("p").css("fontSize", "25px"); $("#text").html($("p").css("fontSize")); }); }); 속성과 프로퍼티 설정 속성은 HTML 문서에 존재하고 값이 변하지 않으며, 프로퍼티는 HTML DOM 트리에 존재하고 그 값이 변할 수 있습니다. --> 체크박스가 체크되면 노.. 2022. 10. 6.