반응형

자바 56

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로 들어온 요청이 주..

자주 쓰는 디자인 패턴 (행위 패턴)

행위패턴( 객체간 커뮤니케이션) 1.책임 연쇄(체인) 패턴 클라이언트에게 어떠한 요청이 들어왔을 때, 요청을 받은 객체가 해당 요청을 해결할 수 없을 경우 연결된 다음 객체들에 전달하고 해당 요청을 해결할 수 있는 객체가 처리하는 방식입니다. 요청 객체와 처리 객체를 분리하거나 요청을 처리할 수 있는 객체가 여러 개인데 하나의 객체에 요청을 보낼 때 책임 연쇄 패턴을 적용할 수 있습니다. 즉, 요청을 처리할 수 있는 객체가 여러개이고 이러한 처리를 하는 객체가 명시적이지 않을 때 사용할 수 있는 패턴입니다. 요약하자면, Chain 중개자가 객체와 객체끼리 체인을 걸어주는 형태 A객체로 처리할수없으면 B객체로, B객체가 해결할수없으면 C객체로 2. 옵저버 패턴 우선 코드부터 보겠다. Editor => Ev..

자바 2023.03.23

자주 쓰는 디자인 패턴 [구조 패턴]

1. 어댑터 패턴 사용처 : 구조는 같은데, 인터페이스가 달라서 못쓰는 경우 사용하게끔 변환해주는 용도 RGB 1 2 3 4 5 6 7 8 9 10 11 public class RGB { private byte[] images; public byte[] getImages() { return images; } public void setImages(byte[] images) { this.images = images; } } Colored by Color Scripter cs HDMI 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public class HDMI { private byte[] images; public HDMI(byte[] images) { this.images = imag..

자바 2023.03.22

자주쓰는 디자인 패턴 총정리 (생성 패턴 편)

1. 추상 팩토리 패턴 많은 수의 연관된 서브 클래스를 특정 그룹으로 묶어 한번에 교체할 수 있도록 만들었다. 예시) 중국 요리, 한국 요리가 있다. 이 요리는 Cook()라는 공통점이있다. 비슷한 두 클래스끼리 하나의 그룹으로 묶어 표현하고싶다! Food( Interface ) ChinaFood(Class) KoreanFood(Class) 엥.. 그냥.. Interface(인터페이스) 또는 Abstract Class(추상 클래스) 를 상속해서 쓰는 건가..? 이것만 놓고보면 그렇다. 하지만, 대부분 다음에 소개할 팩토리 메소드와 연계해서 사용한다. 2. 팩토리 메소드 패턴 (Factory Method) 객체를 만들어 반환하는 함수를 (생성자 대신) 제공하여 초기화 과정을 외부에서 보지 못하게 숨기고 반..

자바 2023.03.21

정규표현식(REGEX) 문법 정리

정규표현식이란? 정규 표현식 또는 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다. 즉, 단 한줄로 내가 원하는 문자열 패턴을 제작하여 찾는 식이다. 이 정규표현식을 진짜 잘 사용하면, 단 한줄로, 무궁무진한 패턴을 만들수 있다. Java에서 정규표현식의 사용처 대표적인 메소드는 replaceAll() , matches() 이다. replaceAll()은 해당 패턴을 치환해주는 메소드, matches()는 해당 패턴이 일치하는지 확인하는 메소드다. 정규표현식의 문법 ^ 문자열의 시작 $ 문자열의 끝 . 임의의 한 문자 * 문자가 0번 이상 발생 + 문자가 1번 이상 발생 ? 문자가 0번 혹은 1번 발생 [ ] 문자의 집합 범위를 나타냄 [0-9] : 숫자 (0부터 9) [..

자바 2022.12.24

스프링(Spring) 테스트 환경에서 @PostConstruct 비활성화

문제 발생: 새로운 옥션 서비스를 개발했으니, 테스트코드를 한번 짜보려는 상황 입니다. 테스트 요약: 1.옥션 하나를 제목을 지정한 뒤 생성 2. 옥션 꺼내기 3. 꺼낸 옥션과 1번에서 생성한 옥션의 제목이 동일한지 비교 ?!!!!?!!!!! 아니.. 왜안됨? 알고보니 문제가 테스트 부분이아닌, 메인(local환경) 부분 에서 더미데이터로 생성한 @PostConstruct 때문이였다. 해결방법: @Profile을 사용하여 메인, 테스트 환경을 분리하자. 즉, 내가 쓸 @PostConstruct는 메인환경에서만 사용할것이니, 메인 은 메인환경으로 테스트는 테스트로 설정하는것이다. 1.테스트 환경에서 쓸 application.properties 를 복사 붙이기하자. 2. 그 후, 로컬 환경 프로퍼티와, 테스..

XSS , CORS, CSRF 의 차이점

1. XSS 란? 이 공격을 한마디로 표현하자면, 스크립트를 사용한 공격이다. XSS의 목적은 쿠키 및 세션탈취 , 광고 등등 주요 타겟이 클라이언트다. 혹시 이런 경험 해본적 없는가? 사이트 또는 게시글을 눌렀는데 이상한 알림이 우수수 뜨거나, 이상한 사이트가 추가로 뜬다거나... 공격 시뮬레이션을 한번 해보겠다. 1. 나쁜 해커놈이 게시글 작성을 한다. 2. 게시글 제목 또는 내용 에 다음과같은 내용을 작성한다. 1 2 // 광고사이트로 이동시키는게 대부분이다. window.location.href = 'https://falsy.me'; cs 컴퓨터 팝니다.. or 상담있습니다. 등등 목적에 맞게안쓰고 이런 스크립트로 작성하는것이다. 자 이걸 제목에다 작성하면... 사용자는 게시글 목록페이지만 로딩하..

스프링 시큐리티 + OAuth2.0 (Kakao편)

이전 포스팅엔 구글 로그인 OAuth 연동을 해봤다. 이번 포스팅엔 kakao Oauth를 연동해보자. 0. 카카오톡 REST API , 시크릿키 받기 https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 카카오톡 로그인을 한뒤 몇가지 절차를 완료한후, ' 내 어플리케이션 ' 을 클릭하자. 중앙에 보이는 애플리케이션 추가하기를 눌러서 앱 이름과 사업자명을 입력하자. 필자는 테스트용으로 아무렇게나 입력했다. 만들어진 어플을 들어가면 4가지의 키를 받을수있는데, 우린 REST API 키를 가져가면된다...

스프링시큐리티 + OAuth2.0 사용해보자 (Google편)

이전 포스팅에서 이제 OAuth2.0 을 추가로 사용해보고자한다. OAuth란? OAuth는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 공통적인 수단으로서 사용되는, 접근 위임을 위한 개방형 표준이다. 더욱 자세하게 설명하자면, 사용자들이 모든 어플리케이션마다 일일이, 아이디와 비밀번호를 제공하기 귀찮거나, 아이디와 비밀번호를 입력하다 피싱당할 위험이 있으니, 이미 등록해둔 거대 플랫폼(EX: Google, Twitter , KaKao, Naver..) 에서 인증과 토큰을받아서 원클릭 회원가입 And 원클릭 로그인 같은 기능을 구현할수있다. 설명보단 바로 코드로 한번 보자! 0.OAuth2.0 밑준비 (Goog..

반응형