2026/06 9

MSA와 Spring Cloud

💡 오늘 학습 키워드MSASpring Cloud 🎯 학습 내용 정리1. MSA최근 대부분의 대규모 서비스는 MSA를 기반으로 개발되고 있다. Netflix, Amazon, Uber와 같은 글로벌 서비스뿐만 아니라 국내 다양한 IT 기업들도 MSA를 도입하여 서비스를 운영하고 있다. 하지만 MSA를 처음 접하면 "서비스를 여러 개로 나누는 것" 정도로만 이해하는 경우가 많다. 실제로 MSA는 단순히 프로젝트를 분리하는 것이 아니라 서비스의 개발 방식, 배포 방식, 운영 방식까지 모두 바꾸는 아키텍처이다. MSA는 Microservices Architecture의 약자로 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발하고 운영하는 소프트웨어 아키텍처 스타일이다.각 서비스는 하나의 비..

MSA 요약

💡 오늘 학습 키워드MSASpring Cloud 🎯 학습 내용 정리최근 많은 서비스가 MSA를 기반으로 개발되고 있다. 과거에는 하나의 애플리케이션에서 모든 기능을 처리하는 모놀리틱 구조가 일반적이었지만, 서비스 규모가 커지고 트래픽이 증가하면서 확장성과 유지보수 측면에서 한계가 나타났다. 이러한 문제를 해결하기 위해 등장한 것이 MSA이며, Spring Cloud는 이러한 마이크로서비스를 쉽게 구축하고 운영할 수 있도록 다양한 기능을 제공한다. 1. MSAMSA는 Microservices Architecture의 약자로 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발하고 운영하는 아키텍처이다. 각 서비스는 하나의 비즈니스 기능만 담당하며 독립적으로 배포되고 확장된다. 서비스 간에..

OAuth

💡 오늘 학습 키워드OAuth(Kakao 연동) 🎯 학습 내용 정리1. OAuth(Kakao 연동)OAuth는 Open Authorization의 약자로 사용자의 비밀번호를 직접 전달하지 않고, 제3자 서비스의 인증을 이용하여 로그인할 수 있도록 해주는 인증 프로토콜이다. 카카오 로그인을 예로 들면 다음과 같은 흐름으로 동작한다.Client ↓Server ↓Kakao Authorization Server ↓Server ↓Client즉,사용자가 카카오 로그인을 요청한다.카카오 로그인 페이지에서 인증을 수행한다.카카오가 인가 코드(Authorization Code)를 서버로 전달한다.서버는 인가 코드로 액세스 토큰을 요청한다.액세스 토큰을 이용해 사용자 정보를 조회한다.회원가입 또는 로그인을 ..

Spring Security + JWT

💡 오늘 학습 키워드Spring Security 설정JWT 설정 🎯 학습 내용 정리1. Spring Security 설정Spring Security를 적용하기 위해선 다음과 같은 의존성 추가가 필요하다.implementation 'org.springframework.boot:spring-boot-starter-security'testImplementation 'org.springframework.boot:spring-boot-starter-security-test' Spring Security를 적용하면 모든 HTTP 요청은 Spring Security의 Filter Chain을 먼저 통과하게 된다. 따라서 어떤 요청을 허용할지, 어떤 요청을 인증할지에 대한 보안 설정이 필요하다. 다음은 Web..

Spring 심화

💡 오늘 학습 키워드단위 테스트통합 테스트AOP예외 처리 🎯 학습 내용 정리1. 단위 테스트소프트웨어는 개발 이후 QA 테스트를 거쳐 실제 운영 환경에 배포된다. 하지만 버그를 늦게 발견할수록 수정 비용은 기하급수적으로 증가한다. 따라서 개발 단계에서 미리 테스트를 작성하면 오류를 빠르게 발견하고 수정 비용을 크게 줄일 수 있다. 단위 테스트는 Unit Test라고도 하며 애플리케이션을 가장 작은 단위로 나누어 각각의 기능이 정상적으로 동작하는지 검증하는 테스트 기법이다. 단위 테스트의 장점은 다음과 같다.문제가 발생한 위치를 빠르게 찾을 수 있다.테스트 실행 속도가 빠르다.리팩토링 이후에도 기존 기능이 정상 동작하는지 검증할 수 있다.코드의 신뢰성을 높일 수 있다. JUnit5는 Java에서 ..

Spring 숙련 - 2

💡 오늘 학습 키워드RestTemplateEntity 연관관계LazyCASCADE 🎯 학습 내용 정리1. RestTemplate지금까지의 웹 애플리케이션 개발은 주로 브라우저(Client)로부터 요청을 받아 처리하는 서버의 입장에서 진행해왔다. 하지만 실제 서비스 개발에서는 외부 서비스와 연동해야 하는 경우가 매우 많다. 예를 들어 회원가입 과정에서 사용자의 주소를 입력받아야 한다고 가정해보자. 주소 검색 기능을 직접 구현하는 것도 가능하지만, 이미 잘 구축된 카카오 주소 검색 API와 같은 외부 서비스를 활용하는 것이 훨씬 효율적이다. 이처럼 서버가 다른 서버에게 요청을 보내고 응답을 받아오는 구조를 Server To Server 통신이라고 한다. 이때 우리 서버는 더 이상 서버의 역할만 수행하..

Spring 숙련 - 1

💡 오늘 학습 키워드인증/인가쿠키/세션JWTFilterSpring SecurityValidation 🎯 학습 내용 정리1. 인증/인가웹 서비스를 이용하다 보면 로그인은 너무나도 익숙한 기능이다. 하지만 로그인 과정에는 단순히 아이디와 비밀번호를 확인하는 것 이상의 개념이 포함되어 있다. 바로 인증과 인가이다.특히 웹 애플리케이션은 HTTP의 특성상 사용자의 로그인 상태를 유지하기 어려운 환경에서 동작하기 때문에 이를 해결하기 위한 다양한 인증 방식이 등장했다. 인증과 인가는 비슷하게 들리지만 서로 다른 역할을 수행한다. 인증(Authentication)은 사용자가 실제로 본인이 맞는지를 확인하는 과정이다.대표적인 예시는 다음과 같다.로그인 시 아이디와 비밀번호 확인스마트폰 지문 인식얼굴 인식OTP..

Spring 입문 - 2

💡 오늘 학습 키워드JDBCIoC/DIJPAPersistence ContextSpringBoot Data JPA 🎯 학습 내용 정리1. JDBC애플리케이션이 데이터베이스와 통신하기 위해서는 여러 단계의 작업이 필요하다.예를 들어 사용자의 정보를 조회한다고 가정해보자.Application ↓Database 연결 ↓SQL 전송 ↓결과 조회 ↓연결 종료구체적으로는 다음과 같은 과정을 거친다.데이터베이스와 연결(Connection)을 생성한다.SQL을 작성한다.SQL을 데이터베이스에 전달한다.실행 결과(ResultSet)를 조회한다.사용이 끝난 리소스를 해제한다. 문제는 데이터베이스마다 구현 방식이 다를 수 있다는 점이다.예를 들어 기존에 사용하던 MySQL을 PostgreSQL로 변경한다고 가정해보자...

Spring 입문 - 1

💡 오늘 학습 키워드Gradle서버HTTP테스트Spring MVCJackson 🎯 학습 내용 정리1. Gradle빌드 자동화 시스템으로 Java 코드를 알맞게 자동으로 Build를 진행한다.※ Build란?소스코드를 실행 가능한 파일로 만드는 일련의 과정 Gradle을 알아야하는 이유는 build.gradle에 있다.일반적으로 Project를 생성할 때 Gradle과 Maven 중 선택을 하게 된다.Maven도 Gradle과 마찬가지로 빌드 자동화 시스템이지만 약간의 차이점이 존재한다.더 자세한 차이점은 이곳에서 확인! 🍃 Maven & Gradle이란?📢 들어가면서 start.spring.io를 사용해서 한번이라도 Project Setting을 해봤다면 Project 부분의 Gradle과 M..