728x90

개발/Java & Kotlin 134

[Java] 정렬 (1)

Do it! 자료구조와 함께 배우는 알고리즘 입문 읽고 정리 6-1 정렬 - 내부정렬과 외부정렬 1. 내부 정렬: 정렬할 모든 데이터를 하나의 배열에 저장할 수 있는 경우에 사용하는 알고리즘 2. 외부 정렬: 정렬할 데이터가 너무 많아서 하나의 배열에 저장할 수 없는 경우에 사용하는 알고리즘 - 정렬 알고리즘의 핵심 요소 정렬 알고리즘의 핵심 요소는 교환, 선택, 삽입 6-2 버블 정렬 - 버블 정렬 버블 정렬은 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복하는 알고리즘 - 버블 정렬 과정 (n-1) + (n-2) + ... + 1 = n(n-1) /2 class BubbleSort { static void swap(int[] a, int idx1, int idx2) { int t = a[idx1]..

[JPA] 기본 엔티티 매핑

김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 정리 1. 객체와 테이블 매핑 - 객체와 테이블 매핑 : @Entity, @Table - 필드와 컬럼 매핑 : @Column - 기본 키 매핑 : @Id - 연관관계 매핑 : @ManyToOne, @JoinColumn 2. @Entity - @Entity가 붙은 클래스는 JPA가 관리 - JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 - JPA 스펙상 파라미터가 없는 public 또는 protected 기본 생성자 필수 - 기본 생성자 필수 - final 클래스, enum, interface, inner 클래스에는 사용 불가능 - DB에 저장하고 싶은 필드는 final 사용 불가 3. @Table @Entity @Table(name..

[JPA] 기본 영속성 관리 - 내부 동작 방식

김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편 정리 1. JPA에서 가장 중요한 2가지 - 객체와 관계형 데이터메이스 매핑하기 - 영속성 컨텍스트 2. 엔티티 매니저 팩토리와 엔티티 매니저 - EntityManager는 DB에 붙기 위해 커넥션 풀을 사용 3. 영속성 컨텍스트 - JPA를 이해하는데 가장 중요한 용어 - 엔티티를 영구 저장하는 환경이라는 뜻 - EntityManager.persis(entity); -> 저장(영속석 컨텍스트를 통해서 엔티티를 영속화 한다.) 4. 엔티티의 생명주기 - 비영속(new/transient) 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 - 영속(managed) 영속성 컨텍스트에 관리되는 상태 - 준영속(detached) 영속성 컨텍스트에 저장되었다가..

[Java] 재귀 알고리즘

Do it! 자료구조와 함께 배우는 알고리즘 입문 읽고 정리 5-1 재귀의 기본 재귀란? - 어떤 사건이 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의될 때 재귀적이라고 한다. 팩토리얼 구하기 - 재귀의 사용 예: 팩토리얼 class Factorial { // 양의 정수 n의 팩토리얼을 반환 static int factorial(int n) { if (n > 0) return n * factorial(n-1); else return 1; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = sc.nextInt(); System.out.println(x+ "의 Factorial은 " + facto..

[Spring] Filter, Interceptor

스프링 시큐리티를 공부하면서 필터, 인터셉터에 대해 더 자세한 공부를 하게 됐다. 클라이언트에서 요청이 있을 경우 Filter -> InterCeptor -> AOP -> InterCeptor -> FIlte이다. 1. 서버를 실행시켜 서블릿이 올라오는 동안 init() 실행, 그 후 doFilter() 실행 2. Controller에 들어가기 전 preHandler 실행 3. Controller에서 나와 postHandler, after Completion, doFilter 순으로 진행 4. 서블릿 종료 시 destory가 실행 Filter - 필터는 요청과 응답을 한번 필터링 해주는 역할 - 필터는 스프링 컨텍스트 외부에 존재 - 인코딩 변환처리, xss방어 들의 요청에 대한 처리로 사용된다. - 필..

[Java] 스택과 큐

Do it! 자료구조와 함께 배우는 알고리즘 입문 읽고 정리 4-1 스택 스택이란? - 스택은 데이터를 일시적으로 저장하기 위해 사용하는 자료구조 - 데이터의 입력과 출력 순서는 후입선출(LIFO, Last In First Out) - 스택에 데이터를 넣는 작업을 푸시라 하고, 꺼내는 작업을 팝이라고 한다. 스택 만들기 publi class IntStack { private int max; // 스택 용량 private int ptr; // 스택 포인터 private intp[ stk; // 스택 본체 // 실행 시 예외: 스택이 비어있을 때 public class EmptyIntStackException extents RuntimeExcetption { public EmptyIntStackExcepti..

[Java] 검색

Do it! 자료구조와 함께 배우는 알고리즘 입문 읽고 정리 3-1 검색 알고리즘 배열에서 검색하기 1. 선형 검색: 무작위로 늘어놓은 데이터 모임에서 검색을 수행 2. 이진 검색: 일정한 규칙으로 늘어놓은 데이터 모임에서 아주 빠른 검색을 수행 3. 해시법: 추가, 삭제가 자주 일어나는 데이터 모임에서 아주 빠른 검색 수행 - 체인 법: 같은 해시 값의 데이터를 선형 리스트로 연결하는 방법 - 오픈 주소법: 데이터를 위한 해시 값이 충돌할 때 재해시하는 방법 3-2 선형 검색 선형 검색 class SeqSearch { static int seqSearch(int[] a, int n, int key) { int i = 0; while(true) { if (i == n) return -1; //검색 실패 ..

[Java] 기본 자료구조

Do it! 자료구조와 함께 배우는 알고리즘 입문 읽고 정리 2-1 배열 자료구조 - 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 - 데이터 단위는 데이터를 구성하는 한 덩어리 - 자료구조는 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법을 뜻함 배열 배열 요소의 최댓값 구하기 class MaxofArray { static int maxOf(int[] a) { int max = a[0]; for (int i = 1; i max) { max = a[i]; } } return max; } public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9..

[Java] 기본 알고리즘

Do it! 자료구조와 함께 배우는 알고리즘 입문 읽고 정리 1-1 알고리즘이란? 세 값의 최댓값 - 3개의 값중 최대값 찾기 class Max3 { Scanner scan = new Scanner(System.in); int a = scan.nextInt(); int b = scan.nextInt(); int c = scan.nextInt(); int max = a; if (b > max) max = b; if (c > max) max = c; System.out.println("최대값은 : " + max + "이다."); } - 연습문제 Q1 네 값의 최댓값을 구하는 max4 메소드 작성 static int max4(int a, int b, int c, int d) { int max = a; if (..

[Spring] 스프링 시큐리티 (2)

7.4 스프링 시큐리티의 기본 구조 7.4.1 SecurityContext, Authentication, GrantedAuthority - SecurityContext는 인증, 인가 정보를 관리하는 오브젝트 - SecurityContext는 Authentication 오브젝트를 소유하고 있음 - GrantedAuthority는 인가 정보를 나타내는 오브젝트 7.4.2 AuthenticationManager와 AccessDecisionManager - AuthenticationManager 오브젝트는 인증 처리를 실시하는 오브젝트 인증: 사용자의 신원을 검증하는 행위로서 보안 프로세스에서 첫 번째 단계 - AccessDecisionManager는 인가 처리를 실시하는 오브젝트 인가: 사용자에게 특정 리소스..

728x90