분류 전체보기

개발 공부/Flutter

플러터 예제 어플리케이션 구조 분석

개요본격적으로 플러터를 학습하기 전에, 이번 포스팅에서 기본적인 플러터의 예제 어플리케이션의 코드를 살펴본다.Symbols다음은 flutter run 명령어로 실행되는 기본 엔트리포인트 lib/main.dart의 심볼 목록이다.dart의 엔트리포인트 main 함수, 그리고 다음의 3가지 클래스로 이루어져있다.MyAppMyHomePage_MyHomePageStatemainvoid main() { runApp(const MyApp());}runApp() 함수의 인자로 MyApp()을 실행한다.Dart의 상수 생성자 기능을 이용한다.상수 생성자를 이용하려면 조건이 필요한데, 모든 필드가 final로 초기화 되어야한다.해당 내용은 여기를 참고했다.객체가 한번 빌드되면 어플리케이션 생명주기동안 동일하게 유지되므..

정보

옵시디언을 통한 학습을 돕는 플러그인 Quiz Generator

옵시디언최근에는 굉장히 좋은 메모 프로그램들이 많습니다. 그 중 제가 사용하는 옵시디언은 파일 기반 마크다운 편집기로 메모나 공부한 기록등을 남기기에 좋습니다. 커뮤니티 플러그인도 지원해서 플러그인들을 손쉽게 설치하고 이용할 수 있는 아주 강력한 장점이 있습니다. 학습자를 위한 플러그인 - Quiz Generator저는 주로 학습을 위한 용도로 옵시디언을 사용하고, 요약한 내용을 다시 태블릿에 필기하는 용도로 사용 중입니다. 그러다보니 학습한 내용을 LLM을 이용해 분석하고 복습 차원에서 퀴즈를 내주는 서비스를 찾아봐야겠다는 생각이 들었고, 여러 레퍼런스를 찾다보니 옵시디언 커뮤니티 플러그인 Quiz Generator를 발견 했습니다. Quiz Generator는 제가 생각하던 기능을 정확히 제공하고, ..

기록

글 쓰기

자료 수집출처가 분명하고, 신뢰할 수 있는 자료 확보개요 작성글 쓰기 전, 전체 글의 어떤 순서로 어떤 내용으로 글을 쓸 것인지 개요 작성본문 작성서론, 본론, 결론의 3단 구성으로 본문 작성 서론글을 작성하게 된 배경, 목적과 필요성, 글에서 다룰 주제 등 본론서론과 수집한 자료를 바탕으로 충분히 설명하고 글을 작성 결론앞에서 이야기 한 내용을 요약하고 정리, 일관성 있는 글을 위해서는 앞에서 작성한 내용을 요약 정리하고 개인적 견해를 정리해서 작성퇴고전체 글이 논리적으로 일관성 있게 작성 되었는지, 문장과 문장/ 문단과 문단 사이의 연결이 어색하지 않은지, 오탈자가 없는지 충분히 검토참고 문헌 작성참고한 자료의 출처 표기

개발 공부/CS

문자 집합과 인코딩, 디코딩

문자 집합(Character Set) 컴퓨터가 인식하고 표현할 수 있는 문자의 모음을 문자 집합이라고 한다. 예를 들어, 문자 집합이 {a, b, c, d}만 존재한다면 그 외의 문자들은 컴퓨터가 이해하지 못한다. 문자 집합에 속해있다고해서 컴퓨터가 그대로 문자를 이해할 수 있는 것은 아니다. 왜냐하면 컴퓨터는 0과 1만 이해할 수 있기 때문이다. 인코딩(Encoding) 문자 집합을 컴퓨터가 이해할 수 있도록 바이너리(2진수)로 변환하는 과정을 인코딩이라고 한다. 같은 문자 집합에도, 여러 인코딩 방법이 존재한다. 디코딩(Decoding) 인코딩의 반대로 0과 1로 이루어진 바이너리를 사람이 이해할 수 있는 문자로 변환하는 과정을 디코딩(Decoding)이라고 한다. 아스키 코드(ASCII) 아스키 코..

개발 공부/CS

컴퓨터 구조의 큰 그림

컴퓨터를 구성하는 핵심 부품들 메인보드 CPU 주 기억장치 보조 기억장치 입출력 장치 주 기억장치 주 기억장치는 주로 메모리 또는 램(RAM)이라고 불리며 정확한 명칭은 Random Access Memory이다. 현재 실행되는 프로그램의 명령어와 데이터를 저장하는 부품이다. 프로그램이 실행되려면 반드시 메모리에 먼저 저장되어야한다. CPU 메모리에 저장된 명령어를 읽어들이고, 해석하고, 실행하는 부품 CPU의 내부 구성장치들 ALU (Arithmetic Logic Unit) 계산만을 위한 CPU의 내부 구성장치 중 하나, 컴퓨터 내부에서 수행되는 대부분의 계산은 ALU가 한다. Register CPU 내부의 임시 저장장치, 프로그램을 실행하는데에 필요한 값을 임시로 저장한다. CPU 내부에는 여러개의 레..

개발 공부/CS

컴퓨터의 기본적인 정보단위

비트(Bit) 컴퓨터는 0과 1만 사용하는 2진수의 체계를 사용하여 정보를 읽고, 쓴다. 이 단위를 비트라고 부른다. 1 비트가 표현할 수 있는 수는 0과 1, 두가지 뿐이다. 바이트(Byte) 비트가 8개로 묶이면 바이트 단위가 된다. 1 바이트가 표현할 수 있는 수는 256가지가 된다. (2^8) 워드(Word) CPU가 한번에 처리할 수 있는 단위를 의미한다. 가령, 인텔 x86 CPU는 32비트 워드 CPU이며 이는 x86 CPU가 4바이트의 데이터를 한번에 처리한다는 것을 의미한다.

개발 공부/CS

이스케이프 시퀀스(Escape sequence)

프로그래밍을 공부하다보면 백슬래시 뒤에 문자나 숫자가 있는 형태의 문자를 볼 수 있습니다. 이를 이스케이프 시퀀스라고 부릅니다. 대표적으로 사용되는 이스케이프 시퀀스중 하나는 줄바꿈 문자인 "\n"이 존재합니다. 이런 이스케이프 시퀀스는 단일 문자로 간주 되므로 C의 char(1 바이트, 문자 하나만을 나타내는 타입) 타입에 사용될 수 있습니다. 다른 언어에서도 마찬가지입니다. 이스케이프 시퀀스 설명 \a 경고 (경고음 출력) \n 줄바꿈 \t 수평 탭 \v 수직 탭 \b 백스페이스 \f 폼 피드 \r 캐리지 리턴 \' 작은 따옴표 \\ 백슬래시 \? 리터럴 물음표 \ooo 8진수 표기법의 ASCII 문자 \xhh 16진수 표기법의 ASCII 문자 만약 위 표에 없는 문자를 백슬래시 이후에 사용하는 경우..

개발 공부/Rust

Rust 구조체와 메소드 문법

얼마전부터 프로그래밍 언어인 러스트에 관심이 생겨서 공부중입니다. match 제어 흐름문이나 러스트만의 메모리 관리 모델인 소유권등 다른 언어와 다른 점이 많지만 재미있는 언어인 것 같습니다. 아무튼 오늘은 러스트의 구조체와 메소드 문법에 관해 간단하게 정리하고, 아이폰과 갤럭시를 제조하는 코드를 짜보면서 실습 해보겠습니다. 구조체 구조체는 struct 키워드를 통해 정의합니다. 구조체 내부의 각각의 데이터 조각은 필드라고 부릅니다. 구조체를 인스턴스화하여 사용할 때는 구조체에 정의된 모든 필드가 반드시 입력되어 있어야 합니다. 즉 특정 필드나 일부만 가진 구조체를 만들 수 없습니다. 구조체 정의와 인스턴스 생성 예시 struct Coordinate { x: i32, y: i32, } fn main() ..

개발 공부/NestJS

Multer를 사용해 ImgBB에 이미지 올리기

개요 쇼핑몰 API 토이 프로젝트를 진행하고 있는데 상품의 이미지 관련 서비스가 필요 했습니다. 이미지를 저장할 서버가 없기에 ImgBB에서 제공하는 API를 통해 이미지를 ImgBB에 업로드하고, 해당 이미지의 정보만 데이터베이스에 저장하려고 합니다. 우선 Multer를 사용하기 위해 프로젝트에 패키지를 설치합니다. $ npm i -D @types/multer 단일 파일 핸들 @UseInterceptors(FileInterceptor('image')) async uploadProduct( @UploadedFile() image: Express.Multer.File, ) { // ... } 파일 핸들을 위해 NestJS에서는 인터셉터를 사용합니다. FileInterceptor의 첫번째 매개변수에 폼 데이..

개발 공부/Docker

Docker Compose 사용해보기

개요 Docker Compose는 다중 컨테이너로 구성된 어플리케이션을 관리하기 위한 도구입니다. YAML 파일에 어플리케이션의 서비스를 구성하고 단일 명령으로 실행합니다. 먼저, 저는 Docker Desktop과 docker-compose를 미리 설치해놓은 환경에서 진행함을 알립니다. 프로세스 Docker Compose는 기본적으로 3단계의 프로세스로 구성되어 있습니다. 1. 어플리케이션의 환경을 Dockerfile로 정의 2. 격리된 환경에서 함께 실행 할 수 있도록 앱을 구성하는 서비스를 docker-compose.yml 파일에 정의 3. docker-compose up 명령어로 실행하면 전체 앱을 시작하고 실행 실습을 위해 간단한 웹 서버를 구현하고 위 프로세스를 진행 해보겠습니다. 폴더 구조 일..

게으른 제이
'분류 전체보기' 카테고리의 글 목록