IT 54

대규모 AI 시스템 설계 프로젝트

프로젝트 목적이번 프로젝트는 물류 관리 및 배송 시스템을 개발하는 것이 목표이다.MSA기반의 시스템을 설계하고 구현하면서 다양한 기술과 방법론을 적용해 볼 예정이다.이번 프로젝트를 통해 MSA의 복잡성을 이해하고 실무에서 발생할 수 있는 문제를 간접적으로 경험하고 해결하는 것이 목표이다.프로젝트 개요이번 프로젝트는 B2B 물류 관리 및 배송 시스템 이다. B2B는 Business to Business의 약자로, 기업 간 거래를 의미한다.물류는 각 지역에 허브센터를 가지고 있으며 각 허브 센터는 여러 업체의 물건을 보관한다.업체의 상품은 허브에서 필요한 경우 바로 허브로 전달된다.해당 상품의 배송 요청이 들어오면 목적지 허브로 물품을 이동시켜 목적지에 배송한다.API 명세서테이블 명세서ERD 명세서인프라 ..

AI 검증 비즈니스 프로젝트

프로젝트 개요이번 프로젝트는 스파르타코딩클럽에서 진행하는 첫번째 팀 프로젝트로 OO의 민족과 같은 주문 관리 플랫폼을개발해보는 팀 프로젝트를 진행하게 되었다. 개발을 진행하기에 앞서 어떻게 진행할 것이지 간단하게 정리할 예정이다. 1. API 명세서2. 데이터베이스 테이블 3. ERD 다이어그램ERD 다이어그램 자세히 보기!!4. 인프라 아키텍쳐

Spring Boot 2024.08.23

서비스 디스커버리

1. 서비스 디스커버리1. 서비스 디스커버리란?    ● 서비스 디스커버리는 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리하고 찾아주는 기능    ● 각 서비스는 등록 서버에 자신의 위치를 등록하고, 다른 서비스는 이를 조회하여 통신     ● 주요 기능으로는 서비스 등록, 서비스 조회, 헬스 체크 등이 있다. 2-1 Eureka란?    ● 넷플릭스가 개발한 서비스 디스커버리 서버로, 마이크로서비스 아키텍처에서 각 서비스의 위치를 동적으로 관리     ● 모든 서비스 인스턴스의 위치를 저장하는 중앙 저장소 역할을 하며, 서비스 인스턴스의 상태를 주기적으로 확인하여 가용성을 보장     ● 여러 인스턴스를 지원하여 고가용성을 유지할 수 있다.  2-1 Eureka 서버 설정    ● E..

Spring Cloud

1. Spring CloudSpring Cloud란?  ● Spring Cloud는 마이크로서비스 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장이다.  ● 마이크로서비스 아키텍처를 쉽게 구현하고 운영할 수 있도록 도와준다.주요기능  ● 서비스 등록 및 디스커버리 : Eureka, Consul, Zookeeper  ● 로드밸런싱 : Ribbon, Spring Cloud LoadBalancer  ● 서킷 브레이커 : Hystrix, Resilience4j  ● API 게이트웨이 : Zuul, Spring Cloud Gateway  ● 구성 관리 : Spring Cloud Config  ● 분산 추적 : Spring Cloud Sleuth, Zipkin  ● 메시징 : Spring Cl..

MSA 개요

1. MSA란?Microservices Architecture  ● MSA는 하나의 애플리케이션을 여러 개의  독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는      소프트웨어 아키텍처 스타일이다.  ● 각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포되고 확장될 수 있다.  ● 서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐 등을 통해 이루어 진다.주요특징  ● 독립적인 배포 가능성 : 각 서비스는 독립적으로 배포할 수 있고 다른 서비스에 영향을 주지 않고 업데이트 할 수 있다.  ● 작은 팀 구성 : 각 서비스는 작은 팀이 독립적으로 개발하고 관리할 수 있다.  ● 기술 스택의 다양성 : 각 서비스는 적절한 기술 스택을 자유롭게 선택할 수 있다.1.2 모놀..

인증 / 인가 / JWT

📌 인증 / 인가 📖 인증이란 ? 인증이란 사용자의 신원을 검증하는 행위로 보안 프로세스에서의 첫 번째 단계이다. 가장 흔한 예시로는 로그인을 설명할 수 있다. 회원가입을 하고 로그인을 진행할 때 사용자 이름과 비밀번호는 가장 많이 사용되는 인증 요소이다. 사용자가 데이터를 올바르게 입력하면 시스템은 올바르다고 판단하고 로그인을 허용하고 올바르게 입력하지 않으면 허용해주지 않는다. 이 외에도 외부 기관을 통해 보안 코드를 생성하여 인증하는 인증 앱, 지문이나 망막 스캔을 제출하는 생체인식 등이 인증에 포함된다. 📖 인가란 ? 인가란 사용자에게 특정 리소스나 기능에 액세스할 수 있는 권한을 부여하는 프로세스를 만한다. 대표적으로 서버에서 특정 파일을 다운로드할 수 있는 권한을 부여하거나 개별 사용자에게 관..

Spring Security 2023.06.28

문시해알, 맞왜틀 TIL - 20230623

📌Optional is Present() 오늘은 Optional을 사용하면서 자주 사용하는 메서드인 is Present() 메서드에 대해서 작성하겠다. 자바로 프로그래밍을 하다보면 정의되지 않은 객체에 대해 null 값을 고려하게 되는 경우가 있는데 안정적인 실행을 위해null 값을 처리해 NullPointerException이 발생하지 않게 체크를 해야한다. 이러한 상황을 처리하기위해 Optional 클래스를 사용한다. 📖 Optional이란? Java 버전8 부터 사용할 수 있으며 Optional는 null이 올 수 있는 값을 감싸는 Wrapper 클래스이다. Optional는 null이 올 수 있는 값을 감싸는 Wrapper클래스로 NullPointerException이 발생하지 않도록 도와준다. ..

TIL, WIL/TIL 2023.06.23

문시해알, 맞왜틀 TIL - 20230622

📌 트랜잭션, @Transactional 어노테이션 우선 프로그래밍 공부를 진행하면서 문제점이 없던 날에는 TIL을 작성하지 않았지만 오늘부터는 문시해알이 아닌 공부했던 내용을 작성할 예정이다. 오늘 작성할 내용은 트랜잭션과 Spring의 @Transactional 어노테이션에 대해 작성하겠다. 📖 트랜잭션이란? 트랜잭션은 데이터통신 시스템에서 관리의 대상이 되는 기본적인 정보를 기록한 기본파일에 대해서 추가, 삭제 및 갱신을 가져오도록 하는 행위(거래)를 트랜잭션이라 한다. 쉽게 말하면 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 또는 한꺼번에 모두 수행되어야 하는 일련의 연산들을 의미한다. 📖 트랜잭션의 특징 ● 트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복..

TIL, WIL/TIL 2023.06.22

문시해알, 맞왜틀 TIL - 20230526

오늘은 계산기 프로그램을 만드는 예제를 진행했다. 이번 예제에서는 문제점이라기 보다는 궁금했던걸 작성하겠다. 예제설명 말 그대로 피연산자와 연산자를 입력하면 사칙연산을 이용하여 계산 후 출력해주는 프로그램을 실습했다. 1. **구현 1, 구현2** 로 주석처리된 부분을 직접 구현해주세요 2. 추가된 BadInputException은 우리가 이번 과제에서 사용할 예외 입니다. 3. 추가된 CalculatorApp은 우리의 계산기를 실행시켜주는 클래스 입니다. 4. Parser는 유저의 입력을 받아서 우리가 지난주에 구현한 계산기의 로직으로 전환시켜주는 객체 입니다. 5. 우리는 주로 Parser를 구현할 예정 입니다. 6. 우리는 유저의 입력을 String으로만 받아야 합니다. 7. 입력받은 String을..

TIL, WIL/TIL 2023.05.26

github - repository초기화

📖 github repository 초기화 오늘은 개발자들 사이에서 SNS라고 불릴 정도로 많이 사용하고 개발자라면 꼭 사용할 줄 알아야하는 github중에서 repository 초기화에 대한 이야기를 해보겠다. 개발을 진행하다 보면 여러가지 파일들을 commit하고 commit하는 과정에서 오류도 발생하고, 원하지 않는 파일들이 올라갔을 때 삭제 해야하는 등 여러가지 변수들이 존재한다. 하지만 이러한 과정들이 반복되고 파일들이 굉장히 많다면 하나하나 삭제하고 추가하고... 생각만해도 귀찮아버려...🤦🏻‍♂️ 그렇다고 해서 repository를 삭제하고 다시 생성하기에는 열심히 가꾸었던 잔디도 사라지고..🍀 너무 번거롭잖아요!! 📌 저장소를 삭제하고 다시 생성하기 귀찮을 때, 여러 파일을 추가 삭제하기 ..

github 2023.05.26