스프링

·스프링
스프링 부트 프로젝트 배포 오늘은 스프링 부트 프로젝트를 배포해 봤다. 먼저 간단하게 그림으로 구조를 그려보면 아래의 그림과 같다. DB 서버로는 MySQL를 사용하여 Replication 설정을 해주었고, 총 3대의 리눅스 가상 머신을 사용하여 스프링 부트 프로젝트를 배포하였다. 웹 서버로는 nginx 서버로 구성하였고 부하 분산을 위해 스프링 부트 서버를 로드 밸런싱 처리를 해줬다. 하나씩 어떻게 구성하는지 살펴보자. MySQL DB 구성 먼저 DB 구성부터 살펴보면 이전에 MySQL로 Replication 설정을 정리한 적이 있어서 참고하여 설정했다. Mysql - Replication Replication Replication은 복제라는 뜻으로 하나의 메인 DB 서버의 데이터를 그대로 복제한 하나..
·스프링
소셜 로그인 사람들이 자주 사용하는 웹이나 모바일 앱을 보면 거의 대부분은 소셜 로그인이 가능하다. 사용자 입장에서 보면 소셜 로그인은 굉장히 간편하고 여러 사이트를 관리하기 쉬워진다. 개발자 입장에서도 간편한 것은 마찬가지다. 따로 어떠한 사용자의 정보를 받을 필요 없이 서비스를 이용하는 사람이 소셜 로그인을 하는지 확인하고 적절한 요청과 응답을 보내주면 되기 때문에 보다 간편하게 회원의 인증과 인가 작업을 할 수 있다. 처음에 소셜 로그인을 어떻게 구현해야 되는지 잘 몰랐는데 강의를 듣고 찾아보니 각 소셜 기업마다 API를 공개하여 편리하게 사용할 수 있도록 만들어 놓았다는 것을 알게 되었다. 이제 내가 만든 서비스에서 소셜 로그인을 구현하려면 원하는 소셜 기업에 들어가 API 문서를 찾아보고 설명서..
·스프링
토큰(Token) 토큰은 클라이언트가 서버에 접속하면 서버에서 해당 클라이언트에게 인증되었다는 의미로 토큰이라는 것을 발급해 준다. 토큰을 발급받은 클라이언트는 다시 서버에게 요청을 보낼 때 요청 헤더에 토큰을 넣어서 보내게 되고 해당 서버는 클라이언트로 받은 토큰을 서버에서 제공한 토큰과 일치하는지 확인하여 인증하게 된다. 이러한 인증 방식을 토큰 기반 인증 방식이라고 한다. 그렇다면 왜 세션 기반 인증 방식 보다 토큰 기반 인증 방식을 사용할까? 기존 세션 기반 인증 방식의 문제점 JWT로 인증하는 방식을 공부하기 전에 먼저 기존의 세션 방식에서의 문제점을 살펴보자. 기존의 세션 기반 인증 방식의 문제점으로는 두 가지 경우가 있다. 1. 서버 이중화에 따른 문제점 사용자의 요청이 많아질수록 서버의 부..
·스프링
스프링 시큐리티(Spring Security) pring Security는 강력하고 사용자 정의가 가능한 인증 및 액세스 제어 프레임워크입니다. 이는 Spring 기반 애플리케이션 보안을 위한 사실상의 표준입니다. Spring Security는 Java 애플리케이션에 인증과 권한 부여를 모두 제공하는 데 중점을 둔 프레임워크입니다. 모든 Spring 프로젝트와 마찬가지로 Spring Security의 진정한 힘은 사용자 정의 요구 사항을 충족하기 위해 얼마나 쉽게 확장할 수 있는지에 있습니다. -Spring Seurity 공식 홈페이지- 스프링 시큐리티는 스프링 공식 홈페이지의 설명처럼 인증(Authentication) 및 인가(Authorization) 프레임워크이다. 이커머스 서비스를 예시로 생각해 ..
·스프링
레이어드 아키텍처(Layered Architecture) 스프링 프레임워크를 사용하여 웹 서비스를 만든다고 생각해 보면 당연하게 스프링 MVC 패턴을 떠오르게 될 것이다. 지금 그림으로 볼 때는 Controller가 HTTP 요청에 대해서 어떤 작업을 수행하고 결과를 반환하게 되는데 만약 DB에도 접근해야 되고 지금 보다 많은 작업이 추가된다면 어떻게 될까? 스프링 프레임워크는 개발자가 좋은 객체 지향 설계를 할 수 있도록 도와주는데 좋은 객체 지향 설계를 하려면 역할과 구현을 분리해야 한다. 하지만 컨트롤러에 많은 역할을 부여하고 관련 기능들을 구현하게 된다면 좋은 객체 지향 설계라고 할 수 없고 그러면 결국 객체 지향의 장점인 유연한 변경을 할 수 없게 된다. 이러한 문제를 사전에 방지하고 컨트롤러의..
·스프링
스프링 프레임워크(Spring Framework) 웹 개발에 필요한 다양한 기능을 제공해 주는 자바 기반의 프레임워크이다. 여기서 핵심은 바로 자바 언어를 기반으로 만들어졌다는 것인데 자바 언어는 객체지향 언어이므로 스프링 프레임워크는 결국 객체지향 언어가 가진 강력한 특징을 살려주는 프레임워크인 것이다. 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크이다. 그렇다면 프레임워크와 라이브러리의 차이가 뭘까? 프레임워크와 라이브러리의 차이 - 프레임워크(Framework) 프레임워크는 하나의 소프트웨어로 프로그램을 개발하기 위해 필요한 것을 생성 및 관리해 주고 전체적인 구조나 뼈대 혹은 틀을 제공함으로써 프로그램 개발을 보다 간편하게 할 수 있도록 도와준다. - 라이브러리(Library)..
Hosae905
'스프링' 카테고리의 글 목록