springboot 15

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

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

AI 검증 비즈니스 프로젝트

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

Spring Boot 2024.08.23

MSA 개요

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

인증 / 인가 / JWT

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

Spring Security 2023.06.28

문시해알, 맞왜틀 TIL - 20230622

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

TIL, WIL/TIL 2023.06.22

HTTP 요청 데이터 - GET 방식

HTTP 요청 데이터 - 개요 HTTP 요청 메시지를 통해 클라이언트에서 서버로 데이터를 전달하는 방법을 알아보겠다. 주로 3가지 방법을 사용한다. ● GET - 쿼리 파라미터 - /url?username=hello&age=20 - 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 - 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 ● POST - HTML Form - content-type: application/x-www-form-urlencoded - 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 - 예) 회원 가입, 상품 주문, HTML Form 사용 ● HTTP message body에 데이터를 직접 담아서 요청 - HTTP API에서 주..

SpringBoot - AOP (2)

AOP (1)에 이어서 두번째 AOP시간이다. 우선 오늘 처음으로 공부한 내용은 메소드의 실행시간을 가지고 서버의 부하, 서버의 현재 상태를 로깅으로 남길 수 있기 때문에 로깅을 남기는 실습을 먼저 진행하겠다. 하지만 이번엔 단순하게 AOP만 만드는 것이 아니라 커스텀 된 annotation을 하나 만들어서 해당 annotation을 가지고 annotation이 설정된 메소드만 기록을 할 수 있도록 실습을 진행하였다. @Around를 활용해 반복되는 logic을 AOP로 따로 빼네서 반복하지 않고 관리하고 실행할 수 있도록 하는 실습을 진행하였다. 우선 aop패키지에 TimerAop.java파일을 생성해 준다. 이어서 annotation패키지를 생성해 주고 Timer.java파일로 Timer annota..

Spring Boot/AOP 2023.05.01

ArrayList를 이용한 DB코딩

오늘 공부한 내용은 나만의 맛집 리스트 프로젝트를 진행하기 위해 필요한 데이터베이스를 mySQL과 같이 데이터베이스 관리 시스템을 사용하지 않고 ArrayList를 이용해 JPA를 흉내내는 데이터베이스를 사용하였다. ​ MemoryDbEntity.java package com.example.restaurant.db; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @NoArgsConstructor @AllArgsConstructor @Data public class MemoryDbEntity { protected int index; } MemoryDbRepositoryAbstract.java pac..

IoC, DI

오늘 공부한 내용은 IoC와 DI에 대해서 공부하였다. 우선 IoC와 DI에 대해 간략하게 설명한 후에 실습한 내용을 작성하겠다. ​ IoC - 스프링에서는 일반적인 Java 객체를 new로 생성하여 개발자가 관리하는 것이 아닌 Spring Container에 모두 맡긴다. 즉 개발자에서 → 프레임워크로 제어의 객체 관리의 권한이 넘어 갔음 으로 “제어의 역전” 이라고 한다. DI - IoC는 개발자가 객체를 관리하는 것이 아니기 때문에 개발자는 어떻게 객체를 사용하여야 하는지 문제이다. 개발자가 Spring Container의 객체를 사용하기 위해 외부로 부터 주입을 하는것이 DI라고 할 수 있다. ​ DI의 장점으로는 총 4가지가 있다. 의존성으로 부터 격리시켜 코드 테스트에 용이하다. DI를 통하여..

Spring Boot 2023.04.22

Object Mapper에 모범사례 실습

정보처리산업기사 공부를 하고 시험을 보고 오랜만에 다시 Spring으로 돌아왔다!! 시험 결과에 대해서는 그냥 그렇지만 결과가 나와야 정확하게 알거같다... 암튼!! 결과가 나오기 전까지는 Spring에 집중을 하고 공부를 할 수 있을거같다!! 그럼 오늘 공부한 내용을 작성해보겠다 ​ 오늘 배운 내용은 마지막 시간에 이어서 Spring_Boot중에서 Object Mapper에 모범사례에 대해 실습을 하고 스프링 핵심에 대해 간략하게 공부하였다. 우선 Object Mapper에 모범사례에 대해 작성하겠다. ​ ObjectMapperApplicationTests package com.example.objectmapper; import com.fasterxml.jackson.core.JsonProcessing..

Spring Boot 2023.04.22