본문 바로가기

전체 글

Spring Boot MSA에서 REST vs gRPC 성능 비교: 40만 건 배치 전송 실험 MSA에서 서비스 간 통신 방식을 선택하는 것은 중요한 기술적 결정이다. 전통적인 HTTP 기반 REST API와 최근 주목받는 gRPC 중 어떤것을 선택해야 할 지 수치를 통해 검증해보고자 한다. 분명히 프로젝트 설계 초반에 비교했었는데… 시간이 지나고 나니 기억이 나지 않아 다시 동일한 조건으로 맞춰서 비교해보고자 한다ㅠ 이 글에서는 Spring Boot로 MSA 환경을 구성하고, 40만건의 데이터를 전송하며 두 프로토콜의 성능을 직접 비교해보겠다.프로젝트 구성Service A(consumer/client) :테스트 시작 요청성능 측정을 위한 메트릭 수집 및 리포트 작성 기능을 담당Service B(producer/Server):대용량 데이터를 생성해서 반환HTTP와 gRPC 두 가지 인터페이스를 모.. 더보기
Mac에서 Redis Cluster 구성 가이드: 실행/종료/노드상태 확인까지 (+ start/stop 스크립트) 🎧 작업할때 들은 플리𝚙𝚕𝚊𝚢𝚕𝚒𝚜𝚝 말랑해지고 싶은 날🍑 피치톤 하루에 어울리는 멜로우 팝송 플리 soft & sweet mellow mood Playlist🧃🎧 회사 pc 환경이 window라서 맥북에 레디스를 설치해본 적이 없는데, 맥북 레디스 환경을 구축하면서 가이드를 정리해두려고 한다.(안하면 또 까먹기 때문) 공식 홈페이지에서는 brew를 사용하라고 가이드되어있다.https://redis.io/docs/latest/operate/oss_and_stack/install/archive/install-redis/install-redis-on-mac-os/ Install Redis on macOSUse Homebrew to install and start Redis on ma.. 더보기
[Kotlin] 코틀린 기초문법(변수, 함수, 흐름제어, 널 안정성, 예외처리, 클래스, 프로퍼티, 상속, 인터페이스, 열거형 클래스) Kotlin Playground: Edit, Run, Share Kotlin Code Online 실시간으로 웹에서 코틀린의 문법을 학습할 수 있는 사이트 1. 변수 val a: Int = 1 //타입을 생략해도 컴파일 에러 X, 타입 추론이 가능하다. val b = 1 //지연할당: 뒤늦게 값을 할당할 수 있다**(지연할당시에는 타입을 반드시 적어줘야함)** val c: Int c= 3 코틀린에서 변수 선언 시에 사용하는 키워드 val : value의 약자, java의 final처럼 재할당이 불가능 var : variable의 약자, 변수의 개념으로 재할당이 가능하다 val e : String = "Hello" e = "World" //컴파일 에러, val은 재할당이 불가능하기 때문이다. var f =.. 더보기
[Kotlin] 코틀린 이해하기 | 코틀린을 배워야 하는 이유 | 자바와 코틀린의 차이점 | 코틀린의 기능✏️[1] 1. 코틀린 이해하기 1. 코틀린의 현재와 미래 코틀린을 배워야 하는 이유 Jetbrains에서 만든 언어 → 자동완성, 코틀린 변환, 코루틴등 관련 편의 기능을 지원한다. 자바는 발표된지 20년이 넘었지만 코틀린, 스위프트와 같은 현대언어에 비해 기능이 부족하다. 자바에서 best-practice로 불리는 기법들을 언어적 차원에서 기본적으로 제공한다. ex) 이펙티브 자바, 디자인패턴 등 자바에 비해 문법이 간결 → 가독성, 생산성이 높고 오류 가능성이 적다. // equals(), hashCode(), toString() 자동으로 생성 data class Person( val name: String, val age: Int, val email: String ) // 간단하게 싱글턴 객체를 생성 obj.. 더보기
[네트워크] HTTPS란? | HTTPS 장점 | HTTPS 사용 이유 | HTTPS 통신 과정 | 대칭키, 공개키 HTTP란? 하이퍼텍스트 전송 프로토콜로 웹 서버 및 웹 브라우저 상호간의 데이터 전송을 위한 응용계층 프로토콜이다. 인터넷상에서 커뮤니케이션에 사용하는 형식 중 하나다. 주소에 http를 명시해야 맞는 형식에 맞게 해독할 수 있다. HTTPS란? http의 보안 처리가 된 버전이 https다. (신뢰할 수 있는 HTTP) 요즘은 웹의 기본 스펙이라고 봐도 된다. 왜냐면 api를 사용하려고 해도 https가 되어있지 않으면 api를 신청할 수 없기 때문이다. https는 어플리케이션 계층과 전송계층 사이에 SSL/TLS 신뢰계층을 추가해 ‘통신을 암호화’한다. HTTPS를 사용하는 이유 내가 어떤 웹 사이트에 보내는 정보를 다른 누군가가 훔쳐보지 못하게 한다. : 알아먹을 수 없게 변경해 훔쳐보더라도 이.. 더보기
[당근테크 밋업 요약] 코프링 | 코틀린의 철학 | 코틀린의 장점 | 코틀린 특징(#살아있다 #자프링외길12년차 #코프링2개월생존기) -1편 코틀린의 철학 : 코틀린은 자바와의 상호운용성에 초점을 맞춘 실용적이고 간결하며 안전한 언어이다. - Kotlin in Action 코틀린의 철학 : 간결성 개발자들은 코드를 작성하는 시간보다, 기존의 코드를 읽는데 시간을 더 많이 쓴다. 코드는 간결할수록 내용을 파악하기 쉽고, 유지보수에도 좋다. 그 중 핵심은 언어의 간결성(의도 파악, 쉬운 구문 구조, 부가적인 코드 최대한 제거) 코틀린은 프로그램작성에 있어 부수적인 요소들을 최대한 줄이고자 노력했다. 예제1) data class Person( val id: UUID, val firstname: String, val lastname: String, val address: Address ) 다음과 같이, data class를 작성하게 되면 getter.. 더보기
[JPA] JPA 개요, JPA 정의, JPA 장점 (자바 ORM 표준 JPA 프로그래밍 1,2장 요약) JPA 개요 ORM 프레임워크 : 객체와 관계형 데이터베이스를 매핑해준다. JPA 정의 EJB에서 하이버네이트를 기반으로 만들어진 새로운 자바 ORM 기술 표준 자바 진영의 ORM 기술 표준이다.(object relational mapping) 지루하고 반복적인 crud sql을 알아서 처리해주고, 실행 시점에 자동으로 SQL을 만들어서 실행한다. 조회 결과를 객체로 매핑하는 작업을 대부분 자동으로 처리해준다. JPA 장점 어플리케이션을 SQL이 아닌 객체 중심으로 개발하다보니 생산성, 유지보수 측면에서 좋다. 1️⃣ 유지보수 측면 JPA를 사용하면, 이러한 과정을 대신 처리해주기 때문에 수정할 코드가 줄어든다. SQL을 직접 다루면 엔티티에 필드를 하나만 추가해도 관련된 등록, 수정, 조회 SQL과 결.. 더보기
[JPA] Hibernate, JPA, Spring Data JPA, JDBC 차이 면접용으로 간단하게 정리해놓은 내용입니다! 맨 아래 참고에 꼼꼼히 설명되어있는 블로그가 있으니 자세히 배우고싶다면 참고해 주세요 🥰 JDBC(Java Database Connectivity) 자바가 데이터베이스와 연결될 수 있도록 제공하는 API JDBC는 인터페이스고, JDBC driver를 통해 해당 인터페이스를 구현한다. JDBC Driver는 각각 데이터베이스마다 존재한다. JPA(Java Persistence API) 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 라이브러리가 아니고, 인터페이스이기 때문에 구현이 없다. Hibernate JPA라는 명세의 구현체이다.(인터페이스를 구현함) JPA를 구현하기 위해 사용한 ORM 프레임워크이고, 성숙도가 높다. Spri.. 더보기