[Spring Security] SessionManagement
·
1.프로그래밍/Java
Spring Security SessionManagement 생성된 계정으로 서버로부터 인증을 받게 되면 서버에 하나의 세션이 생성한다. 다른 브라우저, 또는 다른 PC에서 같은 계정으로 로그인을 할 경우 이전에 서버에 만들어진 세션을 같이 공유하는 것이 아닌 새로운 세션을 생성하여 사용하게 된다. 동시 세션 관리 @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .sessionManagement() .maximumSessions(1) .maxSessionsPreventsLogin(true) .expiredUrl("/expiredUrl") return http.build(); } ma..
[JWT] JWT 토큰이란? 토큰 기반 인증 방식
·
1.프로그래밍/개발
Cookie 인증 방식 쿠키는 Key-Value 형식의 문자열 덩어리이다. 클라이언트가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 클라이언트의 브라우저에 설치되는 작은 기록 정보 파일이다. 각 사용자마다의 브라우저에 정보를 저장하니 고유 정보 식별이 가능한 것이다. Cookie 방식의 단점 가장 큰 단점은 보안에 취약하다. 요청 시 쿠키의 값을 그대로 보내기 때문에 유출 및 조작 당할 위험이 존재한다. 쿠키에는 용량 제한이 있어 많은 정보를 담을 수 없다. 웹 브라우저마다 쿠키에 대한 지원 형태가 다르기 때문에 브라우저간 공유가 불가능하다. 쿠키의 사이즈가 커질수록 네트워크에 부하가 심해진다. Session 인증 방식 쿠키의 보안적인 이슈 때문에 클라이언트의 민감한 인증 정보..
[Architecture] 모놀리식 아키텍처와 마이크로서비스 아키텍처란?
·
1.프로그래밍/개발
모놀리식 아키텍처 장점 하나의 WAS(Web Application Server)에서 모든 기능을 처리하도록 구성한다. 간단한 구조 덕분에 시스템 운영과 개발이 편리한 장점이 있다, 네트워크로 인한 지연이나 데이터 유실을 걱정할 필요가 없다. 시스템 장애나 기능에 버그가 있다면 개발자는 하나의 애플리케이션에서 원인을 파악하면 된다. 여러 클래스에서 발생하는 로그를 하나의 파일에 기록할 수 있기 때문에 쉽게 원인을 파악할 수 있다. 데이터 저장소가 하나이므로 RDB의 트랜잭션 기능을 쉽게 사용 할 수 있다. 모놀리식 아키텍처 단점 하나의 애플리케이션 서버에서 여러 기능을 제공하므로 서비스 기능이 많아지면 더욱 복잡해질 수 있다, 성질이 다른 두 코드가 하나의 파일에 존재하기도 한다. 서버 기능과 크라이언트 ..
[CI/CD] CI/CD란?
·
1.프로그래밍/개발
CI(Continuous Integration)/CD(Continuous Deploy)란? 쉽게 요약하면, 배포를 자동화하는 것이 가장 큰 목적. CI(Continuous Integration) CI는 지속적인 통합을 의미한다. 즉, 개발자가 개발한 소스 코드들은 지속적으로 코드베이스에 통합되어야 하며, 이때 자동으로 빌드 및 테스트가 진행되어야 한다. 예를 들어, 개발자가 기능을 개발하면, 그 코드들은 기존 코드와 병합(merge)된다. 병합될 때 컴파일이나 배포 빌드 과정이 정상적으로 실행되는지 확인해야 한다. 개발된 코드가 기존 코드에 부작용(side effect)이 없는지 확인하기 위해서는 테스트 과정이 필요하다. 이런 배포 빌드 테스트 과정을 지속적이고 자동으로 계속할 수 있도록 구축된 시스템이..
[Spring] Spring 비밀번호 암호화 SHA-256 ~ BCryptPasswordEncoder(MessageDigest, SHA-256, BCryptPasswordEncoder)
·
1.프로그래밍/Java
[Spring] Spring 비밀번호 암호화 SHA-256 ~ BCryptPasswordEncoder(MessageDigest, SHA-256, BCryptPasswordEncoder) 개인의 비밀번호는 매우중요하다. 사람의 습관은 쉽게 잊혀지지 않고, 항상 익숙한 패턴을 생활한다. 즉, 비밀번호도 개인마다 정형화 되어 있다는 뜻이다. 만약, 내가 개발한 서비스에서 비밀번호를 암호화 하지않고 DB에 저장하였다가, DB가 털리게 된다면? 다른 몇몇 사이트 사이트에서 그 비밀번호로 해당 유저를 이용하여 해킹에 위험에 노출되게 된다. 그래서 비밀번호 암호화는 항상 중요하다. 인증(Authentication) 과 해시(Hash) 인증 (authentication) 자신이 누구라고 주장하는 주체(principal..
[Spring] JPA 사용시 Entity Class Setter 메서드에 대한 고찰
·
1.프로그래밍/Java
[Spring] JPA 사용시 Entity Class 에 대한 고찰(Setter, Wapper Class) https://myeongdev.tistory.com/16 예전에 공부하면서 Entity클래스에 대해서 생각해보고 글을 남긴적이 있다. 하지만, 예전에는 지식과 경험이 부족하여 매우 단순한 지식만 탐구하고 넘어가고 글을 써놓았다. 지금에 와서 다시 배우고 학습하며, 궁금증이 들어 글을 다시 작성하려고 한다. Entity Class란? 실제 DB의 테이블과 매칭되는 클래스이다. 즉, DB의 테이블과 가장 유사하다고 볼 수 있다. 참고문서 hibernate reference docs 그렇다면 Entity Class 는 Data Access Object 로서, Spring MVC 패턴 중 Persiste..
[MyBatis] org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] MyBatis 에러
·
1.프로그래밍/DB
[MyBatis] org.apache.ibatis.binding.BindingException: Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] MyBatis 에러 [org.apache.ibatis.binding.BindingException:](org.apache.ibatis.binding.bindingexception:) Parameter 'userName' not found. Available parameters are [arg1, arg0, param1, param2] 갑자기 잘 쓰던 문법에서 에러가 나타났다. ** BoardMapper.interface ** in..
[Spring] Spring MockMvc 정리 (REST API 테스트, Multipart/form-data 테스트)
·
1.프로그래밍/Java
[Spring] Spring MockMvc 정리 (REST API 테스트, Multipart/form-data 테스트, 예외처리) MockMvc란? 실제 객체와 비슷하지만 가짜 객체를 만들어 애플리케이션 서버에 배포하지 않고 Spring MVC 동작을 재현 할 수 있게 해주는 클래스이다. pom.xml org.springframework spring-test test org.junit.jupiter junit-jupiter test org.hamcrest hamcrest-all 1.3 test org.glassfish jakarta.el 3.0.4 org.mockito mockito-core 4.5.1 test org.assertj assertj-core 3.21.0 Controller TestCode ..
MyeongDev
'1.프로그래밍' 카테고리의 글 목록 (3 Page)