0. 이 글을 작성하는 이유 Spring API Gateway를 사용하며 정리하기 위해 1. 이전 글에서 좀 달라진 점 이전 글 : https://developer-youn.tistory.com/174 Spring Cloud Netflix Zuul을 바라보며 0. 이 글을 작성하는 이유 회사에서 API Gateway에 Spring Cloud Netflix Zuul이 적용되어 있는데 이게 뭐 하는 놈인지 간단하게 알고 가기 위함(추후 더 자세히 작성되는 글이 올라올 수도..) 1. Spring Cloud와 developer-youn.tistory.com 토이프로젝트에서 kotlin + jdk17 + spring boot3을 사용하며 API Gateway를 사용하려고 했는데 netflix-zuul의 경우 더..
분류 전체보기
0. 이 글을 작성하는 이유 파티션 테이블에 대해 공식 문서에서는 어떻게 설명하고 있는지 이해하면서 읽기 위함. 실제 SQL과 같이 실습하는 것은 다음 글에서 이어서 작성할 예정 https://www.postgresql.org/docs/current/ddl-partitioning.html 5.11. Table Partitioning 5.11. Table Partitioning # 5.11.1. Overview 5.11.2. Declarative Partitioning 5.11.3. Partitioning Using Inheritance 5.11.4. Partition Pruning 5.11.5. Partitioning and Constraint Exclusion … www.postgresql.org ht..
0. 이 글을 작성하는 이유 지방에 내려갔다가 서울로 올라오는 버스에서 야스오 버그 영상을 봤는데 이런 메커니즘이 빠져있어서 발생한 버그가 아닐까 하는 게 생각나서 가볍게 정리해 보기 위함(실은 직업병인 듯) 1. 버그 https://youtu.be/GCuyT0C7bBM?feature=shared 요약 : 신규 아이템을 사용하면(원래는 가지고 있으면이지만 개발 편의를 위해 사용으로 바꿔보았다. 딱 한번 사용 가능하다고 해보자.) 궁극기 쿨타임이 줄어드는데 문제는 사용하고 상점에 팔고 다시 사고 사용하고 상점에 팔고 사고.. 반복하는 만큼 쿨타임이 계속 줄어드는 것 2. 정상 동작은? 실은 팔고 나면 다시 원래대로 쿨타임이 적용되어야 하는데 그러지 못함 3. 왠지? 원래대로 돌려주는 로직이 빠져있는 느낌이..
0. 이 글을 작성하는 이유 Git의 기능 중 rebase를 잘 사용해 본 적이 없었는데 최근 사용하는 일이 늘어 이 rebase라는 기능에 어떻게 적응하게 되었는지, 어떤 기능을 가졌는지 실습 과정을 공유하기 위함 1. 실습 환경 https://learngitbranching.js.org/?locale=ko Learn Git Branching An interactive Git visualization tool to educate and challenge! learngitbranching.js.org 이 사이트가 지구상에 있다는 건 큰 축복입니다. 2. 우선 내가 하려고 하는건 이 실습을 여러 번 하게 되면 rebase의 기능 자체에 대해서 몸으로 기억하게 된다. 3. 실습 시작 아무튼 목표처럼 만들어보..
0. 이 글을 작성하는 이유 패스트캠퍼스 강의를 듣다 WebSocket관련 내용이 나와서 다시 정리하고자 함 1. WebSocket이란 웹상에서 소켓으로 양방향 통신을 하는 기술로 실시간 애플리케이션에 유용한 기술이다. 통신을 위해서 HTTP 포트 중 80번, 443번 포트를 사용한다. 80번 : ws (WebSocket) 443번 : wss(WebSocket Secure) 데이터가 프레임으로 전송되는 간단한 메시지 기반 모델을 사용하고 있어 바이너리 또는 텍스트 기반의 데이터 전송 유형에 유연성을 가진다. 또한 하트비트 및 오류 처리에 대한 지원 기능이 내장되어 있다. 하트비트(heartbeat) 서로 언제든 메시지를 보낼 수 있는 상황에서 상대방이 수신 가능한 상태인지 확인하기 위해 주기적으로 확인하..
0. 이 글의 목적 테스트 환경에서 H2를 사용하다 보니 jsonb같은 dialect를 이해하지 못하는 상황이 발생함 Postgresql95Dialect로 dialect에 대해 설정하는 등 다양한 방법을 시도해 보았으나 실패하다 테스트 DB자체를 바꾸면 되는 거 아닌가 하는 생각으로 구글링과 함께 스타트 1. 동작 방식 요약 postgresql 도커 컨테이너를 내부적으로 띄워서 h2가 아닌 이 컨테이너와 통신하며 테스트를 진행하는 방식입니다. 초기 이미지 pulling으로 인해 시간이 조금 더 걸릴 수 있습니다. 2. gradle 설정 testImplementation("org.testcontainers:testcontainers:1.17.3") testImplementation("org.testcont..
0. 이 글을 작성하는 이유 회사에서 API Gateway에 Spring Cloud Netflix Zuul이 적용되어 있는데 이게 뭐 하는 놈인지 간단하게 알고 가기 위함(추후 더 자세히 작성되는 글이 올라올 수도..) 1. Spring Cloud와 Spring Cloud Zuul 우선 Spring Cloud는 MSA를 구축할 때 도움이 되는 여러 기능들을 제공한다. Spring Cloud의 프로젝트 안에 다양한 프로젝트들이 존재하는데 그중 Spring Cloud Netflix가 존재한다. Spring Cloud Netflix에는 Zuul이 포함되어 있다. 정확히는 Spring Cloud Zuul이 아닌 Netflix Zuul이고 이를 Spring Cloud에서 활용한 기술이 활용한 기술이 Spring ..
0. 이 글을 작성하는 이유 코틀린의 Class에서 상속을 받는 경우 ()를 붙이는 경우가 있고 안 붙이는 경우가 있다. 어떤 차이가 있는지 약간의 부연 설명을 더해서 정리하기 위해 1. Kotlin에서의 상속과 구현 Kotlin은 Java와는 다르게 extends나 implements키워드 없이 : 키워드 하나로 모든 것을 처리하고 있다. class Animal : AnimalInterface { } class Carnivore : Animal(),CarnivoreInterface { } 여기서 Java 사용자가 두 가지 부자연스럽게 느끼는 부분이 생겼다. 왜 갑자기 빨간 줄이 생겼으며 소괄호를 만들었는가 2. Kotlin의 Open키워드 Java에서는 기본적으로 클래스 생성 시 모든 접근 제어자가 d..
0. 이 글을 쓰는 이유 AMQP에 대해 잘 몰라서 RabbitMQ의 AMQP0-9-1 문서를 보며 개념을 알아가기 위함 https://www.rabbitmq.com/tutorials/amqp-concepts.html AMQP 0-9-1 Model Explained — RabbitMQ AMQP 0-9-1 Model Explained This guide provides an overview of the AMQP 0-9-1 protocol, one of the protocols supported by RabbitMQ. AMQP 0-9-1 (Advanced Message Queuing Protocol) is a messaging protocol that enables conforming client appli..
0. 이 글을 쓰는 이유 MSA에 대해 잘 몰라서 개념이라도 알아가기 위해 정리하기 위함 이 글은 모두 아래 영상들에서 나온 내용으로 영상을 보는 것을 추천합니다. https://www.youtube.com/watch?v=8d4h7K_Fq-0 https://youtu.be/UsdB03LgqAM?feature=shared 1. MSA란? Micro Service Architecture의 약자로 서비스를 비즈니스 경계에 맞게 세분화하고 서비스 간 통신은 네트워크 호출을 통해 진행하여 확장 가능하고 회복적이며 유연한 어플리케이션을 구성하는 아키텍처 2. 기존 Monolithic 방법론에 어떠한 문제점이 있길래? 여러 기능이 뭉쳐 Coupling과 Dependency가 강해 아래와 같은 문제점들이 발생한다. 소..