분류 전체보기 94

Spring Cloud Config & Spring Cloud Bus 간단정리

📚 Spring Cloud Config 분산 시스템에서 서버와 클라이언트의 구성에 필요한 설정 정보( application.yml 등 )를 외부 시스템에서 관리 해준다. 하나의 중앙화 된 저장소에서 구성요소 관리를 할 수 있다. 즉, 환경설정에 대해서는 일괄적으로 관리하고 각각의 분리되어있는 환경에서 실행할 수 있도록 지원해주는 시스템이다. 각 서비스를 다시 빌드하지 않고, 바로 적용 가능하다. 애플리케이션 배포 파이프라인을 통해 DEV-UAT-PROD 각각의 환경에 알맞는 구성 정보를 사용할 수 있다. 깃 리포지토리 또는 암호화된 데이터, 로컬 파일 시스템에 있는 특정 디렉토리의 파일등을 이용해 구성 요소를 저장할 수 있음. ✔️ configuration 값을 변경한 후 refresh 하기 서버 재기동..

MSA 2022.10.20

API Gateway 간단 정리

✅ API Gateway의 필요성? MSA는 큰 서비스를 잘게 쪼개어 개발/운영 하는 아키텍처이다. 하나의 큰 서비스는 수십~수백개의 작은 서비스로 나뉘어지며, 만약 이를 클라이언트에서 서비스를 직접 호출하는 형태라면 다음과 같은 문제점이 생길 수 있다. 각각의 서비스마다 인증/인가 등 공통된 로직을 구현해야하는 번거로움이 발생한다. 수많은 API 호출을 기록하고 관리하기가 어렵다. 클라이언트에서 여러 마이크로 서비스에 대한 번거로운 호출을 해야한다. 내부의 비즈니스 로직이 드러나게 되어 보안에 취약해진다. 이러한 문제점들은 마이크로 서비스의 갯수가 많아질 수록 기하급수적으로 늘어나게 될 것이다. ✅ API Gateway 사용자가 설정한 라우팅의 설정에 따라서 각각의 엔드포인트로 클라이언트를 대신해서 요..

MSA 2022.10.19

[ 프로그래머스 ] 평행

https://school.programmers.co.kr/learn/courses/30/lessons/120875 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨‍💻 접근 방식 4개의 좌표 중 2개의 좌표를 선택하여 기울기 lean1 을 계산하고 선택되지 않은 좌표들로 기울기 lean2 를 계산하려고 하였다. 이 때 백트래킹을 이용한 조합을 구현하여 2개의 좌표를 선택하는 경우의 수를 구하려고 하였다. 📄 4개의 좌표 중 2개를 선택하는 경우의 수를 구하는 코드 static void comb( int[][] dots, boolean[] visited,..

Spring Cloud Netflix Eureka 간단 정리

Eureka의 개념에는 2가지 구성 요소들이 존재한다. Service Discovery 각각의 서비스의 위치가 등록된 서버에서 특정 작업을 위한 서버의 위치를 파악하는 작업. Service Discovery를 위해서 Spring Cloud Netflix - Eureka Server를 사용. 일종의 전화번호부 책이라고 생각하면 된다. Key( 서비스 종류 ) - Value( 서비스 위치 ) 형태로 되어있다. Service Registry 각각의 서비스가 자신의 위치(IP) 정보를 특정 서버에 등록 Registry 하는 작업. Service Registry를 위해서 Spring Cloud Netflix - Eureka Client를 사용. API Gateway Flow 1 . 클라이언트가 로드 밸런서( AP..

MSA 2022.10.14

Spring Cloud 간단정리

공식 : https://spring.io/projects/spring-cloud Spring Cloud Spring Cloud is an umbrella project consisting of independent projects with, in principle, different release cadences. To manage the portfolio a BOM (Bill of Materials) is published with a curated set of dependencies on the individual project. Go here to r spring.io 스프링 클라우드는 마이크로 서비스를 구성하기 위한 분산 시스템 개발에 효과적인 기능을 제공해준다. 분산 시스템이라고 하면 circu..

MSA 2022.10.14

Anti-Fragile, Cloud Native Architecture 간단 정리

Antifragile의 특징 1. Auto scaling 자동확장성을 의미, 시스템을 구성하는 인스턴스를 하나의 오토스케일링 그룹으로 묶은 다음 그룹에서 유지되어야하는 최소 인스턴스를 지정할 수 있고, 사용량에 따라 인스턴스를 증가시킬 수 있다. 이러한 작업을 관리자가 수작업으로 하는 것이 아니라 CPU 또는 메모리, 데이터베이스 사용량이나 조건에 따라 자동으로 확장된다. 2. MicroService 클라우드 네이티브 아키텍처,어플리케이션의 핵심. 전체 서비스를 구축하고 있는 개별적인 모듈이나 기능을 독립적으로 개발하고 배포하고 운용할 수 있도록 세분화 된 서비스. 3. Chaos engineering 시스템이 어떤 변동이나 예견된 불확실성이나 예견되지 않은 불확실성에 대해서도 안정적인 서비스를 제공할 ..

MSA 2022.10.14

CORS 정리

CORS (Cross Origin Resource Sharing) : 다른 출처의 자원을 공유하는 것. 교차 출처 리소스 공유는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에게 알려주는 체제이다. CORS 접근제어에 사용되는 3가지의 시나리오가 있다. 단순 요청 (Simple Request) 사전 요청 (Preflight Request) 인증 요청 (Credentialed Request) 1. 단순 요청 (Simple Request) Preflight 요청 없이 바로 요청을 보내는 방식이다. Simple Request는 아래와 같은 조건을 만족해야한다. 메서드 : GET, POST, HEAD Content-..

Spring 2022.08.14

[ WIL ] Spring 심화 주차 키워드 예제

CORS란? https://ddsiq.tistory.com/97 CORS 정리 CORS (Cross Origin Resource Sharing) : 다른 출처의 자원을 공유하는 것. 교차 출처 리소스 공유는 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 어플리케이션이 다른 출처의 선택한 자원에 접근 ddsiq.tistory.com Q1. API란 무엇인가? API는 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해준다. API는 애플리케이션과 기기가 원활하게 통신할 수 있도록 한다. API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다. 쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있다. API..

카테고리 없음 2022.08.11

[ WIL ] 220801 ~ 220807

1. 배운 것 ORM https://ddsiq.tistory.com/94 [ Spring ] ORM이란 ORM( Object Relational Mapping, 객체-관계 매핑 )이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터 ddsiq.tistory.com 2. 회고 이번 주차에는 CRUD기반의 게시글, 댓글, 좋아요 기능 API 구현을 위주로 공부하였고 이를 기반으로 팀 과제를 진행하였다. 전체적으로 기능구현은 갖춰졌고, 코드가 잘 정리되지 않아서 다음주에는 AOP 적용 등 리팩토링 과정을 진행할 예정이다. 또한 깃을 이용한 팀프로젝트를 다루는 스킬도 향상시키고 테스트코드를 이용해 기능테스트를 해볼 예정이다.

카테고리 없음 2022.08.07

[ Spring ] ORM이란

ORM( Object Relational Mapping, 객체-관계 매핑 )이란 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 데이터베이스 데이터 Object 필드 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다. Persistant API라고도 할 수 있다. Ex) JPA, Hibernate 등 ORM의 장단점 장점 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다. ORM을 이용하면 SQL Query가 아닌 직관..

DB 2022.08.07