728x90

java 129

[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 어드바이스 - 어노테이..

[Java] 람다와 스트림(5)

자바의 정석 챕터 14를 읽고 정리 2.4 Optional와 OptionalInt - Optional는 Generic 클래스로 "T타입의 객체"를 감싸는 Wrapper 클래스 - 모든 타입의 참조변수를 담을 수 있음 public final class Optional { private final T value // T타입의 참조변수 } - 결과를 Optional객체에 담아서 반환할 경우 null 체크가 간편함 Optional 객체 생성하기 - Optional 객체를 생성할 때는 of() 또는 ofNullable()을 사용 String str = "abc"; Optional optVal = Optional.of(str); Optional optValNull = Optional.ofNullable(null);..

[Spring] 스프링 AOP (1)

스프링 코어 중 다른 하나인 DIxAOP 컨테이너의 AOP에 대해 알아보기 - DI 컨테이너란 오브젝트 사이에 밀접한 의존 관계를 가지지 않게 하고, 인터페이스에 의한 약한 결합을 쉽게 만들어 소프트웨어의 컴포넌트화를 촉진하며, 오브젝트의 생명 주기를 관리할 수 있게 하는 것 - DI 컨테이너만으로는 온전한 아키텍처를 개발할 수 없음 - AOP가 있으면 로깅이나 트랜잭션 등의 처리를 따로 관리할 수 있게 구현하는 기술 3.1 AOP란 - AOP란 업무 등 특정 책임이 있는 클래스 같이 본질적이지 않은 처리들을 밖으로 꺼내는 기술 3.1.1 AOP 용어 애스펙트(Aspect) - 횡단 관심사의 동장과 그 횡단 관심사를 적용하는 소스 코드상의 포인트를 모은 것 어드바이스(Advice) - 조인 포인트에서 실..

[Java] 람다와 스트림(4)

자바의 정석 챕터 14를 읽고 정리 2.2 스트림의 중간연산 스트림 자르기 - skip(), limit() - 스트림의 일부를 잘라낼 때 사용 Stream skip(long n); // 처음 n개 요소를 건너 뛴다. Stream limit(long maxSize); // 스트림의 요소를 maxSize만큼 제한한다. IntStream skip(long n); IntStream limit(long maxSize); 스트림의 요소 걸러내기 - filter(), distinct() - distinct()는 중복된 요소를 제거함. - filter()는 조건에 맞지 않는 요소를 제거함. Stream filter(Predicate

[Java] 람다와 스트림(3)

자바의 정석 챕터 14를 읽고 정리 2.2 스트림 만들기 - 스트림의 소스가 될 수 있는 대상은 배열, 컬렉션, 임의의 수 등 다양함 컬렉션 List list = Arrays.asList(1, 2, 3, 4, 5); //list를 소스로 하는 컬렉션 생성 Stream intStream = list.stream(); - forEach()로 지정된 작업을 스트림의 모든 요소에 대해 수행 가능하다. intStream.forEach(System.out::println); intStream.forEach(System.out::println); // 에러. 스트림이 닫힘 배열 Stream Stream.of(T... values); // 가변 인자 Stream Stream.of(T[]); Stream Arrays.s..

728x90