IoC (DI, Service Locator…)

IoC Inverse of Control는 제어권을 개발자가 아닌 제 3자(프레임워크)가 가지게 하는 것이다. 그렇다면 우리는 왜 제어권을 3자에게 위임해야 하는가? 이에 대한 답을 찾기전에 과거로 돌아가보자. 과거 많은 형태의 오픈소스들이 나오고 있었고, 이들의 공통적인 이슈는 서로 다른 객체를 어떻게 연결할 것인지에 대한 문제였다. 이를 해결할 한 가지 방법으로 IoC가 제시되었다. 즉, IoC의 주된 목적은 Application의 Dependency를... Continue Reading →

[MSA] #6 Spring Cloud Netflix

스프링과 전 세계에서 MSA를 제일 잘하는 기업 중 하나인 Netflix에선 이미 MSA 구축을 편하게 하는 많은 기술과, 갖가지 이슈에 대한 해결책 또한 제공을 하고 있습니다. Spring Cloud Netflix는 자동 환경 설정과 Spring Environment 및 다른 Spring 프로그래밍 모델 관념의 바인딩을 바탕으로 Spring Boot 어플리케이션을 위한 Netflix OSS(Open Source Software) 통합을 제공합니다. 몇 가지 간단한 어노테이션을 사용하여 어플리케이션 내부의 공통 패턴을 신속하게 사용하고 설정할... Continue Reading →

[MSA] #5 Service Discovery

MSA는 Cloud 환경과 밀접하게 관련이 있습니다. 각 서비스마다 다른 서버에 올려야 되는데, 물리 서버를 사용하게 되면 관리하기 힘들어집니다. 100개의 서버가 필요하다면 100개의 물리 서버의 비용과 장소 비용 하드웨어 관리 비용 등이 듭니다. 그러나 Cloud를 사용하게 되면 이런 이슈를 AWS와 같은 솔루션에서 해결해줍니다. 그리고 가용성을 고려해야 되기 때문에도 많은 서버에 관리해야 합니다. 예를 들면 주문 서비스는 수익과 직결되는... Continue Reading →

[MSA] #4 API Gateway

MSA는 각각의 서비스를 API 형태로 제공한다는 것을 알게 되었습니다. 그러면서 몇 가지 이슈가 생겨나게 됩니다. 예를 들면 서비스마다 주소가 다르다는 점과 로깅, 모니터링, CORS처럼 서비스 간의 공통된 로직의 관리가 있습니다. 차근차근 API Gateway가 어떤 식으로 이를 해결하는지 알아보겠습니다. API Gateway란? API 서버 앞단에서 모든 API 서버들의 End-Point를 단일화하여 묶어주는 녀석. 기능 1. API 요청을 한 곳에서 받아서 해당 서비스로 라우팅(이동)을... Continue Reading →

[MSA] #3 Circuit Breaker

Circuit Breaker란? 에너지가 있는 도선과 중립 도선 사이의 전류 균형이 깨졌을 때, 전류를 차단하는 장치 학생 때 포기한 물리수업에서 나올 법한 말들이 나오네요. 한국어로는 누전 차단기입니다. (두꺼비집) 누전으로 인해 집이 다 불타버리는 것보다는 이상 징후가 있을 때 전류를 차단하여 잠깐 불편한 것이 훨씬 낫습니다. 이렇게 접근하면 Circuit Breaker를 좀 더 쉽게 이해할 수 있습니다. 앞에서 MSA의 장점 중 하나가 한 서비스는 다른 서비스에... Continue Reading →

[MSA] #2 Microservice Architecture 란?

이전 글에서는 Monolithic Architecture에 대해서 알아봤습니다. Monolithic은 모든 것이 하나로 묶여있다고 말했었는데요, 이번에 소개할 MSA는 묶여있는 것을 나누는 것입니다. 마틴 파울러는 MSA를 다음과 같이 정의합니다. 마이크로 서비스 아키텍처 스타일은 단일 응용 프로그램을 나누어 작은 서비스의 조합으로 구축하는 방법이다. 위의 그림은 이전에 본 Monolithic으로 구현된 프로젝트입니다. MSA로 변경하게 되면 어떻게 변할까요? 가로 방향으로 구분되어 있던 경계가 MSA에서는 세로... Continue Reading →

[MSA] #1 Monolithic Architecture 란?

요즘은 Microservice Architecture(이하 MSA)가 항상 화두에 올라있는 것 같습니다. 그래서 MSA가 도입된 배경과 갖가지 이슈를 어떻게 해결했는지에 대해 차근차근 써보려고 합니다. Monolithic이라는 단어를 들어보셨나요? 생소해서 구글에게 한번 물어봤습니다. 개인적으로 '단단히 짜여 하나로 되어 있는'라는 어감은 참 부정적인 인상을 주네요. 왜냐하면 더 나은 코드와 설계를 위해서는 책이나 선배 개발자분들이 분리를 강조하셨기 때문이죠. "응집도를 높이고 결합도를 낮춰라", "클래스를 분리해서 SRP를... Continue Reading →

2017 해커톤 – Front

안녕하세요 아해 팀 new멤버 김민수입니다. 아해 팀에 들어와서 처음으로 한 활동이 해커톤이었고, 생애 첫 해커톤인 까닭에 긴장과 설레는 마음을 가지고 임했었네요. 이번 해커톤을 하기 전 기대했던 것은 관심 있던 기술들을 써보고, 다른 사람들의 코드를 봄으로서 안목을 넓히자는 것이었습니다. 저는 백엔드의 Export 부분과 프론트엔드를 맡아서 프로젝트를 진행했습니다. 프론트엔드는 Angular4를 사용했습니다. 지금부터 프론트엔드 작업내용과 이슈를 공유하겠습니다. 아래는... Continue Reading →

[2017 해커톤]SqlBuilder를 이용하여 SqlExport 개발

Map을 SQL로 변환하기 위해 SqlBuilder를 사용하였습니다. 1. 테이블이름을 파라미터로한 InsertQuery 생성자를 이용하여 객체를 생성합니다. 2. 반복문을 돌며 addCustomColumn(String, String) 이용하여 column과 value값을 넣어줍니다.  ex ) INSERT INTO table_name(column1) VALUES(value1), INSERT INTO table_name(column1, column2) VALUES(value1, value2), … 3. validate()는 쿼리의 열과 테이블이 실제로 의미가 있는지를 확인해줍니다. 참고문헌 - http://openhms.sourceforge.net/sqlbuilder/index.html

WordPress.com 제공.

위로 ↑