Posts by Year

2024

[Algorithm] C++ 백준 2252번 : 줄 세우기

3 minute read

백준 2252번 “줄 세우기” 문제는 N명의 학생을 키 순서대로 줄을 세우는 것이다. 일부 학생들의 키 비교 결과가 주어지며, 이를 바탕으로 모든 학생이 키 순서대로 줄을 서도록 정렬해야 한다. 입력으로 학생 수 N과 비교 횟수 M이 주어지고, M개의 키 비교 결과가 주어진다. 이...

[Algorithm] C++ 백준 2206번 : 벽 부수고 이동하기

2 minute read

“벽 부수고 이동하기” 문제는 N×M 크기의 2차원 배열로 주어진 맵에서 (1,1)에서 (N,M)까지 이동하는 최단 경로를 찾는 것이다. 이동은 상하좌우로 가능하며, 벽(1)을 최대 한 개까지 부술 수 있다. BFS를 활용하여 벽을 부순 상태와 부수지 않은 상태를 구분하여 최단 경...

[Algorithm] C++ 백준 1005번 : ACM Craft

4 minute read

ACM Craft 문제는 여러 건물을 짓기 위해 주어진 순서와 시간을 고려하여 특정 건물을 완성하는 데 필요한 최소 시간을 계산하는 문제이다. 각 건물은 다른 건물들이 완성된 후에야 지을 수 있으며, 주어진 건설 순서 규칙에 따라 건물들 간의 의존 관계가 형성된다. 목표는 주어진 ...

[Algorithm] C++ 백준 1027번 : 이동

2 minute read

BOJ 1067 문제는 주어진 배열을 왼쪽 또는 오른쪽으로 특정 횟수만큼 회전시키는 문제이다. 입력으로 배열의 길이 (N), 배열의 원소들, 회전 횟수 (K), 회전 방향 (D)가 주어지며, (D)가 ‘L’이면 왼쪽으로, ‘R’이면 오른쪽으로 배열을 (K)번 회전시킨 결과를 출력한...

[Movie] Dune (2021)

7 minute read

『듄』은 프랭크 허버트가 쓴 동명의 소설을 바탕으로 한 공상과학 영화이다. 이 영화는 복잡한 정치, 종교, 환경적 메시지를 포함한 광대한 우주를 배경으로 하며, 아트레이데스 가문의 상속자인 폴 아트레이데스의 여정을 중심으로 전개된다. 영화의 스토리는 폴이 자신의 정체성, 운명, 그...

[TVShows] Car Masters: Rust to Riches - Season 05 (2023)

1 minute read

Car Masters: Rust to Riches”는 넷플릭스에서 방영되는 미국의 리얼리티 텔레비전 시리즈이다. 이 프로그램은 고담 개러지 팀이 주도하는데, 이들은 영화 스튜디오와 텔레비전 쇼를 위한 다양한 소품을 제작해 왔다. 주요 인물로는 마크 타울, 토니 퀴노네스, 콘스탄스 ...

Back to Top ↑

2023

[Movie] Ghosted (2023)

less than 1 minute read

“Ghosted”는 2023년에 개봉한 미국의 로맨틱 액션 모험 코미디 영화다. 감독은 덱스터 플레처이며, 주연 배우로는 크리스 에반스와 아나 데 아르마스가 출연한다. 이 영화의 줄거리는 콜(크리스 에반스)이 신비로운 새디(아나 데 아르마스)에게 반하면서 시작되는데, 새디는 사실 ...

The Burial 2023

less than 1 minute read

영화 “The Burial”은 흥미로운 배경과 강렬한 스토리라인을 가진 작품입니다. 이 영화의 주인공은 제레미아 오’키프(Jeremiah O’Keefe)로, 그는 미시시피 남부에서 여러 장례식장을 소유하고 있으며 장례 보험 브로커로도 일하고 있습니다【10†source】. 1995년...

[FileSystem] Btrfs: 데이터 보호 및 백업을 위한 차세대 파일 시스템

11 minute read

파일 시스템 분야에서 Btrfs는 Unix/Linux 시스템을 위한 강력하고 다재다능한 옵션으로 두각을 나타내고 있습니다. 오라클, 후지쯔, 레드햇의 전문가 팀이 개발한 Btrfs는 다양한 애플리케이션에 매력적인 선택이 될 수 있는 다양한 기능을 제공합니다. 데이터 무결성 및 효율...

[DesignPattern] Abstract Factory Pattern - 추상팩토리 패턴

9 minute read

소프트웨어 엔지니어링에서 디자인 패턴은 유연하고 유지 관리 가능한 코드를 만드는 데 중요한 역할을 합니다. 이러한 디자인 패턴 중 하나가 추상 팩토리 패턴입니다. 이 패턴을 사용하면 구체적인 클래스를 지정하지 않고도 관련 객체의 제품군을 생성할 수 있습니다. 이 패턴은 공통 주제를...

[Linux] Crontab 사용법

9 minute read

소프트웨어 개발 분야에서는 자동화가 핵심입니다. 반복 작업을 예약하는 기능은 시간과 노력을 절약하여 개발자가 업무의 더 중요한 측면에 집중할 수 있도록 해줍니다. 이러한 자동화를 가능하게 하는 강력한 도구 중 하나는 Linux Crontab입니다.

[DesignPattern] Builder pattern - 생성과 표현의 분리

12 minute read

소프트웨어 개발 분야에서 복잡한 객체를 생성하는 것은 종종 어려운 작업일 수 있습니다. 선택적 속성이 많은 객체는 구성 프로세스가 번거롭고 오류가 발생하기 쉽습니다. 이때 빌더 패턴이 도움이 됩니다.

[DesignPattern] 디자인 패턴

13 minute read

디자인 패턴은 소프트웨어 설계에서 발생하는 일반적인 문제에 대한 재사용 가능한 솔루션입니다. 디자인 패턴은 이러한 문제를 구조적이고 효율적인 방식으로 해결할 수 있는 방법을 제공합니다. 이 블로그 게시물에서는 디자인 패턴의 세계와 소프트웨어 개발에서 디자인 패턴의 중요성, 다양한 ...

[Networking] API Gateway와 Load Balancer 비고

9 minute read

“API 게이트웨이”와 “로드 밸런서”는 언뜻 보기에는 비슷한 기능을 수행하는 것처럼 보일 수 있습니다. 둘 다 네트워크 트래픽을 관리하고 요청이 효율적으로 처리되도록 하는 데 관여합니다. 그러나 이들은 매우 다른 용도로 사용되며 네트워크 아키텍처의 서로 다른 계층에서 작동합니다....

[Serverless] 서버리스 모놀리스의 등장: 소프트웨어 아키텍처의 새로운 패러다임

12 minute read

끊임없이 진화하는 소프트웨어 개발 환경에서 애플리케이션 아키텍처는 상당한 변화를 겪어왔습니다. 애플리케이션의 모든 로직이 단일 코드베이스에 포함되어 있던 모놀리식 아키텍처의 초창기부터 마이크로서비스 시대로 전환되었습니다. 이러한 변화는 보다 확장 가능하고 유지 관리가 용이한 시스템...

[Processor] Understanding the Differences: CPU vs GPU

9 minute read

컴퓨팅 세계에서는 중앙 처리 장치(CPU)와 그래픽 처리 장치(GPU)라는 두 가지 핵심 구성 요소가 시스템 성능에 중요한 역할을 합니다. 비슷해 보일 수 있지만, 이 둘은 고유한 기능과 성능을 가지고 있습니다.

[AI] AI의 미래 - 기회, 위험, 오픈 소스 연구의 필요성

5 minute read

인공지능(AI)은 현대 기술의 초석이 되어 의료에서 금융, 교육에서 엔터테인먼트에 이르기까지 무수히 많은 분야에 영향을 미치고 있습니다. 공상 과학 소설의 소재였던 혁신과 효율성의 기회를 제공하면서 세상을 혁신할 수 있는 잠재력은 엄청납니다. 그러나 다른 강력한 도구와 마찬가지로 ...

[C/C++] C++의 동적 로딩(Dynamic loading) 이해하기

9 minute read

동적 로딩(Dynamic loading)은 런타임에 프로그램에서 코드 모듈을 로드하고 언로드할 수 있는 C++의 강력한 기능입니다. 이 기능은 공유 라이브러리의 동적 로딩을 가능하게 하는 함수 집합인 dlopen API를 통해 제공됩니다.

[ChatGPT] ChatGPT의 품질이 저하된것 같은 느낌에 대한 생각

2 minute read

인공지능(AI)은 기술 업계의 판도를 바꾸어 왔으며, OpenAI의 GPT-4도 예외는 아닙니다. 그러나 최근 해커 뉴스 플랫폼에서 이 AI 모델을 둘러싼 몇 가지 우려와 논쟁에 대한 논의가 있었습니다. 이 블로그 게시물은 이러한 논의를 자세히 살펴보고 당면한 문제에 대한 포괄적인...

[Lyft] Lyft의 비밀스러운 계획: 자체 지도와 미래를 통제하다

2 minute read

안녕하세요, 여러분! 오늘은 Lyft와 OpenStreetMap에 대한 흥미로운 주제를 다루려고 합니다. Lyft가 자체 지도 시스템을 구축하려는 이유와 그 방법, 그리고 이것이 어떻게 회사의 미래에 영향을 미칠 것인지에 대해 알아보겠습니다. 또한, 이 모든 것이 가능하게 한 Op...

[C/C++] gcc로 dlopen 하는 방법

less than 1 minute read

dlopen을 사용하는 이유는 프로그램이 실행되는 동안 동적으로 라이브러리를 로드하거나 언로드하고 함수를 호출할 수 있기 때문입니다. 또한, 라이브러리를 동적으로 로딩하면 그 라이브러리의 코드를 전체 프로그램의 코드에 미리 포함시키지 않고도 필요할 때마다 로드할 수 있기 때문입니다.

[Linux] 용량 측정할때 Symlink도 포함하기

less than 1 minute read

심링크(symlink)는 파일 시스템에서 사용되는 특별한 파일 유형입니다. 심링크는 파일이나 디렉터리에 대한 다른 이름을 제공합니다. 심링크는 실제 파일 또는 디렉터리를 가리키는 링크로, 실제 파일을 복사하는 것이 아니라 심링크를 생성하여 그것을 가리킵니다.

[Plex] Windows에서 Plex media server 재실행하는 스크립트

less than 1 minute read

소프트웨어에 문제가 발생했을때, 보통은 재부팅이나 재실행을 하는 경우에 문제가 해결되는 경우가 많다. 그러나 서버에 접근하기 힘들거나 반복적으로 재실행을 하는 경우에는 스크립트를 사용하면 편하다. 본 글에서는 Plex media server를 스크립트로 재 실행 하는 방법에 대해서...

[Rust] Rust Atomics and Locks

less than 1 minute read

Rust를 사용하여 동시성(Concurrency)을 가진 프로그램을 작성할 때 도움이 되는 내용을 담고 있다.

Back to Top ↑

2022

[HyperV] 원격(RPD, Chrome 원격 데스크톱 등) 사용시 은행 사이트에 접근 안되는 것을 HyperV로 해결하기

1 minute read

태블릿이나 스마트폰에서 윈도우를 사용해야 하는 경우가 종종 있다. 예를 들어 어떤 작업을 해야 하는데 모바일 기기에서는 지원하는 기능이 아니라고 해보자. 그럴 때는 아래의 그림에서 보는 것처럼 다양한 원격 프로그램을 사용해서 모바일 기기에서 원도우로 원격으로 접속해서 처리 할 수 ...

[Shell] 명령어 반복 실행 (watch, while)

less than 1 minute read

가끔 같은 명령어를 주기적으로 실행해야 할 때가 있다. 예를 들어 시스템의 자원 사용량을 모니터링하거나, 특정 명령어를 반복적으로 입력해서 결과를 확인해야 할 때, 사용할 수 있는 방법을 알아보자.

[Linux] File System 종류- DebugFS, SecurityFS, PipeFS, SockFS

3 minute read

리눅스에는 다양한 목적을 가지고 있는 가상 파일 시스템을 가지고 있다. 파일 시스템을 사용하든 간에 관계없이 프로그램을 작성할 땐 open, read, write, close와 같은 시스템 호출을 사용해서 이 모든 걸 처리할 수 있다. 지금은 이게 모두 당연하지만, 예전에는 그렇지...

[Linux] btop++ - 리눅스용 Processor, Memory, Disks, Network and Processes 모니터

less than 1 minute read

리눅스를 사용할 때 top명령어를 사용해서 CPU를 모니터링 해본적이 있는가? 너무 보잘것 없는 UI에 실망한적이 있는가? 다른 리소스의 사용량도 확인 해 보고 싶은 생각은 없었는가? 본 글에서는 PC의 자원은 한 화면헤서 확인 할 수 있는 btop++에 개해서 소개 한다.

[C#] Source Generators

3 minute read

Source Generators를 사용하면 C# 개발자가 컴파일되는 사용자 코드를 검사(Inspect)할 수 있다. Source Generators는 컴파일 과정중에 새 C# 코드를 추가 할 수 있다. 이러한 방식으로 컴파일 과정둥에 동작하는 코드가 있다면, 해당 코드는 프로그램을...

[C#] string 객체 사용에서 흔히 하는 실수

1 minute read

한 메서드 안의 로컬 변수들은 그 메서드가 끝날 때 해제되게 된다. Value 타입의 변수는 함수 리턴과 동시에 스택에서 해제되고, Reference 타입의 변수는 GC (Garbage Collector)에 의해 힙상에서 자동 해제되게 된다. 프로그래머들이 흔히 범하는 실수중의 하...

[Pair Programming] 페어 프로그래밍 안티 패턴들

2 minute read

페어 프로그래밍은 애자일 개발 방법론 중의 하나로 하나의 개발 가능한 PC 에서 두 명의 개발자가 함께 작업하는 것을 말합니다. 네비게이터(navigator)가 전략을 제시하고 드라이버(driver)가 실제 코드를 작성하며, 이 열할을 각자 번갈아가며 수행합니다.

[Jekyll] 코드 카피 버튼 만들기

1 minute read

아래의 그림처럼 개발 블로그에서는 코드 복사를 위한 Copy 버튼이 있는 것을 종종 확인 할 수 있다. Java Script를 이용하여 콘텐츠의 내용을 바꾸지 않고 Copy 버튼을 삽입 할 수 있는 방법에 대해서 알아본다.

[MathJax] Markdown에서 LaTeX로 수식 작성하기

2 minute read

수학자들이 사용할 것만 같은 화려한 수식이 아니더라도 분수나 제곱근과 같이 수식으로 표현해야 좋은 내용이 있다. 본 게시글에서는 여러분의 웹 페이지에 MathJax를 사용하여 수식을 표시하는 방법에 대해서 알아볼 것이다.

[C#] long -> int 변환하기

less than 1 minute read

기본 데이터 형식을 다른 데이터 형식으로 변환하는 방법에 대해서 알아본다.

[Kramdown] Kramdown으로 랜더링되는 code 영역에 줄번호 표시하기

1 minute read

Jekyll로 구성된 웹페이지는 Markdown과 비슷한 Kramdown을 사용하는 경우가 많다. 기본적으로 Kramdown문법이 Markdown과 같아서 글을 작성하는 데 어려움이 없고 Markdown보다 더 많은 기능을 제공한다. 코드를 표시할 때 ```을 사용하여 표시한다. ...

[Minimal Mistakes] Minimal Mistakes 페이지 넓게 보기

2 minute read

Minimal Mistakes Jekyll theme을 사용하여 Gibhub 페이지를 구성한 경우에는 최대 너비가 지정되어 있어 일정 크기 이상으로 넓어지지 않는다. Sample Post에서 Minimal Mistakes Jekyll theme가 어떻게 동작하는지 확인 할 수 있다...

[Jekyll] 이미지에 캡션 추가하기

1 minute read

이미지를 사용하여 포스팅하는 경우에 이미지에 캡션을 추가하고 싶은 욕구가 막 생길 때가 있다. 이럴 때 사용할 수 있는 방법을 알아보도록 한다. Jekyll을 사용하여 웹사이트를 구성한 경우에는 크게 Markdown만을 사용하여 캡션을 추가하도록 하거나 Jekyll의 기능을 사용하...

[C#] 클래스와 구조체 간의 선택

1 minute read

모든 개발자에 있어서 코드에 대한 기본적인 결정 사항 중 하나는 클래스(참조 형식)를 사용해서 표현할 것인지 아니면 구조체(값 형식)를 사용해서 표현할 것인지를 결정하는 것이다. 클래스 및 구조체 동작의 차이점을 이해하는 것은 이를 선택하는 데 매우 중요하다.

Back to Top ↑

2021

SW 개발자 필수 마인드

less than 1 minute read

SW 개발자가 가슴에 품고 있어야 하는 기본적인 마음가짐에 대해서 다루어 본다.

[Jekyll] Jekyll에서 Plantuml 사용하기

1 minute read

온라인에서 무료로 UML을 그리는 툴 중에서 이라는 사이트가 있다. 해당 사이트에서 다양한 기능을 제공하고 있다. 본 글에서는 GitHub Page에서 PlantUML을 사용 할 수 있는 방법을 알아본다.

[Regex] C#에서 Regex로 검색한 결과를 재사용하는 방법

less than 1 minute read

문자열에서 내가 원하는것을 검색하고 변경하고 삭제하는 작업을 하는데 있어서 Regex는 매우 좋은 방법이다. 본 글에서는 Regex에서 검색된 결과를 재사용하는 방법에 대해서 알아 본다.

[GBS] device is busy 문제 해결 방법

1 minute read

리눅스에서 gbs로 개발을 하다보면 gbsroot가 제대로 unmount가 되지 않아서 문제가 발생할 수 있다. 이러한 경우에 해결하는 방법을 알아 보자.

[C/C++] define 문을 namespace안에 선언하는건 의미가 없다.

less than 1 minute read

전처리기인 Define 문을 namespace로 다른 코드와 분리 하여 사용하고 싶을 수가 있다. 하지만 define문은 namespace로 경계를 나눌 수 없다. 아래의 예시를 보고 왜 경계를 나눌 수 없는지 생각해 보자.

[C#] Runtime에 따른 Finalizer 호출 차이

1 minute read

대부분의 개발자는 자기의 경험이나 생각에 따라서 코드를 작성 하는 경우가 많다. 하나의 예시로는 C++개발에 익숙한 개발자들이 C#으로 개발을 시작할때 Class Finalizer에서 자원을 관리 하는 경우이다.

[Github Desktop] 이제는 commit과 push가 빨라졌어요

less than 1 minute read

GithubDesktop 2.6.4 이전의 버전들은 commit과 push가 매우 느려서 사용하기 풀편했었다. 그러나 최근에 업데이트된 2.7.1 버전은 매우 빼른 속도로 작업이 이루어 지고 있다. 그래서 CMD나 Shell 기반의 GitClient를 사용하지 않고도 윈도우기반의 ...

[Jekyll] 모아 볼 수 있는 콜렉션 만들기

1 minute read

포스팅만을 이용해서 글을 작성하는것은 블로거로써 충분한 일이지만 종류별로 세분화 할 수 있는 글을 모아두기에는 적절하지 않은것 같아서 아래와 같이 콜렉션 별로 글을 볼 수 있도록 추가 하였다.

[RDPWrapper] Windows 10 Pro 20H2에서 not supported issue 해결하기

1 minute read

RDP Wrapper는 윈도우 원격을 여러명이서 동시에 사용할 수 있도록 해주는 좋은 프로그램이다. 하지만 그냥 설치 했을때는 not supported 문제가 발생하여 사용을 할 수 없는 경우가 있다. 본 게시물에서는 Win 10 Pro 20H2에서 not supported문제를 ...

Back to Top ↑

2020

[Shell] 날짜로 정렬해서 파일 목록 뽑기

less than 1 minute read

Method 1: 오래된 파일 부터 보이기 This is useful if you want to check and erase old files. Check the old files by putting the -r option on top. 1 2 3 4 5 6 7 8 9 10 #...

Back to Top ↑

2019

[Shell] Exit and exit status

3 minute read

The exit command terminates a script, just as in a C program. It can also return a value, which is available to the script’s parent process.

[Util] Tmux

less than 1 minute read

Tmux 터미널 세션 안에서 여러 별도의 터미널 세션에 액세스할 수 있도록 여러 가상 콘솔을 다중화 Tmux 관련 유틸 tmuxifier Window와 Session의 셋팅을 미리 지정하고 불러와서 사용 tmuxifier

Back to Top ↑

2018

Back to Top ↑