전체 글

안녕하세요 🔭 소프트웨어 개발자 허형준입니다. 개인적인 에세이와 대중적인 기술 칼럼을 쓰고 있습니다. 테스트베드 스타트업 데벤트를 창립하고 bleeding edge 기술을 다루고 있습니다.
환경 구성 ThreeJS 0.128.0 버전을 이용합니다. 아래 CDN 링크를 참고해주세요. 위치 이동 ThreeJS에서 오브젝트 위치를 이동시키기 위해서는 setX, setY, setZ함수를 이용합니다. const loader = new THREE.OBJLoader(loadmanager); loader.load( url, ( object ) => { object.position.setX( position.x ); object.position.setY( position.y ); object.position.setZ( position.z ); this.scene.add( object ); }); 사실, OBJLoader 말고도 GLTFLoader 나 기타 로더의 오브젝트들에도 적용할 수 있습니다. 추가적인..
🖥 기술 블로그가 필요하게 된 이유 블로그라는 매체를 통해 생각을 쉽게 전파할 수 있다. 그 장점으로, 유튜브가 득세하는 현재까지도 광범위하게 사용되고 있는 주요한 콘텐츠 플랫폼으로 자리매김하고 있다. 지금 보고 있는 티스토리 블로그는 본래 기술 전용 블로그로 계획되었다. 그러나 의도와는 다르게 일상에 관한 글을 쓰기 시작했고, 결국 개인 블로그로 목적을 바꾸게 되었다. 이후 데벤트와 관련된 소식과 기술만을 따로 다룰만한 블로그의 필요성이 생겼다. 사실 DeVent라는 이름은 1인 브랜드로서 만들었다. 기술 블로그에는 브랜드의 이야기와 스토리등만을 게시할 예정이었기 때문에, 티스토리 블로그로 운영하는 건 특색이 없었다. 티스토리 플랫폼 외에도 브런치, 구글 블로거 등 여러 가지 대안을 탐색해보았지만 딱히..
* [각자도생 끝에 관용] 시리즈 #1 관용이 넘치는 사회는 어떤 세상일까. 처음 보는 사람에게 온갖 불평불만을 쏟아내도 뭐라 하지 않는 세상일까. 아님 남의 일에 신경 쓰지 않는 세상일까. 어쩌면 관용이 넘치는 세상은 모두가 마음속에 간직하고 있는 이상 사회일지도 모르겠다. 누구나 관용에 대해 한 번쯤 생각해보았지만 관용을 어떻게 실천해야 하는지에 대해서는 명확하지 않다. 이 글에서는 관용이 있는 세상은 어떤 세상일지를 상상해보며 현대사회에 어떻게 적용할지 고찰해보는 시간을 가져보겠다. 관용이 있는 세상이란 그닥 직관적으로 와닿지 않는다. 현실이라는 벽에 부딪히며 산산조각 나버린 관용을 직관적으로 받아들이기엔 쉽지 않다. 그러면 관용 있는 세상은 현실의 문제를 먼저 해결한 세상이 아닐까? 이 물음에 앞..
⚙️ 기본 설정 다음과 같은 환경을 사용해서 개발합니다. Es6 문법 webpack5 nodejs v17.5.0 🚀 프로젝트 세팅 웹팩 5와 javascript-obfuscator 모듈을 활용하겠습니다. 먼저 npm 모듈을 설치합니다. npm install --save-dev webpack-cli javascript-obfuscator webpack-obfuscator package.json 에서 번들링 구문을 설정해줍니다. { ... "scripts": { "start": "node app.js", "bundle:development": "webpack --mode=development", "bundle:production": "webpack --mode=production" }, ... } 🔌 Web..
📂 동기 내 블로그를 들여다보면 썸네일 크기와 형식이 제각각이다. 대체 어떤 내용을 전달하려고 하는지도 명확하지 않다. 썸네일은 블로그의 첫인상인데, 보다 간결하고 명확하게 바꿀 필요가 있었다. 문제는 썸네일뿐만이 아니었다. 카테고리의 정리가 더 시급해 보였다. 프로그래밍과 컴퓨터 카테고리는 기술로 묶고, 잡다한 이야기나 불쑥 떠올라서 쓴 글들은 모두 생각 카테고리로 집어넣었다. 이때 회고 카테고리도 신설했는데, 회고를 글로 옮긴 적이 거의 없어서 이번 기회에 프로젝트 기준으로 회고를 작성하려 한다. 그동안 블로그를 운영해오며 생각이 정리되었다. 살아가면서 얻은 소소한 경험을 글로 기록한다는 일 자체가 참으로 값진 일이라는 걸 깨달았다. 그렇게 글 하나하나에 할애하는 시간은 점점 늘어갔고 비로소 글 전체..
fs모듈에서 폴더를 삭제하고 싶을 때 사진과 같은 에러가 뜨며 정상적으로 삭제되지 않는 경우가 있습니다. 에러 화면에서 볼 수 있듯이 폴더 내에 파일이 있으면 에러를 뿜게 됩니다. 이때 강제적으로 제거할 수 있는 방법이 있습니다. fs.rmdir(directory, { recursive: true, force: true }, (error) => { if (error) { return { isremoved: 0 } } else { return { isremoved: 1 } } }); { recursive: true, force: true } 를 설정으로 추가해주면 됩니다.
😅 그동안의 비효율적인 배포 과정 기존 홈서버에 배포할 때 번거로운 과정의 연속이었다. 원격 접속으로 파일을 이동하고 서버를 종료시킨 다음 코드를 덮어쓰고 다시 실행하는 과정을 통해 코드를 업데이트할 수 있었다. 또한 깃허브와 같은 툴을 쓰지 않아 버전 관리에도 문제가 있었다. 이외에도 의존성이 깨지면 다른 소프트웨어에도 영향이 간다거나, 다운그레이드를 위해 앞선 과정을 다시 진행하는 등 문제점이 많았다. 코드란 유기체와 같다. 지속적으로 관리해주고 신경 써주지 않으면 찌꺼기(레거시 코드)가 필연적으로 발생하게 된다. 관리 방법 중 하나가 바로 배포의 자동화다. 이전 글에서도 설명했듯이, 몇 년 전에는 USB로 파일을 이동하는 만행(?)을 저지르기도 했다. 분명 당시에는 버전이 꼬이고 레거시 코드가 넘쳐..
https://devent.tistory.com/141 NodeJS 템플릿 개발기 I. 개발 동기 개발 동기를 3가지로 정리하자면 반복적인 코드 귀찮음 예) 로그인/인증 로직 라우터 몰빵 습관 개선 의지 내가 짠 코드 오픈소스화 '그동안 발로 짠 코드가 많아서 이번 기회에 devent.tistory.com 🖥 바퀴를 재발명하지 말자 앞선 글에 나와있듯이 자동차를 만들기 위해 바퀴를 재발명할 필요는 없다. 반복적인 일을 줄이기 위해서는 한 번 발명했던 기술을 공식화하여 누구나 쉽게 사용할 수 있도록 해야 한다. 마치 수학자들이 수학 공식을 만들듯, 개발자 또한 템플릿화를 해놓으면 편하다. 대부분의 상용 서비스들은 고만고만하다. 커뮤니티, 채팅 앱, 정보공유 서비스 등등 무수한 웹서비스들은 모두 프론트/백엔..
DipokalHHJ
허형준