Posts by Category

Algorithm

[Algorithm] C++/Python 백준 5670번 : 휴대폰 자판

9 minute read

휴대폰에서 영단어를 입력할 때 버튼을 누르는 횟수를 최소화하기 위해 자동완성 기능을 활용하는 문제이다. 이 문제는 Trie(트라이) 자료 구조 또는 재귀적인 접근 방식을 사용하여 효율적으로 해결할 수 있다.

[Algorithm] C++/Python 백준 3679번 : 단순 다각형

7 minute read

이번 글에서는 주어진 점들로 자기 교차 없이 단순 다각형을 구성하는 문제인 백준 3679번 “단순 다각형”을 소개하고, 이를 해결하기 위한 접근 방식과 구현 방법을 살펴보겠다. 이 문제는 기하학적 알고리즘과 정렬을 활용하여 해결할 수 있으며, 효율적인 구현이 요구된다.

[Algorithm] C++/Python 백준 3653번 : 영화 수집

6 minute read

상근이는 영화 DVD를 수집하는 열성적인 수집가이다. 그는 자신의 DVD 콜렉션을 탑처럼 쌓아 보관한다. 영화를 보고 싶을 때마다 DVD의 위치를 찾아서, 쌓여 있는 콜렉션이 무너지지 않도록 조심스럽게 해당 DVD를 꺼낸다. 영화를 다 본 후에는 그 DVD를 가장 위에 놓는다.

[Algorithm] C++/Python 백준 3176번 : 도로 네트워크

9 minute read

N개의 도시와 그 도시들을 연결하는 N-1개의 도로로 이루어진 도로 네트워크가 있다. 모든 도시는 유일한 경로로 연결되어 있으며, 각 도로의 길이는 입력으로 주어진다.

[Algorithm] C++/Python 백준 2618번 : 경찰차

8 minute read

경찰차들은 도시의 여러 사건을 처리하기 위해 최적의 경로를 찾아야 한다. 이때 두 대의 경찰차가 이동한 거리의 합을 최소화하는 것이 목표이다. 도시의 구조와 사건의 발생 위치가 주어졌을 때, 어떻게 하면 두 경찰차의 총 이동 거리를 최소화할 수 있을까?

[Algorithm] C++/Python 백준 1014번 : 컨닝

8 minute read

서강대학교의 최백준 교수님은 “컨닝의 기술”이라는 과목을 가르치고 있다. 이 과목은 상당히 까다롭기로 유명하여, 일부 학생들은 시험 도중 다른 학생의 답안을 베끼려는 시도를 한다.

[Algorithm] C++/Python 백준 17401번 : 일하는 세포

8 minute read

백준 17401번 문제인 “Red Blood Cell”은 적혈구가 변화하는 혈관 지도를 바탕으로 특정 시간 후에 특정 지점에 도달할 수 있는 경로의 수를 구하는 문제이다. 주어진 문제에서 우리는 N개의 거점과 그 사이의 변동하는 혈관 연결 정보를 이용하여 D초 후 특정 거점에 도달...

[Algorithm] C++/Python 백준 16287번 : Parcel

6 minute read

국제대학소포센터(ICPC: International Collegiate Parcel Center)는 전세계 대학생들을 대상으로 소포 무료 배송 이벤트를 진행하고 있다. 이 이벤트의 조건은 소포를 구성하는 물품이 정확히 4개이어야 하며, 이 4개 물품의 무게 합이 정확히 정해진 정수...

[Algorithm] C++/Python 백준 15678번 : 연세워터파크

6 minute read

연세대학교에서는 매년 여름 깜짝 워터파크를 개장한다. 워터파크 개장을 막는 것이 힘들다고 판단한 학교에서는 학생들이 워터파크를 더 즐길 수 있도록 정수 \(K_i\)가 쓰여진 징검다리 \(N\)개를 놓아 두었다. 학생들은 이 징검다리를 이용해 게임을 진행하며, 게임의 목표는 징검다...

[Algorithm] C++/Python 백준 14942번 : 개미

7 minute read

개미집은 n개의 방으로 구성되어 있으며, 이 방들은 1번부터 n번까지 번호가 부여되어 있다. 1번 방은 지면에 직접 연결되어 있는 방으로, 모든 개미는 이 방을 통해 지면으로 올라가고자 한다. 각 방은 서로 굴을 통해 연결되어 있으며, 굴을 이동하는 데는 굴의 길이만큼의 에너지가 ...

[Algorithm] C++/Python 백준 14517번 : 팰린드롬 개수 구하기 (Large)

5 minute read

팰린드롬(palindrome)이란 앞에서부터 읽으나 뒤에서부터 읽으나 같은 단어를 말한다. 예를 들어, ‘aba’나 ‘a’는 팰린드롬이며, ‘abaccbcb’나 ‘anavolimilana’는 팰린드롬이 아니다. 이번 문제에서는 주어진 문자열의 부분수열 중에서 팰린드롬이 되는 부분수...

[Algorithm] C++/Python 백준 13977번 : 이항 계수와 쿼리

6 minute read

이 문제는 주어진 여러 쌍의 \(N\)과 \(K\)에 대해 이항 계수 \(\binom{N}{K}\)를 계산하고, 그 결과를 1,000,000,007로 나눈 나머지를 구하는 문제이다. 입력으로는 여러 개의 쿼리 \(M\)이 주어지며, 각 쿼리마다 \(N\)과 \(K\)가 주어진다. ...

[Algorithm] C++/Python 백준 13141번 : 그래프 불태우기

8 minute read

그래프 불태우기 문제는 그래프의 모든 정점과 간선을 최소한의 시간 내에 불로 태우는 시점을 찾는 문제이다. 서훈이는 그래프의 한 정점에 불을 붙인 후, 불이 간선을 따라 전파되며, 불이 양 끝 정점에서 동시에 붙을 경우 간선의 중간 지점에서 불이 소멸된다. 이러한 특성을 고려하여 ...

[Algorithm] C++/Python 백준 6549번 : 히스토그램에서 가장 큰 직사각형

7 minute read

히스토그램은 여러 개의 직사각형이 연속적으로 나열된 도형으로, 각 직사각형은 너비가 1이고 높이는 다양한 값을 가질 수 있다. 이 문제에서는 주어진 히스토그램에서 가장 큰 넓이를 갖는 직사각형을 찾는 것이 목표이다. 예를 들어, 히스토그램의 막대 높이가 [2, 1, 5, 6, 2,...

[Algorithm] 두 수의 합(TwoSum)

21 minute read

“Two Sum” 문제는 특정 목표값에 도달하는 두 수의 인덱스를 찾는 인기 있는 코딩 도전 과제이다. 이 문제는 배열 내에서 두 수의 합이 주어진 목표값과 일치하는 쌍을 찾는 능력을 테스트한다. 이 문제를 해결하기 위해 여러 가지 방법을 살펴보자. 첫 번째로, 가장 간단한 방법인...

[Algorithm] 코딩 테스트의 역사와 현황

16 minute read

코딩 테스트는 1990년대에 마이크로소프트의 빌 게이츠에 의해 처음 도입되었으며, 이후 아마존, 페이스북, 구글 등 대형 기술 회사들에 의해 확산되었다. 국내에서는 2005년에 다음커뮤니케이션이 처음으로 코딩 테스트를 도입하였고, 이후 많은 기업들이 이를 채용 과정에 포함시키기 시...

[Algorithm] 알고리즘의 주제별 분류

28 minute read

알고리즘은 문제를 해결하기 위한 절차나 방법을 의미하며, 다양한 주제와 기법으로 분류될 수 있다. 기초적인 알고리즘으로는 최대값 또는 최소값을 찾는 방법과 유클리드 알고리즘이 있다. 탐색 알고리즘은 순서화된 리스트에서 특정 원소의 위치를 찾는 데 사용되며, 순차 탐색과 이진 탐색이...

[Sorting] 버블 정렬(Bubble Sort) 이해하기

21 minute read

버블 정렬(Bubble Sort)은 가장 간단한 정렬 알고리즘 중 하나로, 인접한 두 요소를 비교하여 정렬하는 방식이다. 이 알고리즘은 리스트의 모든 요소를 반복적으로 순회하면서, 두 인접한 요소의 크기를 비교하고, 순서가 잘못된 경우 이들을 교환하는 방식으로 작동한다. 이러한 과...

[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)번 회전시킨 결과를 출력한...

Back to Top ↑

CSharp

[Regex] 정규 표현식의 이해와 활용(C#)

20 minute read

정규 표현식(Regular Expression, Regex)은 문자열에서 특정 패턴을 찾거나, 대체하거나, 검증하는 데 매우 유용한 도구이다. .NET에서는 System.Text.RegularExpressions 네임스페이스를 통해 정규 표현식 기능을 제공하며, 이를 통해 복잡한 ...

[C#] C# 언어 둘러보기

13 minute read

C# 언어는 마이크로소프트에서 개발한 객체 지향 프로그래밍 언어로, .NET 플랫폼에서 실행되는 다양한 응용 프로그램을 작성하는 데 사용된다. C#은 강력한 형식의 언어로, 메모리 관리를 자동으로 수행하며, 비동기 프로그래밍과 같은 현대적인 프로그래밍 패러다임을 지원한다. 이 언어...

[C#] C# 인터페이스와 추상클래스의 차이점

11 minute read

C#에서 인터페이스와 추상 클래스는 객체 지향 프로그래밍의 중요한 개념으로, 이 둘은 비슷한 점이 많지만 여러 가지 차이점이 존재한다. 인터페이스는 클래스가 따라야 할 행동의 청사진을 제공하며, 모든 멤버가 추상 메서드와 상수로만 이루어져 있다. 반면, 추상 클래스는 일반 메서드와...

[C#] C# 프로그램의 일반적인 구조체

11 minute read

C# 프로그램은 여러 파일로 구성되며, 각 파일은 0개 이상의 네임스페이스를 포함할 수 있다. 네임스페이스는 클래스, 구조체, 인터페이스, 열거형 및 대리자와 같은 다양한 형식을 포함하며, 이러한 요소들은 프로그램의 구조를 형성하는 데 중요한 역할을 한다. 예를 들어, C# 프로그...

[C#] 객체 지향 프로그래밍(C#)

13 minute read

C#은 객체 지향 프로그래밍 언어로, 소프트웨어 개발에 있어 강력한 도구이다. 객체 지향 프로그래밍(OOP)의 네 가지 기본 원칙인 추상화, 캡슐화, 상속, 다형성을 통해 개발자는 코드의 재사용성과 유지보수성을 높일 수 있다. 이 문서에서는 C#을 사용하여 OOP의 개념을 실습하는...

[C#] C#에서 변수와 상수의 이해

13 minute read

C#에서 변수는 메서드 내에서 로컬 변수로 선언되거나 클래스 내에서 멤버들이 사용하는 전역적 변수인 필드(Field)로 선언될 수 있다. 로컬 변수는 해당 메서드 내에서만 사용되며, 메서드 호출이 끝나면 소멸된다. 반면 필드는 클래스의 객체가 살아있는 한 계속 존재하며 다른 메서드...

[C#] C# 데이터 타입

17 minute read

C#은 .NET 프로그래밍 언어의 하나로, 다양한 데이터 타입을 지원한다. C#에서 사용되는 데이터 타입은 .NET의 Common Type System에 정의된 타입을 기반으로 하며, 이는 C# 키워드와 .NET 데이터 클래스를 통해 표현할 수 있다. 예를 들어, int, doub...

[C#] C# 비동기 프로그래밍 async/await

18 minute read

비동기 프로그래밍은 현대 소프트웨어 개발에서 필수적인 기술로 자리 잡고 있습니다. 특히 I/O 바인딩된 작업이나 CPU 바인딩된 작업을 효율적으로 처리하기 위해 비동기 프로그래밍을 활용하는 것이 중요합니다. C#에서는 async와 await 키워드를 통해 비동기 코드를 쉽게 작성할...

[C#] 배열 (Array)

17 minute read

배열은 동일한 데이터 타입의 요소들로 구성된 데이터 집합으로, 인덱스를 통해 개별 배열 요소에 접근할 수 있는 구조이다. C#에서 배열은 0부터 시작하는 인덱스를 가지며, 첫 번째 요소는 인덱스 0을, 두 번째 요소는 인덱스 1을 갖는다. 배열의 요소는 대괄호([]) 안에 인덱스를...

[C#] Source Generators

3 minute read

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

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

1 minute read

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

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

less than 1 minute read

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

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

1 minute read

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

Back to Top ↑

Shell

[Shell] 명령어의 입력과 출력을 다루는 방법(I/O Redirection)

17 minute read

명령어의 입력과 출력을 다루는 방법은 리눅스 및 유닉스 환경에서 매우 중요한 기술이다. 이 기술은 사용자가 명령어의 결과를 파일로 저장하거나, 다른 명령어의 입력으로 전달할 수 있도록 해준다. 이를 통해 사용자는 효율적으로 데이터를 처리하고, 다양한 작업을 자동화할 수 있다. 입력...

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

less than 1 minute read

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

[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 #...

[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.

Back to Top ↑

.NET

[C#] Source Generators

3 minute read

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

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

1 minute read

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

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

less than 1 minute read

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

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

1 minute read

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

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

1 minute read

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

Back to Top ↑

Movie

[Movie] A Man Called Otto (2022)

2 minute read

“A Man Called Otto”는 마크 포스터 감독이 연출하고 톰 행크스가 주연을 맡은 2022년 개봉한 미국의 코미디 드라마 영화이다. 이 영화는 프레드릭 백만의 소설 “A Man Called Ove”를 원작으로 하며, 삶의 고통과 상실을 겪은 오토라는 남성의 이야기를 그린다...

[Movie] Ghost in the Shell (2017)

3 minute read

Ghost in the Shell (2017)은 미래 사회를 배경으로 인간과 기술의 융합을 탐구하는 사이버펑크 SF 영화로, 스칼렛 요한슨이 연기하는 메이저는 인간의 뇌를 제외한 모든 것이 기계로 대체된 최초의 사이보그로서 사이버 범죄와 싸운다. 영화는 시각적 스타일과 액션이 뛰어...

[Movie] Dune (2021)

7 minute read

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

[Movie] Ghosted (2023)

2 minute read

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

Back to Top ↑

Linux

[Linux] Linux(리눅스) 파일 시스템의 종류와 특징

19 minute read

리눅스 파일 시스템은 리눅스 기반 운영 체제의 기초로, 파일이 저장되고 조직되며 접근되는 방식을 규정한다. 이 시스템을 이해하는 것은 DevOps 엔지니어에게 매우 중요하다. 왜냐하면 파일 시스템은 시스템 성능, 보안 및 배포 프로세스에 영향을 미치기 때문이다. 이 글에서는 리눅스...

[Linux] Crontab 사용법

9 minute read

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

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

less than 1 minute read

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

[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++에 개해서 소개 한다.

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

1 minute read

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

Back to Top ↑

DesignPattern

[DesignPattern] 프로토타입 패턴

17 minute read

프로토타입 패턴은 객체를 생성하는 데 있어 기존 객체를 복제하여 새로운 객체를 생성하는 디자인 패턴이다. 이 패턴은 객체 생성 과정에서 발생할 수 있는 복잡한 로직을 간소화하고, 유사한 객체를 생성할 때 시간과 비용을 줄일 수 있는 장점이 있다. 프로토타입 패턴을 사용하면, 객체 ...

[DesignPattern] 빌더 패턴

17 minute read

빌더 패턴은 복잡한 객체를 단계별로 생성할 수 있도록 해주는 생성 디자인 패턴이다. 이 패턴은 동일한 생성 코드를 사용하여 다양한 유형과 표현의 객체를 생성할 수 있게 해준다. 예를 들어, 집을 짓는 과정을 생각해보자. 집을 짓기 위해서는 여러 단계가 필요하다. 벽을 세우고, 문을...

[DesignPattern] 추상 팩토리 패턴

19 minute read

추상 팩토리 패턴은 객체 생성의 유연성을 제공하는 디자인 패턴으로, 서로 관련된 객체들을 일관된 방식으로 생성할 수 있도록 돕는다. 이 패턴은 구체적인 클래스에 의존하지 않고, 제품군을 정의하고 이를 생성하는 인터페이스를 제공함으로써, 클라이언트 코드가 구체적인 제품의 생성 방식에...

[DesignPattern] 팩토리 메소드 패턴

15 minute read

팩토리 메소드 패턴은 객체 지향 프로그래밍에서 널리 사용되는 디자인 패턴 중 하나로, 객체 생성의 책임을 서브클래스에 위임하는 방식이다. 이 패턴은 객체를 생성하는 인터페이스를 정의하되, 어떤 클래스의 인스턴스를 생성할지는 서브클래스에서 결정하도록 한다. 이를 통해 클라이언트는 구...

[DesignPattern] 싱글턴 패턴

24 minute read

싱글턴 패턴은 객체 지향 소프트웨어 개발에서 자주 사용되는 디자인 패턴 중 하나로, 특정 클래스의 인스턴스가 오직 하나만 존재하도록 보장하는 패턴이다. 이 패턴은 전역적으로 접근할 수 있는 인스턴스를 제공하여, 여러 객체가 동일한 인스턴스를 공유할 수 있도록 한다. 싱글턴 패턴은 ...

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

9 minute read

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

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

12 minute read

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

[DesignPattern] 디자인 패턴

13 minute read

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

Back to Top ↑

Jekyll

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

1 minute read

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

[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의 기능을 사용하...

[Jekyll] Jekyll에서 Plantuml 사용하기

1 minute read

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

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

1 minute read

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

Back to Top ↑

Cpp

[C++] C++의 보안 및 시스템 프로그래밍에 대한 비판

22 minute read

C++는 강력한 프로그래밍 언어이지만, 보안 및 시스템 프로그래밍 관점에서 여러 가지 문제를 안고 있다. 최근 Herb Sutter의 기사를 통해 C++의 안전성 문제에 대한 논의가 활발히 이루어지고 있으며, 그가 제안하는 해결책은 많은 프로그래머들에게 희망을 주고 있다. 그러나 ...

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

9 minute read

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

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

less than 1 minute read

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

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

less than 1 minute read

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

Back to Top ↑

Python

[Python] 고급 파이썬 튜토리얼

13 minute read

파이썬은 매우 다재다능한 프로그래밍 언어로, 다양한 기술 분야에서 사용되고 있다. 일부 분야에서는 기본적인 파이썬 지식만으로도 충분하지만, 데이터 과학, 인공지능, 로봇 공학과 같은 분야에서는 고급 파이썬 지식이 필수적이다. 이 고급 파이썬 주제 튜토리얼에서는 다양한 고급 파이썬 ...

[Regex] 정규 표현식의 기초(Python)

17 minute read

정규식(정규 표현식)은 문자열에서 특정 패턴을 찾고 조작하는 데 사용되는 강력한 도구이다. 파이썬에서는 re 모듈을 통해 정규식을 사용할 수 있으며, 이를 통해 문자열 검색, 치환, 분할 등의 작업을 수행할 수 있다. 정규식의 기본 구성 요소는 메타 문자로, 이들은 문자열의 특정 ...

[Python] 기초 로깅 자습서

14 minute read

로깅은 소프트웨어 개발에서 필수적인 요소로, 프로그램의 실행 중 발생하는 다양한 이벤트를 추적하고 기록하는 데 사용된다. 개발자는 코드에 로깅 호출을 추가하여 특정 이벤트가 발생했음을 알리고, 이러한 이벤트는 설명 메시지와 함께 가변 데이터를 포함할 수 있다. 로깅의 중요성은 단순...

[Python] 함수형 프로그래밍 HOWTO

18 minute read

함수형 프로그래밍은 프로그래밍 언어의 한 패러다임으로, 프로그램을 함수의 적용과 조합을 통해 구성하는 방식이다. 이 방식은 수학적 함수의 개념에 뿌리를 두고 있으며, 함수는 일급 시민으로 취급되어 변수에 바인딩되거나 다른 함수의 인자로 전달될 수 있다. 함수형 프로그래밍의 주요 특...

Back to Top ↑

Database

[Database] 트랜잭션과 ACID의 이해

14 minute read

데이터베이스에서 트랜잭션과 ACID는 매우 중요한 개념이다. 트랜잭션은 여러 데이터베이스 작업을 하나의 단위로 묶어 처리하는 것을 의미하며, ACID는 이러한 트랜잭션이 가져야 할 네 가지 속성인 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation...

[Database] SQL 인덱스의 이해와 활용

16 minute read

데이터베이스는 데이터를 저장하고 특정 정보에 대한 사용자 접근을 제공하는 데 필수적이다. 이러한 기본 작업은 데이터베이스가 확장되고 데이터 양이 증가하며 데이터 처리 시간이 길어짐에 따라 점점 더 복잡해진다. 대규모 데이터베이스에서 빠르고 효율적인 데이터 검색을 위해 인덱스를 사용...

[Database] API 개발에서 흔히 발생하는 데이터베이스 성능 실수 5가지

30 minute read

API를 개발할 때 데이터베이스 성능은 매우 중요한 요소이다. 그러나 많은 개발자들이 흔히 저지르는 실수들이 존재하며, 이러한 실수들은 API의 전반적인 성능에 부정적인 영향을 미칠 수 있다. 본 글에서는 API 개발에서 자주 발생하는 다섯 가지 데이터베이스 성능 실수에 대해 살펴...

[Database] 관계형 데이터베이스와 비관계형 데이터베이스의 차이

15 minute read

관계형 데이터베이스와 비관계형 데이터베이스는 데이터 저장 및 관리 방식에서 본질적으로 다르다. 관계형 데이터베이스는 데이터를 테이블 형식으로 저장하며, 각 테이블은 행과 열로 구성되어 있다. 이러한 구조는 데이터의 무결성과 일관성을 유지하는 데 유리하며, SQL(Structured...

Back to Top ↑

Regex

[Regex] 정규 표현식의 기초(Python)

17 minute read

정규식(정규 표현식)은 문자열에서 특정 패턴을 찾고 조작하는 데 사용되는 강력한 도구이다. 파이썬에서는 re 모듈을 통해 정규식을 사용할 수 있으며, 이를 통해 문자열 검색, 치환, 분할 등의 작업을 수행할 수 있다. 정규식의 기본 구성 요소는 메타 문자로, 이들은 문자열의 특정 ...

[Regex] 정규 표현식의 이해와 활용(C#)

20 minute read

정규 표현식(Regular Expression, Regex)은 문자열에서 특정 패턴을 찾거나, 대체하거나, 검증하는 데 매우 유용한 도구이다. .NET에서는 System.Text.RegularExpressions 네임스페이스를 통해 정규 표현식 기능을 제공하며, 이를 통해 복잡한 ...

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

less than 1 minute read

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

Back to Top ↑

Markdown

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

1 minute read

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

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

1 minute read

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

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

1 minute read

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

Back to Top ↑

Docker

[Docker] 컨테이너: 진정한 혁신인가?

17 minute read

컨테이너 기술은 소프트웨어 산업에 혁신을 가져왔다. 과거에는 개발(Dev)과 운영(Ops) 간의 경계가 뚜렷하여, 개발자는 애플리케이션을 개발한 후 이를 운영팀에 넘겨야 했다. 이 과정에서 발생하는 환경 불일치와 배포의 복잡성은 많은 문제를 야기했다. 그러나 컨테이너는 이러한 문제...

Back to Top ↑

Git

Back to Top ↑

Programming

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

2 minute read

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

Back to Top ↑

Util

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

less than 1 minute read

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

Back to Top ↑

Rust

[Rust] Rust Atomics and Locks

less than 1 minute read

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

Back to Top ↑

webdevelopment

[WebDevelopment] 웹 폰트 로딩 전략

21 minute read

웹 폰트 로딩 전략은 웹 개발에서 중요한 요소 중 하나이다. 웹사이트의 성능과 사용자 경험을 향상시키기 위해 적절한 폰트 로딩 방법을 선택하는 것이 필수적이다. Zach Leatherman이 제안한 다양한 폰트 로딩 전략은 많은 개발자들 사이에서 공유되고 있으며, 이 글에서는 그 ...

[WebDevelopment] Broadcast Channel API로 브라우저 간 통신하기

9 minute read

현대 웹 애플리케이션에서 서로 다른 브라우저 컨텍스트(탭, 창, 프레임 또는 iframe 등) 간의 통신은 사용자 세션의 일관성을 유지하고, 업데이트를 전파하며, 협업 기능을 가능하게 하는 데 필수적이다. Broadcast Channel API는 개발자가 이러한 컨텍스트 간의 실시...

Back to Top ↑

Architecture

[Architecture] Generative AI 기업 아키텍처 설계

15 minute read

최적의 기업 아키텍처 설계는 모든 조직의 IT 시스템의 중추 역할을 하며, 이는 조직의 비즈니스 목표를 달성하기 위한 기초적인 구성 요소를 지원하는 데 필수적이다. 이러한 아키텍처는 최선의 관행, 명확하게 정의된 전략, 공통 프레임워크 및 엔지니어링 팀과 기타 이해관계자가 작업을 ...

[Architecture] C4 모델 쉽게 이해하기

12 minute read

C4 모델은 소프트웨어 아키텍처를 시각적으로 표현하기 위한 강력한 도구이다. 이 모델은 시스템을 다양한 추상화 수준으로 나누어 설명함으로써, 개발자와 이해관계자 간의 원활한 소통을 가능하게 한다. C4 모델은 크게 네 가지 다이어그램으로 구성되어 있다. 첫 번째는 컨텍스트 다이어그...

Back to Top ↑

API

[API] API Strategy의 중요성과 구현 방법

21 minute read

API(응용 프로그램 프로그래밍 인터페이스)의 발전을 되돌아보면, 2002년 제프 베조스의 유명한 지침이 떠오른다. 아마존의 CEO는 IT 조직에 데이터와 기능을 서비스 인터페이스를 통해 노출하고, 이러한 인터페이스를 외부화할 수 있도록 설계하라는 지시를 내렸다. 이는 게임 체인저...

[API] REST API와 GraphQL의 비교

16 minute read

REST API와 GraphQL은 현대 애플리케이션에서 데이터를 교환하기 위해 널리 사용되는 두 가지 주요 기술이다. REST는 HTTP 메서드(GET, POST 등)를 사용하여 클라이언트와 서버 간의 데이터 교환을 가능하게 하는 아키텍처 스타일이다. 반면, GraphQL은 클라이...

Back to Top ↑

LattePanda

Back to Top ↑

Tool

[Util] Tmux

less than 1 minute read

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

Back to Top ↑

Ubuntu

Back to Top ↑

Launchy

Back to Top ↑

Proxy

Back to Top ↑

uTorrent

Back to Top ↑

RDPWrapper

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

1 minute read

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

Back to Top ↑

Github Desktop

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

less than 1 minute read

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

Back to Top ↑

KakalTalk

Back to Top ↑

Corsair

Back to Top ↑

Utterances

Back to Top ↑

Plantuml

[Jekyll] Jekyll에서 Plantuml 사용하기

1 minute read

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

Back to Top ↑

RPM

Back to Top ↑

SW

SW 개발자 필수 마인드

less than 1 minute read

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

Back to Top ↑

Minimal Mistakes

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

2 minute read

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

Back to Top ↑

Kramdown

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

1 minute read

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

Back to Top ↑

MathJax

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

2 minute read

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

Back to Top ↑

Javascript

Back to Top ↑

CSS

Back to Top ↑

Clean Code

Back to Top ↑

Windows

Back to Top ↑

Monitor

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

less than 1 minute read

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

Back to Top ↑

Google Alart

Back to Top ↑

Blogtrottr

Back to Top ↑

OOP

Back to Top ↑

Garmin

Back to Top ↑

SearchEngine

Back to Top ↑

MarkWhen

Back to Top ↑

Torrent

Back to Top ↑

HyperV

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

1 minute read

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

Back to Top ↑

GitHub

Back to Top ↑

Prompting

Back to Top ↑

Plex

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

less than 1 minute read

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

Back to Top ↑

Automation

Back to Top ↑

Lyft

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

2 minute read

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

Back to Top ↑

ChatGPT

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

2 minute read

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

Back to Top ↑

AI

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

5 minute read

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

Back to Top ↑

Processor

[Processor] Understanding the Differences: CPU vs GPU

9 minute read

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

Back to Top ↑

Serverless

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

12 minute read

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

Back to Top ↑

Reinforcement

Back to Top ↑

Learning

Back to Top ↑

FileSystem

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

11 minute read

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

Back to Top ↑

TVShows

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

1 minute read

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

Back to Top ↑

softwaredevelopment

[SoftwareDevelopment] DDD(도메인 주도 설계)란 무엇인가

10 minute read

도메인 주도 설계(DDD, Domain Driven Design)는 소프트웨어 개발에서 비즈니스 도메인을 중심으로 설계하는 방법론이다. DDD는 복잡한 시스템을 효과적으로 관리하기 위해 도메인 전문가와 개발자 간의 협업을 강조하며, 이를 통해 소프트웨어의 구조와 언어가 비즈니스 도...

Back to Top ↑

typescript

[TypeScript] 리버스 맵핑 타입의 이해

13 minute read

리버스 맵핑 타입은 TypeScript의 강력하면서도 잘 알려지지 않은 기능으로, “매핑 타입을 역으로 실행”할 수 있게 해준다. 이는 주로 함수의 타입 매개변수를 값으로부터 추론하는 메커니즘이지만, infer 키워드를 사용하여 타입 수준에서도 동일한 추론 단계를 수행할 수 있다....

Back to Top ↑

management

[Management] Disagree and Commit - 이견을 제시하고 헌신하라

9 minute read

이견을 제시하고 헌신하라는 원칙은 현대 경영에서 중요한 개념으로 자리 잡고 있다. 이 원칙은 의사결정 과정에서 개인이 이견을 제시할 수 있도록 허용하지만, 결정이 내려진 후에는 모든 구성원이 그 결정의 이행에 헌신해야 한다는 것을 의미한다. 이는 합의의 함정, 즉 합의가 이루어지지...

Back to Top ↑

CollisionDetection

[CollisionDetection] 충돌 감지 알고리즘

10 minute read

충돌 감지(collision detection)는 컴퓨터 그래픽스, 게임, 로봇 공학 등 다양한 분야에서 필수적인 알고리즘이다. 이 알고리즘은 두 개 이상의 공간 객체가 서로 교차하는지를 감지하는 문제로, 특히 게임 개발에서는 캐릭터가 벽을 통과하지 않도록 하거나, 물체 간의 상호...

Back to Top ↑

MachineLearning

[MachineLearning] PyTorch vs JAX: A Critical Analysis

9 minute read

최근 머신러닝 연구자들 사이에서 PyTorch와 JAX의 비교가 활발히 이루어지고 있다. PyTorch는 그 유연성과 직관적인 API 덕분에 많은 연구자들에게 사랑받아 왔지만, 최근 JAX의 등장으로 인해 그 입지가 흔들리고 있는 상황이다. JAX는 DeepMind에서 개발한 프레...

Back to Top ↑

DataStructure

[DataStructure] 쿼드 트리(Quad Tree) 개념 정리

12 minute read

쿼드 트리는 2차원 공간을 4개의 동일한 구역으로 재귀적으로 세분화하여 분할하는 트리 구조의 데이터이다. 이 구조는 데이터베이스 검색, 이미지 처리, 지형 데이터 관리 등 다양한 분야에서 활용된다. 쿼드 트리는 각 내부 노드가 4개의 자식 노드를 가지며, 이를 통해 공간을 효율적으...

Back to Top ↑

SoftwareTesting

[SoftwareTesting] 소스 코드 테스트를 위한 메트릭

19 minute read

소스 코드 테스트에서의 메트릭은 소프트웨어 품질을 보장하는 데 중요한 역할을 한다. 특히 코드 커버리지와 테스트 커버리지는 소프트웨어 엔지니어링에서 필수적인 개념으로, 특정 테스트 스위트를 실행할 때 프로그램의 소스 코드가 얼마나 실행되었는지를 백분율로 측정한다. 높은 코드 커버리...

Back to Top ↑

DeepLearning

[DeepLearning] JAX vs PyTorch: Comparing Two Deep Learning Frameworks

19 minute read

딥러닝은 머신러닝 분야에서 점점 더 중요한 역할을 하고 있으며, 이를 위한 다양한 프레임워크가 존재한다. 그 중에서도 JAX와 PyTorch는 가장 인기 있는 두 가지 딥러닝 프레임워크로, 각각의 장점과 특징이 있다. JAX는 구글에서 개발한 비교적 새로운 프레임워크로, NumPy...

Back to Top ↑

Sorting,

[Sorting] 버블 정렬(Bubble Sort) 이해하기

21 minute read

버블 정렬(Bubble Sort)은 가장 간단한 정렬 알고리즘 중 하나로, 인접한 두 요소를 비교하여 정렬하는 방식이다. 이 알고리즘은 리스트의 모든 요소를 반복적으로 순회하면서, 두 인접한 요소의 크기를 비교하고, 순서가 잘못된 경우 이들을 교환하는 방식으로 작동한다. 이러한 과...

Back to Top ↑

TypeScript

[TypeScript] 타입 추론의 모든 것

20 minute read

타입스크립트(TypeScript)는 자바스크립트의 상위 집합으로, 정적 타입을 지원하는 프로그래밍 언어이다. 타입스크립트의 가장 큰 장점 중 하나는 타입 추론(Type Inference) 기능이다. 타입 추론이란, 개발자가 명시적으로 타입을 지정하지 않아도 타입스크립트 컴파일러가 ...

Back to Top ↑

Kubernetes

[Kubernetes] 멀티 클러스터 게이트웨이 API 설정하기

17 minute read

Kubernetes Gateway API는 CNCF에서 발표한 새로운 사양으로, Kubernetes Ingress 트래픽을 표준화하는 데 목적이 있다. 이제 서비스가 고가용성(HA)으로 구성되어 있다고 가정해 보자. (예를 들어, 다른 클라우드 환경에 있으며 Gateway를 통해 ...

Back to Top ↑

Technology

[Technology] CRDT(Conflict-Free Replicated Data Types)란

15 minute read

CRDT(Conflict-Free Replicated Data Types)와 OT(Operational Transformation)는 분산 시스템에서 데이터의 일관성을 유지하며 여러 사용자가 동시에 데이터를 수정할 수 있도록 돕는 기술이다. CRDT는 여러 컴퓨터에 걸쳐 복제된 데...

Back to Top ↑

microservices

[Microservices] 분산 아키텍처에서의 조정 패턴

11 minute read

현대의 분산 아키텍처는 다양한 요구 사항을 충족하기 위한 기술적 결정의 결과물이다. 아키텍트는 이러한 요구 사항을 기술적 결정으로 변환하고, 가장 객관적인 트레이드오프 분석을 수행해야 한다. 분산 아키텍처에서 상호작용 모델을 고려할 때 일반적으로 언급되는 세 가지 결합력은 통신, ...

Back to Top ↑

Refactoring

[Refactoring] 코드 리팩토링의 중요성과 모범 사례

17 minute read

소프트웨어 개발에서 리팩토링(refactoring)은 코드의 내부 구조를 개선하는 중요한 과정이다. 리팩토링의 목표는 기존 코드의 외부 동작을 변경하지 않으면서 코드의 가독성, 유지보수성 및 성능을 향상시키는 것이다. 이는 소프트웨어의 품질을 높이고 기술 부채(technical d...

Back to Top ↑

EntityFramework

[EntityFramework] EF는 당신이 생각하는 것보다 똑똑하다

18 minute read

Entity Framework (EF)는 C#과 같은 객체 지향 프로그래밍 언어에서 데이터베이스와의 상호작용을 간소화하는 강력한 ORM(Object-Relational Mapping) 도구이다. EF는 개발자가 데이터베이스 객체를 일반 C# 객체처럼 다룰 수 있게 해주며, 이를 통...

Back to Top ↑

Performance

[Performance] 지연 시간 메트릭 마스터하기: P90, P95, P99

15 minute read

지연 시간 메트릭은 서비스나 애플리케이션의 성능을 평가하는 데 중요한 역할을 한다. P90, P95, P99 지연 시간을 관찰함으로써 우리는 잠재적인 병목 현상을 식별하고 사용자 경험을 최적화할 수 있다. 서비스와 애플리케이션이 특정 지연 시간 내에 작동하는 것이 얼마나 중요한지,...

Back to Top ↑

Blockchain

[Blockchain] 제로 지식 증명(ZKP) 완벽 가이드

14 minute read

제로 지식 증명(Zero Knowledge Proof, ZKP)은 한 당사자(증명자)가 다른 당사자(검증자)에게 특정 진술이 참임을 증명할 수 있도록 하는 암호화 기술이다. 이 과정에서 증명자는 해당 진술의 진실성을 입증하기 위해 필요한 비밀 정보를 공개하지 않고도 검증자를 설득할...

Back to Top ↑

LangGraph

[LangGraph] LangGraph를 활용한 LLM 기반 애플리케이션 구축

13 minute read

LangChain의 생태계에서 LangGraph는 대규모 언어 모델(LLM)을 활용한 애플리케이션 구축을 위한 강력한 프레임워크이다. LangGraph는 복잡한 작업 흐름을 정의하고 실행하는 데 필요한 다양한 기능을 제공하며, 특히 순환 그래프를 통해 에이전트 간의 상호작용을 효율...

Back to Top ↑

architecture

[Architecture] Architecture Metapatterns

17 minute read

소프트웨어 및 시스템 아키텍처의 패턴은 수천 가지가 존재하며, 이들 각각은 특정한 문제를 해결하기 위해 고안된 것이다. 그러나 이러한 패턴들이 너무 많고, 그 이름이 서로 다르거나 심지어 혼란스러워지기까지 하면서, 개발자들은 패턴의 본질을 잊어버리기 쉽다. 예를 들어, ‘N-tie...

Back to Top ↑

DistributedSystems

[DistributedSystems] 분산 시스템 패턴

13 minute read

분산 시스템은 여러 컴퓨터나 장치에 걸쳐 다양한 구성 요소가 분산되어 있는 컴퓨팅 환경을 의미한다. 이러한 시스템은 데이터 저장, 메시징, 시스템 관리 및 컴퓨팅 기능을 처리하는 핵심 소프트웨어를 포함하고 있으며, 여러 복사본의 데이터를 동기화해야 하는 도전 과제를 안고 있다. 그...

Back to Top ↑