본문 바로가기

Back end13

[Servlet] 서블릿(Servlet)이란? 목차 서블릿(Servlet)이란 무엇인가? 🌐 안녕하세요, 웹 개발에 관심이 있는 분들이라면 한 번쯤 들어봤을 ‘서블릿(Servlet)’에 대해서 알아보려고 합니다. 서블릿은 자바를 사용하여 웹 서버의 기능을 확장하는 클래스로, 서버 측에서 실행되며 클라이언트의 요청을 처리하고 응답을 보내는 역할을 합니다. 1. 🚀 서블릿의 기본 개념 서블릿은 자바 언어로 작성되며, HTML, XML 등을 사용해 클라이언트에게 데이터를 전달합니다. 자바의 강력한 기능과 객체 지향적 특성을 활용하여, 웹 서버의 성능을 향상시키고 웹 애플리케이션을 효과적으로 개발할 수 있습니다. 2. 🛠 서블릿의 작동 원리 클라이언트의 요청: 클라이언트는 웹 브라우저를 통해 HTTP 요청을 보냅니다. 서블릿 컨테이너의 처리: 요청이 서버로.. 2023. 10. 31.
[Spring] 회원가입, 로그인, 요청 인증(JWT 토큰) 목차 1. 기본 설정 ■ Securityconfig a. 보안 설정 WebSecurityConfigurerAdapter를 상속 받아서 사용자 정의 보안 구성을 작성 ➡ 보안 설정을 하는 것 @EnalbeWebSecurity 어노테이션을 사용해서 Spring Security를 활성화 @Configuration 어노테이션을 적용하여 모든 요청을 거칠 때 해당 클래스를 거치게 됨 BCrypt를 통해 암호화 한 것을 해석할 수 있는 passwordEncoder() 메소드를 @Bean 어노테이션을 붙여서 IOC에 등록 BCryptPasswordEncoder는 라이브러리에 등록되어 있어 @Component를 적용할 수 없기 때문에 config에서 적용 configure 메소드는 HTTP 요청에 대한 보안 구성을 정.. 2023. 8. 17.
[Spring] Security,JWT 목차 1. Security ■ Security란? Spring Security는 Spring 기반의 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크입니다. Security는 인증과 권한에 대한 부분을 필터의 흐름에 따라 처리하고 있습니다. 필터는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받습니다. Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서 보안관련 로직을 작성하지 않아도 됩니다. Security는 기본적으로 인증 절차를 거친 후에 인가 절차를 진행하게 되며, 인가 과정에서 해당 리소스에 대한 접근 권한이 있는지 확인을 합니다. 인증 절차는 해당 사용자가 본인이 맞는지를 확인하는 것이며, 인가 절차는 인증된 사.. 2023. 8. 11.
[Spring] Validation 목차 1. Validation ■ Validation이란? Validation은 올바르지 않은 데이터를 걸러내고 보안을 유지하기 위해 여러 계층에 걸쳐서 적용되는 것을 말합니다. Client의 요청 데이터가 모두 정상적인 방식으로 들어오는 것도 아니기 때문에 데이터의 유효성 검사를 해야 할 필요가 있습니다. ■ 설치 MVN에서 Validation을 버전에 상관없이 dependency에 작성 후 버전을 지우고 설치 2. Validation Exception 처리 @Valid를 사용하지 않고 직접 Exception을 만들어 조건을 주어 예외 처리를 진행하도록 하는 방법입니다. ■ 예시 a. CustomException 메세지를 매개변수로 가지는 생성자 메세지와 각 error들의 정보를 가질 수 있는 erro.. 2023. 8. 11.
[Spring] AOP(Aspect Oriented Programming) 목차 1. AOP(Aspect Oriented Programming) ■ AOP란? AOP는 관점 지향 프로그래밍으로 불립니다. 관점 지향은 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하는 것이며 모듈화는 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말합니다.예를 들어 소스 코드상에서 계속 반복해서 쓰는 코드들을 발견할 수 있는데 이것을 흩어진 관심사(Crosscutting Concerns)라고 부릅니다. 이러한 흩어진 관심사를 Aspect로 모듈화하고 핵심적인 비즈니스 로직에서 분리하여 재사용하겠다는 것이 AOP의 취지입니다. ■ Spring AOP 특징 접근 제어 및 부가기능을 추가하기 위해서 Proxy 패턴 기반의 AOP 구현체, Prox.. 2023. 7. 25.
[Spring] 데이터베이스 연결(MyBatis) 목차 1. MyBatis ■ MyBatis란? MyBatis는 객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임워크로서 JDBC를 통해 데이터베이스에 연결하는 작업을 캡슐화하고 SQL 쿼리와 자바 오브젝트간에 자동 매핑을 지원합니다. MyBatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있습니다. ■ MyBatis 설치 MVN REPOSITORY에서 MyBatis 버전 2.2.2를 pom.xml에 추가 resources 폴더 내에 mappers라는 폴더를 만들어 내부에 xml파일로 매핑 ■ MyBatipse 설치 MyBatipse는 Mapper내의 xml파일에서 namespace 내 변수의 패키.. 2023. 7. 25.