Smart Box
현 시대에 모든 개발자들은 언제나 그리고 편하게 오픈소스들을 자기의 프로젝트에 사용하고 있다. 나 또한, 오픈소스 프로젝트가 없다면, 개발을 할 수 없을 정도로 지금까지 많은 오픈소스들을 사용하며, 버그나 개선점이 있으면 직접 수정하여 PR를 요청하지 않고, Issue를 작성하여 개선을 요청해오곤 했다. 회사를 다니는 개발자가 된지 5년차가 된 이 시점에 항상 회사 프로젝트에서 사용하던 환경말고, 다양한 경험을 하기 위해 사이드 프로젝트를 시작하는 것을 고민했지만, 아무래도 너무 학업도 있다보니 너무 바뻐서, 오픈소스 프로젝트에 직접 참여하여 기여하는 것을 시작해보고자 했다. 가장 처음은 변역 기여 가장 처음으로 해본 것은 Github Opensoure Project Process에 적응하기 위하여, 개..
Rancher를 개발한 팀에서 새로운 Hyper-Converged Infrastructure 오픈 소스를 선보였다. Kubernetes 위에서 작동하며, On-Promise에서 누구나 쉽게 설치하고, 외부 스토리지(SAN) 구성 필요 없이 내부 스토리지를 이용하여 작동하기 위해서 개발 되었다. Harvester의 특징 간단한 VM 관리 기존 VM Hyperviser들이 제공하던 기능을 그대로 제공한다. Web 기반에서 VM을 간단히 관리할 수 있다. VM Live Migration 구동 중인 VM을 실시간으로 다른 노드로 이전할 수 있다. VM Backup & Restore 당연하지만, VM 백업과 복원을 지원한다. Distributed Block Storage Kubernetes 기반이고, Longho..
Kotlin에서의 when 문법은 기존 Java의 switch과 달리 개발자를 위해 정말 많이 진화해 있다. 그 중 가장 중요한 것은 컴파일 단계에서 내가 사용한 변수에 대한 모든 경우의 수를 핸들링 했는지 검사해주는 것이다. 이를 Exhaustive When Statement이라고 부르는데, 아래와 같다고 생각하면 된다. enum class Currency { WON, YEN, DOLLAR, } fun main() { val currency = Currency.WON val sign = when(currency) //'when' expression must be exhaustive, add necessary 'YEN' branch or 'else' branch..
현재 다니고 있는 직장에서 많은 제휴사가 늘어감에 따라 서비스 배포 관리와 트래픽을 제어하기 위해 기존 서버 환경을 갈아 엎기로 하였다. 아무래도, 경력이 짧고, 짧은 시간 내에 조사하여 환경을 개선해야했기 때문에, 완벽하지는 않지만, 사내에 Rancher 및 Kubernetes를 도입하면서 느낀 점을 정리해보려고 한다. 기존 시스템 환경은? OS: Windows Server / CentOS CI/CD: Github Action Back-end: Kotlin / Spring Boot / MSA 위에가 전부다. Load Balacner도 없고, Reverse Proxy Server도 없고, OS에 직접 서비스를 배포하고 있었으며, 백업도 진행하지 않고 있었다. 매우 문제가 많은 구조였다고 생각하지만, 초기..
회사에서 나는 원래 혼자서 Full-Stack 개발자로써 Web 개발을 혼자 맡아서 했지만, 원래 나는 목표가 Back-end 개발자였고, 급하게 Vue.js를 배워서 Front 까지 개발하게 되다보니, 원하는 프로덕트를 만드는 수준은 되지만 유지보수를 하기 좋은 코드나 정교함이 부족함을 느꼈다. 하지만, 최근에 회사에서 진행하는 프로젝트가 점점 많아지면서, Web 개발을 해야하는 프로젝트가 점점 늘고 있었다. 따라서, Front-end 개발자를 채용해야하는 것이 필수가 되어버렸고, 최근에 5명 정도 지원 해주신 분들을 면접보면서 느낀 점을 적어보려고 한다. 참고로, 채용 과정에서 내가 담당한 부분은 코딩 테스트와 기술 면접이였다. 1. 5명 중 4명이 코딩 테스트 첫번째 단계 문제를 풀지 못했다. 이 ..