2024/09 34

[JAVA] BufferedReader

개요 자바를 이용해 푼 백준 문제 풀이를 검색해 보는데, 간단한 문제를 제외하고는 Scanner가 아닌 BufferReader기능을 이용하여 표준입력을 받는 것을 보고 Scanner보다 나은 어떠한 기능이 있는지 알아보기 위해 작성해 본다.  정의 BufferReader : 입력을 읽어주는 기능을 가지고 있는 클래스java.io의 하위에 정의되어 있는 클래스로, "import java.io.*"을 선언해야 사용이 가능하다. 기능 읽기 성능을 향상하기 위해 입력 스트림의 데이터를 버퍼에 임시로 저장해 둔다.  사용 이유 빠른 읽기 속도: 입력을 버퍼에 임시로 저장해 두는 기능이 있기에 파일 / 네트워크 등 큰 데이터를 읽을 때 성능이 좋다.다양한 메서드 : 편리한 메서드가 많이 구현되어 있다.read() ..

Language/JAVA 2024.09.14

[JAVA] throws IOException

개요 스터디 팀원의 코드 중 "public static void main(String[] args) throws IOException" 문장 사용의 이유가 궁금하여 이해해 보고자 글을 작성해 본다. 개념 예외(Exception)란? 프로그램이 실행되는 도중 예상치 못한 상황이 발생했을 때의 오류IOException이란 ? InputOutputException의 약자로, 입출력 작업 중 발생할 수 있는 오류를 뜻한다. 파일 읽기/쓰기, 네트워크 통신 등의 작업에서 발생 가능 사용 이유 간편함 : 예외를 메서드 내부에서 처리하지 않고 메서드를 호출한 곳에서 처리할 수 있다.중복 코드 방지가독성  throws IOException역할 : 메서드 선언부에 붙이는 구문으로, 해당 메서드가 입출력예외를 발생시킬 수..

Language/JAVA 2024.09.13

[자료구조] 큐(Queue)

📌큐 : 선입선출(First In First Out, FIFO)의 자료구조로, 가장 먼저 삽입된 데이터가 먼저 처리된다. 큐 구현 Java에서 큐는 주로 Queue 인터페이스를 사용하고, LinkedList / ArrayDeque / PriorityQueue 클래스를 사용해서 구현할 수 있다.Queue queue = new LinkedList();Queue queue = new ArrayDeque();  기본 메서드offer(E e) : 큐의 맨 뒤에 요소를 추가한다. 성공하면 true, 실패하면 false 반환poll() : 큐의 맨 앞에 있는 요소를 제거하고 반환한다. 큐가 비어있으면 null 반환peek() : 큐의 맨 앞에 있는 요소를 제거하지 않고 반환한다.큐가 비어있으면 null 반환isEm..

[자료구조] 스택(Stack)

📌스택 : 후입선출(Last In First Out, LIFO) 방식을 따르는 자료구조로, 가장 나중에 삽입된 데이터가 가장 먼저 꺼내지는 구조를 가지고 있다. 스택 구현 Deque를 스택처럼 사용Deque stack = new ArrayDeque();Stack 사용Stack stack = new Stack(); 기본 메서드push(E item) : 스택의 맨 위에 요소를 추가pop() : 스택의 맨 위에 있는 요소를 제거하고 반환peek() : 스택의 맨 위에 있는 요소를 제거하지 않고 반환isEmpty() : 스택이 비어 있는지 여부를 확인size() : 스택 안의 요소 개수 반환 코딩 테스트 빈출 유형 괄호 유효성 검사: "다양한 유형의 괄호 (), {}, [] 가 포함된 문자열에서 올바르게 괄호..

[자료구조] 자료구조란?

📌 자료 구조 : 데이터를 효율적으로 저장하고 관리하기 위한 방법 등장 배경 데이터의 양이 많아짐에 따라 데이터를 효과적으로 저장하고 검색하는 방법이 필요해졌고, 이에 따라 불필요한 계산 및 메모리 낭비를 줄일 수 있는 자료구조들이 등장했다.  자료 구조의 종류배열(Array): 동일한 데이터 타입을 가진 요소들을 연속적으로 저장하는 자료구조빠른 조회 : 인덱스 사용고정된 크기 : 데이터를 동적으로 추가/제거 시 비효율적예시 > 고정된 크기의 데이터 저장, 이차원 배열의 행렬 계산 리스트(List):  각각의 데이터 요소(Node)들이 포인터(next)와 키(key)를 가진 자료구조동적 조정 가능 데이터의 삽입/삭제 용이느린 검색 속도 : 인덱스 접근 불가능예시 > 동적 메모리 할당스택(Stack): ..

[Swing] 이벤트 처리 (Event Handling)

📌 이벤트 : 사용자가 UI 컴포넌트와 상호작용할 때 발생하는 사건 이벤트를 처리하려면 이벤트 소스(Source), 이벤트 객체(Object), 이벤트 리스너(Listener)가 필요하다.이벤트 소스 : 이벤트가 발생하는 객체이벤트 객체 : 이벤트가 발생할 때 생성되는 객체로, 이벤트에 대한 정보가 담겨있다.모든 이벤트 객체는 EventObject 클래스를 상속받는다. EventObject 클래스는 getSource() 메서드만을 가지고 있다. getSource()는 이벤트를 발생한 이벤트 소스를 반환하는 메서드로, Object 타입으로 반환하기에 필요한 타입으로 형변환하여 사용해야 한다. 이벤트 리스너 : 이벤트가 발생할 때 실행되는 동작을 정의하는 인터페이스로, 수신하여 처리하는 역할을 한다.등록된..

[Swing] 배치 관리자

: Swing에서는 UI 컴포넌트들을 어떻게 배치할지 결정하는 배치(레이아웃) 관리자를 제공한다. 각각의 배치 관리자는 컴포넌트를 배치하는 고유 방식을 가지고 있기에, 상황에 맞게 적절한 레이아웃 관리자를 선택하여 사용하면 된다. FlowLayout:  UI 요소들을 간단하게 나열할 때 적합한 관리자컨테이너에 컴포넌트가 들어오면 순서대로 왼쪽에서 오른쪽으로 배치더 이상 배치할 공간이 없을 경우 아래 줄로 내려와 왼쪽부터 다시 배치📄예시 코드JPanel panel = new JPanel();panel.setLayout(new FlowLayout());panel.add(new JButton("버튼 1"));panel.add(new JButton("버튼 2"));panel.add(new JButton("버튼..

[Swing] 기초 컴포넌트의 생성자와 메서드

프레임(Frame) : 메뉴를 붙일 수 있는 윈도우 생성자 : 프레임을 생성하는 기능JFrame타이틀이 없는 프레임 생성JFrame(String title)지정된 타이틀을 가진 프레임 생성 메서드 : 생성한 프레임의 크기, 종료 방법, 좌표 등을 지정하는 작업을 처리한다. void add(Component c)컴포넌트c를 프레임에 추가void pack()프레임의 크기를 추가된 컴포넌트들의 크기에 맞도록 조절void setIconImage(Icon image)프레임이 최소화되었을 때의 아이콘 지정void setLocation(int x, int y)프레임의 좌표 지정void remove(Component c)컴포넌트c를 프레임에서 제거  패널(Panel) : 컴포넌트들을 포함하고 있도록 설계된 대표적인 컨..

[Swing] 자바 GUI 스윙 (Swing)

GUI란?[OS / Linux] GUI와 CLI (tistory.com) [OS / Linux] GUI와 CLI📌GUI (Graphical User Interface) : 화면상에 보이는 아이콘, 창, 메뉴 등을 마우스 등으로 클릭하여 컴퓨터에 명령을 내리는 인터페이스아이콘, 버튼, 메뉴, 창 등의 시각적 요소가 포함되며, 사용자는ikmin.tistory.com[ ↑ GUI 개념 정리 글]자바의 UI 툴킷(라이브러리)은 Swing과 AWT가 있다. Swing이란? Java 프로그래밍 언어에서 GUI를 만들기 위해 사용되는 라이브러리로, 자바로 만든 프로그램에 버튼, 텍스트 필드, 메뉴와 같은 사용자 인터페이스 요소를 추가할 수 있게 해주는 도구이다.독립적인 플랫폼 : 어떤 운영체제에서든 동일하게 동작하..

[Git] 명령어 reset과 revert의 차이

개요Git의 'reset'과 'revert'는 커밋 기록을 수정하거나 되돌릴 때 사용하는 대표적인 명령어로, 초반에 개념을 확실하게 정리해야 할 중요한 내용인 것 같아 정리 글을 작성해 본다. 개념 📌'git reset' 로컬 커밋 기록을 이전 상태로 되돌리는 명령어로, 실수로 잘못된 커밋을 만들었을 때 사용한다. 특정 커밋 이후의 모든 기록을 삭제하거나 수정할 수 있기에, 협업 프로젝트에서는 신중하게 사용해야 한다. 📌'git revert' 이미 존재하는 커밋을 되돌리는 명령어로, 새로운 커밋을 생성하여 변경사항을 되돌린다. 다른 사람의 작업에 영향을 미치지 않고 커밋을 취소할 수 있기에, 협업 환경에서 안전하게 사용할 수 있다.  세부 사항 --soft: 작업 디렉토리는 유지되고 변경사항은 스테이..

Git & Github 2024.09.02