자바/스프링(Spring) 35

SpringCloudGateway (SCG) 사용한 프로젝트

SpringCloudGateway (SCG) 란? MSA를 위한 기술이다. MSA는 간략하게 설명하자면, 하나의 큰 어플리케이션을 서비스 단위로 분해한뒤, 독립적으로 관리하는것이다. Gateway는 이 분해된 서비스들의 중개역 역할을 한다. Eureka 서버 SCG와 더불어 Eureka 서버도 같이 사용하면 좋다. SCG는 앞서 말한듯, 서비스들의 중개역을 하나 두는것이라면, Eureka 서버는 서비스들이 제대로 몇개의 인스턴스가 켜져있는지 상태관리를 시각적으로 도와주는 서버다. 이것이 Eureka 서버의 화면 일부분이다. 현재는 Find-Service의 인스턴스가 1개 올라와있다. 만약 Find-Service가 여러개 필요하다면 어떻게할까? Find 서비스의 서버를 하나 더 키면된다. 그러면 다음과같이..

스프링 Rest Docs 사용법

Spring Rest Docs란? Spring REST Docs는 스프링 프레임워크 기반의 프로젝트에서 API 문서를 생성하고 유지 관리하기 위한 도구입니다. 이 도구를 사용하면 API 엔드포인트 및 요청-응답 예제를 포함한 문서를 생성할 수 있습니다. Spring REST Docs는 테스트 코드와 결합하여 API의 동작을 검증하고 그 결과를 문서화하는 방식으로 작동합니다. 간단히 말하자면, Controller 패키지를 테스트를 한뒤, 테스트가 성공했을때만 API 문서를 작성해주는 도구다. REST DOCS 설정: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 plugins { i..

스프링 Jacoco 코드 커버리지

Jacoco란? 내가 작성한 코드들을 테스트를 하였을때, 그 테스트가 전체 코드중에서 얼마만큼 성공이되었고, 몇퍼센트 통과가 되었는지 자세하게 통계를 보여주는 라이브러리다. Jacoco는 테스트 실패, 성공여부를 모두 보여주기에, 테스트 작성에 분석 및 보고를하는데 효율적이다. 사용법: Jacoco는 사용법이 매우 간단하다. 라이브러리만 잘 받아오고 세팅만 하면된다. build.gradle에 들어가서 다음과같이 세팅한다. 플러그인에 Jacoco를 사용하겠다 선언한다. Jacoco의 버전 설정 받고싶은 파일 형식을 설정할수있다. html을 받고싶으니 true로 설정하였다. 또한, html의 생성 위치를 설정한다. $buildDir은 프로젝트에 build패키지안에 생성이된다. Jacoco 파일을 생성하는방법..

myBatis 세팅 및 직접 사용해보기

MYBatis를 사이드 프로젝트와 함께 사용을 해보려고한다. 시작하기전에, MyBatis는 다음과같은 라이브러리를 받아야한다. 해당 환경은 Maven으로 테스트했고, Gradle은 mvnReposit에서 검색해서 받아오자. https://mvnrepository.com/ Product 실제로 값을 넣어볼 물품 Product이다. ProductMapper ProductMapper이다. 이 @Mapper 어노테이션으로 Mapper임을 명시하고, xml에 저장한 SQL을 매핑한뒤 불러와서쓴다. product.xml Product.xml이다. 태그로 만들어뒀던 ProductMapper를 매핑시키고, ProductMapper의 메소드 이름을 id로 지정한다. select문을 사용하면 insert문을 사용하면 를 ..

Intelij 에서 Mysql테이블 확인 및 쿼리쓰기

Intelij 에서 제공하는 편의 GUI 기능을 이제야 발견했다. 매번 mysql에서 테이블, 쿼리문을 테스트 , 데이터들을 봤는데 그 화면이동을 안해도 되는 기능이다. 우측 상단 탭을 살펴봐서 DataBase를 클릭하자 처음 데이터베이스를 연동하려면 +버튼 -> DataSource -> MYSQL (원하는DB)를 선택한다. 여기서 연동할 Host , User ,Password,DB, URL 등등 세팅하자 그 후, 다시 이전에 데이터베이스 세팅햇을때 눌렀던 "+" 버튼을 눌러 QueryConsole을 열어보자. 여기서 WorkBench에서 쿼리문을 써서 테스트하듯이 확인할 수있다. 불필요하게 Intelij 와 WorkBench를 왔다갔다 할 필요가 없어서 꽤나 편하다! 꼭 활용해 봤으면 좋겠다!

Spring security : JWT 토큰 인증 / 인가 적용하기

스프링 시큐리티의 필터체인이다. 이것이 스프링 시큐리티의 동작 원리를 한 그림으로 나타낸것입니다. 처음보면 참 어지럽다.. 여기서 주목해야하는 부분은 Authentication(인증) / Authorization (인가) https://github.com/codingspecialist/Springboot-Security-JWT-Easy GitHub - codingspecialist/Springboot-Security-JWT-Easy Contribute to codingspecialist/Springboot-Security-JWT-Easy development by creating an account on GitHub. github.com 예제 코드는 여기서 따왔다. Security Config 하나씩 살..

(Java) 공공데이터 API 가져와서 쓰는법

공공데이터가 필요할때 API를 가져와서 쓰는법을 작성하려고한다. 이번 테스트할 공공데이터서비스 기관은 여기 https://data.seoul.go.kr/ 열린데이터광장 메인 데이터분류,데이터검색,데이터활용 data.seoul.go.kr 이곳에서 데이터를 가져오면 회원가입 및 API키를 발급받아야한다. API키 없이 sample로 호출할수는있다. 하지만 sample은 데이터 갯수가 5개만 지원하기에 이왕 하는거 API키 발급받고 전부 가져오자. https://data.seoul.go.kr/together/guide/useGuide.do 열린데이터광장 메인 데이터분류,데이터검색,데이터활용 data.seoul.go.kr 회원가입을하고 , 인증키를 신청하자. 이 사이트는 친절하게 아래에 언어마다 URL 신청하는..

Spring Eureka (스프링 유레카) 간단 실습 및 예제

스프링 유레카란? "스프링 유레카"는 스프링 프레임워크에서 사용되는 서비스 디스커버리(Service Discovery) 서버 중 하나입니다. 스프링 유레카를 사용하는 이유는 분산 시스템에서 서비스 간의 통신을 위해 필요한 서비스 디스커버리, 로드 밸런싱, 장애 감지 및 회복 등을 쉽게 구현할 수 있기 때문입니다. 스프링 유레카를 사용하면 각각의 서비스들이 등록되고, 이를 조회하여 사용할 수 있습니다. 이를 통해 높은 가용성과 확장성을 가진 분산 시스템을 구성할 수 있습니다. 또한 스프링 유레카는 클라우드 환경에서 서비스를 배포하고 관리하기 쉽도록 지원합니다. 클라우드 네이티브 아키텍처에서 많이 사용되는 기술 중 하나이며, 스프링 부트와 같이 사용하면 더욱 편리하게 구성할 수 있습니다. 여기서 서비스 디스..

Spring Cloud Gateway 간단실습 및 이해

갑자기 왜 Spring Cloud Gateway? Spring Cloud Gateway를 배우기 시작한건 MSA의 관심이 커서이다. MSA는 마이크로 소프트 아키텍처의 약자로 한 어플리케이션의 기능을 여러개로 쪼갠뒤, 기능마다 독자적인 서버(포트)를 열어 서비스하는 방식이다. Spring Cloud Gateway는 이 MSA 구축을 가능케하는 Java 기술이다. Route API Gateway에서 가장 기본이 되는 요소로 요청할 서비스의 고유한 값인 id, 요청할 uri, Predicate, Filter로 구성되어 있습니다. 요청된 uri의 조건이 predicate와 일치하는지 확인 후, 일치하는 경우 해당 uri 경로로 요청을 매칭 시켜줍니다. Predicate API Gateway로 들어온 요청이 주..