전체 글
-
[Spring Boot] 스프링 부트에서 비밀번호 암호화하기Server/Spring REST API 2020. 8. 27. 17:59
이번 글에서는 비밀번호 암호화 개념에 대해 정리하고 스프링부트를 이용해서 비밀번호 암호화를 하여 DB에 저장하는 방법에 대해 정리해보려 한다. 단방향 해시 함수 보통 비밀번호를 저장하는 방법은 2가지 정도가 있다. 단순 텍스트(plain text) 단방향 해시 함수(one-way hash function)의 다이제스트(digest) 단순텍스트로 패스워드를 저장하는 것은 범죄를 저지르는 것이나 다름없다. DB가 해킹당하는 순간, 비밀번호를 그대로 해커들에게 넘겨주게 되기 때문이다. 그러면 DB를 해킹당하지 않으면 되지 않나? 라고 할 수 있다. 물론 애초에 DB를 해킹당하지 않도록 보안에 신경써야 겠지만 해야겠지만, 다양한 변수의 상황들이 존재하기 때문에 언제든 해킹 당할 가능성이 존재한다. 따라서 해시함..
-
[Spring] 스프링 웹 계층이란?Server/Spring MVC 2020. 8. 26. 10:44
이번 글에서는 스프링은 어떤 계층이 존재하는지와 계층의 역할을 무엇인지, 프로젝트시 패키지를 어떻게 나누는 것이 좋은지에 대해 정리해보려 한다. 스프링의 계층은 Presentation Layer, Business, Layer, Data Access Layer 크게 3개로 나눌 수 있다. 프레젠테이션 계층 - 브라우저상의 웹 클라이언트의 요청 및 응답을 처리 - 서비스계층, 데이터 엑세스 계층에서 발생하는 Exception을 처리 - @Controller 어노테이션을 사용하여 작성된 Controller 클래스가 이 계층에 속함 서비스 계층 - 애플리케이션 비즈니스 로직 처리와 비즈니스와 관련된 도메인 모델의 적합성 검증 - 트랜잭션 관리 - 프레젠테이션 계층과 데이터 엑세스 계층 사이를 연결하는 역할로서 ..
-
[Java] 빌더 패턴(Builder Pattern)Language/Java 2020. 8. 26. 01:47
1. 빌더 패턴(Builder pattern) Builder 패턴은 인스턴스를 생성할 때 생성자(Constructor)만을 통해서 생성하는데는 어려움이 있어서 고안된 패턴이다. 클래스에 생성자 인자가 많다면 Builder 패턴을 사용하면 좋다. 왜냐하면 생성자 인자가 너무 많다면 어떠한 인자가 어떠한 값을 나타내는지 알기 어렵기 때문이다. 코드를 보면서 이해해보자. public class User { private int userIdx; // 선택 private String name; // 필수 private String part; // 필수 private int age; // 선택 private String email; // 선택 } 위와 같은 User 클래스에서 필수적으로 받아야 하는 정보, 선택적으..
-
[Java] 내부(inner) 클래스와 내부(inner) static 클래스의 차이Language/Java 2020. 8. 25. 16:58
이번 글에서는 클래스 안에 클래스가 존재하는 경우에 대해서 정리해보려 한다. public class Test { class InnerClass { // InnerClass } static class InnerStaticClass { // static InnerClass } } 내부 클래스(Inner Class)란 위와 같이 클래스 안에 클래스가 존재하는 형태이다. 그러면 내부 클래스에서 static이 붙은 것과 붙지 않은 것의 차이점은 어떤 것일까? 라고 생각했을 때 나는 static이 붙었기 때문에 static 변수, static 메소드처럼 공유해서 사용하는 클래스인가? 라고 생각을 하였다. 하지만 나의 생각은 누구나 한번 쯤 할만한 잘못된 생각이었다. 이유가 무엇인지 알아보자. 1. 내부 클래스 pu..