본문 바로가기

분류 전체보기

(433)
마이크로 서비스 패턴 #3 IPC MSA 에서 왜 통신이 필요한가? 당연한 이야기이다. 서비스가 나누어져 있고 메모리가 독립적으로 구성된다. 원래 기존의 모놀리틱 서비스의 경우 하나의 메모리 안에서 얼마든지 다른 서비스(메소드)의 메모리를 주소로서 참조가능했다. 즉, 접근가능해서 input과 output을 스레드 내에서 얼마든지 주고 받을 수 있었다. 그러나 서비스가 나누어지면서 메모리 상으로 독립된 공간에서 서비스(메서드)들이 존재하게 되고 하나의 스레드 안에서 다른 독립된 메모리 상의 주소에 접근할 수 없게 되었다. 그러니 스레드들 간에 어떠한 방식으로든 통신이 필요하게 된 것이다. 그 방식의 대표적인 방식으 API 형태가 될 수 있겠다. 상호작용 스타일 통신에는 크게 2가지로 나눠볼 수 있다. 일대일/일대다 일대일 : 각 클라이언트..
마이크로 서비스 패턴 #2 마이크로 서비스 아키텍처 키워드 위주의 복습용 정리 소프트웨어 아키텍처 컴퓨팅 시스템의 소프트웨어 아키텍처는 소프트웨어 엘리먼트와 그들 간의 관계, 그리고 이 둘의 속성으로 구성된 시스템을 추론하는 데 필요한 구조의 집합이다. -Len Baas- 애플리케이션의 요건 애플리케이션이 해야할 일을 정의기능 요건 애플리케이션의 서비스 품질 요건 4+1 뷰 모델 계층화 아키텍처 스타일 표현 계층(Presentation) : 사용자 인터페이스 또는 외부 API 구현 계층 비즈니스 로직 계층 : 비즈니스 로직 구현 계층 영속화 계층(Persistence) : DB 상호 작용 로직이 구현된 계층 이에 따른 문제점 표현 계층이 하나 뿐이다(애플리케이션 호출하는 시스템 다수 존재 가능) 영속화 계층이 하나 뿐이다(상호작용하는 DB 다수 존재 가능..
마이크로 서비스 패턴 #1 모놀리틱으로부터 키워드 위주의 복습용 정리 모놀리식이 꼭 나쁠까? 개발의 편이성(IDE는 단일 App 최적화) 테스트 및 배포 용이성(테스트 과정의 단순화) 확장 용이성(다중 인스턴스) 모놀리식이 나빠지는 순간 복잡성의 과부하(대규모 개발 조직에 따른) 개발 속도 저하(테스트 및 배포 과정의 과도화) 확장성의 저하(다양한 리소스) 전달성 및 신기술 도입 어려움 확장큐브 애플리케이션을 확장한다는 의미에는 크게 3가지 방향 X축 확장 -> 여러 인스턴스에서 같은 서비스 나눠서 처리(동일 인스턴스의 증가) Z축 확장 -> 요청의 속성에 따라 서비스 나눠서 처리(고객 아이디 A~H, L~P, R~Z) Y축 확장 -> 서비스를 나누기(주문 서비스, 결제 서비스, 고객 서비스 등) MSA의 여러 특징 마이크로서비스는 모듈성, 각개..
마이크로 서비스 패턴 #0 MSA에 대해 정리하기 포스팅 계기 MSA에 대해 공부를 하겠다고 다짐한 지 어느새 수개월이 지나서야 본격적으로 책을 사고 공부를 시작했다. 이것저것 블로그 포스팅을 반쯤 나간 영혼으로 읽어보며 나름대로 머리속으로 정리하고 이해해나가고 있다고 생각했다. 그러다가 이번 주에 겪은 일을 계기로 포스팅을 해보며 제대로 정리 및 공부하기로 결심했다. 간략히 각색해보면 이렇다. 나 : 형, 형네 회사에서는 서비스들 다 MSA로 구성되어 있어요? D : 응? MSA가 뭐야? 나 : 음.. 마이크로 서비스 아키텍처? 서비스를 작은 서비스 단위로 쪼개서 구현되어 있는거? D : 작은 서비스 단위로 쪼개서 돌아가는 게 어떤 의미지? 나 : 음... 큰 서비스가 있다면..(주저리 주저리).. 예를 들어 쇼핑몰 어플리케이션이 있다면 결제 서비스와..
별일 없는 내 이야기(2020.08.31) 8월의 마무리 벌써 8월이 끝나간다. 어렸을 때는 8월이 끝나가면 여러모로 너무 아쉬웠다. 좋아하던 수영을 여름 방학 때만 배울 수 있었기에 여름의 끝을 알리는 9월이 다가오면 그 상실감이 생각보다 컸었다. 사실 수영 자체보다도 수영이 끝나고 수영장 앞에 아이스크림 가게에서 거북알을 먹으면서 부모님을 기다렸던 그 시간이 뭔가 좋았던 것 같다. 그러다가 나이를 먹으면서 덥고 땀나는 여름이 너무 싫어졌다. 그래서 여름을 조금 덜 싫어할 수 있는 방법들을 강구하게 되었다. 워터파크를 간다거나 초록초록한 풍경을 사진 찍으러 다닌다거나 밤바다를 거닐면서 여름을 즐기는 척 했었다. 그런데 그마저도 코로나 때문에 올해는 아무것도 못했다. 그래서 그런지 올해 여름은 극혐 그 자체였다. 뭔가 오랫동안 기억에 남을 여름이..
사회대 스터디룸 시스템 트러블슈팅 사실 트러블슈팅이라고 하기도 민망할 정도로 별일 아니었지만 기록용으로 적어둔다. 사회대 스터디룸 시스템을 구축해두고 열심히 관리하지는 않는다(트래픽이 엄청나지는 않기에 굳이 그럴 필요가 없긴하다, 시험기간 뒤 과제기간에 조금 트래픽이 몰리는 정도가 다인 것 같다) 여튼 에러가 발생하면 디버깅하는 정도가 다인데 최근에 서버가 내려갔더라.. (학생회에서도 말을 안해줘서 몰랐다..;;) 한 번씩 들어가보는데 어느 순간 들어가보니 서버가 내려가있더라ㅠ AWS 켜서 그냥 재부팅하는 걸로도 해결되었다. 그냥 aws ec2 인스턴스를 Stop 후 boot 하고 설정파일을 조금 손봤다 혹시나 포트가 꼬였나 찾아보고 리소스가 많이 잡아먹혀서 다운됐나 봤는데 그런 것들도 아닌 것 같다. 왜 내려간지는 잘 모르겠다.. 열심..
3 Tier 아키텍처 1-Tier(1계층 구조) 1 Tier 구조는 한 클라이언트 컴퓨터에 3가지 로직(표현, 비즈니스, 데이터)을 다 구현한 것이다. 클라이언트 서버에서 모든걸 지원하므로 새로운 컴퓨터를 사용하고자 할 경우 모두 새로 변경해야 한다는 단점이 있다. (서비스 로직 하나 변경을 위해 다른 관련 서비스 로직 모두를 변경해야 한다) 2-Tier(1계층 구조) 2 Tier는 Client Tier와 Data Tier로 2개의 물리적 컴퓨터로 구분된다. 클라이언트와 서버를 분리하여 어플리케이션과 데이터베이스가 분리하였기 때문에 데이터베이스의 변경이 편리한 장점을 가지고 있다. 3-Tier(3계층 구조) 클라이언트 계층 : 사용자 인터페이스 제공 Front-end, 주로 웹서버 배치 HTML, javascript, CSS..
클라우드의 주요 기술 하이브리드 클라우드 클라우드 종류 On-premise : 별도의 클라우드 구축 없이 비즈니스 프로세스 실행이 필요한 곳에서 컴퓨팅 자원을 제공하거나, 혹은 기업 내 자체 데이터센터를 활용함 Private Cloud : 퍼블릭 클라우드가 제공하는 전부 혹은 일부의 기능을 기업에서 자체적으로(또는 위탁하여) 구축/운영하는 형태로, 기업이 직접 투자하여 운영할 수도 있고, 전문기업에 위탁하여 전용으로 확보된 클라우드 인프라를 활용하기도 함 Public Cloud : 다수의 기업 혹은 사용자가 공통의 인프라 위에서 제공되는 컴퓨팅 자원, 운영체제, 응용 SW을 공동으로 사용하는 형태로, 사용자들은 자신이 사용한 컴퓨팅 자원에 해당하는 비용을 지불함 하이브리드 클라우드 : Private 클라우드 + Public ..