전체 글 167

디자인패턴 - 디자인패턴(Design Pattern)에 대하여 알아보자

정보처리기사를 공부할 때 디자인패턴이라는 개념을 접하게 되었습니다. 소프트웨어를 만들 때 여러 개발자가 협업하고 코드를 효율적으로 관리하기 위한 하나의 방법입니다. 디자인 패턴이 왜 중요하고 GoF(Gang of Four)의 23가지 디자인 패턴을 간단한 설명과 함께 알아보려고 합니다. 왜 디자인패턴이 필요할까?여러 사람이 함께 하나의 소프트웨어를 개발할 때 큰 어려움 중 하나는 다른 사람의 코드를 이해하는 것입니다. 다른 사람이 작성한 코드를 파악하고 수정하거나 기능을 추가하는 과정은 자칫하면 예상치 못한 버그를 발생시키거나 성능을 저하할 수도 있습니다. 디자인 패턴은 소프트웨어 설계 문제에 대한 검증된 해결 방법 모음이자 개발자 간의 효율적인 의사소통 방법입니다. 특정 패턴을 적용했다는 것만으로도 코..

Python (28) - 오버로딩(Overloading)과 오버라이딩(Overriding)

객체지향 프로그래밍(OOP)에서 자주 등장하는 개념 중 하나가 오버로딩과 오버라이딩입니다.이 둘의 이름은 비슷하지만, 개념과 사용 방식은 전혀 다릅니다.보통 Java나 C++로 설명하지만 파이썬을 기준으로 두 개념을 설명하려 합니다. 오버로딩 (Overloading) 오버로딩은 같은 함수 이름을 사용하지만, 매개변수의 타입이나 개수에 따라 다르게 동작하도록 하는 기법입니다. Java나 C++ 같은 언어는 함수 오버로딩을 기본적으로 지원하지만, 파이썬에서는 오버로딩을 지원하지 않으며 multipledispatch 패키지를 사용하여 구현할 수 있습니다. 패키지 설치pip install multipledispatch 사용예시from multipledispatch import dispatch@dispatch(i..

컴퓨터/Python 2025.05.04

일렉기타 이야기 (2) - 멀꾹이 보드를 만들어보자

일렉기타를 구매하고 다양한 톤을 만들고 싶어 멀티이펙터를 먼저 장만했습니다. 다양한 톤을 자유롭게 편집할 수 있는 부분에서는 만족하였으나 연주 중에 톤을 전환하는 데에는 한계가 있었습니다. 한 곡만 연주하는 것이 아닌 다양한 장르를 다루다 보면 곡마다 필요한 톤을 효율적으로 구성할 필요를 느꼇습니다. 고민 끝에 멀꾹이를 만들기로 했습니다. 구성 목적주요 목적은 빠른 톤 전환입니다.실용성과 효율성을 최우선으로 자주 사용하는 이펙터 위주로 구성하였습니다. 이펙터 구성 및 보드배치보드 사이즈 : 500(l) x 190(w) x 30(h)전원 : Mosky ISO10 Mini (보드 하단 배치) 이펙터 연결 순서연결순서역할모델명1어쿠스틱 시뮬레이터MOOER Acoustikar2컴프레서DemonFX CK4 (ke..

LLM (1) - 로컬에서 LLM을 사용해보자 (Ollama 설치 및 실행)

요즘 직장에서 LLM 연구를 진행하고 있습니다. LLM 서비스를 만드는 사람들에게 조금이라도 되고자 시리즈를 작성합니다. OllamaOllama는 로컬에서 LLM을 실행하기 위해 설계된 프로그램입니다. 로컬에서 LLM을 실행함으로 데이터 보안 및 비용 절감 등 여러 가지 이점을 가집니다. 특히 GGUF 포맷의 파일만 있으면 Hugging Face에 올라온 수많은 AI를 돌릴 수 있다는 장점을 가집니다. 설치 방법은 다음과 같습니다. 1. 하단의 링크로 접속 후 프로그램을 다운로드합니다.https://ollama.com/download Download Ollama on macOSDownload Ollama for macOSollama.com 추가로 PowerShell로 다운로드하는 방법도 공유합니다.In..

컴퓨터/LLM 2025.04.24

네트워크 - OSI 7 Layer에 대해 알아보자

네트워크를 공부하다 보면 OSI 7 Layer를 반드시 마주치게 됩니다. 각 계층이 담당하는 역할을 따라가다 보면 네트워크의 동작 방식뿐 아니라 문제 해결, 보안, 장비 이해까지 알 수 있습니다. 이 계층 구조는 단순한 이론이 아니라, 실무에서 발생하는 거의 모든 네트워크 상황을 알 수 있는 기준입니다. OSI 7 계층OSI(Open Systems Interconnection) 7 Layer 모델은 ISO(국제표준화기구)에 정의한 네트워크 모델입니다. 서로 다른 시스템 간 통신이 원활히 이뤄지도록 네트워크 통신 과정을 7단계로 나누었으며, 계층마다 특정한 역할을 가지고 있습니다. 각 계층의 서로 다른 역할을 수행하며 다음 표와 같습니다.계층이름주요 역할사용 예시7응용 계층 (Application Laye..

일렉기타 이야기 (1) - Sire T7 리뷰

2019년부터 꾸준히 통기타를 연주해 왔습니다. 예전에는 밴드 활동을 하며 통기타와 베이스를 연주했으나 혼자 음악을 하다 보니 되면서 프런트맨의 사운드를 커버하고 싶어져 일렉기타를 사게 되었습니다. Sire T7Sire T7은 텔레캐스터 타입의 일렉기타입니다. 텔레 브릿지 사운드를 가졌으며 동급 가격대에서 가장 괜찮은 마감과 하드웨어를 가졌다고 생각하여 구매했습니다. 간단한 스펙 요약쉐입텔레캐스터바디북미산 앨더넥 / 프렛로스티드 메이플 / 22프렛픽업Sire 알니코 5 싱글 (S-S 구성)컨트롤볼륨, 톤, 3Way 셀렉터 스위치브릿지빈티지 브릿지 (황동 새들)헤드 머신락킹 튜너자세한 스펙은 아래 링크 참조해주세요https://sire-korea.com/product/detail.html?product_n..

포트포워딩 - 로컬 서버를 외부에 공개해보자

프론트엔드 강의에서는 웹서버를 구축하고 자신의 로컬 네트워크에서 이를 확인하는 실습이 나옵니다. 하지만 자신의 컴퓨터에서만 접속할 수 있다면, 실제 서비스 환경과 거리가 있습니다. 여기서 해당 서버를 외부에서 접속할  방법을 소개하려고 합니다. 포트포워딩이란?포트포워딩(Port Forwarding)은 외부에서 들어오는 접속 요청을 내부 네트워크의 특정 기기로 전달하는 기술입니다. 외부 사용자가 특정 주소와 포트로 접속하면, 공유기가 해당 요청을 내부 네트워크의 특정 컴퓨터와 포트로 연결해 주는 구조입니다. 이를 통하여 로컬 서버 데이터를 외부에 노출시키고 실제 서비스처럼 사용할 수 있습니다. 웹사이트를 외부로 공유하자※ 파이썬의 flask, iptime 공유기를 이용하여 작업을 진행하였습니다. 1.컴퓨터..

Python (27) - PC에서 유튜브 음악을 실행해보자 (pytubefix)

디스코드에서 유튜브 링크를 올리면 오디오로 실행해 주는 챗봇이 있습니다. 해당 프로그램처럼 PC에서 유튜브 음악 플레이어로 실행 방법을 소개하려고 합니다. 파이썬을 이용해서 쉽게 유튜브 비디오를 다운로드 및 활용하는 방법이 있어 공유하려고 합니다. 글을 시작하기 전 유튜브 영상을 다운로드 후 개인소장 하는 것은 불법이 아니지만 영리를 목적으로 동영상을 이용하면 저작권 위반에 걸릴 수 있습니다. 사용하는 라이브러리라이브러리 이름사용이유pytubefix유튜브 동영상을 다운로드하기 위함os폴더 처리 관련 pydub오디오 파일 변환 및 처리 작업을 위함simpleaudio오디오를 실행하기 위함 유튜브 다운로드 및 실행1. CMD에 명령어를 입력하여 패키지를 다운로드합니다.pip install pytubefix ..

컴퓨터/Python 2025.03.10

DIY - 스파크에 안드로이드 오토 모니터 설치하기

작년에 중고 스파크를 구매한 후 후방카메라 없이 센서만으로 운전했습니다. 경차의 특성상 주차가 편해 적응하는 데 어려움은 없었지만, 여자친구가 운전할 때 불편하다고 해서 후방카메라를 설치하기로 했습니다. 안드로이드 오토 미러링 모니터카플레이 모니터는 스마트폰과 연결하여 미러링하는 기기입니다. 쿠팡에서 적당한 제품을 구매했으며,기본 구성품은 다음과 같습니다.시거잭후방카메라 잰더이어폰 잰더쿠팡링크 카플레이 모니터 안드로이드 오토 모니터 블루투스 5.0 자동 무선 연결 휴대용 터치스크린 자동쿠팡에서 카플레이 모니터 안드로이드 오토 모니터 블루투스 5.0 자동 무선 연결 휴대용 터치스크린 자동차 내비게이션 모니터 구매하고 더 많은 혜택을 받으세요! 지금 할인중인 다른 내비게이www.coupang.com 언박싱 ..

DIY - 집에서 서버랙을 구축해보자

집에 사용하는 컴퓨터가 많아졌습니다. 스펙이 좋은 컴퓨터를 이용하여 VM 혹은 Docker를 이용하여 한 번에 관리하는 방법도 있으나 각각의 용도가 많아 3개의 PC를 사용하게 되었습니다. 이를 하나의 공간에 놓고 싶어 해당 프로젝트를 시작하게 되었습니다. 서버랙 위치 및 설계일단 랙마운트 사이즈는 7U(쿼터랙)입니다. 사용을 안 하는 제품을 주워왔습니다.랙 마운트 위치용도상단프린터1공유기 (4포트), 비상용 공구, 키보드 등2-3-4NAS, 보드, KVM 스위치 (임베디드 보드 및 PC)5PC67전원 스위치 (4포트)사전에 세팅한 것은 아니고 이것저것 모으다 보니 이렇게 왔습니다. 해당 위치로 세팅하게 되었습니다. PC제품 구성 - 하단 참조용도 - 사무용 / 게임용 /AI 개발 PC더보기 CPUAMD..