728x90
728x90
- [ 프로그래밍/42 Gyeongsan ]Born2beRoot2025-08-05 18:53:21들어가며이번에 다룰 과제는 Born2beroot 과제이다. 나는 시간이 없어 아쉽게도 Debian으로 과제를 수행했지만, 과제 정리만큼은 Rocky Linux의 핵심 개념을 정리해보고자 한다. Born2beroot 과제를 수행하기 위해 Rocky Linux를 사용하는 경우 필요한 주요 사전 지식은 다음과 같다.LVM(Logical Volume Manager): 디스크 파티셔닝과 유연한 스토리지 관리 기법UFW(Uncomplicated Firewall): 방화벽 설정 및 네트워크 보안SSH 보안 설정: 원격 접속 보안 강화 및 설정 방법Sudo와 사용자 관리: 권한 관리 및 보안 설정SELinux: 시스템 보안 정책 및 적용 방법Hostname 및 네트워크 설정: 서버의 네트워크 환경 구성기본적인 서비스 ..
- [ 프로그래밍/Unity Engine ]Unity의 비동기 프로그래밍: 코루틴, 스레드, 그리고 최신 대안들2025-07-30 02:56:57들어가며얼마 전, 모 회사에서 "Unity Engine의 코루틴과 스레드의 차이점이 무엇인가?"에 대한 질문을 받았고, 제대로 대답하지 못하여 부끄러웠던 경험이 있었다. 때문에, 이 글을 바탕으로 이 둘의 공통점과 차이점 그리고 최신 대안들까지에 대한 것들을 정리해보고자 한다. Unity Engine은 비동기 프로그래밍을 위한 여러 접근 방식을 제공하며, 각각은 고유한 기술적 구현과 성능 특성을 가진다. 코루틴은 협력적 멀티태스킹을 사용하여 메인 스레드에서 실행되는 반면[^1], 스레드는 진정한 병렬성을 제공하지만 Unity API에 접근할 수 없다[^2]. 최신 Job System과 Burst 컴파일러는 두 방식의 장점을 결합하여 기존 접근법보다 10배에서 100배의 성능 향상을 달성하는 안전한 멀티스..
- [ 프로그래밍/42 Gyeongsan ]ft_printf - ft_putnbr()과 ft_putstr()만으로는 충분하지 않기 때문에2025-07-20 19:28:56들어가며printf는 C 표준 라이브러리의 대표적인 출력 함수로, 서식 문자열(format string)을 해석하여 가변 인자들을 형식화된 텍스트로 변환하고 표준 출력(stdout)에 출력한다. 이 글에서는 printf 함수의 작동 원리와 주요 기능, 가변 인자 처리 기법(stdarg.h 활용), 출력 버퍼링과 성능 최적화, 구현 시 직면할 수 있는 문제점과 그 해결 방법을 알아본다. 또한 표준 printf와 이를 재구현하는 과제인 ft_printf의 차이점을 분석하고, 간단한 구현 예제 코드를 통해 내부 동작을 설명한다. 이를 위해 C 표준 문서[^1], GNU libc 문서[^2], 권위 있는 서적[^3] 등 신뢰할 만한 자료를 인용하여 정확한 정보를 제공한다. printf 함수 개요 및 작동 원리p..
- [ 프로그래밍 ]리눅스 한 학기 살기 - 13주차 (完)2025-06-02 01:18:45들어가며 드디어 "리눅스 한 학기 살기" 시리즈를 마무리했다. 졸업을 앞둔 마지막 학기, 매주 하나씩 새로운 리눅스 프로그램을 탐구하며 보낸 12주는 내게 있어 단순한 과제를 넘어선 진정한 성장의 시간이었다. 이 글을 통해 그동안의 여정을 되돌아보고, 리눅스와 함께하며 배우고 느낀 점들을 정리해보고자 한다. 처음 이 프로젝트를 시작할 때만 해도, 솔직히 말해서 막막했다. 3학점만 들어도 졸업이 가능했음에도 불구하고 18학점을 꽉 채운 것도 모자라, 매주 2페이지 이상의 심도 있는 보고서를 작성하겠다는 다소 무모한 도전을 감행했다. 게임 개발에만 집중하던 내가 백엔드 수업 4개를 한꺼번에 듣는 것도 버거운데, 추가로 리눅스 프로그램을 하나씩 파헤치는 일정을 잡은 것이다. 하지만 지금 돌이켜보니, 그 선택이..
- [ 프로그래밍 ]리눅스 한 학기 살기 - 12주차2025-06-02 00:35:44들어가며이번 주차에서 다룰 프로그램은 네트워크 맵퍼(Network Mapper)라는 이름의 Nmap은 네트워크 환경의 호스트와 서비스를 검색하고 보안 점검을 수행하는 무료 오픈 소스 스캐너이다[1]. 원 저작자인 Gordon "Fyodor" Lyon이 1997년 처음 발표한 이래로 지속적으로 발전해 왔으며, 현재는 리눅스를 비롯한 다양한 운영체제에서 사용할 수 있는 범용 도구로 자리잡았다. Nmap은 IP 패킷을 활용하여 대상 시스템의 열린 포트, 실행 중인 서비스 버전, 운영체제 정보를 파악함으로써 네트워크의 "지도"를 작성하는 데 도움을 준다[2]. 이러한 기능을 통해 네트워크 인벤토리 작성, 서비스 업그레이드 일정 관리, 서버 가동 모니터링 등 시스템 및 네트워크 관리 업무에도 유용하게 활용된다[1..
- [ 프로그래밍 ]Unity(C#)와 Unreal(C++) 중심의 옵저버 패턴 (Observer Pattern)2025-06-01 17:16:08들어가며 이번 학기 오픈소스SW개발방법및도구 강의에서 마지막으로 디자인 패턴을 조사하는 과제가 주어졌다. 싱글톤 패턴을 정리할까 하다, 싱글톤은 눈 감고도 코드를 작성하는 수준이라 아직 눈 뜨고 코드를 작성해야 하는 옵저버 패턴과 조금 더 친숙해보고자 이를 조사했다. 목적, 동작 방식, UML, 그리고 코드 순서로 문서를 기술한다. Goal (목적)옵저버 패턴은 한 객체의 상태 변화를 자동으로 여러 다른 객체들에게 알리는 디자인 패턴이다. 이를 통해 한 객체(주체, Subject)의 변화가 다수의 객체(옵저버, Observer)로 일대다로 전파되어 각 객체가 알아서 대응할 수 있다. 이 패턴의 주요 목적은 객체 사이의 결합도를 낮추고 이벤트 기반의 효율적인 상호 작용을 구현하는 데 있다. 옵저버 패턴이 ..
- [ 프로그래밍 ]리눅스 한 학기 살기 - 11주차2025-05-30 21:01:25들어가며이번 주차에서 다룰 프로그램은 htop이다. 자세한 내용은 아래에 소개하겠지만, htop는 Windows로 치면 작업 관리자의 역할을 수행한다고 이해하면 될 것 같다. 라즈베리파이를 서버용 기기로 구매했으니, 꼼꼼한 모니터링은 당연지사. 여러 개의 프로그램이 존재했으나, 그 중에 하나인 htop을 깊게 파고 들었다. htop 명령어 개요와 목적 (top 명령어와의 차이)htop은 리눅스/유닉스 계열 OS에서 시스템의 프로세스와 자원 사용량을 실시간으로 모니터링하는 대화형 터미널 프로그램이다. 기본적으로 모든 리눅스 배포판에 포함된 전통적인 명령어 top의 기능을 현대적으로 개선한 대안 도구로서, 컬러풀한 UI와 강화된 사용자 인터페이스를 제공한다[^1]. top이 단순 텍스트 기반 출력으로 상위 ..
- [ 프로그래밍 ]리눅스 한 학기 살기 - 10주차2025-05-28 20:12:18들어가며 이번 주차의 글은 tree이다. 보통 파일 계층 구조를 나타낼 때 아스키코드 문자를 많이 활용하는데 여태 일일히 하나씩 표현했던 내가 참 바보 같다는 생각이 들게 해준 고마운 라이브러리이다. 이제부터 tree에 대해 알아보자. tree 명령 개요와 주요 기능tree는 디렉터리 구조를 트리 형태로 시각화해주는 리눅스 명령어다. 일반적인 ls 명령이 파일과 폴더를 단순 나열하는 데 반해, tree는 계층적인 디렉터리-파일 종속 관계를 들여쓰기와 선 연결 문자로 보여줘서 복잡한 폴더 구조도 한눈에 이해할 수 있게 한다. 예를 들어 프로젝트의 폴더 구성이나 리눅스 시스템의 디렉터리 계층을 트리 형태로 출력하면, 디렉터리 간 포함 관계와 구조를 시각적으로 파악하기 쉽다. tree 명령을 실행하면 현재 디..
728x90
728x90