"꾸준하고 완벽한 한 걸음"

Backend 15

개발자 유미 - 스프링 시큐리티 6. DB 연결

스프링 시큐리티 6 : DB 연결 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 데이터베이스의 필요성로그인한 사용자의 인증을 위해서는 회원 정보를 저장해야한다.이를 위해서는 DB가 필요하며 JPA를 사용해 DB 쿼리문을 쉽게 생성할 수 있다.build.gradle 설정프로젝트에 MySQL 및 JAP 의존성을 추가 후 리프레쉬 후 필요한 파일을 다운받고 활성화를 해주자.dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' runtimeOnly 'com.mysql:mysql-connector-j'}application.properties 설정스프링 서버에서 DB에 ..

개발자 유미 - 스프링 시큐리티 5. BCrypt 암호화 메소드

스프링 시큐리티 5 : BCrypt 암호화 메소드 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 단방향 해시 암호화로그인을 통한 사용자 인증 시 사용자의 비밀번호에 대해 단방향 해시 암호화를 진행해야 한다.이를 통해 비밀번호의 유출로부터 안전해지고, 복호화가 불가능해 보안을 지킬 수 있다.스프링 시큐리티는 비밀번호의 암호화를 위해 BCrypt Passwrod Encoder를 사용하는 것을 권장한다.BCrypt Passwrod Encoder 반환 빈 등록BCrypt Passwrod Encoder를 반환하는 메소드를 만들고, 빈으로 등록하자.package com.example.testsecurity.config;import org.springframework.context...

개발자 유미 - 스프링 시큐리티 4. 커스텀 로그인 설정

스프링 시큐리티 4 : 커스텀 로그인 설정 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 기존의 Config 설정을 다시 확인해보자. @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http .authorizeHttpRequests((auth)->auth .requestMatchers("/", "/login").permitAll() .requestMatchers("/admin").hasRole("ADMIN") ..

개발자 유미 - 스프링 시큐리티 3. Security Config 인가 작업

스프링 시큐리티 3 : Security Config 인가 작업 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 인가특정 경로 요청시 Controller보다 앞서 Filter에서 Spring Security가 다음과 같은 검증을 진행허용된 접근 경로인지(로그인을 통해)인가 된 사용자인지접근에 필요한 권한을 가지는지 검증 SecurityConfing.java 생성/config/SecurityConfing.javapackage com.cos.testsecurity.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;imp..

개발자 유미 - 스프링 시큐리티 2. 프로젝트 생성

스프링 시큐리티 2 : 프로젝트 생성 개발자 유미 | 커뮤니티 개발자 유미 | 커뮤니티 www.devyummi.com 프로젝트 생성필수 의존성Spring WebLombokMustacheSpring SecuritySpring Data JPAMySQL Driverstart.spring.ioMainController.java 생성/controller/MainController.javapackage com.example.testsecurity.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class MainContro..

개발자 유미 - 스프링 시큐리티 1 : 실습 목표 및 간단한 동작 원리

https://www.youtube.com/watch?v=y0PXQgrkb90&list=PLJkjrxxiBSFCKD9TRKDYn7IE96K2u3C3U&index=1  ⛳ 목표Spring Security를 활용한 인증/인가 구현MySQL을 활용한 회원 정보 저장(영속성)구현 기능인증 : 로그인 기능 구현인가 : 경로별 접근 권한 설정회원가입 : 회원 정보 저장 시큐리티 동작 원리Client의 요청 발생Servlet Container가 요청을 받고 여러 개의 Filter를 거쳐 컨트롤러에 도달Spring Security를 활성화하면 Filter에서 요청을 가로챔Filter에서 인증 인가 확인 후 최종적으로 접근 허용 실습 버전Spring Boot 3.1.5Security 6.1.5Spring Data JPA..

[Spring] 스프링부트 @Schedule 시간대 문제 해결

서버 환경에 따라 스프링 스케줄러가 설정된 시간에 동작하지 않는 경우가 발생할 수 있습니다. 특히, 애플리케이션의 시간대 설정과 배포 서버의 시간대가 일치하지 않을 때, 스케줄러가 의도한 시간에 실행되지 않을 수 있습니다. 이 글에서는 스프링 스케줄러가 배포 서버에서 한국 시간에 맞춰 정확하게 동작하도록 설정하는 방법을 다룹니다.문제 상황스프링 애플리케이션에서 아래와 같이 매주 수요일 오후 4시에 작업을 스케줄링했다고 가정해봅시다.@Scheduled(cron = "0 0 16 ? * WED")public void run() { // 작업 내용} 이 코드는 애플리케이션이 실행 중인 서버의 호스트 시간대를 기준으로 스케줄링됩니다. 즉, 로컬 환경에서 애플리케이션을 실행하면 로컬 시간대에 맞춰 작동하고,..

Backend 2024.11.10

[짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크] 연습문제 5장 정답

연습문제1. 다음 중 서블릿의 생명 주기 메서드에 해당하지 않는 것을 고르시오.(3) close()  2. 서블릿 클래스 구조에서 사용자 요청에 따라 service() 메서드를 통해 호출되는 대표적인 메서드 2개는 무엇인가?(3) doGet(), doPost()  3. 다음 빈칸에 들어갈 단어를 고르시오.서블릿에서 페이지 이동 시 데이터를 포함하는 경우에는 ( ) 방식을 사용하며, 데이터를 포함하지 않는 경우에는 ( ) 방식을 사용한다. (3) 포워딩, 리디렉션  4. 서블릿에서 사용자 요청을 처리하는 메서드에 인자로 전달되는 HttpServletRequest 객체에 대한 설명으로 틀린 것을 고르시오.(2) 주요 메서드로 getWriter(), sendRedirect(String location) 등이 ..

Backend 2024.07.07

[짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크] 연습문제 6장 정답

연습문제1. JSP의 주요 특징으로 틀린 것은 무엇인가?(3) 커스텀 태그 기술을 사용할 수 없기 때문에 코드를 태그화할 수 없다.  2. JSP의 주요 구성요소가 아닌 것은 무엇인가?(3) 스프링 프레임워크  3. SSR방식의 백엔드 웹 개발 관점에서 JSP의 단점이 아닌 것은 무엇인가?(4) 모든 개발이 서버에서 이루어지므로 개발의 집중화를 통한 효율이 있을 수 있다.→ 단점으로는 적합하지 않음  4. 다음은 page 지시어의 사용 형식을 나타낸 구문이다. 빈칸에 들어갈 내용을 채우시오.(1) language(2) contentType(3) import(4) errorPage  05. 다음 지문을 읽고 JSP의 스크립트 요소 중 어떤 유형을 설명한 것인지 고르시오.(2)

Backend 2024.07.07

[짧고 굵게 배우는 JSP 웹 프로그래밍과 스프링 프레임워크] 연습문제 1장 정답

연습문제01. 월드 와이드 웹에서 클라이언트와 서버 간의 통신을 위해 사용하는 프로토콜과 콘텐츠 제작을 위해 사용하는 마크업 언어는 각각 무엇인가?1) HTTP, HTML웹은 HTTP 프로토콜을 사용하며 HTML로 작성된 문서를 연결하여 다양한 콘텐츠를 제공한다. p.25  02. TCP/IP 4계층 구조에 해당하지 않는 계층은 무엇인가?2) 변환 계층TCP/IP는 4계층(응용, 전송, 인터넷, 물리)으로 이루어져 있다. p.27  03 네트워크 시스템이 계층 구조로 이루어져 있는 이유로 틀린 것은 무엇인가?1) 네트워크 사용을 위해 전체 구조에 대한 이해 없이 각각의 계층은 하위 계층에 대해서만 이해하면 된다.계층화를 통해 상위 레벨에서는 하위 레벨에서 구현한 내용을 모르더라도 표준화된 인터페이스를 통..

Backend 2024.07.07