본문 바로가기

분류 전체보기93

(Spring Boot / Spring Cloud / MSA) 4. Zuul이란? / 적용방법 Zuul 이란? 모든 마이크로서비스에 대한 요청을 먼저 받아들이고 라우팅하는 프록시 API Gateway 기능을 수행한다. Spring Cloud의 적용 과정 : Zuul Eureka의 설정이 완료 되었으면 Zuul을 적용해 보자. 먼저 API Gateway로 사용될 프로젝트를 생성하고 설정을 진행해야 한다. 1. Spring Boot 프로젝트를 하나 생성하고 bulid.gradle 파일에 Dependency를 추가한다. dependencies { // Add Zuul Dependency compile('org.springframework.cloud:spring-cloud-starter-netflix-zuul)compile('org.springframework.cloud:spring-cloud-start.. 2019. 2. 7.
(Spring Boot / Spring Cloud / MSA) 3. Eureka란? / 적용방법 Eureka 란?마이크로서비스들의 정보를 레지스트리에 등록할 수 있도록 하고 마이크로서비스의 동적인 탐색과 로드밸런싱을 제공한다. 먼저 Eureka는 Eureka Server와 Eureka Client로 구성된다. Eureka Server는 Eureka Client에 해당하는 마이크로서비스들의 상태 정보가 등록되어있는 레지스트리를 갖는다. Eureka Client의 서비스가 시작 될 때 Eureka Server에 자신의 정보를 등록한다. 등록된 후에는 30초마다 레지스트리에 ping을 전송하여 자신이 가용 상태임을 알리는데 일정 횟수 이상 ping이 확인되지 않으면 Eureka Server에서 해당 서비스를 레지스트리에서 제외시킨다. 레지스트리의 정보는 모든 Eureka Client에 복제되어 있어 필요.. 2019. 2. 7.
(Spring Boot / Spring Cloud / MSA) 2. Spring Cloud란? / 간략한 소개 MSA를 선택하였다면 Spring Cloud를 적용하자Spring Cloud우리 팀의 비즈니스가 진행되면서 마이크로서비스의 개수가 늘어나게 되었고 점점 더 관리가 복잡해지는 것에 대비해 Spring Cloud를 적용하기로 하였다. 비즈니스 초기에 마이크로서비스의 개수가 적은 상황이라면 느끼기 힘들 수도 있겠지만 비즈니스가 성장하면서 마이크로서비스의 개수가 증가할수록 관리가 복잡해지고 어려워지는 것을 느낄 수 있을 것이다. Spring Cloud를 적용하면 이런 문제를 쉽게 해결할 수 있다. Spring Cloud는 분산 시스템에서 공통적인 패턴(구성 관리, 서비스 검색, 지능형 라우팅, 마이크로 프록시 등 )을 모아 신속하게 구축할 수 있는 도구를 스프링 라이브러리 형태로 제공한다. 따라서 개발자는 분산.. 2019. 2. 7.
(Spring Boot / Spring Cloud / MSA) 1. 왜 MSA를 선택하였을까? Spring Boot / Spring Cloud / MSA 저희 회사는 현재 Spring Boot 를 기반으로 MSA를 적용하여 서비스를 구축 해놓고 있습니다. 스타트업 회사이고 개발자 모두가 MSA를 적용해 개발하는것은 처음이기 때문에, 찾아보고 공부하여 하나씩 차근차근 적용하였습니다. 저희가 사용한 프레임워크와 라이브러리를 간략하게 소개 하고 선택한 이유와 적용 후에 주관적인 의견을 공유해보겠습니다! 우리회사의 서비스 구성 먼저, 우리회사는 서비스구성이 어떻게 되어있는지 살펴보겠습니다. UI : 모든 외부 요청에 대한 응답하는 코드와 뷰 페이지가 있고, 응답을 위해 다른 서비스들을 호출AUTH : 다른 서비스들을 호출할 수 있는 토큰을 발급하고, 사용자 인증 (ex : 로그인) 관련 기능을 수행서비스.. 2019. 2. 7.
목표를 찍으면 선이 이어진다 저는 인생이 점과 점의 연결이라고 생각합니다. 되고싶고 하고싶은 목표 점을 정하고 노력하다보면 그 점에 다다르기 위한 또 다른 점이 찍히고 또 다른 점과 이어지고 이어져 결국 내가 원하던 목표점에 도달해 선으로 이어지더라구요. 중간의 점들은 내가 생각하지도 못한 점들이 많았어요. 되돌아보면 꼭 필요한 점들 이지요. 예를들어 내가 개발자로써 일하고 싶다! 목표를 정하였을때, 학교동기가 단기간에 실력을 높힐수 있는 학원을 추천해준다던지, 이직을 고민하고 있을 때, 나에게 꼭 맞는 구인공고가 보이던지 등등.. 그 학교동기와 만난 것부터 아주 감사한 점 입니다. 학생임에도 상황을 이해해주시고 함께 일하는 것을 허락해주시는 대표님을 만난것, 그 회사가 배울 점이 매우 많은 좋은회사였던것, 함께 일하는 개발자들도 .. 2019. 1. 30.
Docker란 무엇인가? Docker를 사용하는 이유/동작방식 Docker먼저, Docker란 무엇인가? AWS에서는 Docker를 애플리케이션을 신속하게 구축, 테스트 및 배포를 할수있는 소프트웨어 플랫폼으로 정의하였습니다. 스타트업 개발자로 일하면서 우리 서비스에 필요한 어플리케이션을 동작시킬 때 Docker를 굉장히 많이 사용하였습니다. 우리 서비스는 AWS를 사용하였는데 MSA 구조여서 그런지는 모르겠지만 EC2 인스턴스(조그만 컴퓨터 한대를 빌렸다고 생각하면 쉬울까요?)를 다수 사용하였고, 인스턴스마다 모두 Docker를 설치하여 성격에 맞는 것끼리 모아서 실행시켰던 기억이 납니다.(Ex : ui 관련된 어플리케이션 끼리, 개발용 끼리, 내부적으로 필요한 어플리케이션 끼리 등) 쓰면서도 왜 사용하는지 어떻게 동작하는지는 잘 모르고 명령어만 외웠던 기억이 있.. 2019. 1. 29.
(한이음프로젝트) Earlybird 아두이노 미세먼지 센서 & 어플 시연영상 한이음프로젝트에서 요청한 시연영상 입니다. 2018. 11. 8.
(AWS DynamoDB) CRUDRepository 설정하기 - 복합키 Entity AWS DynamoDB CRUDRepository 이전 포스팅에서 AWS SDK for Java 설정과 테이블 설계을 완료 하셨다면 이제 실제로 DynamoDB를 Java를 사용하여 다루어 보겠습니다.AWS SDK for Java : http://dev.overnodes.com/entry/AWS-DynamoDB-3-AWS-SDK-for-Java-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0DynamoDB 테이블 설계 : http://dev.overnodes.com/entry/AWS-DynamoDBNoSQL-%EB%B9%84%EC%A6%88%EB%8B%88%EC%8A%A4%EC%97%90-%EB%A7%9E%EB%8A%94-%EC%8A%A4%ED%82%A4%EB%A7%88-%EC%84%A.. 2018. 11. 6.
(AWS DynamoDB)(NoSQL) 비즈니스에 맞는 스키마 설계 (기본) DynamoDB 스키마 설계 먼저 설계에 앞서 알아야할 부분을 말씀드리자면DynamoDB는 NoSQL이고, RDBMS와 NoSQL 설계는 다릅니다.DynamoDB의 경우, 대답해야 할 질문을 알기 전까지는 스키마 설계를 시작할 수 없습니다.사전에 비즈니스 문제와 애플리케이션 사용 사례를 이해해야 합니다.DynamoDB 애플리케이션에서는 가능한 적은 수의 테이블을 유지해야 합니다. 대부분의 잘 설계된 애플리케이션은 단 하나의 테이블만 요구합니다.저희 팀이 DynamoDB를 적용하며 스키마 설계단계에서 가장 많은 시행착오를 겪었던 부분이RDBMS를 설계하던 기존 방식과 다른 방식으로 접근하지 못했던 것이었습니다. 잘못된 설계의 예시 저희 회사 서비스의 일부분을 말씀드리면,Content Creator (사내에.. 2018. 11. 6.