전체 글 44

3. 공조 마이크로서비스 집합 생성

기술 요구사항이 책은 맥OS 에서 진행하는데 나는 Windows11 이라 좀 안타깝다. 도구 설치GitJavaCurljq스프링 부트 CLI현재 스프링 부트 CLI 3.2.5v 가 최신인데 이 버전은 Java 17을 필요로 한다. Java 버전이랑 스프링 부트 CLI 버전이랑 맞추어야 하고, jq 는 Chocolatey 패키지 매니저를 통해 다운받자.(환경변수 설정 잘 해주자) 소스 코드https://github.com/PacktPublishing/Hands-On-Microservices-with-Spring-Boot-and-Spring-Cloud 에서 다운받자. 마이크로서비스 환경 소개챕터3 에서 만들 마이크로서비스 구조는 아래와 같다.  Product 서비스 (port: 7001)Product 서비스는..

1. 마이크로서비스 소개

마이크로서비스 정의마이크로서비스 목표마이크로서비스 아키텍처는 두 가지 목표를 달성하고자 일체형 애플리케이션을 작은 컴포넌트로 나누는 것빠르게 개발해 지속적으로 배포수동 혹은 자동으로 쉽게 스케일링즉, 마이크로서비스는 독자적인 업그레이드와 스케일링이 가능한 독립 소프트웨어 컴포넌트독립 컴포넌트로 동작하려면, 다음과 같은 기준 유지 필요아무것도 공유하지 않는 아키텍처를 유지, 데이터베이스의 데이터를 공유하지 않음명확한 인터페이스를 통해서만 통신개별적인 런타임 프로세스로 배포마이크로서비스 인스턴스는 Stateless. 마이크로서비스의 문제동기식 통신을 사용하는 다수의 소형 컴포넌트의 연쇄 장애다수의 소형컴포넌트를 최신 상태로 유지가 어려움많은 컴포넌트가 관여하는 요청은 추적이 어려움컴포넌트 수준의 하드웨어 자..

0. MSA 공부 시작

어쩌다보니 회사에 품질팀에 들어가게 되었는데 DevOps, MSA 등등 좀 알아야 해서 공부를 해야한다.작년부터 공부하려 했는데 이제 강제성(?)이 생겨서 드디어 하게 되었다..  스프링으로 하는 마이크로서비스 구축작년에 회사 연수시스템에서 이 책으로 진행하는 강의가 있었는데 놓쳐가지고 그냥 독학으로 해보겠다. 책 「들어가기」 에 보면 이 책은 주로 스프링 부트, 스프링 클라우드, 도커, 쿠버네티스, 이스티오, EFK 스택, 프로메테우스, 그라파나 같은 오픈소스 도구를 다룬다고 나와있다. 매우 어려워 보이지만 시작이 반이라고 일단 시작하고 보자.

파이썬 functools

파이썬 functools 안에 코테할때 쓰기 좋은 함수들이 있는 거 같아 정리해보고자 한다. 1. cmp_to_key from functools import cmp_to_key def compare(a, b): print(a, b) if a > b: return 1 elif a < b: return -1 else: return 0 print(sorted([4, 1, 3, 2], key=cmp_to_key(compare))) # Comparing 1, 4 # Comparing 3, 1 # Comparing 3, 4 # Comparing 3, 1 # Comparing 2, 3 # Comparing 2, 1 # [1, 2, 3, 4] 이거도 자바랑 마찬가지로 a, b 에 거꾸로 들어오고 리턴값이 - 이면 순서..

Algorithm/파이썬 2022.07.01

OSI 7계층

정리를 해야겠다. 정리를 하면서 외우고 앞으로 내 거를 보자! 1) Physical (물리 계층) 리피터, 케이블, 허브 통신 케이블을 통해 데이터를 전기적인 신호인 비트 흐름으로 전송하는 기능만 담당 2) Data Link (데이터 링크 계층) 브릿지, 스위치 물리 계층을 통해 송수신되는 정보를 안전하게 전달되도록 도와주는 역할. Mac 주소를 통해 통신, 데이터에 Mac 주소를 추가하여 Frame 을 만듬. 에러검출, 재전송, 흐름제어 진행 3) Network (네트워크 계층) 라우터, IP 데이터를 목적지까지 안전하고 빠르게 전달하는 기능 수행 라우터를 통해 이동할 경로를 선택해 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달 라우팅, 흐름 제어, 오류 제어 수행 4) Transport (전송..

Network 2022.06.22

코틀린 (3) Functions

코틀린에는 거의 모든 게 value 가 있더라. val isUnit = println("This is an expression") println(isUnit) This is an expression kotlin.Unit 심지어 println 도 값이 있다. 기본 값이 kotlin.Unit 이다. if else 문도 expression 이라 할 수 있고 return 값이 있어서 아래와 같이 쓸 수 있다!! val temperature = 10 val isHot = if (temperature > 50) true else false println(isHot) false string 안에서도 쓸 수 있다! val temperature = 10 val message = "The water temperature ..

Kotlin 2022.04.03

코틀린 (2)

1. 코틀린에서 숫자는 primitive type 인데 이거를 객체인거 처럼 해서 숫자에 함수를 호출할 수 있게 해준다. 이거 봐라. 2. 코틀린에서는 implicit type conversion이 안된다. 그래서 이렇게 해야한다. 3. 코틀린에는 두 가지 변수 타입 var(mutable), val(immutable) 이 있다. var 는 언제든 대입이 가능하고 val 은 선언되었을 때 한번 대입이 가능하다. 그리고 변수가 무슨 타입인지 명시적으로 표시할 수도 있고 컴파일러가 그냥 쉽게 알 수 있으면 생략가능. 4. String 이렇게 할 수 있다. $ 키워드와 {} 중괄호 를 기억하자. 5. if문 신박하다. 1..100 하면 1이상 100 이하가 된다. else 문이 if 문 중괄호 끝나는 라인에 이..

Kotlin 2022.04.02

코틀린

팔자에도 없는 코틀린을 배우게 되었다.... 학교에서 프로젝트 과목인데 프로젝트랑 상관없는 코틀린을 가르치고 심지어 중간고사까지 본다.... 매우 극혐이지만 그래도 시험보니까 알고있는거랑 다른 코틀린 문법을 적어보겠다. 시작은 역시 hello world 로 main 함수 꼬라지를 보면 아주 천박하다. fun 쓰는 거 봐라. 아주 fun fun 하다. 다만 System.out 이 빠진 거는 아주 좋다. 물론 soutv 나 soutm 을 입력하면 인텔리제이에서 알아서 만들어 주니까 괜찮긴 한데 그래도 아주 좋다. 추가로 Kotlin Repl 을 알고가자. 인텔리제이에서 도구 ---> 코틀린 ------> Kotlin REPL 을 선택하면 이런 게 뜨고 대화 형식으로 한줄 입력하고 결과 받고 하는 쉘이 나온다..

Kotlin 2022.04.02