Recommend
-
2022년 회고
2022년 돌아보기 회고를 할 때 쯤 그 동안의 스스로를 평가한다. 어떻게 살았나, 잘 살았나. 머릿 속으로는 막연하도록 한참 부족한 것 같다. 하지만, 글을 정리하며 꽤 많은 것을 이루었음을 깨달을 때 "잘 살고있나보다" 생각 든다. 그래서 회고가 기다려지나보다. 스스로의 자책이 깊어질 때, 잘 가고 있다고 더 나아가도 된다고 길을 터준다. 이번 해도 지난 해 못지않게 큰 변화가 일어났다. 다만, 깊은 암울과 좌절스러웠던 지난 해와는 상반되게, 희망찼고 밝았다. 이번 해 목표를 만족스럽게 이루었다. 지난 해, 2021년 회고에서 정한 목표와, 2022년 상반기 회고를 통해 새로 다짐한 목표들도 이루어 나갔다. 아침 6시에 하루를 시작하고, 운동을 한 후 도시락을 만들고, 출근 버스에서 뉴스레터나 책을 ..
-
Docker Engine, 제대로 이해하기 (1)
📌 Docker Series > Docker Engine, 제대로 이해하기 (1) - docker engine deep dive Docker Engine, 제대로 이해하기 (2) - namespace, cgroup Docker Network, 제대로 이해하기 (1) - libnetwork Docker Network, 제대로 이해하기 (2) - bridge, host, none drivers 안녕하세요. 오늘은 Docker Engine에 대해 깊게 다루려고 합니다. 이 포스팅의 목적은 dockerEngine의 내부 구조와 동작원리 등을 최대한 자세히 다루는데 있습니다. 이 글을 읽는 독자가 Docker image, container 등 기본적인 개념을 이해한다는 가정하에 작성합니다. 참고 사항으로, 포스팅..
-
Design Patterns, 제대로 이해하기
안녕하세요. GoF 디자인 패턴을 정리하고자 합니다. 디자인 패턴은 일주일 전부터 공부를 시작했는데, 스스로 설명하듯 적는게 익히는데 도움이 클 것같아 정말 오랜만에 시리즈로 포스팅하려 합니다 👊🏻 아래의 책들을 보며 정리했습니다. - GoF Design Patterns - 쉽게 배워 바로 써먹는 디자인 패턴 - Head First Design Patterns, 2nd Edition 아래는 디자인 패턴을 분류한 테이블입니다. Scope에 따라 Class와 Object로 분류합니다. Class는 상속과 관련된 패턴이며, Object는 연관된 객체들과 관련된 패턴입니다. 제가 이해하기로는 Class가 조금 더 수직적인 관계를 다루지 않나 싶습니다. Creational Pattern Class Scope는 객..
-
Work Well on Teams - Software Engineering at Google
본 포스팅은 Software Engineering at Google의 내용을 정리한 내용입니다. 2-3 min read 해당 내용은 O'reilly에서 출간하고, 저자에 의해 공개된 Software Engineering at Google을 바탕으로 참고하여 정리한 내용입니다. 내용이 재밌기도 하고 기록하고 싶은 내용이 많아서 몇 가지 정리해볼 예정입니다. 팀워크 이끌어내기 Many eyes make sure your project stays relevant and on track 많은 개발자들이 본인이 개발한 코드를 누군가에게 공개하는 걸 두려워한다. 아직 완성되지 않은 코드를 들키는 걸 굉장히 두려워한다. "천재 신화"라는 소주제를 달았는데, 이는 코드를 한 번에 잘 짜려고 해서 붙인 것 같다. 저자는..
Most Popular
-
Spring WebClient, 어렵지 않게 사용하기
WebClient는 스프링 5.0에서 추가된 Blocking과 Non-Blocking 방식을 지원하는 HTTP 클라이언트입니다. - Reactor, 제대로 사용하기 - Error Handling - Reactive Programming, 제대로 이해하기 👉🏻 WebClient 소개 - Spring WebClient, 제대로 사용하기 - retrieve - Spring WebClient, 제대로 사용하기 - exchange WebClient의 설정 및 요청, 응답 처리 등의 사용법을 학습하는 것이 본 포스팅의 목적입니다. ----------------- INDEX ----------------- WebClient? Create 📌 create() 📌 build() Configuration 📌 Timeout..
-
DeepSORT, 제대로 이해하기
DeepSORT는 가장 널리 사용되고 있는 객체 추적 프레임워크 중 하나로, SORT(Simple Online and Realtime Tracking)을 보완 확장한 기술입니다. 📚 사전 지식 먼저 다룰 사전 지식은 DeepSORT에서 사용되는 기술들입니다. 미리 알면 DeepSORT에서 왜 사용되었는지, 이 기술을 써서 얼마나 더 좋아졌을지를 납득하기 위한 내용들입니다. DeepSORT를 한 번 훑고 보는 것도 좋고, 순서에 맞게 읽어도 좋습니다. 본인이 이해하기 쉬운 순서가 무엇인지 생각하고 읽는 것을 권장합니다. ✔️ Kalman filter 칼만 필터는 간단하게 소개하자면, 이전 프레임에 등장한 개체를 이용하여 다음 프레임의 개체의 위치를 예측하고 측정합니다. 위의 그림에서 Predicted st..
-
Spring Cache, 제대로 사용하기
Spring Cache 사용법, Annotation 등을 알아보고 설정 방식을 알아보는 것이 해당 포스팅의 목표입니다. 📌 Spring Cache Series ✔ Spring Cache, 제대로 사용하기 ✔ Caffeine Cache, 제대로 사용하기 1 ✔ Caffeine Cache, 제대로 사용하기 2 해당 포스팅에서는 Spring Cache에 대해 다룹니다. Cache를 사용하기 위해서는 CacheManager가 필요한데요. 연결되는 다음 포스팅에서는 로컬 캐시 중 성능에 유리한 Caffeine Cache를 다룹니다. ----------------- INDEX ----------------- Cache ? 📌 Cache Abstraction 📌 Cache Manager 📌 의존성 추가 @Enable..
-
MySQL FullText Search, 제대로 이해하기
MySQL의 fulltext search 에 대한 이해와 MATCH AGAINST 사용법을 간단히 알아보는 것이 해당 포스팅의 목표입니다. 후속 포스팅으로 FULLTEXT 검색 파서 중 하나인 "ngram" 사용법에 대해 다룰 때 구문 사용법을 조금 더 자세히 알아볼 예정이며, 해당 포스팅에서는 FullText 기본적인 내용과 활용법에 대해 알아보고자 합니다. Full-Text Searches MySQL을 사용할 때, LIKE 연산을 통한 패턴 일치 검색을 사용하고는 합니다. LIKE 연산을 통해 검색을 하게 되면 인덱스를 통한 검색을 못할 때가 생기곤 하는데요. 이럴 때 고려해볼 수 있는 것이 바로 오늘 다룰 전문 검색, Full-Text 검색입니다. FullText 검색은 단어 또는 구문에 대한 검색..
-
Spring WebClient, 제대로 사용하기 - retrieve
Spring WebClient의 retrieve를 사용한 요청 방법과 Exception Handling 방법을 알아보고, 테스트해보는 것이 본 포스팅의 목표입니다. | 이어지는 포스팅 | #1. WebClient 소개 : Spring WebClient, 어렵지 않게 사용하기 #2. WebClient.retrieve() 통신 방법 :현재 포스팅 #3.WebClient.exchange() 통신 방법 : Spring WebClient, 제대로 사용하기 - exchange Reactive Programming의 전반적인 흐름 및 개념은 Reactive Programming, 제대로 이해하기를 참고해주세요. 안녕하세요. 지난 포스팅 "Spring WebClient, 어렵지 않게 사용하기"에 이어 이번 포스팅에서는..
-
Spring Security, 제대로 이해하기 - FilterChain
Spring Security의 인증, 인가 과정을 FilterChain을 살펴보며 이해하는 것이 본 포스팅의 목표입니다. 해당 포스팅은 1부 Spring Security, 어렵지 않게 설정하기의 이은 포스팅이지만, 읽는데 순서는 상관없습니다. 이해하는데 서로 도움이 되는 포스팅입니다. ----------------- INDEX ----------------- [ 1부: 설정 ] WebSecurityConfigurerAdapter HttpSecurity WebSecurity [ 2부 - 인증, 인가 동작 원리: FilterChain] 📚 Big Picture 초기화 사용자 요청 후 ? 🔗 FilterChain SecurityContextPersistenceFilter LogoutFilter Username..
-
Spring Exception, 제대로 처리하기
안녕하세요. 오늘은 Spring에서의 Exception 처리에 대해 다루도록 하겠습니다. 본 내용은 토비의 스프링 3.1 을 학습하고 정리한 글입니다. 자세한 정리본은 깃허브를 참고해주세요. 문제의 예외 처리 방법 예외를 처리하는 건 코드를 짜면서 굉장히 번거로운 일이 될 수 있습니다. 그래서 많은 사람들이 예외 처리를 할 때 문제가 되는 코드를 짜곤 하는데요. 지금부터 어떤 예외 처리 방법이 문제가 되는지 알아보도록 할게요. 📌 예외 블랙홀 예외에 대한 아무런 대응없이 진행되는 코드 종종 코드를 짜게 되면 아래와 같은 코드를 확인할 수 있습니다. try { ... } catch(SQLException e) { } 위와 같은 처리는 프로그램 실행 중 오류로 인해 예외가 발생했는데, 무시하고 계속 진행해버..
-
Postman, 어렵지 않게 사용하기 - 사용
안녕하세요 😆 이 번 포스팅의 주제는 서버 개발을 할 때 필수적인! POSTMAN을 '제대로' 사용하는 법에 대해 다룰 예정입니다. 서버뿐만 아니라, 클라이언트를 개발하는 분들도 도움이 되는 내용들을 다룰테니 도움이 되셨으면 좋겠어요. 지난 포스팅에서는 postman에 대한 구조를 알아보았어요. UI를 알아야 사용할 때 헤매지 않겠죠? 사용하면서 금방 익숙해지겠지만, 처음 보는 분들은 참고하시고 보면 좋을 것 같아요 ! 이 전 포스팅에 이은 시리즈입니다. 이 전글을 확인해주세요 ❗️Postman, 어렵지 않게 사용하기 - 소개 ***************** INDEX ***************** 1장 - 소개 ✨ POSTMAN❓ 🚀Installation 🌈 Structure 2장 - 사용 🧞♀️ ..
Recent
-
원씽, THE ONE THING - Gary Keller, Jay Papasan
"The One Thing: The Surprisingly Simple Truth Behind Extraordinary Results" - "원씽: 복잡한 세상을 이기는 단순함의 힘" Date: 2023.01.04 ~ 2023.01.16 Rate: ★ 4.2 Pages: 240 Comment: "What is your ONE Thing?". 책을 처음 시작하면서 던졌던 질문이며, 이 책의 모든 것이다. 단 한가지 목표를 정해서 그 목표만을 위해 집중하라, 사실 여느 자기계발서와 동일한 맥락으로 느껴졌다. 하지만 중요한 것은, 이를 달성하는 가장 짧은 길을 찾아가도록 효율적인 작은 성취들이 필요하는 것이다. 달성하는 길의 방식을 최대한 효율적이게 설정해야 하며, 한 목표를 이루고자 할 때, 그 달성을 이루..
-
Garbage Collector, 제대로 이해하기
소프트웨어 개발라면 본인의 제품이 메모리를 관리하는 방식에 대한 이해가 필요합니다. 특히 Heap 영역에서 일어나는 동적 메모리 관리는 소프트웨어의 성능을 결정짓는 중요한 요소 중 하나입니다. 컴파일 언어에서 Stack 영역은 컴파일 시간에 그 크기를 가늠할 수 있는 정적 할당과는 달리, 동적 할당은 Runtime 시 Heap영역에서 할당되어 지기 때문에 그 크기가 Application 실행 동안 결정되어 집니다. Garbage Collection C나 C++에서는 개발자들이 동적 할당을 위한 코딩 작업을 하고 난 후, 더 이상 사용되지 않을 때 수동으로 해제해야 합니다. 수동으로 메모리를 해제하는 작업에 대한 휴먼 오류가 발생하기 쉬운데요. 다음과 같은 오류가 발생할 수 있습니다. - 메모리 누수를 유..
-
트렌드 코리아 2023
해당 포스팅은 "트렌드 코리아 2023"을 보고 요약 및 정리한 내용입니다. 트렌드 코리아 2023 Date: 2022.12.28 ~ 2023.01.04 Rate: ★ 4.0 Pages: 424 Comment: MZ세대, 알파 세대에 대한 분석부터 다양한 세대를 아울러 현재 시장의 흐름과 특징을 '키워드'로 제시함으로써 2022년을 정리하고 2023년을 미리 예측하여 준비할 수 있게 만든다. 트렌드 코리아 2022년에 등장했던 많은 키워드와 내용들이 2023년에도 다수 보이며, 2022년에 이미 제시한 키워드를 더 중의적인 단어로 표현하기도 한다. '체리슈머'와 '인덱스관계' 등 본인에게도 크게 보이는 특징을 '키워드'로 정의하여 제시함으로써 공감과 동시에 현세대를 이해할 수 있는 계기를 만든다. 가장 ..
-
HTTP/3, 제대로 이해하기
해당 포스팅은 HTTP/3의 구조와 특징에 대해 이전 HTTP 프로토콜과 비교하여 이해하는 것을 목표로 합니다. 2022년 6월, HTTP의 세 번째 버전인 HTTP/3가 IETF(Internet Engineering Task Force) 표준으로 채택되었습니다. 새로운 표준에 어떤 특징이 있는지, 웹 상에 어떤 변화가 있을지 알아볼 필요가 있어 보이는데요. 그래서 해당 포스팅에서 HTTP/3의 등장 이유와 그 특징에 대해 알아보겠습니다. 물론, 표준으로 채택된 후 바로 웹 상에 적용되지는 않겠지만, 이를 대비해두고 준비해야할 필요는 있습니다. HTTP HTTP는 HyperText Transfer Protocol의 약자로, 링크를 통해 다른 문서로 연결될 수 있는 문서를 전송하는 규격이 정해진 규칙 체계..
-
죽음의 수용소에서, 빅터 플랭클
Man’s searching for Meaning, Viktor E. Frankl Date: 2022.12.27 ~ 2022.12.29 Rate: ★ 4.5 Pages: 224 Comment: 인간이 쓸모있는 사람으로 만들어질 때 의미 있는 것이 아니라, 인간이 찾아야할 의미를 추구할 때 쓸모있는 사람이 되어간다. 빅터 플랭클과 같이 누군가에게 동력을 줄 수 있는 현명한 사람, 다른 의미로 가치론적인 의미를 크게 얻은 사람들과 보통 사람들과의 차이는 섬세함 아닐까. ‘인간의 존엄성을 단순히 유용성과 혼동하지 말라’는 그가 주장하는 구문에서 볼 수 있듯이, 미묘함을 구분할 줄 아는 섬세한 감각을 발전시켜왔다고 생각한다. Summary: 3년 간의 수용소 경험 후, 빅터 플랭클의 삶의 이유를 탐구하는 새로운..
-
Circuit Breaker, 제대로 이해하기
Circuit Breaker 마이크로 서비스 아키텍처(MSA, Micro Service Architecture)를 쉽게 말하면, 한가지 일만 잘하는 서비스들이 협업하는 아키텍처입니다. 서비스들은 HTTP 통신이나 RPC, Socket 등으로 서로 간의 통신하여 협업합니다. 많은 경우에서, 마이크로 서비스들은 특정 기능을 제공하기 위해 해당 아키텍처의 다른 서비스에게 통신을 요청합니다. 그리곤, 원하는 응답을 받아 계속해서 처리하죠. 비동기의 경우에는 달라질 수 있지만, 동기 방식에는 이런 방식으로 각 서비스가 의존적으로 구성됩니다. 이 경우의 문제점은 한 서비스에서 에러가 발생하거나 느려지면 이를 호출하는 다른 서비스들로 장애가 전파된다는 것입니다. 이를 위해 마이크로 서비스 아키텍처의 서비스들은 스스로..
-
2022년 회고
2022년 돌아보기 회고를 할 때 쯤 그 동안의 스스로를 평가한다. 어떻게 살았나, 잘 살았나. 머릿 속으로는 막연하도록 한참 부족한 것 같다. 하지만, 글을 정리하며 꽤 많은 것을 이루었음을 깨달을 때 "잘 살고있나보다" 생각 든다. 그래서 회고가 기다려지나보다. 스스로의 자책이 깊어질 때, 잘 가고 있다고 더 나아가도 된다고 길을 터준다. 이번 해도 지난 해 못지않게 큰 변화가 일어났다. 다만, 깊은 암울과 좌절스러웠던 지난 해와는 상반되게, 희망찼고 밝았다. 이번 해 목표를 만족스럽게 이루었다. 지난 해, 2021년 회고에서 정한 목표와, 2022년 상반기 회고를 통해 새로 다짐한 목표들도 이루어 나갔다. 아침 6시에 하루를 시작하고, 운동을 한 후 도시락을 만들고, 출근 버스에서 뉴스레터나 책을 ..
-
Technical Writing, 개발자 글쓰기 가이드
본 글은 Technical Writing Process의 5단계를 소개하며, 의사소통을 위한 기술적 글쓰기 방식을 소개합니다. TL;DR What is Technical Writing? : 체계적인 방법으로 글쓰기를 작성하여 글쓰기의 어려움을 없앨 뿐만 아니라, 글의 내용을 정확하고 효과적으로 전달하기 위해 분명하고 알기 쉽게 작성하는 문서 작성 기술. Technical Writing 5 STEP : 기획 > 구조화 > 문서작성 > 리뷰 > 배포 Google의 "Software Engineering at Google" 에서는 Documentation의 중요성을 알리며, 실제 구글러들이 사용하는 방식을 안내합니다. 해당 내용은 Documentation - Software Engineering at Goog..
-
구글이 제안하는, 최적화된 오류 메세지 작성하기
소프트웨어 엔지니어들은 매일, 그리고 매 번 문서를 포함하여 다양한 글을 작성합니다. 메신저, 이메일, 일일 보고서, 코드, 그리고 심지어 코드 사이의 주석까지 다양한 범주를 아울러 글을 작성합니다. 팀원들과의 원활한 의사소통을 하거나 정보를 나누기 위해서 잘 작성된 문서는 엔지니어들의 업무 환경의 질을 향상시킵니다. 따라서 Technical Writing은 엔지니어링 영역의 중요한 부분 중 하나입니다. 구글은 공학자들의 Technical Writing 능력 향상을 위해서 공식 사이트에서 교육 자료를 공유합니다. 해당 포스팅에서는 구글의 공식 사이트의 한 부분인 Writing Helpful Error Messages를 다룹니다. 해당 포스팅은 오류 메세지를 효율적이고 생산적인 방식으로 작성하는 것을 주로..
-
Reactor, 제대로 이해하기, zip() method
Reactor Publisher인 Mono와 Flux의 요소를 결합하는 zip를 이해하고 예제 코드로 직접 코드를 확인하는 것이 해당 포스팅의 목적입니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create 👉🏻 Reactor, 제대로 이해하기, zip() method Zip method? Reactor가 zip method를 사용하면 두 개의 소스를 병합할 수 있습니다. 다양한 형태의 zip 메소드들을 지원하고 있으며, 모든 zip 메소드는 '주어진 입력 소스를 병합하는' 동일한 역할을 합니다. 아래의 그림에서 볼 수 있듯이, zip 메소드..
-
Reactor, 제대로 이해하기, Flux Create
Reactor Publisher인 Flux를 생성하는 방법에 대해 이해하고 예제 코드로 직접 코드를 확인하는 것이 해당 포스팅의 목적입니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram 👉🏻 Reactor, 제대로 이해하기 - Flux Create .from() 🔗 Reactor Link : Publisher로 부터 새로운 Flux 인자 방출emit Flux from(Publisher
-
Reactor 제대로 이해하기, Marble Diagram
본 포스팅은 Project Reactor를 Marble Diagram을 읽는 방법과 함께 쉽게 이해하는 것이 목표입니다. 시리즈가 시작됐습니다 🔥 프로젝트 리액터를 파볼 예정입니다. Reactor는 Spring의 WebFlux가 채택한 Reactive Library입니다. 즉, WebFlux의 기반이자 기본 구성 요소이 됩니다. | Reactor Series | - Reactive Programming, 제대로 이해하기 👉🏻 Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Reactor는 JVM 환경에서 Non-blocking의 Reactive Programming을 전적으로 지원하며, "Backpressure"을 관리하면서 데이터의..
-
Reactor, 제대로 사용하기 - Error Handling
Project Reactor의 Reactor API 사용 중 발생하는 오류를 처리하기 위한 메소드를 이해하고 사용하는 것이 해당 포스팅의 목표입니다. onErrorXxx onErrorXxx 형태의 메소드는 Reactor API 처리 중 오류가 발생하면 일어나는 onError Signal을 대상으로 처리합니다. 다룰 메소드를 훑어보면 아래와 같습니다. ✔ onErrorComplete(): : onError Signal을 onComplete Signal로 변경 ✔ onErrorContinue(BiConsumer) : 해당 Element 스킵 후 다음 Element로 로직 계속 진행. Consumer에서 적절한 처리 지정 ✔ onErrorMap() : Exception을 다른 Exception으로 타입 전환 ..
-
Rate Limiter, 제대로 이해하기
Rate limiter의 역할과 강단점을 살펴보고, 구현 알고리즘 5가지를 이해하는 것이 해당 포스팅의 목표입니다. 본 포스팅의 모든 그림은 필자가 직접 그린 것으로 무단 사용을 금하며, 사용 시 출처를 반드시 남겨주시길 바랍니다. Rate Limiting Rate Limiting이란 특정 시간 내에 할 수 있는 API 호출 수를 의미합니다. 사용자의 API 호출 수가 Rate Limit값을 초과하면 API 호출이 제한되며 요청이 실패하게 됩니다. 즉, 단어 그대로 API의 속도를 제한합니다. Rate Limiter를 적용하면 고가용성과 안정성을 보장할 수 있습니다. 무차별적으로 인입되는 요청을 받는 서버에서의 불안정성을 생각해보면 RateLimiter의 이 특징을 금방 납득할 수 있습니다. Why us..
-
Reactive Programming, 제대로 이해하기
Spring의 WebFlux에 대한 개념을 쉽고 정확하게 이해하는 것을 목표로 합니다. | Reactor Series | 👉🏻 Reactive Programming, 제대로 이해하기 - Reactor 제대로 이해하기, Marble Diagram - Reactor, 제대로 이해하기 - Flux Create Background 많은 서비스를 한 앱에 구현하는 monolithic 구조는 더 이상 사용하지 않습니다. 빠른 속도를 요구하는 시대에서 monolithic 구조는 문제가 점점 도태되었습니다. 대신 작게 분산된 컴포넌트를 구성하여 연결하는 microservice 구조(MSA)와 이를 서비스하는 클라우드 기반의 클러스터를 선호하게 되었습니다. Microservice 구조는 한 앱을 작은 컴포넌트로 분산시킨..
-
Shenyu API Gateway, 어렵지 않게 시작하기 2
이전 포스팅에 이어 해당 포스팅에서는 ShenYu 초기 설정을 수정해보겠습니다. 기본 옵션인 H2 데이터베이스를 MySQL 로 변경하는 작업과 Port를 변경하는 작업, 그리고 만약 binary 파일을 다운받고 실행시켰을 때 java 명령을 못찾는 경우를 위해 경로를 지정하는 방법까지 알아보겠습니다. Using MySQL Shenyu API Gateway에 MySQL을 적용하기 위해서는 Admin에 몇 가지 설정이 필요합니다. 순서는 아래와 같습니다. 1. Download MySQL Connector : Library Package 다운로드 2. conf/application.yml 설정 변경 3. conf/application-mysql.yml 설정 변경: MySQL 연결 정보 입력 하나씩 살펴보도록 ..
-
Shenyu API Gateway, 어렵지 않게 시작하기 1
이전 포스팅 "Shenyu API Gateway, 어렵지 않게 이해하기" 에서는 SheunYu 에 대한 전반적인 설명을 했는데요. 해당 포스팅에서는 SheunYu를 사용하는 법에 대해 다룹니다. 코드는 Github에서 확인할 수 있습니다. Launch Shenyu Binary Packages 🔗 Ref. Shenyu API Gateway를 사용하기 위해서는 아래와 같은 두 개의 모듈이 실행되어야 합니다. 1. Shenyu Admin Setting 2. Shenyu Bootstrap Setting Admin, Bootstrap 각각 순서대로 실행하면 됩니다. 해당 포스팅에서는 Binary를 받아서 실행시키는 방식을 다루고, 다음 포스팅에서 MySQL을 적용하고 실행 포트를 변경하는 설정으로 실행시키는 과정..
-
Shenyu API Gateway, 어렵지 않게 이해하기
API Gateway : 전체 서비스 내부 및 외부에서 로드 밸런싱을 포함한 API 트래픽 및 요청을 관리 API Gateway는 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호합니다. API Gateway를 통해 사용할 수 있는 특징은 아래와 같습니다. ✔️ 백엔드 시스템 및 서비스에 대한 액세스를 제어 ✔️ 클라이언트와 여러 백엔드 서비스 간 통신 최적화 ✔️ 서비스의 확장성과 고가용성을 보장 ✔️ 요청을 적절한 서비스로 라우팅하고 요청자에게 응답을 다시 보내는 기능을 담당 ✔️ 데이터와 API 간의 보안 연결을 유지 MSA 구조에서 마이크로서비스는 애플리케이션을 느슨하게 결합된 여러 서비스로 분해할 수 있습니다. 이로 인해 ..
-
Kotlin, 어렵지 않게 사용하기
안녕하세요. 코틀린 도장깨기를 하려고 시리즈로 정리 중입니다. 최종적으로 코프링 데모 프로젝트를 만들어보고 싶어 시작했습니다 💪🏻 코드는 Github 링크에서 확인하실 수 있습니다. 정리를 위한 코드는 아니고, 스스로 테스트하기 위한 코드이니 참고해주세요. | Kotlin 시리즈 | :: Basic Kotlin, 어렵지 않게 사용하기 - 기초 (1) Kotlin, 어렵지 않게 사용하기 - 함수 (2) :: Coroutine Kotlin, 코루틴 제대로 이해하기 - (1) Kotlin, 코루틴 제대로 이해하기 - (2) :: Object Kotlin, 어렵지 않게 사용하기 (3) - Object 1 Kotlin, 어렵지 않게 사용하기 (4) - Object 2 Kotlin, 어렵지 않게 사용하기 (5) -..
-
Kotlin, 어렵지 않게 사용하기 (8) - lambda 3
kotlin의 람다 사용 방식과 용례를 Java 코드와 비교하며 학습하는 것이 해당 포스팅의 목표입니다. 🔗 Kotlin 시리즈 모아보기 안녕하세요. 이번 포스팅에서는 Kotlin의 람다와 관련된 활용 문법을 학습합니다. Sequence : 한 번에 하나씩 열거될 수 있는 원소의 시퀀스를 표현 코틀린 지연 계산 시퀀스는 Sequence 인터페이스에서 시작한다. public interface Sequence { public operator fun iterator(): Iterator } Sequence 안에는 iterator라는 단 하나의 메소드가 있는데, 이를 통해 원소 값을 얻을 수 있다. Collection API vs Sequence 이전 포스팅에서 map, filter 등 주요 컬렉션 함수를 살펴..