본문 바로가기

컴퓨터 지식64

[MSA] 마이크로서비스(MSA) 의 다양한 패턴들 🍀 / 2️⃣ - API 게이트웨이 패턴, BFF 패턴 API 게이트웨이란? API 게이트웨이는 여러 클라이언트가 다양한 서비스에 요청을 보내게 될 때, 복잡한 호출 관계를 가지게 되는 것을 방지하기 위해 나온 대책이다. 클라이언트와 서비스 API 서버 사이에 API 게이트웨이라는 단일 진입점을 둠으로서 애플리케이션 레벨의 라우팅을 구현한다. API 게이트웨이 패턴을 사용하면 아래와 같은 여러 이점들을 얻을 수 있다. API 게이트웨이의 이점들 API가 남용 방지 및 속도 제한 API가 사용 분석 및 모니터링 툴을 추가 가능 빌링 시스템에, 로그 시스템 연결에 용이 추가나 삭제 시에, 계속 서비스 진입점이 같아서 편리 레지스트리 서비스와 연계하여 동적 라우팅 및 로드 밸런싱 가능 기타 등등 구현함에 따라 무수히 많다 API 게이트웨이 패턴을 구현하는 방법은?.. 2021. 7. 23.
[MSA] 마이크로서비스(MSA) 의 다양한 패턴들 🍀 / 1️⃣ - Servcie Registry / Service Discovery 패 MSA? 마이크로서비스는 이제는 사실상 어떤 특별한 패러다임이 아니다. 설계를 함에 있어서 가능하다면 최대한 잘게 쪼개서 독립적으로 각각의 기능을 담당하게끔 하는 것이 권장된다. 클라우딩 시스템이 나날이 발전해가고, 서버를 구축하는 데에 비용이 점점 줄어들게 되면서, 잘게잘게 쪼개서 아키텍쳐를 구성하는 것은 예전만큼 코스트가 큰 상황이 아니다. 이 글은 마이크로서비스에서 주로 사용되는 여러 패턴들에 대해 간략하게 정리하기 위해 쓰는 글이므로, MSA가 무엇인지에 대해서는 생략하겠다! 이에 대해서는 구글링을 통해 좋은 레퍼런스들을 쉽게 접할 수 있으니 참고 바란다. https://wooaoe.tistory.com/57 [MSA] MSA란 무엇인가? 개념 이해하기 MSA가 무엇인지 자세하게 알고싶어 개인적으.. 2021. 7. 22.
[IT 도서리뷰📘] 도메인 주도 설계로 시작하는 마이크로서비스 개발 (DDD와 MSA) DDD 와 MSA 저 : 한정헌, 유해식, 최은정, 이주영 출판사 : 위키북스 들어가며 '설계와 인프라에도 학습이 필요하다.' 개발이란 문제를 인식 및 사용자 요구사항을 파악하고 그것을 해결하기 위해 수행하는 과정을 의미한다. 내가 개발을 시작하고 한 단계, 한 단계 다음 과정으로 나가면서 더더욱 느껴지는 것 중 하나는 안정적인 설계에 공을 들인다면 뒷 단계들의 시간을 확연하게 줄여줄 수 있다는 점이다. 설계라는 것이 겉으로 보여지는 것은 없고, 머릿속에서 고민하는 데에 대부분 시간을 소요하기 때문에 지겹게 느껴지고, 꺼려하게 되기 마련이다. 솔직히 간단하거나 혼자하는 프로젝트에선 설계를 가볍게 생각하고 그 과정을 소홀히 하곤 한다. 그게 더 효율적인 상황일 수도 있으니까. 그래서 이런 설계 부분은 따로.. 2021. 6. 29.
[도서리뷰📘] TDD - 테스트 주도 개발 TDD (테스트 주도 개발) 들어가며 인턴 근무하면서 멘토님께 멘토링 지원비로 이 책을 사고 싶다고 부탁을 드리고 읽게 된 책이다. 많은 책들 중에 이 책을 선택했던 이유는, 안정적인 개발을 하고싶어서였다. 애초에 내 성격부터가, 기억력이 안좋고 꼼꼼하지 못한 타입이라, 무언가 문제를 만들어놓고 해결하는 스타일이다. 코딩을 할 때도, 이런 성격이 작용을 하다 보니, 반복되는 잦은 실수들이 생겨났고, 이를 없애는 방법이 없을까? 하는 의문이 들곤 했다. '함께 자라기' 를 읽으면서 느꼈던 점 중에, 실수가 당장 그 순간에는 나쁜 결과를 가져와도, 길게 보면 결국 성장하는 데에는 도움이 된다는 것이었다. 그렇다면, 실수로부터 오는 불이익을 최소로하면서, 실수를 해결하는 방식으로 코딩을 하면 되지 않을까? 하.. 2021. 5. 29.
[CS지식] Non Bloking VS Asynchronous / 논블로킹 vs 비동기 Blocking , Non-Blocking VS Synchronous, Asynchronous 자바스크립트는 Non-Blocking 방식으로 작동하는 언어로서 .... 자바스크립트의 이점은 비동기(Asynchronous) I/O 에서 .... 언뜻 보면 굉장히 비슷한 개념인 것 같기도 하고, 그다지 신경쓰지 않고 넘어가게 되는 부분이다. 일반적인 경우에서는 블로킹 == 동기 , 논블로킹 == 비동기 라고 표현을 해도 사실 커뮤니케이션에 큰 문제는 생기지 않는다. 면접 질문에서 위와 같은 맥락의 질문을 받아 적잖이 당황하고, 조금 늦었지만 이제라도 확실히 알아가고자 여러 자료를 찾아보았다. 그림 으로 이해하는 데에는 이 자료 , 개념 자체를 이해하는 데에는 이 자료 가 많이 도움이 되었다. (감사합니다 🙏.. 2021. 5. 20.
[도서리뷰📘] 함께 자라기 - 애자일로 가는 길 🍀 함께 자라기 - 애자일로 가는 길 (김창준 지음) 회사 멘토님께 추천을 받아 읽게 되었다. 내 기억으로는 전문 서적이 아닌 책을 굉장히 오랜만에 읽었던 것 같다. 그럼에도 불구하고 매번 모니터 앞에서 키보드만 두드리는 나에게 책도 나름대로의 읽는 재미가 있었구나 라는 생각을 들게 해준 책이다. 내용이 IT 관련 일하지 않는 사람이 읽어도 무방할 만큼 무겁지 않고, 되게 소박하게 잘 읽히는 말투로 쓰여져 있어서 좋았다. 결국 이 저자분이 궁극적으로 강조하고 있는 커뮤니케이션의 중요성에 걸맞는 전달력이라 느꼈다.(나는 간단한 것을 전달할 때도 어렵게 늘어놓고 있을 때가 있는데 이 책을 보면서 많이 찔렸다...😅) 개발자들은 개발을 하다 보면, 몰입을 하면 할수록 기술과 실력을 갈고닦는 데에 몰두하기 마련이다.. 2021. 5. 2.