개발 4

[Spring] Web Service의 인증과 Spring Security

Web Service의 인증웹 인증(Web Authentication)이란 웹 애플리케이션에서 사용자의 정체성 즉 이사람이 누구인지를 확인하고 적절한 권한을 부여하는 과정이다. 따라서 웹 인증의 핵심은 사용자가 누구인지 확인하고 해당 사용자가 액세스하려는 웹 리소스나 서비스에 대한 권한이 있는지 확인하는데 사용된다.  웹 인증은 웹 서비스의 보안성을 높이며 사용자의 데이터에 무단으로 접근하는 것을 방지하기 위한 보안 요소이다.관리자만 접근해야하는 메뉴에 아무나 접근하지 못하도록 하는 것도, A라는 유저의 데이터를 B라는 유저가 접근해서 볼 수 없도록 만드는 것도 웹의 인증과 접근 권한에 해당된다.  Spring Security의 인증과 인가인증과 인가인증: 사용자의 신원을 입증하는 과정, 사용자가 사이트..

개발 2024.09.26

[Spring] Spring과 SpringBoot의 핵심 개념 정리: IoC/DI, AOP, PSA

스프링과 스프링 부트스프링 Spring Framework엔터프라이즈 애플리케이션: 대규모의 복잡한 데이터를 관리하는 애플리케이션소프트웨어 분야가 발전하며 엔터프라이즈 애플리케이션은 점점 복잡해졌다. 은행 시스템만 생각해보아도 몇백, 몇천만의 사람들이 동시에 많은 서비스를 이용한다. 잔고 조회를 하고, 입금이나 출금 요청을하거나 새로운 통장을 개설하기도 한다.엔터프라이즈 애플리케이션은 많은 사용자의 요청을 동시에 처리해야 하기 때문에 서버 성능과 안정성, 보안이 매우 중요하다. 그러나 서버성능, 안정성, 보안 등을 시켱쓰면서 비즈니스 로직(사이트의 기능)까지 개발하기는 매우 어렵다. 엔터프라이즈 애플리케이션을 위한 개발환경을 제공해서 기능 개발에만 집중할 수 있도록하는 것이 필요했던 상황에서 Spring ..

개발 2024.09.21

[Docker] 도커와 컨테이너화

Docker란 컨테이너를 사용하여 응용 프로그램을 더 쉽게 만들고, 배포하고 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈소스 가상화 플랫폼이다. Docker는 environment disparity라는 문제점을 해결해준다.일반 컨테이너가 물건을 손쉽게 운송해준 것처럼 어플리케이션 환경에 구애받지 않고 어디에서든 손쉽게 배포 관리를 할 수 있게 해주는 것이 컨테이너의 개념이다. (Containerization 즉 컨테이너화 기술은 도커와 도커 컴포즈에서 가장 중요한 개념이다.)컨테이너 기반 배포 방식은 구글을 비롯해 대부분의 서비스 회사가 채택하고 있다.따라서 AWS, Azure, Google Cloud 등 어디서든 실행 가능하다. 도커를 굳이 왜 사용해야할까?서비스가 되고 있는 어플리케이션은 ..

개발 2024.08.11

[Spring] Thymeleaf(타임리프란?)

Thymeleaf(타임리프)는 템플릿 엔진이다.템플릿 엔진이란 스프링 서버에서 데이터를 받아 우리가 보는 웹페이지, 즉 HTML 상에 그 데이터를 넣어보여주는 도구이다. 웹 애플리케이션에서 동적 HTML 콘텐츠를 생성하는 도구라고 표현할 수 도 있다.이를 사용하기 위해서는 HTML과 함께 템플릿 엔진을 위한 문법을 살짝 섞어 사용해야한다. 템플린 엔진 문법 예시 h1태그와 p태그에 ${이름}과 ${나이}가 text 어트리뷰트로 할당되어 있다. 이렇게 해두면 서버에서 이름, 나이,라는 key로 데이터를 템플릿 엔진에 넘겨주고 템플릿 엔진은 이를 받아 HTML에 값을 적용한다. 예를 들어 서버에서 보내준 데이터 예시가 다음과 같다면{ 이름: "윤동희" 나이: 22} 해당 키 자리에 즉 이름 자리에는 ..

개발 2024.07.16