728x90
728x90

내용 정리 16

Gradle의 라이브러리 의존성 옵션 정리

익숙함 문득 웹 프로젝트 관련 내용들을 정리해나가면서, gradle 파일을 보니까 다음과 같은 부분이 눈에 들어왔다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' } 언제부턴가 기존 프로젝트를 따라가는 방식으로 라이브러리 의존성을 작성하다 보니까, 이것들에 대한 이해하고 있..

JAVA에서 람다식(Lambda Expression)에 대해 정리해보기

람다식? 람다식 또는 람다 표현식(Lambda Expression)은 프로그래밍에서 흔히 사용되는 개념으로 익명 함수 등으로 불리기도 한다. 많은 프로그래밍 언어에서 람다식을 볼 수 있으며 Java에서는 이 람다 표현식을 Java8부터 추가되어 활용할 수 있다. 특징 기본 형태 (int param1, String param2) -> { DoSomething...} // 기본 (Parameter, ...) -> { DoSomething... } // 타입이 동일한 경우 () -> { DoSomething... } // 매개변수가 없는 경우 (Parameter, ...) -> DoSomething // 단일 실행문인 경우 (Parameter, ...) -> { return some; } // 단일 실행문이 ..

깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) 정리 - 기본적인 특징과 유의 사항에 대해서

깊이 우선 탐색과 너비 우선 탐색에 대해 간단하게 비교하여 정리하고자 한다. 두 알고리즘은 생각보다 알고리즘 문제 풀이에서 많이 볼 수 있고, 각각의 응용 방식을 통해 나오는 코딩 테스트 문제가 많기 때문에 참고해두는 것이 좋고, 기본적인 구현 방식은 알고 접근하는 것이 좋다. 기본적인 구현 코드는 백준 온라인 저지의 1260번 DFS와 BFS 을 구현하는 코드이다. DFS(Depth-First Search) Stack으로 구현할 수 있고, 함수 호출도 Stack처럼 이뤄지기 때문에 대부분 재귀 함수로 구현된 코드들이 많다. DFS는 미로 찾기로 치면, 막히는 곳까지 계속 파고 드는 Leaf-wise한 방식이다. 분기점이 나오면 길 하나를 선택하고 더 이상 진행하지 못하는 시점까지 진행한다고 보면 이해하..

C#.NET] WMPLib.WindowsMediaPlayer를 이용해서 wav가 아닌 오디오 파일 재생하는 방법

.NET 개발을 하다보면 wav 파일이 아닌 mp3 같은 파일들을 재생해야 할 때가 있다. wav 같은 경우는 System.Media.SoundPlayer를 이용해서 별도의 라이브러리 추가 없이 재생이 가능하지만, 다른 파일들은 별도의 실행 방식을 사용해야 한다. SoundPlayer - wav 파일 일단 기존의 SoundPlayer를 이용해서 wav 파일을 재생하는 방법을 한 번 보자. private SoundPlayer player; player = new SoundPlayer(filePath); // Sync player.Load(); player.PlaySync(); // ASync plyaer.LoadAsync(); player.Play(); // Stop player.Stop(); SoundP..

C#] Dispose 호출해야 하는 경우와 그렇지 않아야 하는 경우

Dispose를 호출해야 하는 경우 '의심 스럽다면 처분 하는 원칙'에 따름. Windows Forms의 컨트롤들, 파일 및 네트워크 스트림, 네트워크 소켓, GDI+의 펜/브러시/비트맵 등이 이에 해당. Dispose를 호출하지 말아야 하는 경우 현재 코드가 객체를 소유한 것이 아니고, 정적 필드나 속성을 통해 공유 객체를 얻은 경우 System.Drawing namespace의 형식에서 정적 필드 및 속성을 통해 얻은 GDI+ 객체 - 응용 프로그램 종료 시점까지 사용 Dispose 메서드가 현재 상황에 맞지 않는 경우 System.IO namespace와 System.Data namespace의 형식들 MemoryStream - 차후 스트림을 다시 쓰는 경우 StreamReader, StreamWr..

[WPF] 프로그램 실행 시 시작 윈도우 변경하는 방법

WPF에서 프로그램을 실행했을 때 가장 먼저 뜨는 윈도우(창)을 변경하고 싶을 때가 있다. 아래 예시를 보자. 처음 WPF 프로젝트를 생성했을 때는 기본적으로 생성된 MainWindow가 프로그램 실행 시 시작 윈도도우로 설정된다. 이 시작 윈도우를 MainWindow가 아니라 만들어진 MainWindow가 아닌 AuthWindow라는 윈도우로 바꾸고 싶다면 App.xaml을 열어보자. App.xaml에 어떠한 변경 사항도 없었다면, Application 태그에서 StartupUri가 MainWindow로 지정된 것을 볼 수 있다. 이것이 프로그램 실행 시 시작 윈도우를 지정하는 부분이다. 이 StartupUri를 AuthWindow.xaml로 변경하면 된다.

NodeJS의 내장 객체 내용 간단 정리

console보통 디버깅을 위해 사용함. 변수 값 체크나, 에러 확인, 실행 경과 시간을 확인할 대 사용. console.time(레이블), console.timeEnd(레이블)같은 레이블을 가진 time과 timeEnd 사이에서 시간 측정. console.log(내용)로그를 콘솔에 표시. console.error(에러 메세지)에러를 콘솔에 표시. console.dir(객체, 옵션)객체를 콘솔에 표시할 때 사용. 첫 번째 인자로 표시할 객체를 넣고 두 번째 인자로 옵션을 넣음. depth는 객체 안의 객체를 몇 단계까지 보여줄 지 결정하며, 기본값 2. console.trace(레이블)에러 추적할 수 있게 해줌. 에러 발생 시점에 에러 위치가 나와서 흔히 사용하지는 않으나, 위치가 나오지 않을 때 사용...

데이터베이스(DB)와 DBMS의 특징과 정의

데이터베이스(DB; Database)어느 한 조직의 다양한 응용 프로그램들이 공동으로 사용하는 데이터들을 통합해 저장하고 운영하는 데이터의 집합. 정의에 함축된 개념공용 데이터(Shared Data)한 조직의 여러 응용 프로그램이 공동 사용여러 사용자가 서로 다른 목적으로 공유 통합된 데이터(Integrated Data)여러 부서에서 사용하는 데이터를 한 곳에 모아 공동 관리최소한의 중복, 통제된 중복 저장된 데이터(Stored Data)컴퓨터가 접근 가능한 저장 매체에 저장 운영 데이터(Operational Data)조직의 운영에 기본적으로 반드시 필요한 데이터를 저장고유한 기능을 수행하는데 필수적인 데이터를 저장 특징실시간 접근성(Real-Time Accessibility)질의(Query)에 대한 실..

C, C++] stdafx.h와 C2065(선언되지 않은 식별자입니다.)

비주얼 스튜디오(Visual Studio)로 코딩을 입문한 사람들이 자주 마주하는 오류 중 하나가 바로 "stdafx.h", 프리 컴파일 문제일 것이다. 입문자들 입장에선 프리컴파일이나, "stdafx.h" 같은 것이 뭔지 전혀 모르는 상황에서 이것이 무엇이라고 설명하는 건 크게 의미가 없을 것 같고, 이 게시물에서는 저 오류를 만났을 때 해결하는 방법을 이야기해볼까 한다. 이 문제는 특히 stdio.h(printf, scanf)가 아니라 iostream(cin, cout)을 사용할 때 주로 발생하는 문제인데, 이는 기본적으로 stdafx.h에 stdio.h가 미리 컴파일할 헤더 파일로 포함되어 있기 때문이다. stdafx.h // stdafx.h : 자주 사용하지만 자주 변경되지는 않는 // 표준 시스..

ARM에 대한 기초적인 지식

ARM;Advanced RISC Machine여러 회사의 투자를 통해 설립한 회사로 ARM 프로세서 코어를 IP(Intellectual Property;지적 재산권) 형태로 무수히 많은 반도체 제조 회사에 라이센싱함. 32 bit 임베디드 프로세서 시장의 70% 이상 차지하며, 저전력 고성능 퍼포먼스로 휴대용 장치에 많이 사용됨. 16 bit 명령어, Java 코드 가속, DSP 기능, 보안 기능을 제공함. - ARM CoreARM 프로세서의 명령어 셋을 실행가능한 HW로 이를 ARM 코어의 HW 구조를 ARM 구조라고도 함. ARM 시스템 코어가 구조와 성능 결정함. 하드 매크로 셀과 합성 가능한 코어로 제공. 하드 매크로 셀;Hard Macrocell(레이아웃 수준 설계, 설계 변경 불능, 코어 크기..

728x90