no image
403....Error
403 ... 대체...뭐가 잘못된거지...............하...................................... Spring에서 발생하는 403 에러는 Forbidden을 의미합니다. 이는 클라이언트가 요청을 보냈지만 해당 요청을 수행할 권한이 없음을 나타냅니다.(Token 값이 없거나? 코드가 잘못되었거나?.....) Spring Security에서는 기본적으로 권한 부여(Authorization)를 관리합니다. 사용자가 특정 리소스에 접근하려고 할 때 해당 사용자가 그 작업에 필요한 권한을 가지고 있지 않을 때 403 에러가 발생할 수 있습니다. 403 에러를 해결하기 위한 접근 방법 1. 권한 설정 확인 사용자에게 필요한 권한이 있는지 확인합니다. Spring Security..
2023.12.08
no image
Validation
Spring Validation 스프링 프레임워크에서 지원하는 기능으로 주로 입력 데이터나 외부 데이터의 유효성을 검증하는 데 사용됩니다. 이를 통해 잘못된 데이터가 시스템으로 들어가는 것을 방지하고 안전성을 높일 수 있습니다. 의존성 주입 @Validation javax.validation.constraints 패키지에 있는 어노테이션들을 필드에 적용하여 해당 필드의 제약조건을 정의합니다. @NotNull, @Size, @Email등을 사용하여 필드에 대한 유효성을 정의할 수 있습니다. Validation Interface Validator 인터페이스는 실제로 객체를 유효성 검사하는 데 사용됩니다. 스프링에서는 이 인터페이스를 구현하여 커스텀한 유효성 검사 로직을 작성할 수 있습니다. 스프링 MVC에서..
2023.12.06
no image
선택 정렬
선택 정렬 선택정렬은 n개의 레코드 중에서 최솟값을 찾아 첫 번째 레코드 위치해 놓고, 나머지 (n-1) 개중에 다시 최솟값을 찾아 두 번째 레코드 위치에 놓는 방식을 반복하여 정렬하는 방식입니다. 정렬 과정 배열의 첫 번째 요소부터 시작하여 그다음 요소들과 비교합니다. 현재 위치의 요소를 기준으로, 그 이후의 모든 요소들과 비교하여 최솟값을 찾습니다. 최솟값을 찾으면 해당 값과 현재 위치의 값을 교환합니다. 이러한 과정을 배열의 마지막 요소까지 반복합니다. Java Code public class SelectionSort { public static void selectionSort(int[] arr) { int n = arr.length; // 배열의 모든 요소를 순회하며 정렬 수행 for (int ..
2023.12.05
no image
binSearch
문제 이진 검색 과정을 자세히 출력하는 프로그램 작성하세요 각 행의 맨 왼쪽에 현재 선택한 요소의 인덱스를 출력하고, 검색 범위의 첫 요소위에 , 현재 선택한 중양 요소위에 +를 출력하세요. package Basic.Chap03; import java.util.Scanner; public class BinSearch2 { static int binSearch(int[] a, int n, int key) { System.out.print(" |"); for (int k = 0; k < n; k++) { System.out.printf("%4d", k); } System.out.println(); System.out.print("---+"); for (int k = 0; k < 4 * n + 2; k++){..
2023.12.04
no image
TDD
TDD TDD(Test-Driven-Development, TDD)는 구현을 먼저 하고 나중에 테스트하는 것이 아닌 테스트를 먼저 하고 이후에 구현을 하는 것을 말한다. 여기서 테스트는 기능이 올바르게 동작하는지 검증하는 테스트 코드를 작성한다는 것을 의미한다. 기능을 검증하는 테스트 코드를 작성하고 테스트를 통과하기 위해 개발을 진행하는 것을 말한다. Write 단계 테스트를 먼저 작성합니다. 아직 개발되지 않은 기능을 테스트하는 코드를 작성하여 실행했을 때 실패하는 상태를 만듭니다. 이 단계에서 테스트가 실패하는 것이 정상이며 이를 통해 구현되지 않는 요구 사항이나 기능을 명확히 이해하고 명세화할 수 있습니다. Make the test Pass 단계 테스트를 통과할 정도로 최소한의 코드를 작성합니다...
2023.12.01
no image
AOP
AOP 객체 지향 프로그래밍을 보완하는 프로그램 구조에 대한 또 다른 사고방식입니다. OOP에서 모듈화의 핵심 단위는 클래스인 반면, AOP에서 모듈화의 단위는 관점입니다. Spring의 핵심 구성 요소 중 하나는 AOP 프레임워크입니다. Spring IoC 컨테이너가 AOP에 의존하지 않는다는 점에서 유의할 필요가 있습니다. 즉 Spring은 AOP를 사용하지 않고 IOC 컨테이너를 사용할 수 있습니다. AOP는 Spring IoC를 보완하여 매우 유능한 미들웨어 솔루션을 제공합니다. AOP는 핵심 로직에서 공통 관심사를 분리하여 모듈화 하는 방법을 제공합니다. 이로써 코드 중복을 줄이고, 유지보수성과 확장성을 향상시킬 수 있습니다. Aspect는 애플리케이션 전체에 걸쳐 흩어진 관심사를 하나의 모듈로..
2023.11.30
no image
Parameter
Parameter 메서드나 함수 등에서 사용되는 인자를 받는 변수를 가리킵니다. 함수를 호출할 때 매개변수를 지정하면, 해당 함수가 실행될 때 그 값을 받아들여 사용할 수 있습니다. 인자(Parameter) 함수나 메서드를 호출할 때 전달되는 값을 가리킵니다. 함수 정의에서 매개변수로 받은 값을 의미합니다. 인자 목록(Argument List) 함수를 호출할 때 전달되는 실제 값들의 목록입니다. 이 값들이 함수에 정의된 매개변수에 대응됩니다. 컨트롤러의 메소드 매개변수 HTTP 요청에서 받은 데이터나 쿼리 파라미터를 처리하기 위해 @RequestParam, @PathVariable, @RequestBody 등의 어노테이션을 이용하여 매개변수를 정의합니다. @RestController public clas..
2023.11.28
no image
RequestParam
RequestParam Spring 프레임워크에서 @RequestParm은 Http 요청에서 파라미터를 컨트롤러 메서드의 매개변수로 가져오는 데 사용되는 기능입니다. (단일 HTTP요청 파라미터 메서드를 파라미터에 넣어주는 애노테이션) 예시 @GetMapping("/example") public String exampleMethod(@RequestParam("paramName") String parameter) { // paramName으로 전달된 값을 parameter 변수에 받아옵니다. // 이 값을 사용하여 로직을 처리할 수 있습니다. return "result"; } @RequestParam("paramName") 은 요청에서 paramName이라는 이름의 파라미터를 가져와서 parameter라는..
2023.11.27
no image
버블정렬
버블정렬 간단하지만 비효율적인 정렬 알고리즘이며 이 알고리즘은 인접한 두 원소를 비교하고 필요에 따라 서로 위치를 교환하고 리스트를 정렬합니다. 이름이 버블 정렬로 된 유래는 정렬 과정 속에서 이동하는 모습이 거품이 수면에 올라온 모습으로 보여 버블 정렬, 거품 정렬이라고 합니다. 정렬 과정 1. 전체 배열을 순회합니다. 2. 인접한 두 원소를 비교합니다 첫 번째 원소와 두 번째 원소를 비교하고, 필요에 따라 위치를 교환합니다. 이후 두 번째 원소와 세 번째 원소를 비교하고, 필요에 따라 위치를 교환합니다. 이 과정을 마지막 원소까지 진행합니다. 이 단계가 끝나면 가장 큰 원소가 배열의 맨 끝으로 이동하게 됩니다. 3. 위 과정을 반복합니다 다시 배열의 처음부터 끝까지 돌면서 인접한 두 원소를 비교하고 ..
2023.11.21