본문으로 건너뛰기

Engineering

24
EngineeringLinux

metadata를 기반으로 한 LVM volume 복구

아직 복구중이긴 하지만 내역으로 한번 써본다. 만약 수행한다면 dd등을 통해 데이터를 백업 후 한번 읽어보고 본인의 상황에 얼마나 도움이 될지 읽어보고 진행하길 바란다. LVM에 SSD캐시를 붙여서 쓰고있었다. writethrough 모드로 쓴다고 안심하고 있었으나 SSD가 돌연사 함으로 인해 LVM 볼륨에도 접근할 수 없는 상태가 됐다. (IO error 상태) 이 진단을 내리기 전에는 단순히 파일시스템이 깨진것으로 판단하고 언마운트 후 fsck를 열심히 돌렸으나 파일시스템이 돌아오지 않았고, 당연히 마운트도 되지 않았다. 결론적
EngineeringTILCo-work

git flow의 실제 사용

main이나 develop등 공용 브랜치에 커밋을 하지 않는다 → feature 브랜치로 따로 따서 작업한다. git checkout -b "feature/NUM" 공용 브랜치를 자주자주 pull 받아 브랜치를 최신으로 유지한다 (예를들어 develop) 공용 브랜치는 upstream으로 지정한다 git remote add upstream [URL] git pull upstream [공용브랜치] git push origin
EngineeringTILCo-work

GitHub Actions 으로 간단한 CD 구성하기

본 글이 인기가 좋아 후속편을 작성했다. 아래 간단히 배포하는 것 보다 좀 더 세분화 된 내용을 담았다. 글 보러가기 기본적으로 github action에서 호스트로 push하는 방식이다. ${{ secrets.HOST }}를 비롯한 나머지 4개의 환경변수는 Setting secrets 에서 등록한다. 주요내용은 main 브랜치에서 push가 일어나면 github의 ubuntu 인스턴스에서 ssh를 통해 원격지의 deploy.sh를 실행시킨다는 내용이다. 이 스크립트가 하는 내용은 다음과 같다 저장소에서 코드 가져오기 Maven 빌
EngineeringTILCloud Infrastructure

Docker 시작하기

Windows 10과 맥에서 docker를 설치하고 WSL과 통합하여 기본적인 컨테이너를 올려보는 기회. 현 시점에서 WSL2+Ubuntu는 기본 사양이므로 넘어가도록 하겠다. 필요하면 이 링크 참고. 바쁜 사람들을 위한 짧은 코드 (powershell에서 실행해야된다) WSL 설치 후 MS스토어에서 Ubuntu를 받으면 된다. 대부분 Ubuntu를 많이 쓴다. 추후 wsl을 사용하기 위해 Windows Terminal도 설치하면 좋다. 여기서는 생략. 이제 윈도우에 도커를 설치 하자. 맥은 여기 설치 후 확인은 docker 명령어
EngineeringTILWeb application

Maven과 gradle의 차이

두 빌드 툴의 사용법은 인터넷에 잘 정리된 글이 많으니 차이점에 대해서 설명해보고자 한다. Apache에서 만든 소프트웨어 프로젝트 관리 및 comprehension 툴이다. POM 개념을 기반으로 프로젝트의 빌드, 보고 및 문서를 중앙 관리할 수 있다. → 프로젝트의 빌드 Lifecycle 기반 프레임워크. mvn 명령어로 관리한다. XML기반의 pom.xml파일로 설정한다. Maven을 대체할 수 있는 프로젝트 구성 관리 및 범용 빌드 툴이다. gradle 명령어로 관리한다. 스크립트 기반의 build.gradle파일로 관리한다
EngineeringLinux

나만의 작은 스토리지를 위한 여정

자작 스토리지를 만들어 2016년부터 지금까지 사고 없이 잘 사용하고 있다. 2010년 초반에 집집마다 NAS를 들여야 한다는 광풍이 한차례 지나가고 뒤늦게 스토리지를 장만한 것이다. 땡놀로땡이나 땡냅 같은 벤더들이 개인 및 소규모 업장을 위한 NAS 박스를 많이 만들고 있다. 그러나 RAID나 데이터 저장의 이해 부족으로 적지 않은 고통을 유저들이 떠안고 있다고 생각한다. 용량을 위해 RAID0 (스프라이팅) 볼륨을 서슴없이 만든다던가, 아무생각없이 캐시를 걸었다가 박살이 나는 사례를 여럿 봤기 때문이다. 왜 벤더 박스를 쓰지 않
EngineeringWeb application

VueJS를 시작 하면서 필요한 것들

Vue.js를 이용해 간단한 클라이언트 프론트엔드를 제작하면서 필요했던 것들을 정리해봤다. 서버단의 경우 호출/반환은 flask, 내부 구현은 python으로 미리 제작을 완료하였다. 클라이언트를 평소 익숙했던 php로 간단한 웹페이지로 제작하고자 했으나 차후 데스크탑 어플리케이션 또는 모바일 앱으로 래핑 할 것을 고려해 모두 한 코드에 통합할 수 있는 프레임워크를 찾기 시작했다. 무엇보다 내부 구현이 모두 완료되었기 때문에 빠르게 제작할 수 있는 프레임워크로 Vue로 결정했다. 리엑트를 놓고 고민을 많이 했으나 가장 최신 트랜드를
Engineering

APFS 남은용량 늘리기

부트캠프 삭제 이후 빈 공간을 맥용 파티션으로 늘릴려고 하니 사진상의 895GB에서 더이상 늘어나지 않는다. 숫자를 따로 입력해도 늘어나지 않는다. diskutil 명령으로 해결할 수 있나 확인해보니 뾰족히 그런것도 아닌것 같다. 오히려 명령어가 더 부실한 경우인것 같다. 저 '여유 공간'에 컨테이너를 만들었다 볼륨을 만들었다 방법을 해봐도 소용이 없던 차에 '여유 공간' 이라는 이름을 찍어보니 아래에 '-'버튼이 활성화가 된다. 살포시 눌렀다. 그랬더니 '여유 공간'이라는 자리가 제거가 되고 자동으로 맥 파티션이 자리를 차지한다.