cse.ac

1000커밋 달성
커밋수를 올리려고 의도한건 아니지만, 어느새 1000 커밋을 달성하게 되었다. 이 포스트는 1000커밋 달성 기념으로, 프로그래밍에 대한 어려움과 커밋수에 대한 개인적인 견해를 담고 있습니다. 언제 프로그래밍 하는가 개발하고 싶을때 개발한다. 학생이라는 굉장히 유리한 위치에서 모든 프로…
<잭 웰치의 마지막 강의> 위기대응 원칙
잭 웰치의 마지막 강의 173p 에서 기업의 위기대응 원칙이 서술되어 있다. 웰치가 제안한 4가지 원칙은 다음과 같다. 1. 좋은 평판을 쌓아두자 잭 웰치는 “좋은 시절에 친구와 지지자를 확실하게 확보해 두면 나쁜 시기에 당신 편에 서서 목소리를 높여 줄 옹호자가 있을 가능성이 그만큼…

게임엔진 없이 게임을 만들었다
이 포스트는 Archery 게임을 개발하며 얻은 기술적 인사이트를 담고있습니다. 양궁게임으로 기타 상용 게임엔진(유니티, 언리얼) 오로지 JavaScript,ThreeJS(3D 라이브러리) 만으로 게임을 개발했습니다. 1. 게임을 왜 개발했나 수시 접수 기간동안 할 일이 없어서 개발했다…
내가 실력이 부족하다고 생각하면, 남들을 도우세요
20세기 천재 물리학자 리처드 파인만에게는 독특학 학습법이 있었다. 오늘날 파인만 테크닉이라고도 불리는 학습법인데, 워낙 유명한지라 다들 들어보았으리라 짐작된다. 그래도 간략히 적어보자면 다음과 같다. 배우고 싶은 주제를 적고 목록화한다. 초등학생도 이해할 수 있는 언어로 설명한다. 설…

GoCD Pipeline 구축
GoCD는 이름에서 알 수 있듯이 CD, 지속적인 배포를 관리하는 소프트웨어다. 오픈소스이며 여러 서버를 지원한다. 필자는 맥 미니를 홈서버로 운용중인데, 맥 ARM 환경에서도 동작한다. 서비스가 많아짐에 따라 별도의 Github Action으로는 CD를 지원할 수 없었다. 매번 Act…

ThreeJS Raycasting 구현
ThreeJS로 Raycasting Collision Detection을 구현한 사례를 정리해본다. 게임 개발에 있어 충돌 이벤트는 가장 기초적이다. AABB, OBB, 원 충돌 등 수 많은 충돌 구현 방법이 있지만, 그중에서도 Raycasting을 통해 구현해볼 예정이다. Raycas…

Python으로 3D 게임 개발, Panda3d 설치
파이썬으로 게임을 개발하는건 어렵지 않다. pygame과 같이 라이브러리 생태계가 잘 구축되어 있고 파이썬 특유의 쉬운 문법이 게임 개발을 더욱 편리하게 해준다. 그러나 파이썬에서는 pygame 말고 사용하기 편한 게임 라이브러리는 드물다. 특히 3d에 특화되어 있으면서 유명한 라이브러…

Python으로 ARP Spoofing 프로그램을 만들어보자
NetCut이라는 프로그램이 있다. 동일 네트워크에 있는 디바이스의 인터넷 연결을 모조리 끊어버리는 소프트웨어인데, 상당히 위험하다. 공공장소에서 인터넷 느리다고 써버리면 잡혀갈 수 있다. (이론상 탐지가 가능하니) 이 포스트에서는 NetCut원리를 분석하려다가 프로그램 사용료 내라고…

GitHub Action + Docker Compose로 배포 자동화
깃허브 액션은 깃허브에서 만든 CI/CD이다. CICD에 대해 간략히 설명하자면, Continuous Integration/Continuous Delivery의 약자로 지속적인 통합과 지속적인 배포를 의미한다. 지속적인 통합은 각각의 깃허브 브렌치에서 코드 조각이 지속적으로 merge되…

JavaScript 종단간 암호화 (E2E Encryption) 구현 #1
종단간 암호화란 정보의 전송부터 도달까지 암호화를 유지한 채로 전송하는 방식을 말한다. 구현 난이도는 간단하지만, 구현을 위해서는 적용 환경 및 목적에 따라 약간의 응용이 필요하다. 일반적으로 RSA 키 교환과 AES 대칭키 암호를 사용한다. 국내에 종단간 암호화 구현 관련 글이 정말…

이 블로그의 목적과 운영중인 다른 블로그
현재 티스토리 블로그와 이 블로그(벨로그)만을 운영하고 있다. 원래는 티스토리 블로그만을 운영했으나 보다 심층적인 기술을 다루는데 있어 벨로그가 적합하다고 생각했다. 이 블로그의 목적 순수 개발, 심층적인 기술에 대해 다룬다. 지금까지 기술에 대한 심도있는 구현에 대해 공유한적이 없었다…

JavaScript Boilerplate Code를 리팩토링 하며
문제상황 평소 사이드 프로젝트를 하도 많이 진행하다보니 기본 코드를 템플릿해놓고 있다. 회원가입, CRUD 예제만 구현되어 있는 상태에서 안쓰는 코드만 지워주면 빠르게 개발할 수 있도록 설계해두었다. 그러나 어느순간부터 Boilerplate Code에 적용된 기술스택이 굉장히 불편하다는…