CategoryTips (49)

Git에 공동 Author 추가하기

Git에 공동 Author 추가하기 현재 저는 회사에서 새로운 기능을 추가하는 프로젝트를 진행 중입니다. 하지만 프로젝트 시작하자마자 작은 고민이 생겼습니다. 미리 설계해 놓은 문서를 바탕으로 제가 프로토타입을 만들고, 같은 팀원이 제 프로토타입 코드를 실제 서비스에 반영할 수 있게 작업해 주긴 했으나 지저분한 커밋이 많고 추가로 수정하고 싶은 부분이 생겨서 어떻게 할까 고민에 빠졌습니다. 결국 커밋을 전부 reset 후 새로 작성하기로 합니다. Feature Flag를 통해서 추가되는 새로운 기능이기 때문에 기존 코드를 변경하지 않기도 하고, 첫 릴리즈 이전에 발생한 변경사항들이 Commit에 존재하는 의미가 없으며 또한 rebase하기에는 손이 더 많이 갈 것 같아서 말이죠. 이때 한가지 고민이 생겼..

웹 서비스 Maintenance Mode (점검 모드) 지원기

웹 서비스 Maintenance Mode (점검 모드) 지원기 온라인 서비스계의 유명한 4대 명검으로 유명한 점검 모드에 대해서 이야기하려 합니다. 점검 모드 지원 결정 운 좋게도 회사에서 운영하는 서비스가 2년 넘게 다운될 일이 없었습니다. Agile모델이 잘 실행되었기 때문일까요? 매주 릴리즈 함에도 불구하고 근 몇 년간 99.99%의 가용성을 유지하고 있었습니다. 하지만 올해 초 AWS MySQL을 AWS Aurora로 Migration 하기로 합니다. 문제는 우리 회사의 서비스가 사용자에 의해서 수정이 자주 일어나는 온라인 에디터라는 것! 이러한 서비스 특성상, 실시간으로 DB에 데이터를 업데이트하는 일이 잦게 발생하고, 이를 방지하고자 readonly 페이지를 제공할까? 등등 고민을 하게 됩니다..

[ETC] Artillery - 서버 부하 테스트

[ETC] Artillery - 서버 부하 테스트유용한 Service, Tool, Library를 소개해 드립니다. ArtilleryArtillery는 자바스크립트로 된 모던 부하 테스팅 툴킷입니다.처음부터 Artillery를 사용한 건아니고...제가 만든 서비스에 대한 부하 테스트가 필요해서 뭐가 좋을까 찾아보다가 먼저 Vegita라는 툴을 발견합니다.GitHub - tsenart/vegeta: HTTP load testing tool and library. It's over 9000!이름이 베지터? 하고 들어가 봤더니 진짜 그 드래곤볼 베지터! 와 너무 맘에 든다 이거 쓰면 인싸되는 각? 하고 시도해보려는 찰나..!간단한 테스트는 지원하는 Command로 할 수 있었지만 약간 플로우를 따라 부하 테스..

[ETC] myjson - 테스트용 온라인 JSON 저장소

[ETC] myjson - 테스트용 온라인 JSON 저장소유용한 Service, Tool, Library를 소개해 드립니다.myjson Myjson - A simple json storage and hosting serviceFront-end 작업 시 데이터 요청이 필요할 경우, 테스트를 위해서 파일을 로드 하거나 하드코딩으로 데이터를 Return 하는 비동기 코드를 사용하곤 하는데요.myjson을 이용하면 그럴 걱정이 없습니다.그리고 CORS도 지원합니다. :)사용법사이트에서 JSON 형식의 데이터를 입력 후, Save 버튼을 눌러주면 끝.예를 들어 아래 테스트 JSON 데이터를 입력하면...{ "user": { "name": "kendrick b. jung", "age": 70 } } 이렇게 값을 반..

[ETC] MacOS Mojave - invalid active developer path Issue

MacOS Mojave - invalid active developer path IssueMacOS 모하비 버전이 나왔습니다!제가 느끼는 주요 변경 점이라면 다크모드와 새로운 Finder 뷰 모드? 정도가 있겠네요.요런느낌 한 시간에 걸친 업데이트 후, 문제가 생길 것이라는 불안감은 빗나가지 않습니다...! git command를 사용하려 하니 귀신같이 아래와 같은 에러를 뿜뿜!xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 하아...찾아보니 기존 MacOS 시에라 혹은 하이 시에라 버..

[ETC] 동적 서버 접속을 위한 SSH Config

동적인 EC2 Instance 접속을 위한 SSH Config작년까지 Snowflakes Server 패턴을 사용하다가 올해 초 Phoenix Server 패턴으로 변경하게 되었습니다. 작업 후 새로 배포되는 서버들이 매우 안정적으로 생성되는 걸 확인하고 야호를 외쳤으나... 새로 생성된 서버에 SSH 접속때 마다 매번 IP가 다르니 불편함이 이만저만이 아니었습니다.그 와중에 Bastion 서버도 통해서 접속해야 했기에 매번 만들어둔 긴 SSH Command 수정하기도 매우 번거로운 것..!그렇다고 SSH Config를 만들어놔도 새 서버를 만들 때마다 SSH 접속 정보를 변경해 줄 수도 없는 노릇이고 말이죠..!비슷한 문제를 가지고 계신 분들이 분명 있을거라고 생각해 글을 쓰게 되었습니다.아래와 같거나..

[ETC] SSHFS를 이용해 원격 마운트하기

SSHFS를 이용해 원격 마운트하기배포를 할 때 가장 귀찮은 부분은 역시 수동으로 관리해 줘야 하는 것들, 이를테면 보안에 민감한 .env 파일이나 예외적인 몇몇 파일들이 있겠습니다.그래서 생각해보니 설정 파일 이나 변경이 필요한 데이터들이 전부 Git 저장소에 있다면 배포 시에 정말정말 편할 거 같네요!넵! 그런 일은 있을 수 없겠죠. 어쩌다 Git Account가 털리기라도 하면 오우 상상만 해도 아찔합니다.그렇기에 일반적으로는 .env나 중요파일을 수동 혹은 Configuration manager system을 이용해 관리해 주곤 합니다.그런데 파일 몇 개면 상관이 없을 텐데 수많은 파일을 매 배포 시마다 하나씩 추가 혹은 변경해줘야 한다면?벌써 현기증이…SSHFS 란?SSH를 통한 Mount를 지..

[ETC] Github의 취약성 알림 대처 방법

Github의 취약성 알림 대처 방법취약성 탐지 알림 from Github자고 일어났는데 Github으로 부터 다음과 같이 취약성 알림 메일이 왔습니다.[sonim1/sonim1-mysite] One of your dependencies may have a security vulnerability이런 메일 처음 받아본지라 깜짝 놀랐네요.뭔가 알아보니 package-lock.json 파일을 같이 올릴 경우 Github에서 알려진 취약점이 있는 라이브러리에 대해서 알림을 보내줍니다.Github 저장소에서 Insight > Dependency Graph 메뉴를 통해 접근 및 확인 가능합니다.이슈를 해결한 이후라서 인터넷에서 찾아온 이미지!삽질의 시작딱히 중요한 데이터가 있는 건 아니지만 신경 쓰이니 고치기로 ..

[번역] Art of Clean Pull Requests - 클린한 Git PR의 기술

Art of Clean Pull Requests - 클린한 Git PR의 기술직장 동료인 소프트웨어 엔지니어 Alex의 프리젠테이션을 한국어로 번역한 포스트입니다. Git을 실무에서 사용함에 있어 공감하고 배울 내용이 많아 번역해보았습니다. 세팅이나 기초적인 사용법에 대해서가 아닌, 효율적인 실무를 위한 Branch 관리 및 PR 방법에 대하여 전반적으로 다루고 있습니다. 그 외에도 이해를 돕기 위한 추가적인 내용이 들어가 있습니다. Art of Clean Pull Requests - Presentation Alex Yeung 목차Art of Clean Pull Requests - 클린한 Git PR의 기술간략한 개요Git은 어떻게 동작하는가?원격 저장소별로 분리된 Branch팁과 트릭당신의 작업 사항을..

Module Bundler Parcel 그리고 Webpack 4

Module Bundler Parcel 그리고 Webpack 4들어가기 전작년 말 Parcel이 나와 엄청난 Star를 받으며 큰 인기를 얻었습니다.그리고 지난달 Webpack 4가 발표되었습니다!이런 상황에 떠오르는 생각을 포스트로 간단하게 정리해 봤습니다.ParcelParcel - Homepage Parcel - GithubParcel[파설, /parsəl/]은 개발 경험에서 차이를 느낄 수 있는 웹 애플리케이션 번들러 입니다. 멀티 코어 프로세싱으로 불꽃 튀게 빠른 성능을 제공하고 그 어떤 설정도 요구하지 않습니다. - Parcel 엄청나게 빠른 번들, 적은 설정과 기본적으로 제공하는 HMR! 등을 표방하며 나온 모듈번들러 Parcel.Webpack, gulp, grunt등의 복잡한 설정과 점점 느..

Spiklin - Exchange Language and culture with a native speaker

Spiklin - Exchange Language and culture with a native speaker언어교환 모임이란?한국어와 영어 각기 다른 언어를 사용하는 원어민이 모여서 각자의 언어를 알려주고 배우는 모임입니다.원어민과 언어 및 문화를 교류할 수 있습니다.대화 상대를 카페나 메신저 등을 이용해서 구할 수 있겠지마는, 좀 더 편하게 모임을 가질 수 있는 Spiklin 서비스를 소개해 드리려 합니다. Spiklin토론토에서 쉽게 언어 교환을 할 수 있는 모임 혹은 온라인 서비스명 입니다.아래 사이트를 이용해서 등록하실 수 있습니다.두 가지 버전으로 자체 사이트와 Meetup을 이용해서 모임에 참석할 수 있습니다.SpiklinMeetup - SpiklinMeetup을 이용할 수도 있지만, Spi..

OpenAPI Spec 3.0 버전으로 문서 작성하기

OpenAPI Specification 3(OAS 3)에 맞게 문서 작성하기회사에서 REST API 설계를 해야 해서 OSA 3 기준으로 문서를 작성하게 되었습니다.REST API 구조는 기본적으로 만들 수 있지만, OpenAPI Specification을 따라본 적은 없어서 이번에 처음 OAS3 문서를 작성해봤는데요.초반에 시간을 투자해서 만들어두면 확실히 좀 더 명확한 소통이 가능한 거로 보입니다.작성법과 각종 예제는 공식 문서에서도 충분히 제공되고 있기 때문에 공식 문서와 몇 가지 도움이 되는 홈페이지를 소개해드리려 합니다.공식 문서 보기역시 가장 좋은 방법은 공식문서 보기겠죠.OpenAPI Specification - 3.0.1Example과 사용 할 수 있는 문서 형식들에 대한 정보를 제공합니다..