BCriptPasswordEncoder BCriptPasswordEncoder는 스프링 시큐리티에서 제공하는 비밀번호 인코더 중 하나입니다. 이 인코더는 BCrypt 해시 알고리즘을 사용하여 입력된 비밀번호를 암호화합니다. BCrypt 해시 알고리즘은 안전한 비밀번호 저장을 위해 널리 사용되는 알고리즘 중 하나입니다. 이 알고리즘은 해시 함수에 솔팅(salting) 기법을 적용하여 비밀번호의 보안성을 높입니다. 솔트(salt)란, 암호화된 비밀번호를 해독할 때 사용되는 사전에 약속된 문자열입니다. 솔팅(salting)은 이러한 솔트를 이용하여 비밀번호를 더욱 안전하게 보호하는 기법입니다. 솔트는 일반적으로 해시 함수에 추가되어 비밀번호를 암호화합니다. 이를 통해 같은 비밀번호를 가진 두 사용자가 서로 다..
분류 전체보기
https://hyunsb.notion.site/REST-API-b8c70e37db02407eb70b45c628952a22 REST API REST(Representational State Transfer): 웹의 장점을 최대한 활용할 수 있는 아키텍처(Architecture) hyunsb.notion.site REST API REST(Representational State Transfer): 웹의 장점을 최대한 활용할 수 있는 아키텍처(Architecture) REST의 구성 자원(resource) - URI 행위(verb) - HTTP METHOD 표현(Representations) ✅ REST의 특징 Uniform (유니폼 인터페이스) 일관된 인터페이스를 의미, 동일한 리소스 요청에 동일한 URL..
https://hyunsb.notion.site/68aff4553f20490e8eb48e66f5eb9d0e 스프링부트 동작원리 ■ 내장 톰캣(Tomcat)을 가진다 hyunsb.notion.site ■ FrontController 패턴 최초 앞단에서 request를 받아 필요한 클래스에 넘겨준다. web.xml에 모든 request에 해당하는 response값을 정의하기 힘들기 때문 클라이언트 → 톰캣 → 자원 의 순서로 request, response 할 때, 클라이언트 → 톰캣 에서 request, response 객체가 생성되는데 해당 정보와 톰캣 → 자원 에서 새로운 요청으로 생겨난 request, response 객체의 정보가 다른 상황이 발생한다. 혹은 클라이언트가 서버에게 A.jsp 를 요청..
https://hyunsb.notion.site/68aff4553f20490e8eb48e66f5eb9d0e 스프링부트 동작원리 ■ 내장 톰캣(Tomcat)을 가진다 hyunsb.notion.site 스프링부트 동작원리 ■ 내장 톰캣(Tomcat)을 가진다 톰캣을 따로 설치할 필요없이 바로 실행이 가능하다. Tomcat?아파치는 html, css, .png와 같은 정적 파일에 대한 요청에만 응답한다.자바코드가 포함된 파일(JSP) 요청이 들어올 시 제어권을 Tomcat에게 넘기고 톰캣은 자바파일을 컴파일한다. 톰캣은 컴파일 된 데이터를 html 문서로 변환하여 아파치에게 전달한다. 마지막으로 아파치는 톰캣에게 전달받은 html문서를 응답한다. 아파치는 자바 코드를 포함한 요청에 대한 응답을 할 수 없다. ..
https://hyunsb.notion.site/JPA-91ed0d1489a144148b9f99676a1cb413 JPA 개념정리 ■ JPA는 Java Persistence API 이다. hyunsb.notion.site JPA란? ■ JPA는 Java Persistence API 이다. persistece(영속성) - 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. JAVA환경에서 데이터를 DBMS를 통하여 HDD에 영구히 저장 및 관리할 수 있는 API(Application Programming Interface) JAVA 개발환경에서 데이터를 영구히 보관하기 위한 인터페이스 ■ JPA는 ORM(Object Relational Mapping) 기술이다. JAVA에..
https://hyunsb.notion.site/f10223c93a294ddb8ccc081f4d5166dd 스프링부트 개념정리 ■ 스프링은 프레임워크(Framework) 이다. hyunsb.notion.site 스프링이란? ■ 스프링은 프레임워크(Framework) 이다. ■ 스프링은 오픈소스(Open Source)이다. 소스코드가 공개되어 있다. 즉, 뜯어 고칠 수 있다. ⭐스프링은 IoC(Inversion of Control, 제어의 역전) 컨테이너를 가진다. 주도권이 스프링에게 있다. 사용자가 생성한 객체를 스프링이 직접 Heap메모리 영역에 저장하고, 관리한다. 생성된 객체는 딱 한번만 Heap에 저장되고, 한 객체를 공유하여 사용한다. (싱글턴) ⭐스프링은 DI(Dependency Injecti..
✅Notion: https://hyunsb.notion.site/Recursion 재귀함수 (Recursion) 함수가 직접 또는 간접적으로 자기 자신을 호출하는 프로세스를 말합니다. hyunsb.notion.site 함수가 직접 또는 간접적으로 자기 자신을 호출하는 프로세스를 말합니다. 재귀함수의 종료지점을 유의하여 구현을 진행하여야 스택오버플로우가 발생하지 않으니 주의하여 구현해야합니다. 재귀함수는 스택프레임을 사용합니다. 💡 스택프레임은 모든 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 완전 소멸한다. 아래는 자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지 출력하는 프로그램 을 구현한 것입니다. ✅JAVA public static void main(String[] args) { Sc..
✅Notion: https://hyunsb.notion.site/결정 알고리즘 (Decision Algorithm) 결정 알고리즘 (Decision Algorithm) 이분 검색(Binary Search) 기반으로 주어진 조건에서의 최대 혹은 최소값을 구하는 알고리즘이다. hyunsb.notion.site 이분 검색(Binary Search) 기반으로 주어진 조건에서의 최대 혹은 최소값을 구하는 알고리즘이다. 이분 검색 (Binary Search) 정렬된 배열 또는 리스트에 적합한 고속 탐색 방법이다. www.notion.so 예시 문제 ✏️설명 지니레코드에서는 불세출의 가수 조영필의 라이브 동영상을 DVD로 만들어 판매하려 한다. DVD에는 총 N개의 곡이 들어가는데, DVD에 녹화할 때에는 라이브에서..
✅NOTION: 이분 검색(Binary Search) 이분 검색 (Binary Search) 정렬된 배열 또는 리스트에 적합한 고속 탐색 방법이다. hyunsb.notion.site 정렬된 배열 또는 리스트에 적합한 고속 탐색 방법이다. ⚙ Process 배열 혹은 리스트를 정렬한다. left = 배열의 첫번째 인덱스, right = 마지막 인덱스를 각각 저장한다. mid 값을 구한다. (left + right) / 2 mid 인덱스와 탐색 값을 비교하여 rt 혹은 lt 값을 변경한다. ✅ JAVA Code // n(배열의 길이), m(탐색 값), num(탐색 대상 배열) public int binarySearch(int n, int key, int[] num){ int answer = 0; Arrays..