전체 글

· Programming
[MSA] #1 Monolithic Architecture 란?[MSA] #2 Microservice Architecture 란?[MSA] #3 Circuit Breaker[MSA] #4 API Gateway[MSA] #5 Service Discovery[MSA] #6 Spring Cloud Netflix MSA는 Cloud 환경과 밀접하게 관련이 있습니다. 각 서비스마다 다른 서버에 올려야 되는데, 물리 서버를 사용하게 되면 관리하기 힘들어집니다. 100개의 서버가 필요하다면 100개의 물리 서버의 비용과 장소 비용 하드웨어 관리 비용 등이 듭니다. 그러나 Cloud를 사용하게 되면 이런 이슈를 AWS와 같은 솔루션에서 해결해줍니다. 그리고 가용성을 고려해야 되기 때문에도 많은 서버에 관리해야 합니다...
· Programming
[MSA] #1 Monolithic Architecture 란?[MSA] #2 Microservice Architecture 란?[MSA] #3 Circuit Breaker[MSA] #4 API Gateway[MSA] #5 Service Discovery[MSA] #6 Spring Cloud Netflix MSA는 각각의 서비스를 API 형태로 제공한다는 것을 알게 되었습니다. 그러면서 몇 가지 이슈가 생겨나게 됩니다. 예를 들면 서비스마다 주소가 다르다는 점과 로깅, 모니터링, CORS처럼 서비스 간의 공통된 로직의 관리가 있습니다. 차근차근 API Gateway가 어떤 식으로 이를 해결하는지 알아보겠습니다. API Gateway란? API 서버 앞단에서 모든 API 서버들의 End-Point를 단일화..
· Programming
[MSA] #1 Monolithic Architecture 란?[MSA] #2 Microservice Architecture 란?[MSA] #3 Circuit Breaker[MSA] #4 API Gateway[MSA] #5 Service Discovery[MSA] #6 Spring Cloud Netflix Circuit Breaker란? 에너지가 있는 도선과 중립 도선 사이의 전류 균형이 깨졌을 때, 전류를 차단하는 장치 학생 때 포기한 물리수업에서 나올 법한 말들이 나오네요. 한국어로는 누전 차단기입니다. (두꺼비집) 누전으로 인해 집이 다 불타버리는 것보다는 이상 징후가 있을 때 전류를 차단하여 잠깐 불편한 것이 훨씬 낫습니다. 이렇게 접근하면 Circuit Breaker를 좀 더 쉽게 이해할 수 있..
· Programming
[MSA] #1 Monolithic Architecture 란?[MSA] #2 Microservice Architecture 란?[MSA] #3 Circuit Breaker[MSA] #4 API Gateway[MSA] #5 Service Discovery[MSA] #6 Spring Cloud Netflix 이전 글에서는 Monolithic Architecture에 대해서 알아봤습니다. Monolithic은 모든 것이 하나로 묶여있다고 말했었는데요, 이번에 소개할 MSA는 묶여있는 것을 나누는 것입니다. 마틴 파울러는 MSA를 다음과 같이 정의합니다.마이크로 서비스 아키텍처 스타일은 단일 응용 프로그램을 나누어 작은 서비스의 조합으로 구축하는 방법이다. 위의 그림은 이전에 본 Monolithic으로 구현된..
· Programming
[MSA] #1 Monolithic Architecture 란?[MSA] #2 Microservice Architecture 란?[MSA] #3 Circuit Breaker[MSA] #4 API Gateway[MSA] #5 Service Discovery[MSA] #6 Spring Cloud Netflix 요즘은 Microservice Architecture(이하 MSA)가 항상 화두에 올라있는 것 같습니다. 그래서 MSA가 도입된 배경과 갖가지 이슈를 어떻게 해결했는지에 대해 차근차근 써보려고 합니다. Monolithic이라는 단어를 들어보셨나요? 생소해서 구글에게 한번 물어봤습니다.개인적으로 '단단히 짜여 하나로 되어 있는'라는 어감은 참 부정적인 인상을 주네요. 왜냐하면 더 나은 코드와 설계를 위해..
· Java
Intellij로 스프링 부트 프로젝트를 만드는 글은 많은데, 일반 자바 프로젝트를 만드는 글은 많이 보이지 않아 작성합니다. 프로젝트는 Gradle의 도움을 받아 만들어 보겠습니다. 그러나 Gradle을 모르셔도 전혀 겁먹으실 필요가 없으시며 프로젝트 생성과 함께 필요한 라이브러리를 추가해보겠습니다. 1. 프로젝트 생성 [File] - [New] - [Project]를 클릭합니다. 2. 프로젝트 종류 선택 좌측에서 Gradle, 중앙에서 Java를 선택합니다. 3. 프로젝트 기본 정보 설정 GroupId : 주로 URL을 반대로 작성합니다. ArtifactId : 프로젝트 이름을 작성합니다.Version : 버전을 입력합니다. (저는 디폴트 값으로 했습니다.) 4. Gradle 프로젝트 설정 Use a..
· Book
본 책은 더 나은 코드를 작성하기 위한, 더 나은 소프트웨어를 설계하기 위한 지침을 제시하진 않습니다. 그러나 더 나은 소프트웨어 엔지니어가 되는 지침을 제시합니다. 그러면 여러분은 더 나은 엔지니어가 되기 위해서는 어떤 모습을 가져야 한다고 생각하시나요? 컴퓨터 과학이나 본인이 사용하는 기술에 대한 깊숙한 이해를 가진 모습이라는 데는 다 동의를 할 것입니다. 그러면 이외에는 어떤 것이 있을까요? 본 책은 이에 해당하는 궁금증을 풀어 줄 것입니다. 신입 때 그런 적이 있었습니다. 그 당시 회사는 기획자 1명에 개발자 10명 정도로 구성되어 있었고, 이런저런 이유로 기획서는 개발자가 만족할 만한 수준은 아니었습니다. 한 대리님 제게 말씀해주시기를 "대기업의 기획은 작은 조건까지 다 달아서 기획이 나온다. ..
· Diary
안녕하세요. 소프트웨어 엔지니어 김민수입니다. 지난 개발 인생 2년이 참 다사다난했었는데요, 이번 기회에 지난날을 돌이켜보는 것도 좋은 기회일 것 같아 작성합니다. 지난날 ~ 2016.01 (방황, 그리고 시작) 2015년 23살에 제대를 하고 백화점, 카페 등의 알바를 하며 오랜 시간 동안 뭘 하고 싶은 지를 고민을 많이 했었습니다. 그러다 국가에서 지원해 주는 컴퓨터 프로그래밍에 관심을 갖고, 호기심 반 의심 반으로 면접 신청을 했습니다. 면접 보기 앞서 '전공자들 사이에서도 방대한 분량의 학습을 잘할 수 있을까'라는 걱정과 함께 okky나 포털사이트를 통하여 관련해서 검색을 했지만, 대부분 부정적인 의견들뿐이었습니다. 이로 인한 걱정을 해소하기 위해선 열심히 해야겠다는 생각밖에 떠오르지 않았고, 알..
AlwaysPr
민수's 기술 블로그