본문 바로가기

전체 글

(69)
[MSA] Spring Cloud Config Client 구축 2 - 삽질중인 개발자 - Spring Cloud Config Refresh 방법 - Spring Cloud Config Client Aplication을 server에 연동했다면 설정이 변경되었을 때 설정을 Refresh 해야 한다. 가장 간단한 방법은 그냥 application 을 종료 후 재실행을 하면 되지만 이러면 종료되는 시간 동안 서비스가 중단이 된다. 그래서 서버를 중단하지 않고 설정값만 변경을 해야 하는데 이때 필요한 게 Spring Boot Actuator이다. 1. Spring Cloud Config Client 측에 Spring Boot Actuator 관련 의존성 추가 org.springframework.boot spring-boot-starter-actuator 2.3.5.RELEASE 2. 기존 con..
[MSA] Spring Cloud Config Client 구축 1 - 삽질중인 개발자 - Spring Cloud Config Client - spring cloud config server를 구축했다면 spring cloud config client를 이용하여 application에서 설정 파일을 불러와야 한다. Spring Cloud Config Client 구현 1. pom.xml 의존성 추가 org.springframework.cloud spring-cloud-starter-config 2.2.5.RELEASE 2. bootstrap.yml 추가 spring cloud config server에서 설정 파일을 불러오기 위해서는 bootstrap.yml 파일이 필요하다. src/main/resources/ 에 application.yml을 삭제 후 추가한다. ※ application...
[MSA] Spring Cloud Config - Config server 구축 - 삽질중인 개발자 - Spring Cloud Config Server세팅 - MSA 아키텍처에서의 설정 파일은 외부화하여 관리하게 된다. 외부화를 하기 위하여 대표적으로 사용하는 기술로는 Spring Cloud의 Spring Cloud Config 가 있다. Spring Cloud Config 을 사용하여 설정을 외부화를 하여 관리했을 때 나타나는 장점으로는 다음과 같다. 환경에 따라 달라지는 설정 정보를 소스로부터 분리하여 소스 코드와의 결합도를 낮춰 유지보수의 용이성이 증대된다. 운영중에 서버 빌드 및 배포를 다시 할 필요 없이 환경 설정을 변경 가능하다. 설정 파일을 git에 저장하여 관리하여 버전 관리를 쉽게 할 수 있으며 다양한 도구에 액세스가 가능하다. 스프링 클라우드 컨피그에는 크게 두 가지 구성 요소가 존재..
모노리틱 아키텍쳐(Monolithic Architecture) - 삽질중인 개발자 - 모노리틱 아키텍처 - 1. 모노리틱 아키텍처란? 하나의 애플리케이션 안에 모든 비즈니스 로직이 다 들어가 있는 구조이다. 2. 모노리틱 아키텍처 장점 하나의 애플리케이션에서 개발하기에 배포 및 테스트가 간편하다. 각 컴포넌트 간의 호출 시 성능 제약이 덜하며 트렌젝션 관리가 편하다. 3. 모노리틱 아키텍처 단점 프로젝트 규모가 커지면 빌드 및 배포, 서버 기동 시간이 길어진다. 프로젝트 규모가 커지면 전체 시스템의 구조를 제대로 이해하기 어려워진다. 어느 한 곳에 잘못된 코드가 있으면 전체 시스템에 영향을 준다. 여러개의 기술 혼용이 어려움. ( ex : A기능은 nosql에 유리한 구조이고 B 기능은 RDBMS에 유리한 경우 )
OAuth2 개념 정리 - 삽질중인 개발자 - OAuth2 란 - 1. OAuth 란? Open Authorization 로 다양한 플랫폼에서 권한 부여를 위한 산업 표준 프로토콜이다. 2. OAuth 탄생 배경 Oauth 방식이 등장하기 전에 내가 만든 사이트에서 다른 사이트의 리소스를 가져오기 위해서는 다른 사이트의 Id와 Password를 직접 입력을 받아 저장하여 필요할 때마다 불러와서 사용을 해야했다. 위와 같은 방식을 사용하게되면 다음과 같은 문제가 발생한다. 사용자 : 내가 만든 사이트에 다른 사이트의 id와 password를 공개하는 것에 대해 신뢰할 수 없다. 내가 만든 사이트 : id와 password를 받았기에 보안 문제가 생기는 경우 모든 책임을 져야한다. 다른 사이트 ( google, naver ) : 내가 만든 사이트를 ..
Summernote 에디터 툴바 수정 - 삽질중인 개발자 - 썸머노트 에디터 툴바 기능 수정 - summernote의 기본 옵션으로 에디터를 사용하려고 하면 폰트의 사이즈도 변경하지 못하고 문자의 색도 변경하지 못해서 바로 사용하기에는 약간 불편함이 존재한다. 그래서 이 기본 에디터 옵션을 조정하여 사용을 해야 한다. 써머 노트의 기본 사용법은 아래의 여기를 참조하자. 우선 기본 옵션을 사용하여 에디터를 로딩하면 위와 같은 화면이 나오는데 이 모습에서 아래와 같은 모습으로 변경할 것이다. 여기 써머노트 툴바 변경 링크를 참조 $('.summernote').summernote({ toolbar: [ // [groupName, [list of button]] ['fontname', ['fontname']], ['fontsize', ['fontsize']], ['s..
RestTemplate generic response type 매핑 방법 - 삽질중인 개발자 - RestTemplate Exchange 매소드 ResponseType 을 Generic Type 으로 매핑하기 - RestTemplate 을 사용하다 보면 Map 형태로 응답을 받아야 할 때가 있다. 이 포스팅에서는 resttemplate에서 map으로 응답받는 방법에 대해 포스팅한다. 우선 RestTemplate을 사용해서 API를 호출할 때 잘 만들어진 API라면 아래와 같은 형태를 갖고 있다. //네이버 API 호출 //https://developers.naver.com/docs/login/profile/ { "resultcode": "00", "message": "success", "response": { "email": "openapi@naver.com", "nickname": "OpenAP..
CSRF (Cross Site Request Forgery)공격이란? - 삽질중인 개발자 - CSRF ( 사이트 간 요청 위조 ) - 1. CSRF ( Cross Site Request Forgery ) 란? 사이트 간 요청 위조 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 하여 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법 2. 어떤식으로 동작하는가? ( 이미지 태그를 통한 공격 ) A라는 사이트의 관리자 권한을 갖고 있는 유저가 A라는 사이트에 로그인되어 있는 상태이고 A라는 사이트에 관리자가 유저의 권한을 변경할 때 사용되는 다음과 같은 URL이 있다고 할 때 GET /changeUserAuth?id=programmer93&auth=ROLE_ADMIN ( programmer93의 권한을 admin으로 변경 ) 공격자가 사용자한테 무작..