본문 바로가기

Back-end78

도커 설치 이미지 컨테이너 명령어 도커 설치 [Docker] Windows 도커 설치 Windows와 Docker 이번 글에서는 Windows 도커 설치하는 내용을 다룬다. Docker는 리눅스를 기반으로 하기 때문에 리눅스 운영체제 위에서 돌아가야한다. Linux 계열 이외의 운영체제에서 도커를 사용하 myjamong.tistory.com [Windows 10] Docker 설치 완벽 가이드(Home 포함) - LainyZine [Windows 10] Docker 설치 완벽 가이드(Home 포함) Docker는 경량 가상화 기술인 리눅스 컨테이너 도구입니다. Windows 10 Home과 Pro에서도 몇 가지 설정을 통해 Docker Desktop으로 리눅스 컨테이너를 사용할 수 있습니다. 이 글에서는 Windows 10에서 Docke.. 2023. 1. 16.
GitHub 깃허브 프로젝트 마일스톤 이슈 등록 GitHub 깃허브 프로젝트 마일스톤 이슈 등록 개인프로젝트 뿐만아니라 팀프로젝트를 할 때 깃허브를 활용하는 것이 필수입니다. 깃허브를 통해 다른 분들이 관리해 놓은 레포지토리를 보다보면 Projects 기능을 통해 프로젝트 진행을 관리하고 이슈를 통해 프로젝트 중 발생한 문제들을 해결해 나가는 것을 보았습니다. 그래서 앞으로 있을 협업 프로젝트를 위해 이슈 등록과 이슈를 해결해 나가는 연습을 해볼 것입니다. 기본적으로 깃허브 레포지토리가 있는 상태에서 시작합니다! 1. 프로젝트 생성 보드 형태의 프로젝트를 생성합니다. 2. 마일스톤 생성 (Opt) 프로젝트에서 마일스톤은 완성되기 까지의 중간 단계, 특정 지점, 이정표라고 생각하면 됩니다. 각 단계의 마일스톤을 언제까지 완성키겠다고 하는 상세일정을 정하.. 2022. 12. 31.
Spring Cloud (MSA) 분산추적 , Zipkin 분산 추적 Distributed Tracing - 각각의 요청에 Unique Id 할당 - 시간 데이터를 모아 시간 지연 문제 해결 집킨 사용 Open Zipkin 은 MSA 에서 성능 문제를 확인할 수 있는 매우 편리한 도구 - 트랜잭션의 소요 시간을 그래픽으로 확인 가능 - 호출에 관련된 각 마이크로서비스별로 소요된 시간 분석 가능 이미지 생성, 컨테이너 생성 openzipkin/zipkin Tags | Docker Hub docker run -p 9411:9411 openzipkin/zipkin:2.23 의존성 추가 currency-conversion-service, currency-exchange-service, api-gateway 서버 org.springframework.cloud spring.. 2022. 12. 30.
Spring Cloud (MSA) - Resilience4j @Retry @CircuitBreaker(서킷브레이커) Resilience4j 앞의 서비스가 다운되거나 느릴 때 전체 chain에 영향을 끼친다. -> 만약 그럴때 fallback 반환 -> 부하 감소를 위한 CIrcuit Breaker pattern을 구현 -> 다시 요청 -> 속도 제한 ∴ Resilience4j currency-exchange-service 프로젝트 의존성 추가 org.springframework.boot spring-boot-starter-aop io.github.resilience4j resilience4j-spring-boot2 package com.javapp.microservices.currencyexchangeservice.controller; import io.github.resilience4j.retry.annotation.. 2022. 12. 6.
Spring Cloud (MSA) API Gateway - 경로탐색(Exploring Routes), Logging Filter 이전 포스팅 : 로드밸런서 Spring Cloud Gateway 사용 Simple, yet effective way to route to APIs Provide cross cutting concerns: Security Monitoring/metrics Built on top of Spring WebFlux (Reactive Approach) Features: Match routes on any request attribute Define Predicates and Filters Integrates with Spring Cloud Discovery Client (Load Balancing) Path Rewriting Eureka http://localhost:8761 Setting up Spring Cl.. 2022. 12. 3.
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.