728x90
반응형

개발 36

[Golang] Go 언어 완전 초보 가이드: 설치부터 실행까지

Go 언어(Golang)는 구글에서 개발한 정적 타이핑, 컴파일 방식의 프로그래밍 언어입니다. 간결한 문법과 뛰어난 병행 처리(concurrency) 기능 덕분에 서버 프로그래밍, 클라우드 인프라, 네트워크 서비스 개발에 널리 활용되고 있습니다. 이 글에서는 Go 언어의 기초 문법과 주요 특징, 필수 옵션들에 대해 자세히 살펴보겠습니다.Go 언어의 역할Go 언어는 다음과 같은 분야에서 핵심적인 역할을 합니다:서버 사이드 개발: 높은 성능과 안정성을 바탕으로 대규모 웹 서버 및 API 서버 구축에 적합합니다.네트워크 프로그래밍: net 패키지를 활용한 TCP/UDP 통신 구현이 용이합니다.시스템 프로그래밍: 낮은 수준의 메모리 제어가 가능하면서도 안전한 코드 작성을 도와줍니다.클라우드 네이티브 개발: Ku..

개발/Go 13:11:02

[Bash] 리눅스 쉘 스크립트 awk: 기본 사용 법 및 옵션 까지 모두 정리

awk는 Bash에서 텍스트 파일을 분석하고 처리할 수 있는 매우 강력한 패턴 스캐닝 언어입니다. 특히 구조화된 데이터를 필드 단위로 나누어 분석하거나, 조건에 따라 데이터를 필터링 및 출력하는 데 뛰어난 성능을 자랑합니다. 이 글에서는 awk의 기본 문법과 역할, 자주 쓰이는 옵션과 실전 예제들을 통해 awk를 활용한 텍스트 처리 기법을 자세히 알아보겠습니다.awk 명령어의 역할awk는 입력된 데이터를 줄(line) 단위로 읽고, 공백이나 지정한 구분자를 기준으로 필드(field)를 나누어 처리합니다. 각 줄에 대해 조건에 맞는 데이터를 출력하거나 연산을 수행할 수 있습니다. 주로 다음과 같은 작업에 활용됩니다:열 단위 데이터 추출조건부 출력필드 합계 및 평균 계산보고서 형식 출력정규표현식을 이용한 필..

[Bash] 리눅스 쉘 스크립트 sed: 기본 사용 법 및 옵션 까지 모두 정리

sed는 Bash에서 사용되는 매우 강력한 스트림 편집기(Stream EDitor)입니다. 주로 텍스트 파일이나 출력 내용을 수정할 때 사용되며, 정규표현식을 기반으로 한 검색과 치환, 삭제, 삽입 등의 작업을 간편하게 수행할 수 있습니다. 이 글에서는 sed 명령어의 기본 구조와 역할, 자주 사용되는 옵션과 사용법, 그리고 다양한 실전 예제를 통해 sed를 완벽하게 이해할 수 있도록 돕겠습니다.sed 명령어의 역할sed는 입력 스트림(파일 또는 표준 입력)의 내용을 라인 단위로 처리하여 변경된 결과를 출력하는 도구입니다. 다음과 같은 작업에 적합합니다:텍스트 치환특정 줄 삭제특정 줄 출력줄 삽입 또는 추가패턴 매칭을 이용한 수정스크립트 내에서 대량의 텍스트 처리 작업이 필요할 때 매우 유용하게 사용됩니..

[Bash] 리눅스 쉘 스크립트: printf 기본 사용 법 및 옵션 까지 모두 정리

printf 명령어는 Bash에서 출력을 포맷팅할 때 사용되는 강력한 도구입니다. 단순히 문자열을 출력하는 echo와 달리, printf는 정밀한 형식 지정이 가능하여 숫자 정렬, 소수점 처리, 고정된 텍스트 형식 등을 구현할 때 매우 유용합니다. 이 글에서는 printf 명령어의 역할과 사용법, 다양한 포맷 옵션을 자세히 살펴보고 실전 예제를 통해 활용법을 익혀보겠습니다.printf 명령어의 역할printf는 형식 지정자(format specifier)를 사용하여 데이터를 정해진 형식으로 출력합니다. C언어의 printf() 함수와 매우 유사하며, Bash에서도 동일한 방식으로 작동합니다. 주로 다음과 같은 용도로 사용됩니다:숫자 출력 포맷 조정문자열 정렬 및 포맷 처리고정 소수점 출력텍스트 테이블 형..

[Bash] 리눅스 쉘 스크립트: expr 기본 사용 법 및 옵션 까지 모두 정리

expr 명령어는 Bash에서 수치 연산이나 문자열 처리, 조건 비교 등을 간단히 수행할 수 있게 도와주는 유틸리티입니다. 특히 POSIX 호환성을 유지하면서도 복잡하지 않은 작업을 쉘 스크립트 내에서 간편하게 처리할 수 있어 여전히 많이 사용됩니다. 이 글에서는 expr 명령어의 역할, 사용법, 옵션, 다양한 예제 등을 통해 이 명령어를 효과적으로 활용하는 방법을 소개합니다.expr 명령어의 역할expr은 문자열이나 숫자 값을 평가하여 그 결과를 출력하는 명령어입니다. 주로 다음과 같은 역할을 수행합니다:산술 연산문자열 길이 측정문자열 추출문자열 비교논리 연산Bash 자체의 (( )), $(( )) 구문에 비해 다소 구식처럼 보일 수 있지만, POSIX 환경이나 오래된 스크립트 호환성 유지가 필요한 경..

[Bash] 리눅스 쉘 스크립트: set 기본 사용 법 및 옵션 까지 모두 정리

쉘 스크립트를 작성하거나 터미널에서 명령어를 입력할 때, Bash 셸에서 set 명령어는 아주 강력하고 유용한 도구입니다. 이 명령어는 셸의 동작 방식을 세밀하게 제어할 수 있게 해주며, 특히 스크립트의 디버깅, 에러 처리, 보안 등을 관리하는 데 매우 중요합니다. 이 글에서는 set 명령어의 역할과 사용법, 그리고 다양한 옵션들의 기능과 예제를 통해 이 명령어를 완전히 이해할 수 있도록 설명하겠습니다.set 명령어의 역할set 명령어는 현재 Bash 셸 환경에서 동작 방식을 변경하거나 설정 값을 조정하는 역할을 합니다. 이 명령어는 위치 파라미터를 설정하거나, 셸 옵션을 켜고 끄는 데 사용됩니다. 특히 셸 스크립트 내에서 에러 발생 시 자동 종료, 명령어 추적, 확장된 글로브 패턴 사용 등을 제어하는 ..

[Bash] 리눅스 쉘 스크립트: echo 기본 사용 법 및 옵션 까지 모두 정리

Bash 스크립트에서 화면에 메시지를 출력하거나 변수 값을 보여주고 싶을 때 사용하는 가장 기본적인 명령어가 echo입니다. 간단하면서도 자주 사용되는 echo 명령은 스크립트 디버깅, 사용자와의 상호작용, 로그 출력 등 다양한 상황에서 필수적인 도구입니다. 이 글에서는 echo 명령의 역할, 기본 사용법, 다양한 옵션들, 그리고 실제 예제까지 자세히 설명하겠습니다.Bash에서 echo 명령의 역할echo는 지정된 문자열이나 변수의 값을 표준 출력(보통 터미널)에 출력하는 명령어입니다. 메시지를 사용자에게 보여줄 때, 변수에 저장된 내용을 확인할 때, 로그 파일에 내용을 기록할 때 등 다양한 용도로 활용됩니다.echo 명령의 기본 사용법기본 구조는 다음과 같습니다:echo [옵션] 문자열예제:echo "..

[Bash] 리눅스 쉘 스크립트: read 기본 사용 법 및 옵션 까지 모두 정리

Bash 스크립트에서 사용자 입력을 받거나 파일로부터 데이터를 읽어들이는 데 사용하는 명령어가 바로 read입니다. read 명령은 간단하면서도 강력한 기능을 제공하여, 사용자 상호작용이 필요한 자동화 작업이나 데이터를 입력받아 처리하는 로직을 작성할 때 자주 활용됩니다. 이 글에서는 read 명령의 역할, 사용법, 다양한 옵션들과 실제 예제까지 상세히 설명하겠습니다.Bash에서 read 명령의 역할read 명령은 표준 입력(예: 키보드, 파일 등)으로부터 데이터를 읽어 변수에 저장하는 기능을 합니다. 가장 흔한 용도는 사용자로부터 값을 입력받는 것이며, 스크립트 실행 중 동적인 데이터 수집이 가능하게 해줍니다.read 명령의 기본 사용법기본 구조는 다음과 같습니다:read 변수명예제:echo "이름을 ..

[Bash] 리눅스 쉘 스크립트: while 문 기본 사용 법 및 옵션 까지 모두 정리

Bash 스크립트에서 반복 조건이 참일 동안 계속해서 명령을 실행하고 싶을 때 사용하는 반복문이 바로 while 문입니다. 조건 기반 반복문으로써, 조건이 거짓이 될 때까지 계속해서 루프를 실행하며 다양한 자동화 작업에서 핵심적인 역할을 합니다. 이 글에서는 while 반복문의 역할, 다양한 사용법, 옵션들, 그리고 실제 예제까지 자세히 다루어 보겠습니다.Bash에서 while 반복문의 역할while 반복문은 지정된 조건이 참(true)인 동안 루프 내의 명령들을 반복 실행합니다. 이는 사용자의 입력을 기다리거나, 특정 파일이 생성될 때까지 대기하거나, 지정된 조건이 충족될 때까지 반복 작업을 수행하는 데 매우 유용합니다.while 반복문의 기본 사용법기본 구조는 다음과 같습니다:while [ 조건 ];..

[Bash] 리눅스 쉘 스크립트: for 문 기본 사용 법 및 옵션 까지 모두 정리

Bash 스크립트에서 반복 작업을 자동으로 처리할 수 있는 가장 기본적인 방법 중 하나는 for 반복문입니다. 다양한 목록을 순회하거나 특정 횟수만큼 반복 실행할 때 유용하며, 자동화된 작업에서 자주 사용됩니다. 이 글에서는 Bash에서 for 반복문이 어떤 역할을 하는지, 다양한 형태의 사용법과 옵션들을 자세히 소개하고 실제 예제도 함께 살펴보겠습니다.Bash에서 for 반복문의 역할for 반복문은 지정한 목록의 각 항목에 대해 동일한 작업을 반복적으로 수행하는 구조입니다. 배열, 문자열, 명령 결과, 숫자 범위 등 다양한 데이터를 반복 처리할 수 있습니다. 이는 수동으로 하나씩 처리하던 작업을 자동화하는 데 큰 도움이 됩니다.for 반복문의 기본 사용법기본 구조는 다음과 같습니다:for 변수 in 항..

[Bash] 리눅스 쉘 스크립트: if 문 기본 사용 법 및 옵션 까지 모두 정리

Bash 스크립트에서 조건문을 사용할 수 있다는 것은 다양한 조건에 따라 프로그램의 흐름을 제어할 수 있다는 것을 의미합니다. 그중에서도 가장 기본적이고 핵심적인 조건문은 바로 if 문입니다. 이 글에서는 Bash에서 if 문이 어떤 역할을 하며, 어떻게 사용하는지, 그리고 관련된 모든 옵션들에 대해 자세히 알아보겠습니다.Bash에서 if 문의 역할Bash의 if 문은 주어진 조건이 참인지 거짓인지에 따라 특정 명령어를 실행하거나 건너뛰는 역할을 합니다. 조건에 따라 분기 처리가 가능하기 때문에, 스크립트를 더 유연하고 동적으로 만들 수 있습니다. 예를 들어 파일이 존재하는지, 문자열이 비어있는지, 두 숫자가 같은지를 비교할 수 있습니다.if 문의 기본 사용법Bash의 if 문은 다음과 같은 기본 구조를..

[Python] 파이썬으로 만드는 마인크래프트 스타일 블록 게임

pygame 하나면 충분하다!1. 왜 이런 게임을 만들게 되었냐면요…음… 사실 나는 마인크래프트를 진짜 많이 하진 않았는데, 가끔 유튜브 보다가 블럭 쌓는 거 보면 뭔가 뿌듯해지더라고요? ^^ 그래서 “어? 나도 파이썬으로 이런 거 간단하게 만들어볼 수 있지 않을까?” 하는 마음에 도전해봤어요.완전 똑같이 만들 순 없겠지만, 최소한“블럭을 깔고, 없애고, 이동할 수 있는” 정도의 기본은 구현해보자!이렇게 목표를 잡고 코딩을 시작했습니다.⸻2. 개발 환경 • Python 3.9+ • pygame (pip로 설치 가능해요)pip install pygame그냥 이거 하나면 끝나요!pygame은 2D 게임 만들기 딱 좋더라고요 ^^⸻3. 게임의 규칙과 기능 • WASD 키로 캐릭터 이동 • 마우스 왼쪽 클릭: ..

개발/Python 2025.05.01

[Python] 파이썬으로 메이플스토리 같은 도트 RPG 게임 만들기

들어가며어릴 적 누구나 한 번쯤 해봤을 법한 도트 RPG 게임, 그 중에서도 메이플스토리는 많은 사람들의 추억을 담고 있는 게임입니다. 귀여운 도트 캐릭터, 직관적인 전투 시스템, 퀘스트를 따라 성장하는 재미. 만약 이런 게임을 파이썬으로 직접 만들어볼 수 있다면 어떨까요? 이 글에서는 Python과 몇 가지 라이브러리를 이용해 메이플스토리 스타일의 2D 도트 RPG를 만들어보는 전체 과정을 안내하겠습니다.1. 개발 환경 설정먼저 게임 개발에 사용할 도구들을 설치해야 합니다. 우리는 Python 3.x 버전과 pygame이라는 라이브러리를 사용할 예정입니다.pip install pygamepygame은 2D 게임을 쉽게 만들 수 있게 해주는 라이브러리로, 도트 그래픽과 충돌 처리, 키보드 입력 등을 모두..

개발/Python 2025.04.30

WebAssembly(WASM)로 나만의 고성능 웹앱 만들기

이전 글https://ilikesunday.tistory.com/66 WebAssembly(WASM): 웹의 미래를 바꾸는 기술1. 들어가며 – 왜 WebAssembly인가?웹은 HTML, CSS, JavaScript의 삼두마차로 발전해왔습니다. 하지만 이제는 단순한 정적 웹사이트를 넘어 데스크탑 수준의 성능을 요구하는 애플리케이션들이 브라우저ilikesunday.tistory.com WebAssembly(WASM)의 이론과 구조를 알아봤다면, 이제 실제로 고성능 웹 애플리케이션을 직접 만들어볼 차례입니다. 이 글에서는 C언어와 Rust를 이용한 간단한 WebAssembly 모듈 생성, JavaScript와의 연동, 그리고 브라우저에서 실행되는 고성능 계산기 예제를 만들어보겠습니다.1. 목표 및 개발 환..

개발/WASM 2025.04.29

WebAssembly(WASM): 웹의 미래를 바꾸는 기술

1. 들어가며 – 왜 WebAssembly인가?웹은 HTML, CSS, JavaScript의 삼두마차로 발전해왔습니다. 하지만 이제는 단순한 정적 웹사이트를 넘어 데스크탑 수준의 성능을 요구하는 애플리케이션들이 브라우저 위에서 돌아가길 원합니다. 이런 시대에 등장한 것이 WebAssembly(WASM)입니다.WebAssembly는 고수준 언어(C, C++, Rust 등)로 작성된 코드를 브라우저가 이해할 수 있는 이진 포맷으로 변환하여 실행하게 해 줍니다. 덕분에 브라우저에서도 네이티브 수준의 성능이 가능해졌죠.2. WebAssembly란? 정의WebAssembly는 줄여서 WASM이라고도 하며, 브라우저에서 실행되는 이진 포맷의 코드입니다. JavaScript의 한계를 보완하기 위해 등장했으며, 거의 ..

개발/WASM 2025.04.29

[Python] 파이썬으로 PDF 파일 생성하기 fpdf2 설치부터 사용까지 총정리

Python을 사용하면 아주 간편하게 PDF 파일을 생성할 수 있습니다.특히 보고서, 이력서, 포트폴리오, 청구서, 자동화 문서 등을 만들 때 매우 유용하죠.실제 코드 예제를 곁들이면서, 파이썬으로 PDF를 만드는 방법을 정리해보겠습니다.1. 왜 Python으로 PDF를 만들까?Python은 빠르고, 다양한 라이브러리가 있기 때문입니다. 특히 업무 자동화할 때- Word -> PDF 변환- HTML -> PDF 변환- 텍스트 직접 생성 후 PDF로 저장모두 Python 코드 몇 줄로 끝낼 수 있습니다.또한, 사람이 직접 디자인하는 것보다 프로그램이 알아서 문서를 생성하면 반복 작업이 줄어들어 생산성이 비약적으로 향상됩니다.2. 가장 많이 쓰는 라이브러리: `fpdf2Python에서 PDF를 생성할 때 가..

개발/Python 2025.04.27

SDLC란? 소프트웨어 공학에서 꼭 알아야 할 개발 프로세스

소프트웨어를 체계적으로 개발하고 성공적으로 운영하기 위해 반드시 알아야 할 개념이 바로 SDLC(Software Development Life Cycle)입니다. SDLC는 소프트웨어 공학의 핵심 개념으로, 프로젝트를 계획부터 배포, 유지보수까지 단계별로 관리할 수 있도록 도와주는 개발 프로세스입니다.개발자, 프로젝트 매니저, 기획자 등 역할에 상관없이 SDLC의 개념을 이해하고 적용하면 프로젝트의 품질과 효율성을 크게 높일 수 있습니다.1. SDLC란 무엇인가요?SDLC(소프트웨어 개발 생명주기)는 소프트웨어 개발의 전체 과정을 구조화한 모델입니다. 단순히 개발만을 의미하는 것이 아니라, 요구사항 수집부터 설계, 구현, 테스트, 배포, 그리고 유지보수까지 전체 주기를 포함합니다.즉, 소프트웨어를 ‘어떻..

[Python] 고전 게임 시리즈 회고

들어가며처음엔 그저 가벼운 마음으로 시작했다. 파이썬과 pygame이라는 도구를 이용해 뭔가 만들어보자는 생각, 그리고 어릴 적 추억 속 고전 게임들을 직접 구현해보고 싶다는 단순한 호기심. 그렇게 시작된 이 '고전 게임 시리즈'는 어느덧 다섯 편의 완결된 게임으로 마무리되었다. 테트리스게임, 스네이크, 벽돌깨기, 슈팅 게임, 러너 게임, 피하기 게임. 이름만 들어도 친숙한 이 게임들을 한 편 한 편 직접 만들면서, 나는 '게임 개발'이라는 기술의 구조뿐 아니라, 문제를 해결하는 방식, 실패에서 배우는 감각, 그리고 단순한 것의 깊이를 몸소 체감할 수 있었다.이 회고는 그 5편의 여정을 정리하고, 각 게임에서 느낀 점, 배운 점, 기술적인 인사이트, 그리고 나만의 시행착오를 솔직하게 풀어보는 글이다. 개..

개발/Python 2025.04.22

[Python] 고전 게임 시리즈 회고 – '단순함' 속에서 배운 모든 것

들어가며처음엔 그저 가벼운 마음으로 시작했다. 파이썬과 pygame이라는 도구를 이용해 뭔가 만들어보자는 생각, 그리고 어릴 적 추억 속 고전 게임들을 직접 구현해보고 싶다는 단순한 호기심. 그렇게 시작된 이 '고전 게임 시리즈'는 어느덧 다섯 편의 완결된 게임으로 마무리되었다. 테트리스게임, 스네이크, 벽돌깨기, 슈팅 게임, 러너 게임, 피하기 게임. 이름만 들어도 친숙한 이 게임들을 한 편 한 편 직접 만들면서, 나는 '게임 개발'이라는 기술의 구조뿐 아니라, 문제를 해결하는 방식, 실패에서 배우는 감각, 그리고 단순한 것의 깊이를 몸소 체감할 수 있었다.이 회고는 그 5편의 여정을 정리하고, 각 게임에서 느낀 점, 배운 점, 기술적인 인사이트, 그리고 나만의 시행착오를 솔직하게 풀어보는 글이다. 개..

개발/Python 2025.04.22

[Python] 파이썬으로 고전 게임 러너게임 만들기 - 다섯번째 게임

고전게임 시리즈1. 테트리스https://ilikesunday.tistory.com/31 [Python] 파이썬으로 고전 게임 '테트리스' 만들기 – 직접 만들어보며 배운 시행착오의 기록들어가며예전부터 한 번쯤은 만들어보고 싶었던 게임이 있다면 단연코 테트리스였다. 간단한 구조지만 의외로 중독성이 있고, 적당한 난이도 조절과 함께 구현할 수 있다면 파이썬의 GUI 및 로ilikesunday.tistory.com 2. 스네이크게임https://ilikesunday.tistory.com/32 [Python] 파이썬으로 고전 게임 스네이크 게임 만들기 - 삽질의 연속 ㅠㅠ들어가며처음에는 파이썬으로 테트리스를 먼저 만들었었다. 다른 고전 게임에도 흥미가 생기기도 하고 시리즈별로 만들고 싶어서 스네이크 게임을 ..

개발/Python 2025.04.22

[Python] 파이썬으로 고전 게임 피하기 게임 만들기 - Dodge Game

고전게임 시리즈1. 테트리스https://ilikesunday.tistory.com/31 [Python] 파이썬으로 고전 게임 '테트리스' 만들기 – 직접 만들어보며 배운 시행착오의 기록들어가며예전부터 한 번쯤은 만들어보고 싶었던 게임이 있다면 단연코 테트리스였다. 간단한 구조지만 의외로 중독성이 있고, 적당한 난이도 조절과 함께 구현할 수 있다면 파이썬의 GUI 및 로ilikesunday.tistory.com 2. 스네이크게임https://ilikesunday.tistory.com/32 [Python] 파이썬으로 고전 게임 스네이크 게임 만들기 - 삽질의 연속 ㅠㅠ들어가며처음에는 파이썬으로 테트리스를 먼저 만들었었다. 다른 고전 게임에도 흥미가 생기기도 하고 시리즈별로 만들고 싶어서 스네이크 게임을 만..

개발/Python 2025.04.22

[Python] 파이썬으로 고전 게임 슈팅 게임 만들기: 총알, 적, 그리고 리듬감

고전게임 시리즈1. 테트리스https://ilikesunday.tistory.com/31 [Python] 파이썬으로 고전 게임 '테트리스' 만들기 – 직접 만들어보며 배운 시행착오의 기록들어가며예전부터 한 번쯤은 만들어보고 싶었던 게임이 있다면 단연코 테트리스였다. 간단한 구조지만 의외로 중독성이 있고, 적당한 난이도 조절과 함께 구현할 수 있다면 파이썬의 GUI 및 로ilikesunday.tistory.com2. 스네이크게임https://ilikesunday.tistory.com/32 [Python] 파이썬으로 고전 게임 스네이크 게임 만들기 - 삽질의 연속 ㅠㅠ들어가며처음에는 파이썬으로 테트리스를 먼저 만들었었다. 다른 고전 게임에도 흥미가 생기기도 하고 시리즈별로 만들고 싶어서 스네이크 게임을 만들..

개발/Python 2025.04.22

[Python] 파이썬으로 고전 게임 벽돌깨기 만들기

고전게임 시리즈1. 테트리스https://ilikesunday.tistory.com/31 [Python] 파이썬으로 고전 게임 '테트리스' 만들기 – 직접 만들어보며 배운 시행착오의 기록들어가며예전부터 한 번쯤은 만들어보고 싶었던 게임이 있다면 단연코 테트리스였다. 간단한 구조지만 의외로 중독성이 있고, 적당한 난이도 조절과 함께 구현할 수 있다면 파이썬의 GUI 및 로ilikesunday.tistory.com 2. 스네이크게임https://ilikesunday.tistory.com/32 [Python] 파이썬으로 고전 게임 스네이크 게임 만들기 - 삽질의 연속 ㅠㅠ들어가며처음에는 파이썬으로 테트리스를 먼저 만들었었다. 다른 고전 게임에도 흥미가 생기기도 하고 시리즈별로 만들고 싶어서 스네이크 게임을 만..

개발/Python 2025.04.22

[Python] 파이썬으로 고전 게임 스네이크 게임 만들기 - 삽질의 연속 ㅠㅠ

들어가며처음에는 파이썬으로 테트리스를 먼저 만들었었다. 다른 고전 게임에도 흥미가 생기기도 하고 시리즈별로 만들고 싶어서 스네이크 게임을 만들고자 했지만... 테트리스 때와 달리 이번엔 안되는 점이 너무 많았다.https://ilikesunday.tistory.com/31 [Python] 파이썬으로 고전 게임 '테트리스' 만들기 – 직접 만들어보며 배운 시행착오의 기록들어가며예전부터 한 번쯤은 만들어보고 싶었던 게임이 있다면 단연코 테트리스였다. 간단한 구조지만 의외로 중독성이 있고, 적당한 난이도 조절과 함께 구현할 수 있다면 파이썬의 GUI 및 로ilikesunday.tistory.com 처음에는 정말 간단할 줄 알았다. '그냥 화면을 만들고, 네모 하나 움직이게 하면 되는 거 아냐?'라는 생각으로 ..

개발/Python 2025.04.22

[Python] 파이썬으로 고전 게임 '테트리스' 만들기 – 직접 만들어보며 배운 시행착오의 기록

들어가며예전부터 한 번쯤은 만들어보고 싶었던 게임이 있다면 단연코 테트리스였다. 간단한 구조지만 의외로 중독성이 있고, 적당한 난이도 조절과 함께 구현할 수 있다면 파이썬의 GUI 및 로직 처리 능력을 익히기에 최적의 게임이라고 생각했다. 처음엔 tkinter로 UI를 만들려 했는데, 도형이 부드럽게 움직이지 않아서 포기했고, 다음엔 pygame이라는 라이브러리를 시도했다. 처음엔 설치부터 안됐고, 경로 문제로 이미지가 안 불러와지는 등 수많은 시행착오를 겪었다. 결국 필요한 모듈을 제대로 설치하고 도형들을 직접 그리면서 움직임을 제어하는 방식으로 접근했더니, 제법 훌륭한 결과물을 만들 수 있었다.1. 필요한 라이브러리 설치테트리스는 그래픽 기반 게임이기 때문에 pygame이라는 게임 개발 라이브러리를 ..

개발/Python 2025.04.21

[Python] 파이썬으로 네이버 실시간 뉴스 타이틀 수집하기

들어가며뉴스는 정보를 얻는 가장 빠른 통로입니다. 특히 실시간 뉴스는 사회 전반의 흐름을 읽는 데 매우 중요한 자료가 되죠. 하지만 뉴스 페이지를 직접 방문해서 일일이 확인하는 건 매우 비효율적입니다.이번 글에서는 파이썬을 활용해서 네이버 실시간 뉴스 타이틀을 자동으로 수집하는 방법을 소개합니다. 이 과정에서 requests, BeautifulSoup, Selenium까지 웹 크롤링의 주요 도구를 차근차근 사용해봅니다.왜 웹 크롤링이 필요할까?정보 자동 수집: 반복적으로 수집해야 하는 데이터가 있을 때 매우 유용합니다.데이터 기반 분석: 뉴스 키워드 분석, 여론 흐름 파악 등에 활용 가능업무 효율화: 트렌드 리포트 자동화, 경쟁사 모니터링, 키워드 추적 등 실무에 활용할 수 있습니다.어떤 상황에서 사용할..

개발/Python 2025.04.20

[Python] 파이썬으로 엑셀 파일 한 번에 정리하기

들어가며엑셀은 여전히 많은 업무 자동화의 중심에 있습니다. 수작업으로 반복하는 엑셀 정리는 시간이 많이 소요될 뿐 아니라 실수도 발생하기 쉽습니다. 본 문서에서는 파이썬을 이용해 엑셀 파일을 자동으로 정리하는 실전 예제를 통해 업무 시간을 획기적으로 단축하는 방법을 소개합니다.왜 파이썬으로 엑셀 정리를 해야 할까?기업이나 개인 업무에서 Excel은 보고서 작성, 데이터 정리, 고객 관리, 회계 등 다양한 목적에 사용됩니다. 하지만 일정 규모 이상의 데이터를 다루게 되면 사람이 일일이 열어보고 정리하는 작업은 너무 비효율적입니다.예를 들어 아래와 같은 경우에는 자동화가 필수입니다:매일 또는 주기적으로 들어오는 새로운 데이터 정리대량의 엑셀 파일을 하나로 통합하거나 공통된 방식으로 정제비정형적으로 입력된 데..

개발/Python 2025.04.20

[C언어] 정렬 알고리즘(분할 정복 알고리즘) - 병합정렬(Merge Sort), 퀵 정렬(Quick Sort)

1. 병합 정렬(Merge Sort)분할 정복 전략을 사용하여 배열을 반으로 나누고, 각각을 정렬한 후 병합하는 방식.안정 정렬: 동일한 값의 상대적 순서를 유지시간 복잡도: O(N log N)공간 복잡도: O(N)동작 과정배열을 전반으로 나눔나눈 하위 배열을 각각 재귀적으로 정렬두개의 정렬된 배열을 병합하여 하나의 정렬된 배열을 만듬예시 코드#include void merge(int arr[], int left, int mid, int right) { int n1 = mid - left + 1; int n2 = right - mid; int L[n1], R[n2]; for (int i = 0; i 2. 퀵 정렬(Quick Sort)배열에서 하나의 피벗(Pivot)을 선택한 후, 피..

개발/C 2025.01.24

[C언어] 정렬 알고리즘 - 버블정렬, 선택정렬, 삽입정렬

1. 버블 정렬(Bubble Sort)인접한 두 요소를 비교하여 크기가 순서에 맞지 않으면 서로 교환큰값이나 작은값이 반복적으로 앞으로 혹은 뒤로 이동하는 방식으로 동작시간 복잡도: O(N) ~ O(N^2)동작 과정배열의 첫 번째 요소부터 인접한 두 요소를 비교조건에 따라 교환하며 배열 끝까지 진행한번 순회가 끝나면 가장 큰 값이 배열 끝에 위치함이 과정을 배열 크기만큼 반복예시 코드#include void bubbleSort(int arr[], int n) { for (int i = 0; i arr[j + 1]) { // 오름차순 정렬 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j..

개발/C 2025.01.23
728x90
반응형