전체 글 63

로그인 기능_Spring Security 기본편(12)

로그인 기능_Spring Security 기본편(11)에서 배운 것 InMemory방식 프로젝트SecurityConfig 파일 내부에 UserDetailsService 클래스를 이용하여 Bean을 등록하여 회원을 생성토이 프로젝트 또는 시큐리티 로그인 환경은 필요하지만 소수의 회원 정보만 가지며 데이터베이스라는 자원을 투자하기 힘든 경우 회원가입 없는 InMemory 방식으로 유저 저장스프링 시큐리티로 구현 할 수 있는 로그인 방식  formLogin 인증 방식form 로그인 방식은 사용자 정의 HTML 로그인 페이지를 만들어, 그 안에 form 태그를 작성한 뒤, 사용자로부터 입력받은 아이디와 비밀번호를 서버로 전송하여 인증을 처리하는 방식 구현 방법1. HTML 생성 및 form 태그 작성로그인 폼을..

신입 개발자 기술 면접 대비(2)_객체 지향 프로그래밍(OOP) 개념 및 원칙

객체 지향프로그래밍(OOP) 개념 및 원칙1. 객체 지향 개념 및 특징 관련 질문 Q1. 객체 지향 프로그래밍(OOP)에 대해 설명해주세요. ANSWER객체 지향 프로그래밍(OOP)은 객체를 중심으로 프로그램을 설계하고 구성하는 방식입니다. 데이터와 동작을 캡슐화한 객체를 정의하고, 객체 간의 상호작용을 통해 시스템을 구성하며, 복잡한 문제를 더 쉽게 모델링할 수 있습니다. 객체 지향은 재사용성, 유지보수성, 확장성을 높이는 데 도움을 줍니다.객체 지향 프로그래밍 핵심 개념 정리 정의: 데이터를 포함한 객체를 중심으로 프로그램을 구성하는 프로그래밍 패러다임주요 특징: 코드의 재사용성, 유지 보수성, 확장성 증가주요 개념: 캡슐화, 상속, 다형성, 추상화Q2. 객체 지향 프로그래밍(OOP)의 4가지 특징을..

신입 개발자 기술 면접 대비(1)_Java의 기초

신입 개발자 기술 면접 대비(1)_Java의 기초 Q1. Java의 특징을 설명해주세요 Answer.Java는 객체 지향 프로그래밍 언어로, 기본 자료형을 제외한 모든 요소가 객체로 표현됩니다. 또한, 캡슐화, 상속, 다형성 등 객체 지향 프로그래밍의 주요 개념이 잘 적용된 언어입니다.자바는 JVM(자바 가상 머신) 위에서 동작하여 플랫폼에 관계없이 실행될 수 있는 플랫폼 독립성을 가지며, "Write Once, Run Anywhere"를 실현합니다. 또한, 가비지 컬렉터(Garbage Collector)를 통한 자동 메모리 관리와 멀티스레딩 지원으로 여러 작업을 동시에 수행하는 애플리케이션을 효율적으로 개발할 수 있습니다.보안성 측면에서도 자바는 클래스 로더와 바이트코드 검증을 통해 안전한 실행 환경을..

로그인 기능_Spring Security 기본편(11)

로그인 기능_Spring Security 기본편(10)에서 배운 것CSRF 보호 설정시 GET 방식 로그아웃 설정 방법Spring Security에서는 기본적으로 CSRF 보호 설정이 활성화 된 경우 POST 방식 로그아웃을 권장요구에 따라 GET 방식 로그아웃 1. Security Config 클래스 로그아웃설정http.logout()메서드를 사용하여 로그아웃 URL 과 성공후 이동할 URL 설정http.logout((auth)->auth.logoutUrl("/logout").logoutSuccessUrl("/")); 2. GET방식 로그아웃 처리를 위한 LogoutController 생성SecurityContextLogoutHandler 를 통해 수동으로 로그아웃 처리InMemory 방식 유저 정보 ..

로그인 기능_Spring Security 기본편 (10)

로그인 기능_Spring Security 기본편(9) 에서 배운 것 CSRF의 개념과 배포환경에서의 CSRF 보호 설정- POST,PUT,DELETE 요청에 대해 CSRF 토큰 검증이 필요- Spring Security 사용 시 별도의 설정 없을 시 CSRF 보호 활성화- form 태그를 이용한 POST 요청 시 폼 태그 내부에 CSRF 토큰 추가 -XMLHttpRequest 이용시 구획에 메타 태그를 추가하여 CSRF 정보를 제공하며 해당 정보를 헤더에 포함 시켜 요청과 응답 CSRF 보호 설정시 GET 방식 로그아웃 설정 방법Spring Security에서는 기본적으로 CSRF 보호 설정이 활성화된 경우 POST 방식 로그아웃을 권장하지만, 프로젝트 요구에 따라 GET 방식 로그아웃이 필요한 경우 ..

로그인 기능_Spring Security 기본편 (9)

로그인 기능_Spring Security 기본편(8)에서 배운 것 세션 관련 설정세션 소멸 시간 설정:application.properties 파일에 설정:server.servlet.session.timeout=[원하는 초]분 단위 설정: server.servlet.session.timeout=[숫자]m다중 로그인 설정:sessionManagement() 메서드를 이용하여 설정 가능.maximumSessions(int) 메서드로 다중 로그인 허용 개수 설정.다중 로그인 허용 개수 초과 시 maxSessionPreventsLogin(boolean) 설정:true: 새로운 로그인 차단false: 기존 세션 중 하나 삭제세션 고정 공격 보호 설정:로그인 시 세션 정보 변경 방법 설정:sessionFixatio..

로그인 기능_Spring Security 기본편 (8)

Spring Security 기본편(7)에서 배운 것 SecurityContextHolder를 통해 인증된 세션 정보 (예: 사용자 ID, 권한 등) 를 가져와 Model에 담아 템플릿으로 전달세션  관련 설정사용자가 로그인을 진행한 뒤 사용자 정보는 SecurityContextHolder에 의해서 서버 세션에 관리됨이때 세션에 관해 세션의 소멸 시간, 아이디당 세션 생성 개수 를 설정하는 방법 세션 소멸 시간 설정세션 타임 아웃 설정을 통해 로그인 이후 세션이 유지되고 소멸하는 시간을 설정할 수 있음세션 소멸 시점은 사용자의 마지막 요청 이후 설정한 시간 만큼 유지됨(기본 시간 1800초)세션이 만료되면 사용자는 자동으로 로그아웃되며, 재인증을 요구함.application.properties//초 기반..

로그인 기능_Spring Security 기본편 (7)

Spring Security 기본편 (6) 에서 배운 것DB 기반 로그인 검증 로직 구현UserDetailService와 UserDetails 커스텀:Spring Security의 기본 인터페이스인 UserDetailService와 UserDetails를 데이터베이스 스키마에 맞게 커스텀하여 로그인 검증 로직을 구현.데이터베이스에서 사용자 정보와 권한을 조회하여 인증 처리.비밀번호 암호화:BCryptPasswordEncoder를 @Bean으로 등록하여 사용자의 비밀번호를 암호화하고, 로그인 시 암호화된 비밀번호를 비교하는 방식으로 검증권한 부여:로그인한 사용자의 권한에 따른 접근 제어:데이터베이스에서 사용자의 권한 정보를 가져와 필요한 페이지와 리소스에 대한 접근 권한을 부여.SecurityConfig에..

로그인 기능_Spring Security 기본편 (6)

Spring Security 기본편 (5) 에서 배운 것회원 중복 검증 및 처리 로직사용자가 아이디 중복 확인 요청을 보내면, 컨트롤러, 서비스, DAO, 매퍼 인터페이스 및 XML 파일을 통해 DB에서 중복 여부를 확인한 후 그 결과를 프론트엔드로 JSON 형식으로 응답 DB 기반 로그인 검증 로직POST 요청 시 처리 과정은 사용자가 아이디와 비밀번호를 POST 요청으로 제출할 때, 스프링 시큐리티가 해당 정보를 데이터베이스에서 조회하고 비밀번호 검증 후 세션 저장소에 세션을 저장. loginPage.jsp Login 사용자는 loginPage.jsp에서 아이디 비밀번호 입력 후 로그인 버튼을 눌러 로그인 요청을 보냄이 요청은 /loginProc ..

로그인 기능_Spring Security 기본편 (5)

Spring Security 기본편 (4) 에서 배운 것회원가입 기능 구현 및 보안 설정회원가입 폼을 만들고, 사용자 정보 저장을 위한 DB 설정, DTO 생성, Controller-Service-DAO-Mapper 구조 구현,그리고 회원가입 관련 경로에 대한 Spring Security 보안 설정을 완료 ERR_TOO_MANY_REDIRECTS 오류 해결Spring Boot에서 다른 템플릿 엔진이나 프레임워크를 사용할 때, 리소스 파일들의 접근 권한을 적절히 설정하여 이 문제를 해결할 수 있음JSP 파일이 담기는 /WEB-INF 폴더에 대한 접근을 허용하기 위해 "/WEB-INF/**"를 permitAll()로 설정회원 중복 검증 및 처리 로직회원가입 시 아이디 중복을 방지하기 위해 프론트엔드와 백엔드..