。゚(*´□`)゚。

코딩의 즐거움과 도전, 그리고 일상의 소소한 순간들이 어우러진 블로그

프로젝트/BleuAuction

[BleuAuction 리팩토링] 11/8 (수)

quarrrter 2023. 11. 30. 19:54

[11/8(수)]

새로운 인원 두 명이 참여해서 총 다섯 명이서 하기로 했다. 

 

프론트 : 성주, 현석

백: 기현, 나, 종원

완전 든든하자나 !!! 

 

 

[문제점]

컨트롤러에도 로직이 존재,,!

깃에 브랜치들이 너무 많음(브랜치 생명 주기 짧게 가져가는 것이 목적)

 

[처음으로 할 일]

모든 도메인 컨트롤러 수정 ,,! (컨트롤러 로직 >> 서비스 단으로 내리기)

제이유닛 공부하기 (테스트 케이스) - 메서드 실행했을때 나오는 거 - 모듈, 인프라, 로직 테스트 가능 , 기능 검증

매핑 엔드포인트 통일 및 (request로) 묶기

사용하지 않는 import나 그런거 다 빼기

lombok 활용 아쉬움

문자열 변수화 - sucessfully 나 로그인한 사용자가 아닙니다 한글

 

 

 


 

리팩토링 작업을 하려면 테스트를 먼저 만들어야 한다고 종1님이 가이드를 잡아줬다. 이전에 JPA 강의 들을 때 시간이 없기도 하고 복잡해 보여서 테스트 부분은 건너 띄고 강의를 봤었는데 드디어 때가 왔군,, 싶었다. 

약간은 막막해보였지만 든든 종1님이 있어서 두렵진(?) 않았다. 리팩토링 전과 후를 비교 자료로 만들어 포트폴리오로 활용할 수도 있고, 테스트 케이스를 작성해보는 것만으로 일단 스스로 성장을 할 수 있다고 말씀을 해주셔서 의지가 타올랐다. 

 

 

 

로그는 파일로 남기면 좋음 - 오류 찾기 // 파일로 정리해놓기 : 파일로 데일리 정리 : 컨테이너 로그가 저장돼서 밖에 어덯게 빼고 저장할건지 공부해야함.

 

jwt 검증 필터 - 토큰의 유저 정보 뽑기 / security 쓸때 기준 , 시큐리티에서 필터를 무조건 거치게 함. 그때 security context, security holder에 유저정보를 넣을 수 있음 그래서 거기서 빼오면 됨 .

필터 안에서 사용자의 경우에만 통과 시킬 수 있음.

 

GitHub Submodule은 Git 프로젝트에서 다른 Git 프로젝트를 하위 디렉토리에 포함시키는 방법

Submodule을 사용하면 하나의 Git 저장소에서 여러 개의 프로젝트를 관리할 수 있으며, 각 프로젝트는 별도의 저장소로 유지되며, 복잡한 프로젝트를 여러 저장소로 분할하여 개발, 관리, 배포를 용이하게 할 수 있다.

 

 


스프링 클라우드 - msa 구현할때 필수라는데,,

MircroService Architecture의 줄임말
마이크로서비스(microservice)는 애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 
=> 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법
 
*서비스 지향 아키텍처(Service Oriented Architecture(SOA))
애플리케이션 구성요소가 통신프로토콜을 통해 다른 구성요소에 서비스를 제공하는 아키텍처 접근 방식 
대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스(기능의 독립적 단위)로 판단하여 
그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론 


MSA는 API를 통해서만 상호작용할 수 있다. 
마이크로 서비스는 서비스의 end-point(접근점)을 API 형태로 외부에 노출하고, 실질적인 세부 사항은 모두 추상화. 
내부의 구현 로직, 아키텍처와 프로그래밍 언어, 데이터베이스, 품질 유지 체계와 같은 기술적인 사항들은 서비스 API에 의해 가려진다.

마이크로서비스는 하나의 비즈니스 범위에 맞춰 만들어지므로 하나의 기능만 수행.
어플리케이션 출시처럼 하나의 목표를 향해 일하지만 자기가 개발하는 서비스만 책임진다.
여러 어플리케이션에서 재사용할 수 있어야 하고, 기술 중립적 프로토콜을 사용해 통신하므로 서비스 구현 기술과는 무관하다. 

=> 마이크로서비스 기반의 어플리케이션을 다양한 언어와 기술로 구축할 수 있다는 것을 의미한다.

 

스프링 클라우드는 다양한 마이크로서비스 구축 패턴을 제공.
 스프링 애플리케이션에서 쉽게 설정하고 구성하게 만들어 마이크로서비스 애플리케이션의 구축과 배포에 필요한 모든 인프라 구조를 구성하는데 매진하지 않고 코드를 작성하는데 집중할 수 있도록 도와줌.


스프링 부트
스프링 부트는 마이크로서비스 구현에 필요한 핵심 기술. 
스프링 부트로 REST기반 마이크로서비스를 구축하는 주요 작업을 단순환해 마이크로서비스를 상당히 쉽게 개발할 수 있음. 
스프링 부트에서는 HTTP형식의 동사(GET, PUT, POST, DELETE 등)를 URL에 매핑하고 
JSON 프로토콜을 자바 객체로 직렬화할 뿐만 아니라, 자바 예외를 표준 HTTP에러 코드에 매핑하는 작업도 간단하게 처리가능

스프링 클라우드 컨피그
스프링클라우드 컨피그는 중앙 집중식 서비스로 애플리케이션 구성 데이터 관리를 담당하고 
애플리케이션 데이터를 마이크로서비스와 완전히 분리하는 역할을 담당합니다. 
스프링 클라우드는 고유의 관리 저장소가 존재하며, 오픈소스 프로젝트와 통합도 가능합니다. 


스프링 클라우드 시큐리티
서비스에 액세스할 수 있는 사람과 작업을 통제할 수 있는 인증 및 인가 프레임워크.
스프링 클라우드 시큐리티는 토큰에 기반을 두며 인증 서버가 발행한 토큰으로 서비스는 서로 통신하게 됨.
자바스크립트 웹 토큰(JWT)를 지원하며 JWT는 OAuth2 토큰의 생성 방식과 생성된 토큰의 디지털 서명에 대한 표준을 제공.

 


어떤 걸 해야 남길 수 있을 까 생각하면서 , 기록이 중요 ,,,,

커맨드 시프트 티 : 테스트 타입 자동으로 만들어줌

이번 주에 서비스 컨트롤러 테스트 만들기

다음 주 중에 컨트롤러에서 서비스 내리기