BACKEND

스프링은 어떻게 이런 다양한 설정 형식을 지원하는 것일까? 그 중심에는 'BeanDefinition'이라는 추상화가 있다. 쉽게 이야기해서 '역할과 구현을 개념적으로 나눈 것'이다 XML을 읽어서 BeanDefinition을 만들면 된다. 자바 코드를 읽어서 BeanDefinition을 만들면 된다. 스프링 컨테이너는 자바 코드인지, XML인지 몰라도 된다. 오직 BeanDefinition만 알면 된다. 'BeanDefinition'을 빈 설정 메타정보라 한다. '@Bean', ''당 각각 하나씩 메타 정보가 생성된다. 스프링 컨테이너는 이 메타정보를 기반으로 스프링 빈을 생성한다. "코드 레벨로 조금 더 깊이 있게 들어가보자." 'AnnotationConfigApplicationContext'는 'An..
그냥 쿠키를 활용하는 방식이 아니라 세션을 통해서 로그인 가능하도록 만들어 보겠습니다. 이전과 가장 큰 차이점은 보안!! 입니다. 1. 세션 Session - Cookie, 보안에 취약한 너는 버린다 => Session 세션과 쿠키의 가장 큰 차이점은 아무래도 '보안' 에 집중된다. 쿠키는 기본적으로 위, 변조가 가능하기 때문에 잘못했을 경우 해커에게 쿠키값이 털려서 회원정보, admin 으로 로그인이라도하는 날에는 DB까지 전부 털리는 경우가 있기 때문이다. Session은 서버 - 클라이언트간 통신 시 쿠키의 취약점을 많이 줄 일 수 있다. 그렇다면 세션은 어떻게 동작할까? 아래 그림을 살펴보자 회원이 로그인 페이지에서 로그인을 시도한다. 로그인 정보가 POST 방식으로 서버에 전달된다. 서버는 전달..
로그인 기능을 사용하는 가장 기본적인 방법은 쿠키와 세션 2가지의 방법이 있습니다. 먼저 쿠키를 활용하여 로그인 하는 방법에 대해서 알아보고, 쿠키를 활용한 로그인 방식의 취약점도 알아보겠습니다. 1. 쿠키 Cookie - 서버가 '나' 를 기억해서 로그인하려면? 기본적으로 HTTP 는 무상태(Stateless) 프로토콜이다. 이때 클라이언트와 서버가 요청과 응답을 주고 받으면 연결이 끊어지며 클라이언트가 다시 요청하면 서버는 이전 요청을 기억하지 못하고, 서로 상태를 유지하지도 않는다. 그렇다면 기본적인 http 만을 사용해서 서버가 'parkpeom' 라는 클라이언트를 알고 응답할 수 있도록 하는 방법은 무엇일까? 바로 GET 방식으로 모든 요청과 링크에 사용자 정보를 포함해서 주는 것이다. 만약 쿠..
글 그림은 참고 스프링 부트 3 백엔드 개발자 되기 - 자바 편 를 참고하여 정리하였습니다. 이번 글에서는 스프링의 중요한 콘셉트인 IoC(제어의 역전), DI(의존성 주입), AOP(관점 지향 프로그래밍), PSA(이식 가능한 서비스 추상화)에 대해 알아보겠습니다. 이 글을 읽게 됨으로써 얻을 수 있는 지식은 아래와 같습니다. - IoC(제어의 역전)이 무엇인지 - DI(의존성 주입)이 무엇인지 - 스프링 컨테이너와 빈이 무엇인지 - AOP(관점 지향 프로그래밍)이 무엇인지 - PSA(이식 가능한 서비스 추상화)이 무엇인지 위 네 개념을 쉽게 이해하고 싶어하시는 분들에게 도움이 되고자 스프링 부트 3 백엔드 개발자 되기 - 자바 편의 일부 내용을 공개하기로 했습니다. 이 내용은 책의 2.2장을 거의 그..
Bean Validation 도메인 로직에서 값을 검증할 수 있게 도와주는 인터페이스이다. (참고:Java와 Spring의 Validaiton) 주요 어노테이션들은 아래와 같다. /** * 직접 검증을 하고 싶을 때 사용 */ @AssertTrue @AssertFalse /** * 문자열을 다룰 때 사용 */ @NotNull // null 불가능 @NotEmpty // null, 빈 문자열(스페이스 포함X) 불가 @NotBlank // null, 빈 문자열, 스페이스만 포함한 문자열 불가 @Size(min=?, max=?) // 최소 길이, 최대 길이 제한 @Null // null만 가능 ​ /** * 숫자를 다룰 때 사용 */ @Positive // 양수만 허용 @PositiveOrZero // 양수와..
스프링부트로 게시판 , 프로젝트를 해왔지만 이번에는 스프링 레거시로 게시판을 만들었습니다. 현재 까지 진행상황 입니다. JDK 1.8 , STS3 , 톰켓 , DBeaver 사용 기술 스텍 스프링 스프링 시큐리티 오라클 + MyBatis 연동 부트스트랩 제이쿼리 Ajax 기능 게시판 목록 기능 구현 , 게시글 수정 , 삭제 , 작성 게시글 조회수 게시판 페이징 게시판 검색 기능 게시판 댓글 목록 구현 부트스트랩 적용 회원가입 , 로그인 기능 구현 회원정보 수정 탈퇴 기능 구현 회원탈퇴 시 비밀번호 체크 회원가입 아이디 중복 체크 암호화 기능 추가 ( 회원가입 시 비밀번호를 암호화 해서 DB에 저장 ) 첨부파일 업로드 , 다운로드 게시판 조회수 기능 , 트랜잭션 설정 이글을 쓰면서 만들고 있는 기능 로그인..
꾸준히개발하자
'BACKEND' 카테고리의 글 목록