내용 정리 13

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한 방식이다. 분기점이 나오면 길 하나를 선택하고 더 이상 진행하지 못하는 시점까지 진행한다고 보면 이해하..

[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(레이아웃 수준 설계, 설계 변경 불능, 코어 크기..

임베디드 시스템(Embedded System) 마이크로 프로세서

마이크로 프로세서(MicroProcessor) 분류 데이터 처리 단위(CPU의 처리 데이터 기본 단위, 4, 8, 16, 32, 64 bit)명령어 구조(명령어 수/복잡도, RISC;Reduced Instruction Set Computer, CISC;Complex Instruction Set Computer)메모리 연결(CPU/메모리 간 연결 방식, 폰노이만식, 하바드식)사용 용도(MCU;MicroController Unit, ASP;Application Specific Processor, MPU;Micro Processing Unit, DSP;Digital Signal Processor) 상용 마이크로프로세서 1. 32bit x86인텔에서 나온 범용 컴퓨터용 프로세서들을 통칭하며, 대부분 범용 컴퓨터..

임베디드 시스템(Embedded System) 구조

임베디드 시스템 vs 범용 컴퓨터 프로세서 내장(프로세서, 메모리, 입출력 장치)로 구성되는 구조를 갖고, 하드웨어 성능 향상과 소프트웨어의 유연성 측면에서 두 가지 모두 고려하는 공조설계가 가능함. 또한, 소프트웨어 사용을 통해서 시스템 설계, 구현 시간 단축, 기능 확장성 등에서 용이함. 범용 컴퓨터의 범용성과 시스템 유연성이 떨어지는 것은 임베디드 시스템에서 특정 응용 분야에 최적화하는 과정, 그 과정에서의 성능 향상 추구로 인해 발생하는 부분. 주요 레지스터 PC;Program Counter다음 실행할 명령어가 저장된 프로그램 메모리의 주소값을 저장(프로그램 실행위치 저장)하며, PC 값을 변경해 프로그램의 실행 흐름 제어 IR;Instruction Register프로그램 메모리에서 읽어온 명령어..