전체 글 62

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

📌 자료 구조 : 데이터를 효율적으로 저장하고 관리하기 위한 방법 등장 배경 데이터의 양이 많아짐에 따라 데이터를 효과적으로 저장하고 검색하는 방법이 필요해졌고, 이에 따라 불필요한 계산 및 메모리 낭비를 줄일 수 있는 자료구조들이 등장했다.  자료 구조의 종류배열(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

[디지털 신호 처리] 고속 푸리에 변환 FFT, DTF와의 관계

고속 푸리에 변환(FFT) : 이산 푸리에 변환을 효율적으로 계산하기 위한 알고리즘주어진 N개의 복소수 입력값에 대해 입력 신호를 N개의 동일한 길이의 부분 신호로 분할한 다음, 각 부분 신호에 대해 DFT를 계산하고 부분 신호의 길이가 1이 될 때까지 이 과정을 반복한다.이후 결과적으로 나온 DFT를 계산하고 부분 신호의 길이가 1이 될 때까지 이 과정을 반복한다.이후 결과적으로 나온 DFT값을 결합하여 전체 FFT값을 얻을 수 있다.FFT는 신호처리, 영상 등 다양한 분야에서 사용되며 고속 연산의 속도와 효율성이 좋은 것이 특징이다.FFT와 DFT 모두 주파수 영역으로의 신호 변환에 사용되는 것은 동일하다. [복소수 계산 횟수, 계산 복잡도]DFT → O(N^2) : 길이 N이 커질 때는 계산량이 급..

[디지털 신호 처리] 영차유지보간, 일차유지보간, 큐빅-스플라인 보간 방법

영차 유지 보간: 이산 신호의 샘플 값을 일정한 간격으로 유지하여 값을 보간하는 방법. 새로운 샘플이 나타나기 전까지 이전 샘플의 값을 유지함으로써 보간을 수행한다. 이는 선형적으로 변하는 값을 추정하는 것보다 단순하고 계산 비용이 적으나, 신호의 변화가 급격한 부분에서는 왜곡이 발생할 수 있기 때문에 정확한 보간이 필요한 경우 적합하지 않다.  일차 유지 보간큐빅-스플라인 보간: 이산신호의 인접한 두 샘플 사이의 값을 직선으로 연결하여 새로운 샘플 값을 추정하는 방법으로, 선형적인 보간을 수행하여 두 샘플 값을 추정한다. 영차유지보간에 비해 왜곡이 적고 더 자연스로운 복원이 가능하지만 계산비용이 더 많이 들고, 신호의 변화가 빠른 고주파 신호의 경우 왜곡이 발생할 수 있기에 신호의 정확도가 저하될 수 ..

[디지털 신호 처리] DSP 활용 자료 _음성인식

DSP(Digital Signal Processing)란 디지털 신호 처리를 뜻하는 단어로, 연속신호를 샘플링하여 생성된 이산신호를 대상으로 그 신호의 특성을 이해하고, 분석하며 원하는 신호를 출력하기 위해 행하는 일련의 모든 처리 과정을 말한다. DSP의 가장 큰 특징은 실시간 처리, 고성능 연산, 반복 연산을 고속으로 실행할 수 있는 회로가 내장되어 있어 신호를 빠르게 처리한다는 것이다. 현재 우리 삶에서 흔하게 접할 수 있는 멀티미디어, 디지털 통신 기기는 매우 복잡한 신호 처리를 요구하기에 DSP는 전자기기에 필수적인 과정이다. DSP를 이용한 활용 자료 중 음성인식은 사용자의 입력 신호인 사람의 음성을 실시간으로 컴퓨터가 인식할 수 있는 형태로 변환하는 작업으로, DSP의 실시간 처리 특성을 이..

[JAVA] 캐스팅 (Casting)

📌 캐스팅 (Casting) : 데이터 타입을 다른 데이터 타입으로 변환하는 과정으로, 형변환이라고도 불린다. 캐스팅의 필요성다형성 : 오버라이딩된 함수를 분리해서 활용할 수 있다상속 : 캐스팅을 통해 범용적인 프로그래밍이 가능하다. 캐스팅의 종류업캐스팅(upcasting) : 자식 클래스에서 부모 클래스로 형변환하는 것데이터 손실 없이 수행된다.자동 변환 : 자바 컴파일러가 자동으로 수행한다. 제한된 접근 : 업캐스팅된 객체는 부모 클래스에서 정의된 멤버에만 접근할 수 있음.(자식 클래스에서 추가된 멤버는 사용할 수 없다.)class Animal { public void makeSound() { System.out.println("Animal sound"); }}class Do..

Language/JAVA 2024.09.01