728x90

java 123

[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..

[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는 인가 처리를 실시하는 오브젝트 인가: 사용자에게 특정 리소스..

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

7.3 스프링 시큐리티 - 인증, 인가 기능의 공통 기반 제공 - 웹앱에서 인증, 인가를 구현하기 위한 각종 필터 클래스 제공 - Bean 정의 파일이나 프로퍼티 파일, 데이터베이스, LDAP 등, 여러 리소스로부터 인증, 인가 정보 취득 가능 - HTTP BASIC 인증이나 화면에서의 폼 인증 등, 웹앱에서 일반적으로 선택되는 인증 지원 - 메소드 호출에 대한 액세스 제어에 AOP 사용 가능 - 시큐리티 공격에 대한 방어 기능을 제공(CSRF 대책, Session Fixation 대책 등) 7.3.1 스프링 시큐리티의 설정 파일 - Bean 정의 파일(XML) - JavaConfig 파일 @EnableWebSecurity protected class SecurityConfig extends WebSec..

[Spring] 스프링 AOP (2)

@Configuration @EnableAspectAutoProxy public class AppConfig { @Bean public ProductServiceImpl productService() { return new ProductServiceImpl(); } @Bean public ProductDaoImpl productDao() { return new ProductDaoImpl(); } @Bean public MyFirstAspect myFirstAspect() { return new MyFirstAspect(); } } 스프링 코어 중 다른 하나인 DIxAOP 컨테이너의 AOP에 대해 알아보기 3.2.2 어노테이션으로 어드바이스 만들기 Before 어드바이스, After 어드바이스 - 어노테이..

728x90