본문 바로가기

Java

[JAVA] Logging (로깅) 1. 로깅? - 모든 일 (개발자가 가져야 할 최소한의 목적) 1) 프로그램 동작 시 발생하는 모든 일을 기록하는 행위 2) 서비스 동작 상태 (시스템이 동작되기 위해 필요한 부분들) - 시스템 로딩 - HTTP 통신 - 트랜젝션 - DB 요청 - 의도를 가진 Exception 3) 장애(exception, error) - I/O Exception - NullPointException - 의도하지 않은 Exception 2. 로깅은 언제할까? - 로깅 시점은 때에 따라 다르다. 그 이유는 똑같은 서비스라도 요구사항이 전혀 다를 수 있기 때문이다. 3. 로깅 VS System.out.println() - 출력 형식을 지정할 수 있음 - 로그 레벨에따라 남기고 싶은 로그를 별도로 지정할 수 있음 - 콘솔 뿐.. 더보기
[JAVA] Stream 사용법과 구현 1. 스트림 (Stream) 1) 배열, 컬렉션 등의 데이터를 하나씩 참조하여 처리 가능한 기능 2) for문의 사용을 줄여 코드를 간결하게 함 3) 스트림은 크게 3가지로 구성 - Stream 생성 - 중개 연산 - 최종 연산 2. Stream 생성 1) 배열 스트림 2) 컬렉션 스트림 3. Stream 중개연산 1) Filtering - filter 내부 조건에 참인 요소들을 추출 2) Mapping - map 안의 연산을 요소별로 수행 4. Stream 최종연산 1) Sum, Average 2) min, max 5. Stream 직접 구현 1) to Stream 생성 및 출력 String[] arr = new String[]{"a", "b", "c"}; // String 배열 생성 Stream st.. 더보기
[JAVA] 배열(Array)을 익히고 구현하기 1. 배열(Array) 1) 많은 수의 데이터를 다룰 때 사용하는 자료구조 2) 각 데이터를 인덱스와 1:1 대응하도록 구성 3) 데이터가 메모리 상에 연속적으로 저장됨 2. 배열의 장점 1) 인덱스를 이용하여 데이터에 빠르게 접근 가능 3. 배열의 단점 1) 데이터의 추가/ 삭제가 번거로운 편 - 미리 최대 길이를 생성해야 함 - 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배열을 생성 - 데이터 삭제 시, 인덱스를 유지하기 위해 빈 공간 유지 4. 1차원 배열과 2차원 배열 구현 1) 1차원 배열의 생성과 구현 System.out.println("== 1차원 배열 =="); int[] arr = {1, 2, 3, 4, 5}; for (int item: arr) { System.out.prin.. 더보기
[JAVA] Queue의 자료구조의 이해, 구현과 사용법 익히기 1. 큐(Queue) 1) 선입선출(First In First out; FIFO) 자료구조 - 먼저 들어온 데이터가 먼저 나가는 구조 2) 입력 순서대로 데이터 처리가 필요할 때 사용 - 프린트 출력 대기열, BFS(Breath-First-Search) 등 2. 큐 기본 구조 1) 선입선출 구조를 따름 2) 기본적으로 데이터 추가, 데이터 꺼내기, 큐 공간 확인 동작으로 이루어짐 3. 큐 기본 연산 (1) 1) 데이터 추가(Enqueue) - 큐에 데이터 추가 3. 큐 기본 연산(2) 1) 데이터 꺼내기(Dequeue) - 큐에서 데이터 꺼내기 4. 큐 구현과 사용법 1) 큐의 생성과 데이터 생성 Queue queue = new LinkedList(); queue.add(1); queue.add(2); .. 더보기
[JAVA] Stack 자료구조의 이해와 사용법 1. 스택 (Stack) 1) 후입선출(Last In First out; LIFO == First In Last out; FILO라고도 불림) 자료구조 - 마지막에 들어온 데이터가 가장 먼저 나가는 구조 2) 데이터가 입력된 순서의 역순으로 처리되어야 할 때 사용 - ex) 함수 콜 스택, 수식 계산, 인터럽트 처리 등 2. 스택 기본 구조 1) 후입 선출 구조 2) 기본적으로 데이터 추가, 데이터 꺼내기, 스택 공간 확인 동작으로 이루어진다. 3. 스택 기본 연산 1) 데이터 추가 (push) - 스택의 가장 마지막 위치에 데이터 추가 4. 스택 기본 연산 1) 데이터 꺼내기 (pop) - 스택의 가장 마지막 위치에서 데이터 꺼냄 5. 스택의 사용법에 대해 알아보자 1) Stack 생성 및 데이터 생성.. 더보기
[JAVA] 메소드 오버로딩(Method OverLoading) ● 오버로딩이란? 같은 이름의 메소드를 중복하여 정의하는 것을 의미한다. 자바에서는 원래 한 클래스 내에 같은 이름의 메소드를 둘 이상 가질 수 없습니다. 하지만 매개변수의 개수나 타입을 다르게 하면 하나의 이름으로 메소드를 작성할 수 있습니다. int number; int number; 만약 위 코드처럼 number라는 이름을 가진 변수를 두 번 선언하면 오류가 발생한다. public class Main { public static int getPower(int number){ int result = number * number; return result; } public static int getPower(String strNumber){ int number = Integer.parseInt(strN.. 더보기